Commit 94484849 authored by Ryan Kuba's avatar Ryan Kuba

#67 adding stack info button, moving interface to more material design, cleaning up old JS

parent ebb22f47
Pipeline #21851447 passed with stage
in 27 minutes and 34 seconds
#Dockerfile for Taisun base image
#2017
#Use the node base image
FROM node:8.9
FROM node:8.11
MAINTAINER Ryan Kuba <ryankuba@gmail.com>
......
#Dockerfile for Taisun base development image
#2017
#Use the node base image
FROM node:8.9
FROM node:8.11
MAINTAINER Ryan Kuba <ryankuba@gmail.com>
......
......@@ -266,12 +266,7 @@ io.on('connection', function(socket){
// Get remote list of stack definition files from stacks.taisun.io
socket.on('browsestacks', function(page){
request.get({url:'https://api.taisun.io/stacks'},function(error, response, body){
if (!error && response.statusCode == 200) {
io.sockets.in(socket.id).emit('stacksresults',JSON.parse(body));
}
else{
io.sockets.in(socket.id).emit('stacksresults','error');
}
io.sockets.in(socket.id).emit('stacksresults',JSON.parse(body));
});
});
// Get Stack search results
......@@ -330,9 +325,6 @@ io.on('connection', function(socket){
else if (templatename == 'taisungateway.yml'){
var stacktype = 'gateway';
}
else if (templatename == 'taisunportainer.yml'){
var stacktype = 'portainer';
}
else if (templatename == 'taisundeveloper.yml'){
var stacktype = 'developer';
}
......@@ -408,18 +400,6 @@ io.on('connection', function(socket){
}
});
});
// When the user checks the status of portainer render page based on status
socket.on('checkportainer', function(){
var portainercontainer = docker.getContainer('taisun_portainer');
portainercontainer.inspect(function (err, data) {
if (data == null){
io.sockets.in(socket.id).emit('renderportainer', 'no');
}
else{
io.sockets.in(socket.id).emit('renderportainer', data);
}
});
});
// When devstacks info is requested send to client
socket.on('getdev', function(){
containerinfo('updatedev');
......@@ -456,8 +436,8 @@ io.on('connection', function(socket){
startstack(stackname);
});
// When Stack Logs are requested execute
socket.on('stacklogs', function(stackname){
stacklogs(stackname);
socket.on('containerlogs', function(containerid){
containerlogs(containerid);
});
// When build from git is requested execute
socket.on('builddockergit', function(formdata){
......@@ -475,7 +455,11 @@ io.on('connection', function(socket){
io.sockets.in(socket.id).emit('sendremotestatus', JSON.parse(body));
}
});
});
});
// Get Taisun.io stacks running locally for stack management
socket.on('getmanage', function(){
containerinfo('manageinfo');
});
///////////////////
//// Functions ////
///////////////////
......@@ -787,39 +771,26 @@ io.on('connection', function(socket){
});
}
// Get logs for all containers in stack
function stacklogs(stackname){
// Grab the current running docker container information
docker.listContainers({all: true}, function (err, containers) {
function containerlogs(containerid){
var logcontainer = docker.getContainer(containerid);
var logOpts = {
stdout: 1,
stderr: 1,
tail:100,
follow:0
};
io.sockets.in(socket.id).emit('senddockerodeoutstart','Getting logs for ' + containerid);
logcontainer.logs(logOpts,function (err, stream) {
if (err){
io.sockets.in(socket.id).emit('error_popup','Could not list containers something is wrong with docker on this host');
io.sockets.in(socket.id).emit('sendconsoleoutdone','Error Getting logs for ' + containerid);
}
else{
containers.forEach(function(container){
// If the container has the stackname as the label
if (container.Labels.stackname == stackname){
var logcontainer = docker.getContainer(container.Id);
var logOpts = {
stdout: 1,
stderr: 1,
tail:100,
follow:0
};
io.sockets.in(socket.id).emit('senddockerodeoutstart','Getting logs for ' + container.Names[0]);
logcontainer.logs(logOpts,function (err, stream) {
if (err){
io.sockets.in(socket.id).emit('sendconsoleoutdone','Error Getting logs for ' + container.Names[0]);
}
else{
stream.setEncoding('utf8');
stream.on('data', (data) => {
io.sockets.in(socket.id).emit('sendconsoleout',ansi_up.ansi_to_html(data).trim());
});
stream.on('end', function(){
io.sockets.in(socket.id).emit('sendconsoleoutdone','Logs for ' + container.Names[0] + ' below');
});
}
});
}
stream.setEncoding('utf8');
stream.on('data', (data) => {
io.sockets.in(socket.id).emit('sendconsoleout',ansi_up.ansi_to_html(data).trim());
});
stream.on('end', function(){
io.sockets.in(socket.id).emit('sendconsoleoutdone','Logs for ' + containerid + ' below');
});
}
});
......
This diff is collapsed.
......@@ -14,15 +14,15 @@
"license": "WTFPL",
"homepage": "http://taisun.io",
"dependencies": {
"ansi_up": "^2.0.2",
"ansi_up": "^3.0.0",
"crypto": "^1.0.1",
"docker-hub-api": "^0.5.1",
"docker-hub-api": "^0.6.0",
"dockerode": "^2.5.2",
"dockops": "^0.2.1",
"ejs": "^2.5.7",
"express": "^4.15.3",
"git-clone": "^0.1.0",
"guacamole-lite": "^0.5.0",
"guacamole-lite": "^0.6.2",
"http": "0.0.0",
"js-yaml": "^3.10.0",
"nunjucks": "^3.0.1",
......
@font-face {
font-family: "fontcustom";
src: url("/public/vendor/Font-Awesome-Docker-Icon/fontcustom_cb066050d5b786186aa0e7f121427d8b.eot");
src: url("/public/vendor/Font-Awesome-Docker-Icon/fontcustom_cb066050d5b786186aa0e7f121427d8b.eot?#iefix") format("embedded-opentype"),
url("/public/vendor/Font-Awesome-Docker-Icon/fontcustom_cb066050d5b786186aa0e7f121427d8b.woff") format("woff"),
url("/public/vendor/Font-Awesome-Docker-Icon/fontcustom_cb066050d5b786186aa0e7f121427d8b.ttf") format("truetype"),
url("/public/vendor/Font-Awesome-Docker-Icon/fontcustom_cb066050d5b786186aa0e7f121427d8b.svg#fontcustom") format("svg");
font-weight: normal;
font-style: normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: "fontcustom";
src: url("/public/vendor/Font-Awesome-Docker-Icon/fontcustom_cb066050d5b786186aa0e7f121427d8b.svg#fontcustom") format("svg");
}
}
[data-icon]:before { content: attr(data-icon); }
[data-icon]:before,
.fa-docker:before {
display: inline-block;
font-family: "fontcustom";
font-style: normal;
font-weight: normal;
font-variant: normal;
line-height: 1;
text-decoration: inherit;
text-rendering: optimizeLegibility;
text-transform: none;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
}
.fa-docker:before { content: "\f100"; }
......@@ -8,10 +8,9 @@
<meta name="author" content="">
<title>Taisun</title>
<link href="public/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="public/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="public/vendor/datatables/dataTables.bootstrap4.css" rel="stylesheet">
<link href="public/vendor/font-awesome/css/fontawesome.min.css" rel="stylesheet" type="text/css">
<link href="public/vendor/datatables/css/datatables.min.css" rel="stylesheet">
<link href="public/css/sb-admin.min.css" rel="stylesheet">
<link href="public/css/fontcustom.css" rel="stylesheet">
<link rel="apple-touch-icon" sizes="57x57" href="public/favicon/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="public/favicon/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="public/favicon/apple-icon-72x72.png">
......@@ -48,7 +47,7 @@
</li>
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="Images" id="ImagesNav">
<a class="nav-link" onclick="renderimages()">
<i class="fa fa-fw fa-hdd-o"></i>
<i class="far fa-fw fa-hdd"></i>
<span class="nav-link-text">
Images</span>
</a>
......@@ -74,13 +73,6 @@
Remote Access</span>
</a>
</li>
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="Portainer" id="Portainernav">
<a class="nav-link" onclick="renderportainer()">
<i class="fa fa-fw fa-docker"></i>
<span class="nav-link-text">
Portainer</span>
</a>
</li>
</ul>
<ul class="navbar-nav sidenav-toggler">
<li class="nav-item">
......@@ -127,7 +119,7 @@
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" style="overflow-x:auto">
<div id="modalloading"><i class="fa fa-refresh fa-spin" style="font-size:36px"></i></div>
<div id="modalloading"><i class="fas fa-spinner fa-pulse" style="font-size:36px"></i></div>
<div id="modalbody"></div>
<div id="modalconsole" style="font-family:monospace;background:black;color:white;overflow-y:auto;"></div>
</div>
......@@ -141,10 +133,8 @@
<script src="public/vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Plugin JavaScript -->
<script src="public/vendor/jquery-easing/jquery.easing.min.js"></script>
<script src="public/vendor/datatables/jquery.dataTables.js"></script>
<script src="public/vendor/datatables/dataTables.bootstrap4.js"></script>
<script src="public/vendor/datatables/js/datatables.min.js"></script>
<script src="public/vendor/showdown/showdown.min.js"></script>
<script src="public/vendor/filesaver/js/filesaver.js"></script>
<script src="public/vendor/ace/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="/socket.io/socket.io.js"></script>
<!-- Custom scripts for Taisun -->
......
This diff is collapsed.
name: Portainer
description: |
Portainer Container [Portainer.io](https://portainer.io/)
============
This will spinup a Portainer container on your system connected to the system Docker socket.
<p align="center">
<img title="portainer" src='https://portainer.io/images/logo_alt.png' />
</p>
[![Docker Pulls](https://img.shields.io/docker/pulls/portainer/portainer.svg)](https://hub.docker.com/r/portainer/portainer/)
[![Microbadger](https://images.microbadger.com/badges/image/portainer/portainer.svg)](http://microbadger.com/images/portainer/portainer "Image size")
[![Documentation Status](https://readthedocs.org/projects/portainer/badge/?version=stable)](http://portainer.readthedocs.io/en/stable/?badge=stable)
[![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=portainer&repoName=portainer&branch=develop&pipelineName=portainer-ci&accountName=deviantony&type=cf-1)]( https://g.codefresh.io/repositories/portainer/portainer/builds?filter=trigger:build;branch:develop;service:5922a08a3a1aab000116fcc6~portainer-ci)
[![Code Climate](https://codeclimate.com/github/portainer/portainer/badges/gpa.svg)](https://codeclimate.com/github/portainer/portainer)
[![Slack](https://portainer.io/slack/badge.svg)](https://portainer.io/slack/)
[![Gitter](https://badges.gitter.im/portainer/Lobby.svg)](https://gitter.im/portainer/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHXZJQNJQ36H6)
**_Portainer_** is a lightweight management UI which allows you to **easily** manage your different Docker environments (Docker hosts or Swarm clusters).
**_Portainer_** is meant to be as **simple** to deploy as it is to use. It consists of a single container that can run on any Docker engine (can be deployed as Linux container or a Windows native container).
**_Portainer_** allows you to manage your Docker containers, images, volumes, networks and more ! It is compatible with the *standalone Docker* engine and with *Docker Swarm mode*.
form:
- type: hidden
compose: |
version: "3"
services:
taisunportainer:
image: portainer/portainer
container_name: taisun_portainer
restart: always
network_mode: bridge
labels:
- "stackname={{ stackname }}"
- "stacktype={{ stacktype }}"
- "stackurl={{ stackurl }}"
command: "--no-auth --host unix:///var/run/docker.sock"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- "9000:9000"
\ No newline at end of file
{
"name": "Font-Awesome-Docker-Icon",
"homepage": "https://github.com/Dev-Crea/Font-Awesome-Docker-Icon",
"authors": [
"vaillant.jeremy@dev-crea.com"
],
"description": "Icon docker",
"main": [
"./fontcustom/fontcustom.css",
"./fontcustom/fontcustom_cb066050d5b786186aa0e7f121427d8b.eot",
"./fontcustom/fontcustom_cb066050d5b786186aa0e7f121427d8b.svg",
"./fontcustom/fontcustom_cb066050d5b786186aa0e7f121427d8b.ttf",
"./fontcustom/fontcustom_cb066050d5b786186aa0e7f121427d8b.woff"
],
"moduleType": [
"globals"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"_release": "dcaa4df76d",
"_resolution": {
"type": "branch",
"branch": "master",
"commit": "dcaa4df76da207b8b0d28414f71fde5f8778cf16"
},
"_source": "https://github.com/Dev-Crea/Font-Awesome-Docker-Icon.git",
"_target": "*",
"_originalSource": "Font-Awesome-Docker-Icon",
"_direct": true
}
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2014-5-22: Created.
-->
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Thu May 22 15:12:55 2014
By Wes Bos
Created by Wes Bos with FontForge 2.0 (http://fontforge.sf.net)
</metadata>
<defs>
<font id="fontcustom" horiz-adv-x="512" >
<font-face
font-family="fontcustom"
font-weight="500"
font-stretch="normal"
units-per-em="512"
panose-1="2 0 6 9 0 0 0 0 0 0"
ascent="448"
descent="-64"
bbox="2.72696 38.4229 509.716 366.485"
underline-thickness="25.6"
underline-position="-51.2"
unicode-range="U+F100-F100"
/>
<missing-glyph />
<glyph glyph-name="uniF100" unicode="&#xf100;"
d="M266.034 262.888h51.7998v-52.9512h26.1904c12.0947 0 24.5342 2.15527 35.9883 6.03613c5.62891 1.90723 11.9453 4.56445 17.498 7.90332c-7.3125 9.54688 -11.0449 21.6016 -12.1455 33.4844c-1.49121 16.1621 1.76855 37.1963 12.7061 49.8467l5.44531 6.29785
l6.4873 -5.21582c16.335 -13.125 30.0742 -31.4648 32.4971 -52.3701c19.668 5.78516 42.7627 4.41699 60.1006 -5.59082l7.11426 -4.10254l-3.74414 -7.30859c-14.6631 -28.6172 -45.3174 -37.4805 -75.2881 -35.9131
c-44.8467 -111.698 -142.481 -164.581 -260.865 -164.581c-61.1611 0 -117.274 22.8643 -149.229 77.127l-0.524414 0.886719l-4.65625 9.47168c-10.7998 23.8848 -14.3877 50.0508 -11.9541 76.1963l0.729492 7.83105h44.2949v52.9512h51.7969v51.7988h103.6v51.7998
h62.1582v-103.598zM94.7188 250.513h3.5459v-37.4131h-3.5459v37.4131zM87.9189 250.513h3.68555v-37.4131h-3.68555v37.4131zM81.1162 250.513h3.68457v-37.4131h-3.68457v37.4131zM74.3125 250.513h3.68555v-37.4131h-3.68555v37.4131zM67.5117 250.513h3.68457v-37.4131
h-3.68457v37.4131zM60.8516 250.513h3.54199v-37.4131h-3.54199v37.4131zM57.1123 254.255v-44.8926h44.8906v44.8926h-44.8906zM146.518 302.312h3.54785v-37.4121h-3.54785v37.4121zM139.718 302.312h3.68555v-37.4121h-3.68555v37.4121zM132.914 302.312h3.68555
v-37.4121h-3.68555v37.4121zM126.111 302.312h3.68555v-37.4121h-3.68555v37.4121zM119.312 302.312h3.68262v-37.4121h-3.68262v37.4121zM112.652 302.312h3.54004v-37.4121h-3.54004v37.4121zM108.909 306.054v-44.8916h44.8965v44.8916h-44.8965zM146.518 250.513
h3.54785v-37.4131h-3.54785v37.4131zM139.718 250.513h3.68555v-37.4131h-3.68555v37.4131zM132.914 250.513h3.68555v-37.4131h-3.68555v37.4131zM126.111 250.513h3.68555v-37.4131h-3.68555v37.4131zM119.312 250.513h3.68262v-37.4131h-3.68262v37.4131z
M112.652 250.513h3.54004v-37.4131h-3.54004v37.4131zM108.909 254.255v-44.8926h44.8965v44.8926h-44.8965zM198.318 250.513h3.54395v-37.4131h-3.54395v37.4131zM191.517 250.513h3.68652v-37.4131h-3.68652v37.4131zM184.716 250.513h3.68457v-37.4131h-3.68457v37.4131
zM177.912 250.513h3.68555v-37.4131h-3.68555v37.4131zM171.109 250.513h3.68457v-37.4131h-3.68457v37.4131zM164.451 250.513h3.54004v-37.4131h-3.54004v37.4131zM160.71 254.255v-44.8926h44.8945v44.8926h-44.8945zM198.318 302.312h3.54395v-37.4121h-3.54395v37.4121
zM191.517 302.312h3.68652v-37.4121h-3.68652v37.4121zM184.716 302.312h3.68457v-37.4121h-3.68457v37.4121zM177.912 302.312h3.68555v-37.4121h-3.68555v37.4121zM171.109 302.312h3.68457v-37.4121h-3.68457v37.4121zM164.451 302.312h3.54004v-37.4121h-3.54004
v37.4121zM160.71 306.054v-44.8916h44.8945v44.8916h-44.8945zM250.118 250.513h3.54492v-37.4131h-3.54492v37.4131zM243.317 250.513h3.68555v-37.4131h-3.68555v37.4131zM236.515 250.513h3.68457v-37.4131h-3.68457v37.4131zM229.711 250.513h3.68555v-37.4131h-3.68555
v37.4131zM222.911 250.513h3.68555v-37.4131h-3.68555v37.4131zM216.25 250.513h3.54199v-37.4131h-3.54199v37.4131zM212.509 254.255v-44.8926h44.8945v44.8926h-44.8945zM250.118 302.312h3.54492v-37.4121h-3.54492v37.4121zM243.317 302.312h3.68555v-37.4121h-3.68555
v37.4121zM236.515 302.312h3.68457v-37.4121h-3.68457v37.4121zM229.711 302.312h3.68555v-37.4121h-3.68555v37.4121zM222.911 302.312h3.68555v-37.4121h-3.68555v37.4121zM216.25 302.312h3.54199v-37.4121h-3.54199v37.4121zM212.509 306.054v-44.8916h44.8945v44.8916
h-44.8945zM250.118 354.114h3.54492v-37.415h-3.54492v37.415zM243.317 354.114h3.68555v-37.415h-3.68555v37.415zM236.515 354.114h3.68457v-37.415h-3.68457v37.415zM229.711 354.114h3.68555v-37.415h-3.68555v37.415zM222.911 354.114h3.68555v-37.415h-3.68555v37.415
zM216.25 354.114h3.54199v-37.415h-3.54199v37.415zM212.509 357.853v-44.8936h44.8945v44.8936h-44.8945zM301.917 250.513h3.54297v-37.4131h-3.54297v37.4131zM295.116 250.513h3.68262v-37.4131h-3.68262v37.4131zM288.311 250.513h3.68555v-37.4131h-3.68555v37.4131z
M281.51 250.513h3.68555v-37.4131h-3.68555v37.4131zM274.707 250.513h3.68457v-37.4131h-3.68457v37.4131zM268.046 250.513h3.5459v-37.4131h-3.5459v37.4131zM264.308 254.255v-44.8926h44.8936v44.8926h-44.8936zM150.994 136.575
c-6.84082 0 -12.3848 -5.54688 -12.3848 -12.3848c0 -6.83887 5.54395 -12.3828 12.3848 -12.3828c6.83887 0 12.3838 5.54395 12.3838 12.3828c0 6.83789 -5.54492 12.3848 -12.3838 12.3848zM150.994 133.061c1.13281 0 2.21387 -0.212891 3.21094 -0.599609
c-1.08105 -0.625 -1.8125 -1.79688 -1.8125 -3.13574c0 -2 1.62207 -3.61816 3.62109 -3.61816c1.37012 0 2.55957 0.761719 3.17578 1.88379c0.433594 -1.04688 0.675781 -2.19629 0.675781 -3.40234c0 -4.89844 -3.97266 -8.87012 -8.87012 -8.87012
c-4.89844 0 -8.87109 3.97168 -8.87109 8.87012c-0.000976562 4.90137 3.97266 8.87207 8.87012 8.87207zM183.918 47.3252c-30.6719 14.5547 -47.5078 34.3408 -56.875 55.9404c-11.3936 -3.25293 -25.0889 -5.33105 -41.001 -6.22266
c-5.99512 -0.337891 -12.3008 -0.509766 -18.918 -0.509766c-7.62793 0 -15.668 0.224609 -24.1064 0.672852c28.127 -28.1104 62.7305 -49.7529 126.801 -50.1504c4.72949 0.000976562 9.42578 0.09375 14.0996 0.269531z" />
</font>
</defs></svg>
This diff is collapsed.
ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(e,t,n,r){var i=/^\s*/.exec(r)[0];return n.length<1?n.push(this.next):n[0]="mlString",n.length<2?n.push(i.length):n[1]=i.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(e,t,n){var r=n[1];return r>=e.length?(this.next="start",n.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./yaml_highlight_rules").YamlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./folding/coffee").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=["#","//"],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/yaml"}.call(a.prototype),t.Mode=a})
\ No newline at end of file
define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(e,t,n,r){var i=/^\s*/.exec(r)[0];return n.length<1?n.push(this.next):n[0]="mlString",n.length<2?n.push(i.length):n[1]=i.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(e,t,n){var r=n[1];return r>=e.length?(this.next="start",n.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};r.inherits(s,i),t.YamlHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./yaml_highlight_rules").YamlHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./folding/coffee").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=["#","//"],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/yaml"}.call(a.prototype),t.Mode=a});
(function() {
window.require(["ace/mode/yaml"], function(m) {
if (typeof module == "object" && typeof exports == "object" && module) {
module.exports = m;
}
});
})();
\ No newline at end of file
ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-chrome",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-chrome",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)});
(function() {
window.require(["ace/theme/chrome"], function(m) {
if (typeof module == "object" && typeof exports == "object" && module) {
module.exports = m;
}
});
})();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
table.dataTable {
clear: both;
margin-top: 6px !important;
margin-bottom: 6px !important;
max-width: none !important;
border-collapse: separate !important;
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable td.dataTables_empty,
table.dataTable th.dataTables_empty {
text-align: center;
}
table.dataTable.nowrap th,
table.dataTable.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length label {
font-weight: normal;
text-align: left;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
width: 75px;
display: inline-block;
}
div.dataTables_wrapper div.dataTables_filter {
text-align: right;
}
div.dataTables_wrapper div.dataTables_filter label {
font-weight: normal;
white-space: nowrap;
text-align: left;
}
div.dataTables_wrapper div.dataTables_filter input {
margin-left: 0.5em;
display: inline-block;
width: auto;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 0.85em;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_paginate {
margin: 0;
white-space: nowrap;
text-align: right;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
margin: 2px 0;
white-space: nowrap;
justify-content: flex-end;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1em 0;
}
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 30px;
}
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
bottom: 0.9em;
display: block;
opacity: 0.3;
}
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:before {
right: 1em;
content: "\2191";
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
right: 0.5em;
content: "\2193";
}
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:after {
opacity: 1;
}
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
opacity: 0;
}
div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table thead .sorting:after,
div.dataTables_scrollBody table thead .sorting_asc:after,
div.dataTables_scrollBody table thead .sorting_desc:after {
display: none;
}
div.dataTables_scrollBody table tbody tr:first-child th,
div.dataTables_scrollBody table tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot table {
margin-top: 0 !important;
border-top: none;
}
@media screen and (max-width: 767px) {
div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_info,
div.dataTables_wrapper div.dataTables_paginate {
text-align: center;
}
}
table.dataTable.table-condensed > thead > tr > th {
padding-right: 20px;
}
table.dataTable.table-condensed .sorting:after,
table.dataTable.table-condensed .sorting_asc:after,
table.dataTable.table-condensed .sorting_desc:after {
top: 6px;
right: 6px;
}
table.table-bordered.dataTable th,
table.table-bordered.dataTable td {
border-left-width: 0;
}
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
table.table-bordered.dataTable td:last-child,
table.table-bordered.dataTable td:last-child {
border-right-width: 0;
}
table.table-bordered.dataTable tbody th,
table.table-bordered.dataTable tbody td {
border-bottom-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
border-bottom-width: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row {
margin: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
padding-left: 0;