mirror of
https://github.com/optim-enterprises-bv/control-pane.git
synced 2025-10-29 00:52:30 +00:00
6
node/node_modules/nodestalker/.travis.yml
generated
vendored
6
node/node_modules/nodestalker/.travis.yml
generated
vendored
@@ -1,3 +1,3 @@
|
|||||||
language: node_js
|
language: node_js
|
||||||
node_js:
|
node_js:
|
||||||
- "13.0"
|
- "13.0"
|
||||||
|
|||||||
@@ -1,53 +1,53 @@
|
|||||||
const bs=require('nodestalker');
|
const bs=require('nodestalker');
|
||||||
|
|
||||||
var bsWatcher=function(ip,port,tube,callback)
|
var bsWatcher=function(ip,port,tube,callback)
|
||||||
{
|
{
|
||||||
this.ip=ip;
|
this.ip=ip;
|
||||||
this.port=port;
|
this.port=port;
|
||||||
this.tube=tube;
|
this.tube=tube;
|
||||||
this.callback=callback;
|
this.callback=callback;
|
||||||
this.client=null;
|
this.client=null;
|
||||||
this.connectionError=false;
|
this.connectionError=false;
|
||||||
|
|
||||||
this.connect();
|
this.connect();
|
||||||
}
|
}
|
||||||
bsWatcher.prototype.connect=function()
|
bsWatcher.prototype.connect=function()
|
||||||
{
|
{
|
||||||
this.client=bs.Client('127.0.0.1:11300');
|
this.client=bs.Client('127.0.0.1:11300');
|
||||||
this.client.addListener('connect', function() {
|
this.client.addListener('connect', function() {
|
||||||
this.connectionError=false;
|
this.connectionError=false;
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
this.client.addListener('end', function(err) {
|
this.client.addListener('end', function(err) {
|
||||||
this.connectionError=true;
|
this.connectionError=true;
|
||||||
setTimeout(this.connect.bind(this),3000);
|
setTimeout(this.connect.bind(this),3000);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
this.client.addListener('close', function(err) {
|
this.client.addListener('close', function(err) {
|
||||||
console.log('connection closed');
|
console.log('connection closed');
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
this.watch();
|
this.watch();
|
||||||
}
|
}
|
||||||
bsWatcher.prototype.watch=function()
|
bsWatcher.prototype.watch=function()
|
||||||
{
|
{
|
||||||
if(!this.connectionError)
|
if(!this.connectionError)
|
||||||
{
|
{
|
||||||
this.client.watch(this.tube).onSuccess(this.reserve.bind(this));
|
this.client.watch(this.tube).onSuccess(this.reserve.bind(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bsWatcher.prototype.reserve=function()
|
bsWatcher.prototype.reserve=function()
|
||||||
{
|
{
|
||||||
if(!this.connectionError)
|
if(!this.connectionError)
|
||||||
{
|
{
|
||||||
this.client.reserve().onSuccess(this.getJob.bind(this));
|
this.client.reserve().onSuccess(this.getJob.bind(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bsWatcher.prototype.getJob=function(job)
|
bsWatcher.prototype.getJob=function(job)
|
||||||
{
|
{
|
||||||
var arr=JSON.parse(job.data);
|
var arr=JSON.parse(job.data);
|
||||||
if(!this.connectionError)
|
if(!this.connectionError)
|
||||||
{
|
{
|
||||||
this.client.deleteJob(job.id).onSuccess(this.reserve.bind(this));
|
this.client.deleteJob(job.id).onSuccess(this.reserve.bind(this));
|
||||||
this.callback(arr,this.tube);
|
this.callback(arr,this.tube);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports=bsWatcher;
|
module.exports=bsWatcher;
|
||||||
696
node/wsClonos.js
696
node/wsClonos.js
@@ -1,349 +1,349 @@
|
|||||||
// IDE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> node.js <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
// IDE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> node.js <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// https://github.com/microsoft/vscode
|
// https://github.com/microsoft/vscode
|
||||||
|
|
||||||
const vars=require('./passwords.js');
|
const vars=require('./passwords.js');
|
||||||
//global.vars=vars;
|
//global.vars=vars;
|
||||||
|
|
||||||
const WebSocket = require('ws');
|
const WebSocket = require('ws');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const bsWatcher = require('./wsClonos.bsWatcher.js');
|
const bsWatcher = require('./wsClonos.bsWatcher.js');
|
||||||
|
|
||||||
const wss = new WebSocket.Server({
|
const wss = new WebSocket.Server({
|
||||||
perMessageDeflate:false,
|
perMessageDeflate:false,
|
||||||
port:8024
|
port:8024
|
||||||
});
|
});
|
||||||
|
|
||||||
const clients=[];
|
const clients=[];
|
||||||
const graphs_clients=[];
|
const graphs_clients=[];
|
||||||
const graphs_clients_bhyve={};
|
const graphs_clients_bhyve={};
|
||||||
const graphs_clients_jail={};
|
const graphs_clients_jail={};
|
||||||
const graphs_clients_system={};
|
const graphs_clients_system={};
|
||||||
const graphs_history={};
|
const graphs_history={};
|
||||||
|
|
||||||
const tubes=['racct-bhyve','racct-jail','racct-system'];
|
const tubes=['racct-bhyve','racct-jail','racct-system'];
|
||||||
for(n in tubes)
|
for(n in tubes)
|
||||||
{
|
{
|
||||||
graphs_history[tubes[n]]=[];
|
graphs_history[tubes[n]]=[];
|
||||||
}
|
}
|
||||||
|
|
||||||
const main_graphs_keys=['name','time','pcpu','pmem'];
|
const main_graphs_keys=['name','time','pcpu','pmem'];
|
||||||
|
|
||||||
global.wss=wss;
|
global.wss=wss;
|
||||||
wss.on('connection', function connection(ws, req) {
|
wss.on('connection', function connection(ws, req) {
|
||||||
global.ws=ws;
|
global.ws=ws;
|
||||||
|
|
||||||
ws.on('message', function incoming(message) {
|
ws.on('message', function incoming(message) {
|
||||||
console.log('WSserver received: %s', message);
|
console.log('WSserver received: %s', message);
|
||||||
});
|
});
|
||||||
|
|
||||||
ws.on('close',function wclose(){
|
ws.on('close',function wclose(){
|
||||||
//console.log('ClonOS-WS close server connection!');
|
//console.log('ClonOS-WS close server connection!');
|
||||||
var client=getClient(ws);
|
var client=getClient(ws);
|
||||||
if(client!==false)
|
if(client!==false)
|
||||||
{
|
{
|
||||||
var name=client.name;
|
var name=client.name;
|
||||||
console.log('delete client: '+name);
|
console.log('delete client: '+name);
|
||||||
delete clients[name];
|
delete clients[name];
|
||||||
if(typeof graphs_clients_bhyve[name]!='undefined') delete graphs_clients_bhyve[name];
|
if(typeof graphs_clients_bhyve[name]!='undefined') delete graphs_clients_bhyve[name];
|
||||||
if(typeof graphs_clients_jail[name]!='undefined') delete graphs_clients_jail[name];
|
if(typeof graphs_clients_jail[name]!='undefined') delete graphs_clients_jail[name];
|
||||||
if(typeof graphs_clients_system[name]!='undefined') delete graphs_clients_system[name];
|
if(typeof graphs_clients_system[name]!='undefined') delete graphs_clients_system[name];
|
||||||
|
|
||||||
//console.log('clients count: '+getClientsCount());
|
//console.log('clients count: '+getClientsCount());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ws.on('error',function werror(){
|
ws.on('error',function werror(){
|
||||||
console.log('ClonOS-WS <20> server connection error!');
|
console.log('ClonOS-WS <20> server connection error!');
|
||||||
});
|
});
|
||||||
|
|
||||||
//ws.send(JSON.stringify(req));
|
//ws.send(JSON.stringify(req));
|
||||||
var url = req.url;
|
var url = req.url;
|
||||||
//console.log(url);
|
//console.log(url);
|
||||||
var pres=url.split('/');
|
var pres=url.split('/');
|
||||||
|
|
||||||
//var path=url.substring(0,7);
|
//var path=url.substring(0,7);
|
||||||
//if(path=='/graph/')
|
//if(path=='/graph/')
|
||||||
if(pres[1]=='graph')
|
if(pres[1]=='graph')
|
||||||
{
|
{
|
||||||
graphs_clients.push(pres[1]);
|
graphs_clients.push(pres[1]);
|
||||||
var tube={'bhyvevms':'racct-bhyve','jailscontainers':'racct-jail','overview':'racct-system'}[pres[2]];
|
var tube={'bhyvevms':'racct-bhyve','jailscontainers':'racct-jail','overview':'racct-system'}[pres[2]];
|
||||||
var client=pres[3];
|
var client=pres[3];
|
||||||
clients[client]={};
|
clients[client]={};
|
||||||
clients[client].name=client;
|
clients[client].name=client;
|
||||||
clients[client].ws=ws;
|
clients[client].ws=ws;
|
||||||
clients[client].first_start=true;
|
clients[client].first_start=true;
|
||||||
clients[client].tube=tube;
|
clients[client].tube=tube;
|
||||||
switch(tube)
|
switch(tube)
|
||||||
{
|
{
|
||||||
case 'racct-bhyve':
|
case 'racct-bhyve':
|
||||||
graphs_clients_bhyve[client]=ws;
|
graphs_clients_bhyve[client]=ws;
|
||||||
break;
|
break;
|
||||||
case 'racct-jail':
|
case 'racct-jail':
|
||||||
graphs_clients_jail[client]=ws;
|
graphs_clients_jail[client]=ws;
|
||||||
break;
|
break;
|
||||||
case 'racct-system':
|
case 'racct-system':
|
||||||
graphs_clients_system[client]=ws;
|
graphs_clients_system[client]=ws;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
console.log('add client: '+client);
|
console.log('add client: '+client);
|
||||||
var a={};
|
var a={};
|
||||||
a.__all=graphs_history[tube];
|
a.__all=graphs_history[tube];
|
||||||
ws.send(JSON.stringify(a));
|
ws.send(JSON.stringify(a));
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
getMetrics();
|
getMetrics();
|
||||||
|
|
||||||
function getClient(ws)
|
function getClient(ws)
|
||||||
{
|
{
|
||||||
for(n in clients)
|
for(n in clients)
|
||||||
{
|
{
|
||||||
if(clients[n].ws==ws) return clients[n];
|
if(clients[n].ws==ws) return clients[n];
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendJailsMetrics(data,tube)
|
function sendJailsMetrics(data,tube)
|
||||||
{
|
{
|
||||||
var tube=data.tube;
|
var tube=data.tube;
|
||||||
var data=data.data;
|
var data=data.data;
|
||||||
graphs_history[tube].unshift(data);
|
graphs_history[tube].unshift(data);
|
||||||
graphs_history[tube]=graphs_history[tube].splice(0,25);
|
graphs_history[tube]=graphs_history[tube].splice(0,25);
|
||||||
broadcast_graphs_jail(tube);
|
broadcast_graphs_jail(tube);
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendBhyvesMetrics(data,tube)
|
function sendBhyvesMetrics(data,tube)
|
||||||
{
|
{
|
||||||
var tube=data.tube;
|
var tube=data.tube;
|
||||||
var data=data.data;
|
var data=data.data;
|
||||||
graphs_history[tube].unshift(data);
|
graphs_history[tube].unshift(data);
|
||||||
graphs_history[tube]=graphs_history[tube].splice(0,25);
|
graphs_history[tube]=graphs_history[tube].splice(0,25);
|
||||||
broadcast_graphs_bhyve(tube);
|
broadcast_graphs_bhyve(tube);
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendSummaryMetrics(data,tube)
|
function sendSummaryMetrics(data,tube)
|
||||||
{
|
{
|
||||||
var tube=data.tube;
|
var tube=data.tube;
|
||||||
var data=data.data;
|
var data=data.data;
|
||||||
graphs_history[tube].unshift(data);
|
graphs_history[tube].unshift(data);
|
||||||
graphs_history[tube]=graphs_history[tube].splice(0,90);
|
graphs_history[tube]=graphs_history[tube].splice(0,90);
|
||||||
broadcast_graphs_system(tube);
|
broadcast_graphs_system(tube);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getMetrics()
|
function getMetrics()
|
||||||
{
|
{
|
||||||
new bsWatcher(vars.bs_ip,vars.bs_port,'racct-jail',sendJailsMetrics);
|
new bsWatcher(vars.bs_ip,vars.bs_port,'racct-jail',sendJailsMetrics);
|
||||||
new bsWatcher(vars.bs_ip,vars.bs_port,'racct-bhyve',sendBhyvesMetrics);
|
new bsWatcher(vars.bs_ip,vars.bs_port,'racct-bhyve',sendBhyvesMetrics);
|
||||||
new bsWatcher(vars.bs_ip,vars.bs_port,'racct-system',sendSummaryMetrics);
|
new bsWatcher(vars.bs_ip,vars.bs_port,'racct-system',sendSummaryMetrics);
|
||||||
}
|
}
|
||||||
|
|
||||||
function broadcast_graphs_bhyve(tube)
|
function broadcast_graphs_bhyve(tube)
|
||||||
{
|
{
|
||||||
var data=graphs_history[tube][0];
|
var data=graphs_history[tube][0];
|
||||||
|
|
||||||
for(c in graphs_clients_bhyve)
|
for(c in graphs_clients_bhyve)
|
||||||
{
|
{
|
||||||
var ws=graphs_clients_bhyve[c];
|
var ws=graphs_clients_bhyve[c];
|
||||||
ws.send(JSON.stringify(data));
|
ws.send(JSON.stringify(data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function broadcast_graphs_jail(tube)
|
function broadcast_graphs_jail(tube)
|
||||||
{
|
{
|
||||||
var data=graphs_history[tube][0];
|
var data=graphs_history[tube][0];
|
||||||
|
|
||||||
for(c in graphs_clients_jail)
|
for(c in graphs_clients_jail)
|
||||||
{
|
{
|
||||||
var ws=graphs_clients_jail[c];
|
var ws=graphs_clients_jail[c];
|
||||||
ws.send(JSON.stringify(data));
|
ws.send(JSON.stringify(data));
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
for(c in clients)
|
for(c in clients)
|
||||||
{
|
{
|
||||||
var cobj=clients[c];
|
var cobj=clients[c];
|
||||||
var ctube=cobj.tube;
|
var ctube=cobj.tube;
|
||||||
if(graphs_history[tube].length && tube==ctube)
|
if(graphs_history[tube].length && tube==ctube)
|
||||||
{
|
{
|
||||||
var data=graphs_history[tube][0];
|
var data=graphs_history[tube][0];
|
||||||
|
|
||||||
for(n in data)
|
for(n in data)
|
||||||
{
|
{
|
||||||
for(k in data[n])
|
for(k in data[n])
|
||||||
{
|
{
|
||||||
if(main_graphs_keys.indexOf(k)==-1)
|
if(main_graphs_keys.indexOf(k)==-1)
|
||||||
delete data[n][k];
|
delete data[n][k];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cobj.ws.send(JSON.stringify(data));
|
cobj.ws.send(JSON.stringify(data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
function broadcast_graphs_system(tube)
|
function broadcast_graphs_system(tube)
|
||||||
{
|
{
|
||||||
var data=graphs_history[tube][0];
|
var data=graphs_history[tube][0];
|
||||||
|
|
||||||
for(c in graphs_clients_system)
|
for(c in graphs_clients_system)
|
||||||
{
|
{
|
||||||
var ws=graphs_clients_system[c];
|
var ws=graphs_clients_system[c];
|
||||||
ws.send(JSON.stringify(data));
|
ws.send(JSON.stringify(data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getClientsCount()
|
function getClientsCount()
|
||||||
{
|
{
|
||||||
var count=0;
|
var count=0;
|
||||||
for(n in clients)
|
for(n in clients)
|
||||||
{
|
{
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
function tick(path)
|
function tick(path)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
var tube=clients[path].tube;
|
var tube=clients[path].tube;
|
||||||
//console.log(tube);
|
//console.log(tube);
|
||||||
try{
|
try{
|
||||||
bs_client.watch(tube).onSuccess(function(data){
|
bs_client.watch(tube).onSuccess(function(data){
|
||||||
bs_client.reserve().onSuccess(function(job){
|
bs_client.reserve().onSuccess(function(job){
|
||||||
try{
|
try{
|
||||||
var arr=JSON.parse(job.data);
|
var arr=JSON.parse(job.data);
|
||||||
bs_client.deleteJob(job.id);
|
bs_client.deleteJob(job.id);
|
||||||
var buf=JSON.stringify(arr);
|
var buf=JSON.stringify(arr);
|
||||||
|
|
||||||
if(clients[path]!=null)
|
if(clients[path]!=null)
|
||||||
{
|
{
|
||||||
var client=clients[path]['ws'];
|
var client=clients[path]['ws'];
|
||||||
if(client.readyState===WebSocket.OPEN)
|
if(client.readyState===WebSocket.OPEN)
|
||||||
{
|
{
|
||||||
client.send(buf);
|
client.send(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(e){console.log(e.message);}
|
}catch(e){console.log(e.message);}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}catch(e){
|
}catch(e){
|
||||||
console.log(e.message);
|
console.log(e.message);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
return;
|
return;
|
||||||
var file='/tmp/cbsd_stats.json';
|
var file='/tmp/cbsd_stats.json';
|
||||||
if(fs.existsSync(file))
|
if(fs.existsSync(file))
|
||||||
{
|
{
|
||||||
var buf=fs.readFileSync(file,'utf8');
|
var buf=fs.readFileSync(file,'utf8');
|
||||||
|
|
||||||
if(clients[path]['first_start'])
|
if(clients[path]['first_start'])
|
||||||
{
|
{
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
|
||||||
var arr=JSON.parse(buf);
|
var arr=JSON.parse(buf);
|
||||||
var n,nl;
|
var n,nl;
|
||||||
for(n=0,nl=arr.length;n<nl;n++)
|
for(n=0,nl=arr.length;n<nl;n++)
|
||||||
{
|
{
|
||||||
var unit=arr[n];
|
var unit=arr[n];
|
||||||
this.path=path;
|
this.path=path;
|
||||||
this.name=unit.name;
|
this.name=unit.name;
|
||||||
|
|
||||||
var db_name=vars.cbsd_workdir+'/jails-system/'+name+'/racct.sqlite';
|
var db_name=vars.cbsd_workdir+'/jails-system/'+name+'/racct.sqlite';
|
||||||
let db = new sqlite3.Database(db_name);
|
let db = new sqlite3.Database(db_name);
|
||||||
//let sql = "SELECT '"+this.name+"' as name,idx,memoryuse,pcpu FROM ( SELECT idx, memoryuse, pcpu FROM racct ORDER BY idx DESC LIMIT 50 ) ORDER BY idx ASC;";
|
//let sql = "SELECT '"+this.name+"' as name,idx,memoryuse,pcpu FROM ( SELECT idx, memoryuse, pcpu FROM racct ORDER BY idx DESC LIMIT 50 ) ORDER BY idx ASC;";
|
||||||
let sql = "SELECT '"+this.name+"' as name,idx,memoryuse,pcpu,pmem FROM racct where idx%5=0 ORDER BY idx DESC LIMIT 25;";
|
let sql = "SELECT '"+this.name+"' as name,idx,memoryuse,pcpu,pmem FROM racct where idx%5=0 ORDER BY idx DESC LIMIT 25;";
|
||||||
|
|
||||||
db.all(sql, [], (err, rows) => {
|
db.all(sql, [], (err, rows) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err.message);
|
console.log(err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var a={};
|
var a={};
|
||||||
a.__all={};
|
a.__all={};
|
||||||
|
|
||||||
for(rn in rows)
|
for(rn in rows)
|
||||||
{
|
{
|
||||||
var r=rows[rn];
|
var r=rows[rn];
|
||||||
var name=r.name;
|
var name=r.name;
|
||||||
delete r.name;
|
delete r.name;
|
||||||
if(typeof a.__all[name]=='undefined') a.__all[name]=[];
|
if(typeof a.__all[name]=='undefined') a.__all[name]=[];
|
||||||
a.__all[name].push(r);
|
a.__all[name].push(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
clients[this.path]['ws'].send(JSON.stringify(a));
|
clients[this.path]['ws'].send(JSON.stringify(a));
|
||||||
clients[this.path]['first_start']=false;
|
clients[this.path]['first_start']=false;
|
||||||
});
|
});
|
||||||
db.close();
|
db.close();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(clients[path]!=null)
|
if(clients[path]!=null)
|
||||||
{
|
{
|
||||||
var client=clients[path]['ws'];
|
var client=clients[path]['ws'];
|
||||||
if(client.readyState===WebSocket.OPEN)
|
if(client.readyState===WebSocket.OPEN)
|
||||||
{
|
{
|
||||||
client.send(buf);
|
client.send(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clients[path]['first_start']=false;
|
clients[path]['first_start']=false;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
if(clients[path]!=null)
|
if(clients[path]!=null)
|
||||||
{
|
{
|
||||||
//clients[path].send(JSON.stringify(wss.clients));
|
//clients[path].send(JSON.stringify(wss.clients));
|
||||||
var client=clients[path]['ws'];
|
var client=clients[path]['ws'];
|
||||||
if(client.readyState===WebSocket.OPEN)
|
if(client.readyState===WebSocket.OPEN)
|
||||||
{
|
{
|
||||||
client.send(Math.floor(Math.random() * 100) + 1);
|
client.send(Math.floor(Math.random() * 100) + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
var redis = require("redis")
|
var redis = require("redis")
|
||||||
,subscriber = redis.createClient({'host':'127.0.0.1'});
|
,subscriber = redis.createClient({'host':'127.0.0.1'});
|
||||||
// ,publisher = redis.createClient();
|
// ,publisher = redis.createClient();
|
||||||
|
|
||||||
subscriber.on("message", function(channel, message) {
|
subscriber.on("message", function(channel, message) {
|
||||||
console.log("Message '" + message + "' on channel '" + channel + "' arrived!")
|
console.log("Message '" + message + "' on channel '" + channel + "' arrived!")
|
||||||
broadcast(wss,message,channel);
|
broadcast(wss,message,channel);
|
||||||
});
|
});
|
||||||
|
|
||||||
global.subscriber=subscriber;
|
global.subscriber=subscriber;
|
||||||
global.wss=wss;
|
global.wss=wss;
|
||||||
wss.on('connection', function connection(ws) {
|
wss.on('connection', function connection(ws) {
|
||||||
global.ws=ws;
|
global.ws=ws;
|
||||||
|
|
||||||
ws.on('message', function incoming(message) {
|
ws.on('message', function incoming(message) {
|
||||||
console.log('WSserver received: %s', message);
|
console.log('WSserver received: %s', message);
|
||||||
broadcast(wss,message,path);
|
broadcast(wss,message,path);
|
||||||
});
|
});
|
||||||
|
|
||||||
ws.on('close',function wclose(){
|
ws.on('close',function wclose(){
|
||||||
console.log('xdoc close server connection!');
|
console.log('xdoc close server connection!');
|
||||||
});
|
});
|
||||||
|
|
||||||
ws.on('error',function werror(){
|
ws.on('error',function werror(){
|
||||||
console.log('xdoc <20> server connection error!');
|
console.log('xdoc <20> server connection error!');
|
||||||
});
|
});
|
||||||
|
|
||||||
var path = ws.upgradeReq.url;
|
var path = ws.upgradeReq.url;
|
||||||
|
|
||||||
subscriber.subscribe(path);
|
subscriber.subscribe(path);
|
||||||
});
|
});
|
||||||
|
|
||||||
function broadcast(server,msg,path) {
|
function broadcast(server,msg,path) {
|
||||||
server.clients.forEach(function (conn){
|
server.clients.forEach(function (conn){
|
||||||
if(conn.upgradeReq.url==path)
|
if(conn.upgradeReq.url==path)
|
||||||
conn.send(msg);
|
conn.send(msg);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
5902
php/clonos.php
5902
php/clonos.php
File diff suppressed because it is too large
Load Diff
628
php/config.php
628
php/config.php
@@ -1,192 +1,192 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once("cbsd.php");
|
require_once("cbsd.php");
|
||||||
|
|
||||||
class Config
|
class Config
|
||||||
{
|
{
|
||||||
private $_workdir='';
|
private $_workdir='';
|
||||||
|
|
||||||
/* Список языков, используемых в проекте */
|
/* Список языков, используемых в проекте */
|
||||||
public static $languages=array(
|
public static $languages=array(
|
||||||
'en'=>'English',
|
'en'=>'English',
|
||||||
'ru'=>'Russian',
|
'ru'=>'Russian',
|
||||||
'es'=>'Spanish',
|
'es'=>'Spanish',
|
||||||
);
|
);
|
||||||
|
|
||||||
public $os_types_names=array(
|
public $os_types_names=array(
|
||||||
'netbsd'=>'NetBSD',
|
'netbsd'=>'NetBSD',
|
||||||
'dflybsd'=>'DragonflyBSD',
|
'dflybsd'=>'DragonflyBSD',
|
||||||
'linux'=>'Linux',
|
'linux'=>'Linux',
|
||||||
'other'=>'Other',
|
'other'=>'Other',
|
||||||
'freebsd'=>'FreeBSD',
|
'freebsd'=>'FreeBSD',
|
||||||
'openbsd'=>'OpenBSD',
|
'openbsd'=>'OpenBSD',
|
||||||
'windows'=>'Windows',
|
'windows'=>'Windows',
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $other_titles=array(
|
public static $other_titles=array(
|
||||||
'settings'=>'CBSD Settings',
|
'settings'=>'CBSD Settings',
|
||||||
'users'=>'CBSD Users',
|
'users'=>'CBSD Users',
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Меню проекта */
|
/* Меню проекта */
|
||||||
/* Так же можно использовать подменю (в menu.php есть пример) */
|
/* Так же можно использовать подменю (в menu.php есть пример) */
|
||||||
public static $menu=array(
|
public static $menu=array(
|
||||||
'overview'=>array(
|
'overview'=>array(
|
||||||
'name'=>'Overview',
|
'name'=>'Overview',
|
||||||
'title'=>'Summary Overview', // заголовки лучше делать более полными, чем просто повторение пункта меню
|
'title'=>'Summary Overview', // заголовки лучше делать более полными, чем просто повторение пункта меню
|
||||||
'icon'=>'icon-chart-bar',
|
'icon'=>'icon-chart-bar',
|
||||||
),
|
),
|
||||||
'jailscontainers'=>array(
|
'jailscontainers'=>array(
|
||||||
'name'=>'Jails containers',
|
'name'=>'Jails containers',
|
||||||
'title'=>'Jails containers control panel',
|
'title'=>'Jails containers control panel',
|
||||||
'icon'=>'icon-server',
|
'icon'=>'icon-server',
|
||||||
),
|
),
|
||||||
|
|
||||||
'instance_jail'=>array(
|
'instance_jail'=>array(
|
||||||
'name'=>'Template for jail',
|
'name'=>'Template for jail',
|
||||||
'title'=>'Helpers and wizard for containers',
|
'title'=>'Helpers and wizard for containers',
|
||||||
'icon'=>'icon-cubes',
|
'icon'=>'icon-cubes',
|
||||||
),
|
),
|
||||||
|
|
||||||
'bhyvevms'=>array(
|
'bhyvevms'=>array(
|
||||||
'name'=>'Bhyve VMs',
|
'name'=>'Bhyve VMs',
|
||||||
'title'=>'Virtual machine control panel',
|
'title'=>'Virtual machine control panel',
|
||||||
'icon'=>'icon-th-list',
|
'icon'=>'icon-th-list',
|
||||||
),
|
),
|
||||||
/*
|
/*
|
||||||
'nodes'=>array(
|
'nodes'=>array(
|
||||||
'name'=>'Nodes',
|
'name'=>'Nodes',
|
||||||
'title'=>'Nodes control panel',
|
'title'=>'Nodes control panel',
|
||||||
'icon'=>'icon-buffer',
|
'icon'=>'icon-buffer',
|
||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
'vm_packages'=>array(
|
'vm_packages'=>array(
|
||||||
'name'=>'VM Packages',
|
'name'=>'VM Packages',
|
||||||
'title'=>'Manage VM Packages group',
|
'title'=>'Manage VM Packages group',
|
||||||
'icon'=>'icon-cubes',
|
'icon'=>'icon-cubes',
|
||||||
),
|
),
|
||||||
|
|
||||||
'k8s'=>array(
|
'k8s'=>array(
|
||||||
'name'=>'K8S clusters',
|
'name'=>'K8S clusters',
|
||||||
'title'=>'Manage K8S clusters',
|
'title'=>'Manage K8S clusters',
|
||||||
'icon'=>'icon-cubes',
|
'icon'=>'icon-cubes',
|
||||||
),
|
),
|
||||||
|
|
||||||
'vpnet'=>array(
|
'vpnet'=>array(
|
||||||
'name'=>'Virtual Private Network',
|
'name'=>'Virtual Private Network',
|
||||||
'title'=>'Manage for virtual private networks',
|
'title'=>'Manage for virtual private networks',
|
||||||
'icon'=>'icon-plug',
|
'icon'=>'icon-plug',
|
||||||
),
|
),
|
||||||
|
|
||||||
'authkey'=>array(
|
'authkey'=>array(
|
||||||
'name'=>'Authkeys',
|
'name'=>'Authkeys',
|
||||||
'title'=>'Manage for SSH auth key',
|
'title'=>'Manage for SSH auth key',
|
||||||
'icon'=>'icon-key',
|
'icon'=>'icon-key',
|
||||||
),
|
),
|
||||||
|
|
||||||
'media'=>array(
|
'media'=>array(
|
||||||
'name'=>'Storage Media',
|
'name'=>'Storage Media',
|
||||||
'title'=>'Virtual Media Manager',
|
'title'=>'Virtual Media Manager',
|
||||||
'icon'=>'icon-inbox',
|
'icon'=>'icon-inbox',
|
||||||
),
|
),
|
||||||
|
|
||||||
'imported'=>array(
|
'imported'=>array(
|
||||||
'name'=>'Imported images',
|
'name'=>'Imported images',
|
||||||
'title'=>'Imported images',
|
'title'=>'Imported images',
|
||||||
'icon'=>'icon-upload',
|
'icon'=>'icon-upload',
|
||||||
),
|
),
|
||||||
/*
|
/*
|
||||||
'repo'=>array(
|
'repo'=>array(
|
||||||
'name'=>'Repository',
|
'name'=>'Repository',
|
||||||
'title'=>'Remote repository',
|
'title'=>'Remote repository',
|
||||||
'icon'=>'icon-globe',
|
'icon'=>'icon-globe',
|
||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
'bases'=>array(
|
'bases'=>array(
|
||||||
'name'=>'FreeBSD Bases',
|
'name'=>'FreeBSD Bases',
|
||||||
'title'=>'FreeBSD bases manager',
|
'title'=>'FreeBSD bases manager',
|
||||||
'icon'=>'icon-database',
|
'icon'=>'icon-database',
|
||||||
),
|
),
|
||||||
|
|
||||||
'sources'=>array(
|
'sources'=>array(
|
||||||
'name'=>'FreeBSD Sources',
|
'name'=>'FreeBSD Sources',
|
||||||
'title'=>'FreeBSD sources manager',
|
'title'=>'FreeBSD sources manager',
|
||||||
'icon'=>'icon-edit',
|
'icon'=>'icon-edit',
|
||||||
),
|
),
|
||||||
/*
|
/*
|
||||||
'jail_marketplace'=>array(
|
'jail_marketplace'=>array(
|
||||||
'name'=>'Jail Marketplace',
|
'name'=>'Jail Marketplace',
|
||||||
'title'=>'Public remote containers marketplace',
|
'title'=>'Public remote containers marketplace',
|
||||||
'icon'=>'icon-flag',
|
'icon'=>'icon-flag',
|
||||||
),
|
),
|
||||||
*//*
|
*//*
|
||||||
'bhyve_marketplace'=>array(
|
'bhyve_marketplace'=>array(
|
||||||
'name'=>'Bhyve Marketplace',
|
'name'=>'Bhyve Marketplace',
|
||||||
'title'=>'Public remote virtual machine marketplace',
|
'title'=>'Public remote virtual machine marketplace',
|
||||||
'icon'=>'icon-flag-checkered',
|
'icon'=>'icon-flag-checkered',
|
||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
'tasklog'=>array(
|
'tasklog'=>array(
|
||||||
'name'=>'TaskLog',
|
'name'=>'TaskLog',
|
||||||
'title'=>'System task log',
|
'title'=>'System task log',
|
||||||
'icon'=>'icon-list-alt',
|
'icon'=>'icon-list-alt',
|
||||||
),
|
),
|
||||||
|
|
||||||
'sqlite'=>array(
|
'sqlite'=>array(
|
||||||
'name'=>'SQLite admin',
|
'name'=>'SQLite admin',
|
||||||
'title'=>'SQLite admin interface',
|
'title'=>'SQLite admin interface',
|
||||||
'icon'=>'icon-wpforms',
|
'icon'=>'icon-wpforms',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
public $os_types=array(
|
public $os_types=array(
|
||||||
array(
|
array(
|
||||||
'os'=>'DragonflyBSD',
|
'os'=>'DragonflyBSD',
|
||||||
'items'=>array(
|
'items'=>array(
|
||||||
array('name'=>'DragonflyBSD 4','type'=>'dflybsd',
|
array('name'=>'DragonflyBSD 4','type'=>'dflybsd',
|
||||||
'profile'=>'x86-4','obtain'=>false),
|
'profile'=>'x86-4','obtain'=>false),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'os'=>'FreeBSD',
|
'os'=>'FreeBSD',
|
||||||
'items'=>array(
|
'items'=>array(
|
||||||
array('name'=>'FreeBSD 11.0-RELEASE','type'=>'freebsd',
|
array('name'=>'FreeBSD 11.0-RELEASE','type'=>'freebsd',
|
||||||
'profile'=>'FreeBSD-x64-11.0','obtain'=>true),
|
'profile'=>'FreeBSD-x64-11.0','obtain'=>true),
|
||||||
array('name'=>'FreeBSD pfSense 2.4.0-DEVELOP','type'=>'freebsd',
|
array('name'=>'FreeBSD pfSense 2.4.0-DEVELOP','type'=>'freebsd',
|
||||||
'profile'=>'pfSense-2-LATEST-amd64','obtain'=>false),
|
'profile'=>'pfSense-2-LATEST-amd64','obtain'=>false),
|
||||||
array('name'=>'FreeBSD OPNsense-16.7','type'=>'freebsd',
|
array('name'=>'FreeBSD OPNsense-16.7','type'=>'freebsd',
|
||||||
'profile'=>'OPNsense-16-RELEASE-amd64','obtain'=>false),
|
'profile'=>'OPNsense-16-RELEASE-amd64','obtain'=>false),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'os'=>'Linux',
|
'os'=>'Linux',
|
||||||
'items'=>array(
|
'items'=>array(
|
||||||
array('name'=>'Linux Arch 2016','type'=>'linux',
|
array('name'=>'Linux Arch 2016','type'=>'linux',
|
||||||
'profile'=>'ArchLinux-x86-2016','obtain'=>false),
|
'profile'=>'ArchLinux-x86-2016','obtain'=>false),
|
||||||
array('name'=>'Linux CentOS 7','type'=>'linux',
|
array('name'=>'Linux CentOS 7','type'=>'linux',
|
||||||
'profile'=>'CentOS-7-x86_64','obtain'=>false),
|
'profile'=>'CentOS-7-x86_64','obtain'=>false),
|
||||||
array('name'=>'Linux Debian 8','type'=>'linux',
|
array('name'=>'Linux Debian 8','type'=>'linux',
|
||||||
'profile'=>'Debian-x86-8','obtain'=>false),
|
'profile'=>'Debian-x86-8','obtain'=>false),
|
||||||
array('name'=>'Linux Open Suse 42','type'=>'linux',
|
array('name'=>'Linux Open Suse 42','type'=>'linux',
|
||||||
'profile'=>'opensuse-x86-42','obtain'=>false),
|
'profile'=>'opensuse-x86-42','obtain'=>false),
|
||||||
array('name'=>'Linux Ubuntu 16.04','type'=>'linux',
|
array('name'=>'Linux Ubuntu 16.04','type'=>'linux',
|
||||||
'profile'=>'ubuntuserver-x86-16.04','obtain'=>true),
|
'profile'=>'ubuntuserver-x86-16.04','obtain'=>true),
|
||||||
array('name'=>'Linux Ubuntu 17.04','type'=>'linux',
|
array('name'=>'Linux Ubuntu 17.04','type'=>'linux',
|
||||||
'profile'=>'ubuntuserver-x86-17.04','obtain'=>true),
|
'profile'=>'ubuntuserver-x86-17.04','obtain'=>true),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'os'=>'Windows',
|
'os'=>'Windows',
|
||||||
'items'=>array(
|
'items'=>array(
|
||||||
array('name'=>'Windows 10','type'=>'windows',
|
array('name'=>'Windows 10','type'=>'windows',
|
||||||
'profile'=>'10_86x_64x','obtain'=>false),
|
'profile'=>'10_86x_64x','obtain'=>false),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
public $os_types_obtain=array();
|
public $os_types_obtain=array();
|
||||||
public $os_interfaces=array();
|
public $os_interfaces=array();
|
||||||
|
|
||||||
function __construct(){
|
function __construct(){
|
||||||
|
|
||||||
$this->_workdir=getenv('WORKDIR');
|
$this->_workdir=getenv('WORKDIR');
|
||||||
@@ -231,14 +231,14 @@ class Config
|
|||||||
// vm profile (ISO)
|
// vm profile (ISO)
|
||||||
if ($vm_profile_list_file_size > 0 ) {
|
if ($vm_profile_list_file_size > 0 ) {
|
||||||
Utils::clonos_syslog("config.php: (cached) found vm_profile cache file/size: $vm_profile_list_file exist/$vm_profile_list_file_size");
|
Utils::clonos_syslog("config.php: (cached) found vm_profile cache file/size: $vm_profile_list_file exist/$vm_profile_list_file_size");
|
||||||
$res['message']=file_get_contents($vm_profile_list_file);
|
$res['message']=file_get_contents($vm_profile_list_file);
|
||||||
//echo $res['message'];exit;
|
//echo $res['message'];exit;
|
||||||
$this->os_types=$this->create_bhyve_profiles($res);
|
$this->os_types=$this->create_bhyve_profiles($res);
|
||||||
} else {
|
} else {
|
||||||
Utils::clonos_syslog("config.php: vm_profile cache file not found: $vm_profile_list_file");
|
Utils::clonos_syslog("config.php: vm_profile cache file not found: $vm_profile_list_file");
|
||||||
$res=CBSD::run('get_bhyve_profiles src=vm clonos=1', array());
|
$res=CBSD::run('get_bhyve_profiles src=vm clonos=1', array());
|
||||||
if($res['retval']==0){
|
if($res['retval']==0){
|
||||||
$this->os_types=$this->create_bhyve_profiles($res);
|
$this->os_types=$this->create_bhyve_profiles($res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,129 +267,129 @@ class Config
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_bhyve_profiles($info){
|
function create_bhyve_profiles($info){
|
||||||
$os_names = array();
|
$os_names = array();
|
||||||
$res=json_decode($info['message'],true);
|
$res=json_decode($info['message'],true);
|
||||||
if(!is_null($res) && $res != false){
|
if(!is_null($res) && $res != false){
|
||||||
foreach($res as $item){
|
foreach($res as $item){
|
||||||
$os_name=$this->os_types_names[$item['type']];
|
$os_name=$this->os_types_names[$item['type']];
|
||||||
if(isset($os_names[$os_name])){
|
if(isset($os_names[$os_name])){
|
||||||
$os_names[$os_name]['items'][]=$item;
|
$os_names[$os_name]['items'][]=$item;
|
||||||
}else{
|
}else{
|
||||||
$os_names[$os_name]=array('os'=>$os_name,'items'=>array($item));
|
$os_names[$os_name]=array('os'=>$os_name,'items'=>array($item));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $os_names;
|
return $os_names;
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_interfaces($info){
|
function create_interfaces($info){
|
||||||
$res=json_decode($info['message'],true);
|
$res=json_decode($info['message'],true);
|
||||||
if(!is_null($res) && $res != false){
|
if(!is_null($res) && $res != false){
|
||||||
return $res['interfaces'];
|
return $res['interfaces'];
|
||||||
} else {
|
} else {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function os_types_create($obtain='new'){
|
function os_types_create($obtain='new'){
|
||||||
//print_r($this->os_types);exit;
|
//print_r($this->os_types);exit;
|
||||||
$obtain=($obtain=='obtain');
|
$obtain=($obtain=='obtain');
|
||||||
if($obtain)
|
if($obtain)
|
||||||
$info=$this->os_types_obtain;
|
$info=$this->os_types_obtain;
|
||||||
else
|
else
|
||||||
$info=$this->os_types;
|
$info=$this->os_types;
|
||||||
|
|
||||||
$html='';
|
$html='';
|
||||||
foreach($info as $num1=>$os)
|
foreach($info as $num1=>$os)
|
||||||
{
|
{
|
||||||
$obtain_count=0;
|
$obtain_count=0;
|
||||||
$html_tmp=' <optgroup label="'.$os['os'].'">'.PHP_EOL;
|
$html_tmp=' <optgroup label="'.$os['os'].'">'.PHP_EOL;
|
||||||
$items=$os['items'];
|
$items=$os['items'];
|
||||||
foreach($items as $num2=>$item)
|
foreach($items as $num2=>$item)
|
||||||
{
|
{
|
||||||
//if(!isset($item['obtain'])) $item['obtain']=false;
|
//if(!isset($item['obtain'])) $item['obtain']=false;
|
||||||
//if(!$obtain || $item['obtain'])
|
//if(!$obtain || $item['obtain'])
|
||||||
$html_tmp.=' <option value="'.$num1.'.'.$num2.'">'.$item['name'].'</option>'.PHP_EOL;
|
$html_tmp.=' <option value="'.$num1.'.'.$num2.'">'.$item['name'].'</option>'.PHP_EOL;
|
||||||
//if($item['obtain']) $obtain_count++;
|
//if($item['obtain']) $obtain_count++;
|
||||||
}
|
}
|
||||||
$html_tmp.=' </optgroup>'.PHP_EOL;
|
$html_tmp.=' </optgroup>'.PHP_EOL;
|
||||||
|
|
||||||
//if(!$obtain || $obtain_count>0) $html.=$html_tmp;
|
//if(!$obtain || $obtain_count>0) $html.=$html_tmp;
|
||||||
$html.=$html_tmp;
|
$html.=$html_tmp;
|
||||||
}
|
}
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
function os_types_getOne($name='first',$obtain='')
|
function os_types_getOne($name='first',$obtain='')
|
||||||
{
|
{
|
||||||
$res=array();
|
$res=array();
|
||||||
if($obtain=='obtain')
|
if($obtain=='obtain')
|
||||||
{
|
{
|
||||||
$info=$this->os_types_obtain;
|
$info=$this->os_types_obtain;
|
||||||
}else{
|
}else{
|
||||||
$info=$this->os_types;
|
$info=$this->os_types;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($name=='first')
|
if($name=='first')
|
||||||
{
|
{
|
||||||
$res=current($info)['items'][0];
|
$res=current($info)['items'][0];
|
||||||
}else{
|
}else{
|
||||||
foreach($info as $type)
|
foreach($info as $type)
|
||||||
{
|
{
|
||||||
foreach($type['items'] as $arr)
|
foreach($type['items'] as $arr)
|
||||||
{
|
{
|
||||||
if($arr['name']==$name)
|
if($arr['name']==$name)
|
||||||
{
|
{
|
||||||
$res=$arr;
|
$res=$arr;
|
||||||
break 2;
|
break 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
function authkeys_list(){
|
function authkeys_list(){
|
||||||
$db=new Db('base','authkey');
|
$db=new Db('base','authkey');
|
||||||
$res=$db->select('SELECT idx,name FROM authkey;', array());
|
$res=$db->select('SELECT idx,name FROM authkey;', array());
|
||||||
|
|
||||||
$html='';
|
$html='';
|
||||||
if(!empty($res))foreach($res as $item){
|
if(!empty($res))foreach($res as $item){
|
||||||
$html.=' <option value="'.$item['idx'].'">'.$item['name'].'</option>'.PHP_EOL;
|
$html.=' <option value="'.$item['idx'].'">'.$item['name'].'</option>'.PHP_EOL;
|
||||||
}
|
}
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
function vm_packages_list(){
|
function vm_packages_list(){
|
||||||
$db=new Db('base','local');
|
$db=new Db('base','local');
|
||||||
$res=$db->select('select id,name,description,pkg_vm_ram,pkg_vm_disk,pkg_vm_cpus,owner from vmpackages order by name asc;', array());
|
$res=$db->select('select id,name,description,pkg_vm_ram,pkg_vm_disk,pkg_vm_cpus,owner from vmpackages order by name asc;', array());
|
||||||
|
|
||||||
$html='<option value="0"></option>';
|
$html='<option value="0"></option>';
|
||||||
$min=0;
|
$min=0;
|
||||||
$min_id=0;
|
$min_id=0;
|
||||||
if(!empty($res))foreach($res as $item){
|
if(!empty($res))foreach($res as $item){
|
||||||
$cpu=$item['pkg_vm_cpus'];
|
$cpu=$item['pkg_vm_cpus'];
|
||||||
$ram=trim($item['pkg_vm_ram']);
|
$ram=trim($item['pkg_vm_ram']);
|
||||||
$ed=substr($ram,-1);
|
$ed=substr($ram,-1);
|
||||||
if($ed=='b'){
|
if($ed=='b'){
|
||||||
$ed=substr($ram,-2,1).'b';
|
$ed=substr($ram,-2,1).'b';
|
||||||
$ram=substr($ram,0,-2);
|
$ram=substr($ram,0,-2);
|
||||||
}
|
}
|
||||||
if($ed=='m' || $ed=='g') $ed.='b';
|
if($ed=='m' || $ed=='g') $ed.='b';
|
||||||
if($ed=='mb'){
|
if($ed=='mb'){
|
||||||
$ram1=substr($ram,0,-1);
|
$ram1=substr($ram,0,-1);
|
||||||
$ram1=$ram1/1000000;
|
$ram1=$ram1/1000000;
|
||||||
}
|
}
|
||||||
if($ed=='gb'){
|
if($ed=='gb'){
|
||||||
$ram1=substr($ram,0,-1);
|
$ram1=substr($ram,0,-1);
|
||||||
$ram1=$ram1/1000;
|
$ram1=$ram1/1000;
|
||||||
}
|
}
|
||||||
$res1=$cpu+$ram1;
|
$res1=$cpu+$ram1;
|
||||||
if($min>$res1 || $min==0) {$min=$res1;$min_id=$item['id'];}
|
if($min>$res1 || $min==0) {$min=$res1;$min_id=$item['id'];}
|
||||||
|
|
||||||
$name='<strong>'.$item['name'].'</strong> (cpu: '.$cpu.'; ram: '.$ram.'; hdd: '.$item['pkg_vm_disk'].')';
|
$name='<strong>'.$item['name'].'</strong> (cpu: '.$cpu.'; ram: '.$ram.'; hdd: '.$item['pkg_vm_disk'].')';
|
||||||
$html.=' <option value="'.$item['id'].'" title="'.$item['description'].'">'.$name.'</option>'.PHP_EOL;
|
$html.=' <option value="'.$item['id'].'" title="'.$item['description'].'">'.$name.'</option>'.PHP_EOL;
|
||||||
}
|
}
|
||||||
return array('html'=>$html,'min_id'=>$min_id);
|
return array('html'=>$html,'min_id'=>$min_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
440
php/db.php
440
php/db.php
@@ -1,220 +1,220 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class Db {
|
class Db {
|
||||||
private $_pdo=null;
|
private $_pdo=null;
|
||||||
private $_workdir='';
|
private $_workdir='';
|
||||||
private $_filename='';
|
private $_filename='';
|
||||||
public $error=false;
|
public $error=false;
|
||||||
public $error_message='';
|
public $error_message='';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
$place = base (This is a basic set of databases: local, nodes, etc)
|
$place = base (This is a basic set of databases: local, nodes, etc)
|
||||||
$place = file (specify a specific database for the full pathth)
|
$place = file (specify a specific database for the full pathth)
|
||||||
*/
|
*/
|
||||||
function __construct($place='base', $database='', $connect = null){
|
function __construct($place='base', $database='', $connect = null){
|
||||||
|
|
||||||
if (is_null($connect)){
|
if (is_null($connect)){
|
||||||
list($file_name, $connect) = $this->prep_connect($place, $database);
|
list($file_name, $connect) = $this->prep_connect($place, $database);
|
||||||
if(is_null($file_name) || !file_exists($file_name)){
|
if(is_null($file_name) || !file_exists($file_name)){
|
||||||
$this->error=true;
|
$this->error=true;
|
||||||
$this->error_message='DB file name not set or not found!';
|
$this->error_message='DB file name not set or not found!';
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
$this->_filename=$file_name;
|
$this->_filename=$file_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(is_null($connect)) {
|
if(is_null($connect)) {
|
||||||
$this->error=true;
|
$this->error=true;
|
||||||
$this->error_message='DB file name not set or invalid';
|
$this->error_message='DB file name not set or invalid';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$this->_pdo = new PDO($connect);
|
$this->_pdo = new PDO($connect);
|
||||||
$this->_pdo->setAttribute(PDO::ATTR_TIMEOUT,5000);
|
$this->_pdo->setAttribute(PDO::ATTR_TIMEOUT,5000);
|
||||||
}catch (PDOException $e){
|
}catch (PDOException $e){
|
||||||
$this->error=true;
|
$this->error=true;
|
||||||
$this->error_message=$e->getMessage(); //'DB Error';
|
$this->error_message=$e->getMessage(); //'DB Error';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function prep_connect($place, $database){
|
private function prep_connect($place, $database){
|
||||||
|
|
||||||
$this->_workdir=getenv('WORKDIR'); // /usr/jails/
|
$this->_workdir=getenv('WORKDIR'); // /usr/jails/
|
||||||
$connect = null;
|
$connect = null;
|
||||||
$file_name = null;
|
$file_name = null;
|
||||||
|
|
||||||
switch($place){
|
switch($place){
|
||||||
case 'base':
|
case 'base':
|
||||||
$file_name=$this->_workdir.'/var/db/'.$database.'.sqlite';
|
$file_name=$this->_workdir.'/var/db/'.$database.'.sqlite';
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
break;
|
break;
|
||||||
case 'file':
|
case 'file':
|
||||||
$file_name=$database;
|
$file_name=$database;
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
break;
|
break;
|
||||||
case 'helper':
|
case 'helper':
|
||||||
if(is_array($database)){
|
if(is_array($database)){
|
||||||
//usr/jails/jails-system/cbsdpuppet1/helpers/redis.sqlite
|
//usr/jails/jails-system/cbsdpuppet1/helpers/redis.sqlite
|
||||||
$file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/helpers/'.$database['helper'].".sqlite";
|
$file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/helpers/'.$database['helper'].".sqlite";
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
} else {
|
} else {
|
||||||
$file_name=$this->_workdir.'/formfile/'.$database.".sqlite";
|
$file_name=$this->_workdir.'/formfile/'.$database.".sqlite";
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'cbsd-settings':
|
case 'cbsd-settings':
|
||||||
$file_name=$this->_workdir.'/jails-system/CBSDSYS/helpers/cbsd.sqlite';
|
$file_name=$this->_workdir.'/jails-system/CBSDSYS/helpers/cbsd.sqlite';
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
break;
|
break;
|
||||||
case 'clonos':
|
case 'clonos':
|
||||||
$file_name='/var/db/clonos/clonos.sqlite';
|
$file_name='/var/db/clonos/clonos.sqlite';
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
break;
|
break;
|
||||||
case 'racct':
|
case 'racct':
|
||||||
$file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/racct.sqlite';
|
$file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/racct.sqlite';
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
break;
|
break;
|
||||||
case 'bhyve':
|
case 'bhyve':
|
||||||
$file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/local.sqlite';
|
$file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/local.sqlite';
|
||||||
$connect='sqlite:'.$file_name;
|
$connect='sqlite:'.$file_name;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
$databases=array(
|
$databases=array(
|
||||||
'tasks'=>'cbsdtaskd',
|
'tasks'=>'cbsdtaskd',
|
||||||
'jails'=>'local',
|
'jails'=>'local',
|
||||||
);
|
);
|
||||||
|
|
||||||
switch($driver){
|
switch($driver){
|
||||||
case 'sqlite_webdev':
|
case 'sqlite_webdev':
|
||||||
$connect='sqlite:/var/db/webdev/webdev.sqlite';
|
$connect='sqlite:/var/db/webdev/webdev.sqlite';
|
||||||
break;
|
break;
|
||||||
case 'forms':
|
case 'forms':
|
||||||
$connect='sqlite:/var/db/webdev/forms.sqlite';
|
$connect='sqlite:/var/db/webdev/forms.sqlite';
|
||||||
break;
|
break;
|
||||||
case 'helpers':
|
case 'helpers':
|
||||||
if(is_array($database)){
|
if(is_array($database)){
|
||||||
$connect='sqlite:'.$this->_workdir.'/jails-system/'.
|
$connect='sqlite:'.$this->_workdir.'/jails-system/'.
|
||||||
$database['jname'].'/helpers/'.$database['helper'].".sqlite";
|
$database['jname'].'/helpers/'.$database['helper'].".sqlite";
|
||||||
}else $connect='';
|
}else $connect='';
|
||||||
break;
|
break;
|
||||||
case 'sqlite_cbsd':
|
case 'sqlite_cbsd':
|
||||||
if($database!=''){
|
if($database!=''){
|
||||||
if(!isset($databases[$database])) break;
|
if(!isset($databases[$database])) break;
|
||||||
$db=$databases[$database];
|
$db=$databases[$database];
|
||||||
$connect='sqlite:'.$this->_workdir.'/var/db/'.$db.'.sqlite';
|
$connect='sqlite:'.$this->_workdir.'/var/db/'.$db.'.sqlite';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'pkg':
|
case 'pkg':
|
||||||
$connect='sqlite:'.$this->_workdir.'/jails-data/'.$database.'-data/var/db/pkg/local.sqlite';
|
$connect='sqlite:'.$this->_workdir.'/jails-data/'.$database.'-data/var/db/pkg/local.sqlite';
|
||||||
break;
|
break;
|
||||||
/-*
|
/-*
|
||||||
case 'from_file':
|
case 'from_file':
|
||||||
echo $this->_workdir.$database;
|
echo $this->_workdir.$database;
|
||||||
$connect='sqlite:'.$this->_workdir.$database;
|
$connect='sqlite:'.$this->_workdir.$database;
|
||||||
//"/jails-system/jail".$this->jailId."/helpers/".$this->helper.".sqlite"
|
//"/jails-system/jail".$this->jailId."/helpers/".$this->helper.".sqlite"
|
||||||
break;
|
break;
|
||||||
*-/
|
*-/
|
||||||
default:
|
default:
|
||||||
throw new Exception('Unknown database driver!');
|
throw new Exception('Unknown database driver!');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return [$file_name, $connect];
|
return [$file_name, $connect];
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO once tested $values can have a default value of an empty array
|
# TODO once tested $values can have a default value of an empty array
|
||||||
function select($sql, $values, $single = false){
|
function select($sql, $values, $single = false){
|
||||||
$sql=str_replace('"',"'",$sql);
|
$sql=str_replace('"',"'",$sql);
|
||||||
if ($this->error){
|
if ($this->error){
|
||||||
return array('error' => $this->error, 'info' => $this->error_message);
|
return array('error' => $this->error, 'info' => $this->error_message);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$query = $this->_pdo->prepare($sql);
|
$query = $this->_pdo->prepare($sql);
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach($values as $v){
|
foreach($values as $v){
|
||||||
if (count($v) == 1){ # TODO: Make default type string
|
if (count($v) == 1){ # TODO: Make default type string
|
||||||
$query->bindParam($i, $v[0]);
|
$query->bindParam($i, $v[0]);
|
||||||
} elseif (count($v) == 2){ # if type defined
|
} elseif (count($v) == 2){ # if type defined
|
||||||
$query->bindParam($i, $v[0], $v[1]);
|
$query->bindParam($i, $v[0], $v[1]);
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$query->execute();
|
$query->execute();
|
||||||
if ($single){
|
if ($single){
|
||||||
$res = $query->fetch(PDO::FETCH_ASSOC);
|
$res = $query->fetch(PDO::FETCH_ASSOC);
|
||||||
} else {
|
} else {
|
||||||
$res = $query->fetchAll(PDO::FETCH_ASSOC);
|
$res = $query->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}
|
}
|
||||||
return $res;
|
return $res;
|
||||||
} catch(PDOException $e) {
|
} catch(PDOException $e) {
|
||||||
return array('error' => true, 'info' => 'Catch exception: ' . $e->getMessage()); //$this->error
|
return array('error' => true, 'info' => 'Catch exception: ' . $e->getMessage()); //$this->error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectOne($sql, $values){
|
function selectOne($sql, $values){
|
||||||
return $this->select($sql, $values, true);
|
return $this->select($sql, $values, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function insert($sql, $values){
|
function insert($sql, $values){
|
||||||
if ($this->error){
|
if ($this->error){
|
||||||
return array('error' => $this->error, 'info' => $this->error_message);
|
return array('error' => $this->error, 'info' => $this->error_message);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$this->_pdo->beginTransaction();
|
$this->_pdo->beginTransaction();
|
||||||
$query = $this->_pdo->prepare($sql);
|
$query = $this->_pdo->prepare($sql);
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach($values as $v){
|
foreach($values as $v){
|
||||||
if (count($v) == 1){ # TODO: Make default type string
|
if (count($v) == 1){ # TODO: Make default type string
|
||||||
$query->bindParam($i, $v[0]);
|
$query->bindParam($i, $v[0]);
|
||||||
} elseif (count($v) == 2){ # if type defined
|
} elseif (count($v) == 2){ # if type defined
|
||||||
$query->bindParam($i, $v[0], $v[1]);
|
$query->bindParam($i, $v[0], $v[1]);
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$query->execute();
|
$query->execute();
|
||||||
$lastId = $this->_pdo->lastInsertId();
|
$lastId = $this->_pdo->lastInsertId();
|
||||||
$this->_pdo->commit();
|
$this->_pdo->commit();
|
||||||
} catch(PDOException $e) {
|
} catch(PDOException $e) {
|
||||||
$this->_pdo->rollBack();
|
$this->_pdo->rollBack();
|
||||||
#throw new Exception($e->getMessage());
|
#throw new Exception($e->getMessage());
|
||||||
return array('error'=>true,'info'=>$e->getMessage());
|
return array('error'=>true,'info'=>$e->getMessage());
|
||||||
}
|
}
|
||||||
return array('error'=>false,'lastID'=>$lastId);
|
return array('error'=>false,'lastID'=>$lastId);
|
||||||
}
|
}
|
||||||
|
|
||||||
function update($sql, $values){
|
function update($sql, $values){
|
||||||
if ($this->error){
|
if ($this->error){
|
||||||
throw new Exception($this->error_message);
|
throw new Exception($this->error_message);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$this->_pdo->beginTransaction();
|
$this->_pdo->beginTransaction();
|
||||||
$query = $this->_pdo->prepare($sql);
|
$query = $this->_pdo->prepare($sql);
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach($values as $v){
|
foreach($values as $v){
|
||||||
if (count($v) == 1){ # TODO: Make default type string
|
if (count($v) == 1){ # TODO: Make default type string
|
||||||
$query->bindParam($i, $v[0]);
|
$query->bindParam($i, $v[0]);
|
||||||
} elseif (count($v) == 2){ # if type defined
|
} elseif (count($v) == 2){ # if type defined
|
||||||
$query->bindParam($i, $v[0], $v[1]);
|
$query->bindParam($i, $v[0], $v[1]);
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$query->execute();
|
$query->execute();
|
||||||
$rowCount=$query->rowCount();
|
$rowCount=$query->rowCount();
|
||||||
$this->_pdo->commit();
|
$this->_pdo->commit();
|
||||||
} catch(PDOException $e) {
|
} catch(PDOException $e) {
|
||||||
$this->_pdo->rollBack();
|
$this->_pdo->rollBack();
|
||||||
#return false;
|
#return false;
|
||||||
throw new Exception($e->getMessage());
|
throw new Exception($e->getMessage());
|
||||||
}
|
}
|
||||||
return array('rowCount'=>$rowCount);
|
return array('rowCount'=>$rowCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isConnected(){ return !is_null($this->_pdo); }
|
function isConnected(){ return !is_null($this->_pdo); }
|
||||||
function getWorkdir(){ return $this->_workdir; }
|
function getWorkdir(){ return $this->_workdir; }
|
||||||
function getFileName(){ return $this->_filename; }
|
function getFileName(){ return $this->_filename; }
|
||||||
}
|
}
|
||||||
|
|||||||
444
php/forms.php
444
php/forms.php
@@ -1,227 +1,227 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
(
|
(
|
||||||
[idx] => 1
|
[idx] => 1
|
||||||
[mytable] => forms
|
[mytable] => forms
|
||||||
[group_id] => 1
|
[group_id] => 1
|
||||||
[order_id] => 1
|
[order_id] => 1
|
||||||
[param] => ldap_host
|
[param] => ldap_host
|
||||||
[desc] => LDAP server
|
[desc] => LDAP server
|
||||||
[def] => 192.168.1.3
|
[def] => 192.168.1.3
|
||||||
[cur] =>
|
[cur] =>
|
||||||
[new] =>
|
[new] =>
|
||||||
[mandatory] => 1
|
[mandatory] => 1
|
||||||
[attr] => maxlen=60
|
[attr] => maxlen=60
|
||||||
[xattr] =>
|
[xattr] =>
|
||||||
[type] => inputbox
|
[type] => inputbox
|
||||||
[link] =>
|
[link] =>
|
||||||
)
|
)
|
||||||
*/
|
*/
|
||||||
class Forms
|
class Forms
|
||||||
{
|
{
|
||||||
private $db='';
|
private $db='';
|
||||||
|
|
||||||
function __construct($jname,$helper='',$db_path=false)
|
function __construct($jname,$helper='',$db_path=false)
|
||||||
{
|
{
|
||||||
if($jname==''){
|
if($jname==''){
|
||||||
$database=$helper;
|
$database=$helper;
|
||||||
}else{
|
}else{
|
||||||
$database=array('jname'=>$jname,'helper'=>$helper);
|
$database=array('jname'=>$jname,'helper'=>$helper);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($jname=='cbsd-settings'){
|
if($jname=='cbsd-settings'){
|
||||||
$this->db=new Db('cbsd-settings');
|
$this->db=new Db('cbsd-settings');
|
||||||
} else if($helper!=''){
|
} else if($helper!=''){
|
||||||
if($db_path!==false){
|
if($db_path!==false){
|
||||||
$this->db=new Db('file',$db_path);
|
$this->db=new Db('file',$db_path);
|
||||||
}else{
|
}else{
|
||||||
$this->db=new Db('helper',$database);
|
$this->db=new Db('helper',$database);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function fetch_from_db($link)
|
private function fetch_from_db($link)
|
||||||
{
|
{
|
||||||
// return $this->db->select("select * from ? order by order_id asc", array([$link]));
|
// return $this->db->select("select * from ? order by order_id asc", array([$link]));
|
||||||
return $this->db->select("select * from {$link} order by order_id asc", array());
|
return $this->db->select("select * from {$link} order by order_id asc", array());
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate(){
|
function generate(){
|
||||||
if($this->db->error) return;
|
if($this->db->error) return;
|
||||||
$fields=$this->db->select("select * from forms order by groupname asc, group_id asc, order_id asc", array());
|
$fields=$this->db->select("select * from forms order by groupname asc, group_id asc, order_id asc", array());
|
||||||
|
|
||||||
// Строим карту формы с группами элементов
|
// Строим карту формы с группами элементов
|
||||||
$groups=array();
|
$groups=array();
|
||||||
foreach($fields as $key=>$field){
|
foreach($fields as $key=>$field){
|
||||||
$group=$field['groupname'];
|
$group=$field['groupname'];
|
||||||
if(!empty($group)){
|
if(!empty($group)){
|
||||||
if($field['type']=='group_add'){ // Expand
|
if($field['type']=='group_add'){ // Expand
|
||||||
$groups[$group]['_title']=$field['desc'];
|
$groups[$group]['_title']=$field['desc'];
|
||||||
}else if($field['type']=='delimer'){
|
}else if($field['type']=='delimer'){
|
||||||
// Delimer
|
// Delimer
|
||||||
$groups[$group][$field['group_id']]=$key;
|
$groups[$group][$field['group_id']]=$key;
|
||||||
}else{
|
}else{
|
||||||
// Other elements
|
// Other elements
|
||||||
$groups[$group][$field['group_id']]['_group_id']=$field['group_id'];
|
$groups[$group][$field['group_id']]['_group_id']=$field['group_id'];
|
||||||
$groups[$group][$field['group_id']][$field['order_id']]=$key;
|
$groups[$group][$field['group_id']][$field['order_id']]=$key;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$groups[]=$key;
|
$groups[]=$key;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//print_r($fields);print_r($groups);exit;
|
//print_r($fields);print_r($groups);exit;
|
||||||
|
|
||||||
$arr=array();
|
$arr=array();
|
||||||
$last_type='';
|
$last_type='';
|
||||||
foreach($fields as $key=>$field){
|
foreach($fields as $key=>$field){
|
||||||
/*
|
/*
|
||||||
if($last_type=='delimer' && $field['type']!='delimer')
|
if($last_type=='delimer' && $field['type']!='delimer')
|
||||||
$html.='<div class="pad-head"></div>';
|
$html.='<div class="pad-head"></div>';
|
||||||
*/
|
*/
|
||||||
$last_type=$field['type'];
|
$last_type=$field['type'];
|
||||||
|
|
||||||
if(isset($field['cur']) && isset($field['def'])){
|
if(isset($field['cur']) && isset($field['def'])){
|
||||||
if(empty($field['cur'])) $field['cur']=$field['def'];
|
if(empty($field['cur'])) $field['cur']=$field['def'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$tpl=$this->getElement($field['type'],$field);
|
$tpl=$this->getElement($field['type'],$field);
|
||||||
$params=array('param','desc','attr','cur');
|
$params=array('param','desc','attr','cur');
|
||||||
foreach($params as $param){
|
foreach($params as $param){
|
||||||
if(isset($field[$param]))
|
if(isset($field[$param]))
|
||||||
$tpl=str_replace('${'.$param.'}',$field[$param],$tpl);
|
$tpl=str_replace('${'.$param.'}',$field[$param],$tpl);
|
||||||
}
|
}
|
||||||
|
|
||||||
//$value=$field['def'];
|
//$value=$field['def'];
|
||||||
//if(isset($field['cur']) && !empty($field['cur'])) $value=$field['cur'];
|
//if(isset($field['cur']) && !empty($field['cur'])) $value=$field['cur'];
|
||||||
$value=$field['cur'];
|
$value=$field['cur'];
|
||||||
$tpl=str_replace('${value}',$value,$tpl);
|
$tpl=str_replace('${value}',$value,$tpl);
|
||||||
|
|
||||||
$value=$field['def'];
|
$value=$field['def'];
|
||||||
$tpl=str_replace('${def}',$value,$tpl);
|
$tpl=str_replace('${def}',$value,$tpl);
|
||||||
|
|
||||||
$required=($field['mandatory']==1)?' required':'';
|
$required=($field['mandatory']==1)?' required':'';
|
||||||
$tpl=str_replace('${required}',$required,$tpl);
|
$tpl=str_replace('${required}',$required,$tpl);
|
||||||
$arr[$key]=$tpl;
|
$arr[$key]=$tpl;
|
||||||
|
|
||||||
//if($field['param']!='-') $currents[$field['param']]=$field['cur'];
|
//if($field['param']!='-') $currents[$field['param']]=$field['cur'];
|
||||||
//if($field['param']!='-') $defaults[$field['param']]=$field['def'];
|
//if($field['param']!='-') $defaults[$field['param']]=$field['def'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Выстраиваем форму по карте
|
// Выстраиваем форму по карте
|
||||||
$html='<form class="helper" name="" onsubmit="return false;"><div class="form-fields">';
|
$html='<form class="helper" name="" onsubmit="return false;"><div class="form-fields">';
|
||||||
foreach($groups as $key=>$txt){
|
foreach($groups as $key=>$txt){
|
||||||
if(is_numeric($key)){
|
if(is_numeric($key)){
|
||||||
$html.=$arr[$key];
|
$html.=$arr[$key];
|
||||||
}else if(is_array($txt)){
|
}else if(is_array($txt)){
|
||||||
$group_name=key($txt);
|
$group_name=key($txt);
|
||||||
$group_title=$txt['_title'];
|
$group_title=$txt['_title'];
|
||||||
unset($txt['_title']);
|
unset($txt['_title']);
|
||||||
foreach($txt as $key1=>$val1){
|
foreach($txt as $key1=>$val1){
|
||||||
$group_id=$val1['_group_id'];
|
$group_id=$val1['_group_id'];
|
||||||
unset($val1['_group_id']);
|
unset($val1['_group_id']);
|
||||||
if(is_array($val1)){
|
if(is_array($val1)){
|
||||||
$html.='<div class="form-field"><fieldset id="ind-'.$group_id.'"><legend>'.$group_title.'</legend>';
|
$html.='<div class="form-field"><fieldset id="ind-'.$group_id.'"><legend>'.$group_title.'</legend>';
|
||||||
foreach($val1 as $key2=>$val2){
|
foreach($val1 as $key2=>$val2){
|
||||||
$html.=$arr[$val2];
|
$html.=$arr[$val2];
|
||||||
}
|
}
|
||||||
$html.='<div><input type="button" value="delete group" class="fgroup-del-butt" /></div></fieldset></div>';
|
$html.='<div><input type="button" value="delete group" class="fgroup-del-butt" /></div></fieldset></div>';
|
||||||
}else{
|
}else{
|
||||||
$html.=$arr[$key1];
|
$html.=$arr[$key1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$html.='<div class="form-field"><input type="button" value="add group" class="fgroup-add-butt" /></div>';
|
$html.='<div class="form-field"><input type="button" value="add group" class="fgroup-add-butt" /></div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$html.='</div>';
|
$html.='</div>';
|
||||||
$html.='<div class="buttons"><input type="button" value="Apply" class="save-helper-values" title="Save and apply params" /> <input type="button" value="Clear" class="clear-helper" title="Restore loaded params" /></div>';
|
$html.='<div class="buttons"><input type="button" value="Apply" class="save-helper-values" title="Save and apply params" /> <input type="button" value="Clear" class="clear-helper" title="Restore loaded params" /></div>';
|
||||||
$html.='</form>';
|
$html.='</form>';
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getElement($el,$arr=array())
|
function getElement($el,$arr=array())
|
||||||
{
|
{
|
||||||
$tpl='';
|
$tpl='';
|
||||||
switch(trim($el)){
|
switch(trim($el)){
|
||||||
case 'inputbox':
|
case 'inputbox':
|
||||||
$res=$this->getInputAutofill($arr);
|
$res=$this->getInputAutofill($arr);
|
||||||
if($res===false){
|
if($res===false){
|
||||||
$list='';
|
$list='';
|
||||||
$datalist='';
|
$datalist='';
|
||||||
}else{
|
}else{
|
||||||
$list=' list="'.$res['list'].'"';
|
$list=' list="'.$res['list'].'"';
|
||||||
$datalist=$res['datalist'];
|
$datalist=$res['datalist'];
|
||||||
}
|
}
|
||||||
$tpl='<div class="form-field"><input type="text" name="${param}" value="${value}" ${attr}${required}'.$list.' /><span class="default val-${def}" title="Click to fill dafault value">[default]</span><span class="small">${desc}</span>'.$datalist.'</div>';
|
$tpl='<div class="form-field"><input type="text" name="${param}" value="${value}" ${attr}${required}'.$list.' /><span class="default val-${def}" title="Click to fill dafault value">[default]</span><span class="small">${desc}</span>'.$datalist.'</div>';
|
||||||
//'.$default.'
|
//'.$default.'
|
||||||
break;
|
break;
|
||||||
case 'password':
|
case 'password':
|
||||||
$tpl='<div class="form-field"><input type="password" name="${param}" value="${value}" ${attr}${required} /><span class="default val-${def}" title="Click to fill dafault value">[default]</span><span class="small">${desc}</span></div>';
|
$tpl='<div class="form-field"><input type="password" name="${param}" value="${value}" ${attr}${required} /><span class="default val-${def}" title="Click to fill dafault value">[default]</span><span class="small">${desc}</span></div>';
|
||||||
break;
|
break;
|
||||||
case 'delimer':
|
case 'delimer':
|
||||||
$tpl='<h1>${desc}</h1>';
|
$tpl='<h1>${desc}</h1>';
|
||||||
break;
|
break;
|
||||||
case 'checkbox':
|
case 'checkbox':
|
||||||
$tpl='<input type="checkbox" id="chk-${idx}" name="${param}" /><label for="chk-${idx}">${desc}</label>';
|
$tpl='<input type="checkbox" id="chk-${idx}" name="${param}" /><label for="chk-${idx}">${desc}</label>';
|
||||||
break;
|
break;
|
||||||
case 'select':
|
case 'select':
|
||||||
$tpl=$this->getSelect($el,$arr);
|
$tpl=$this->getSelect($el,$arr);
|
||||||
break;
|
break;
|
||||||
case 'radio':
|
case 'radio':
|
||||||
$tpl=$this->getRadio($el,$arr);
|
$tpl=$this->getRadio($el,$arr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return $tpl;
|
return $tpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getInputAutofill($arr)
|
function getInputAutofill($arr)
|
||||||
{
|
{
|
||||||
if(isset($arr['link']) && $arr['link']!=''){
|
if(isset($arr['link']) && $arr['link']!=''){
|
||||||
$id=$arr['link']; //$arr['param'].'-'.
|
$id=$arr['link']; //$arr['param'].'-'.
|
||||||
$tpl='<datalist id="'.$id.'">';
|
$tpl='<datalist id="'.$id.'">';
|
||||||
$opts = $this->fetch_from_db($arr['link']);
|
$opts = $this->fetch_from_db($arr['link']);
|
||||||
foreach($opts as $key=>$opt){
|
foreach($opts as $key=>$opt){
|
||||||
$tpl.='<option>'.$opt['text'].'</option>';
|
$tpl.='<option>'.$opt['text'].'</option>';
|
||||||
}
|
}
|
||||||
$tpl.='</datalist>';
|
$tpl.='</datalist>';
|
||||||
|
|
||||||
Utils::clonos_syslog("forms.php template: " . $tpl);
|
Utils::clonos_syslog("forms.php template: " . $tpl);
|
||||||
|
|
||||||
return array('list'=>$id,'datalist'=>$tpl);
|
return array('list'=>$id,'datalist'=>$tpl);
|
||||||
}else {
|
}else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelect($el,$arr)
|
function getSelect($el,$arr)
|
||||||
{
|
{
|
||||||
$tpl='<div class="form-field"><select name="${param}">';
|
$tpl='<div class="form-field"><select name="${param}">';
|
||||||
if(isset($arr['link'])){
|
if(isset($arr['link'])){
|
||||||
$opts = $this->fetch_from_db($arr['link']);
|
$opts = $this->fetch_from_db($arr['link']);
|
||||||
// Пустое поле в списках оказалось ненужным!
|
// Пустое поле в списках оказалось ненужным!
|
||||||
//array_unshift($opts,array('id'=>0,'text'=>'','order_id'=>-1));
|
//array_unshift($opts,array('id'=>0,'text'=>'','order_id'=>-1));
|
||||||
foreach($opts as $key=>$opt){
|
foreach($opts as $key=>$opt){
|
||||||
$selected=($opt['id']==$arr['cur'])?' selected':'';
|
$selected=($opt['id']==$arr['cur'])?' selected':'';
|
||||||
$tpl.='<option value="'.$opt['id'].'"'.$selected.'>'.$opt['text'].'</option>';
|
$tpl.='<option value="'.$opt['id'].'"'.$selected.'>'.$opt['text'].'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$tpl.='</select><span class="default val-${def}" title="Click to fill dafault value">[default]</span><span class="small">${desc}</span></div>';
|
$tpl.='</select><span class="default val-${def}" title="Click to fill dafault value">[default]</span><span class="small">${desc}</span></div>';
|
||||||
return $tpl;
|
return $tpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRadio($el,$arr)
|
function getRadio($el,$arr)
|
||||||
{
|
{
|
||||||
$tpl='<div class="form-field"><fieldset><legend>${desc}</legend>';
|
$tpl='<div class="form-field"><fieldset><legend>${desc}</legend>';
|
||||||
if(isset($arr['link'])){
|
if(isset($arr['link'])){
|
||||||
$opts = $this->fetch_from_db($arr['link']);
|
$opts = $this->fetch_from_db($arr['link']);
|
||||||
foreach($opts as $key=>$opt){
|
foreach($opts as $key=>$opt){
|
||||||
$checked=($opt['id']==$arr['cur'])?' checked':'';
|
$checked=($opt['id']==$arr['cur'])?' checked':'';
|
||||||
$tpl.='<label for="${param}-'.$opt['id'].'">'.$opt['text'].':</label><input type="radio" name="${param}" value="'.$opt['id'].'" id="${param}-'.$opt['id'].'"'.$checked.' />';
|
$tpl.='<label for="${param}-'.$opt['id'].'">'.$opt['text'].':</label><input type="radio" name="${param}" value="'.$opt['id'].'" id="${param}-'.$opt['id'].'"'.$checked.' />';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$tpl.='</fieldset></div>';
|
$tpl.='</fieldset></div>';
|
||||||
return $tpl;
|
return $tpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
146
php/menu.php
146
php/menu.php
@@ -1,84 +1,84 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
'news'=>array(
|
'news'=>array(
|
||||||
'name'=>'Новости',
|
'name'=>'Новости',
|
||||||
'title'=>'Новости сети',
|
'title'=>'Новости сети',
|
||||||
),
|
),
|
||||||
'connect'=>array(
|
'connect'=>array(
|
||||||
'name'=>'Подключение к сети',
|
'name'=>'Подключение к сети',
|
||||||
'title'=>'Подключитесь к сети прямо сейчас!',
|
'title'=>'Подключитесь к сети прямо сейчас!',
|
||||||
'submenu'=>array(
|
'submenu'=>array(
|
||||||
'map'=>array(
|
'map'=>array(
|
||||||
'name'=>'Зона обслуживания',
|
'name'=>'Зона обслуживания',
|
||||||
'title'=>'Зона обслуживания абонентов',
|
'title'=>'Зона обслуживания абонентов',
|
||||||
),
|
),
|
||||||
'wifi'=>array(
|
'wifi'=>array(
|
||||||
'name'=>'Wi-Fi зоны',
|
'name'=>'Wi-Fi зоны',
|
||||||
'title'=>'Бесплатные Wi-Fi зоны г. Кириши',
|
'title'=>'Бесплатные Wi-Fi зоны г. Кириши',
|
||||||
),
|
),
|
||||||
'docs'=>array(
|
'docs'=>array(
|
||||||
'name'=>'Документы',
|
'name'=>'Документы',
|
||||||
'title'=>'Документы'
|
'title'=>'Документы'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Menu
|
class Menu
|
||||||
{
|
{
|
||||||
public $html=array();
|
public $html=array();
|
||||||
public $title='Error';
|
public $title='Error';
|
||||||
public $first_key=array();
|
public $first_key=array();
|
||||||
|
|
||||||
function __construct(Localization $lang, $uri_chunks)
|
function __construct(Localization $lang, $uri_chunks)
|
||||||
{
|
{
|
||||||
$menu_config = Config::$menu;
|
$menu_config = Config::$menu;
|
||||||
$this->first_key = array_key_first($menu_config);
|
$this->first_key = array_key_first($menu_config);
|
||||||
|
|
||||||
if(getenv('APPLICATION_ENV') != 'development'){
|
if(getenv('APPLICATION_ENV') != 'development'){
|
||||||
unset($menu_config['sqlite']);
|
unset($menu_config['sqlite']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->html='<ul class="menu">'.PHP_EOL;
|
$this->html='<ul class="menu">'.PHP_EOL;
|
||||||
|
|
||||||
//$qstr=trim($_SERVER['REQUEST_URI'],'/');
|
//$qstr=trim($_SERVER['REQUEST_URI'],'/');
|
||||||
$qstr='';
|
$qstr='';
|
||||||
if(isset($uri_chunks[0])){
|
if(isset($uri_chunks[0])){
|
||||||
$qstr=trim($uri_chunks[0],'/');
|
$qstr=trim($uri_chunks[0],'/');
|
||||||
}
|
}
|
||||||
foreach($menu_config as $link=>$val){
|
foreach($menu_config as $link=>$val){
|
||||||
$mname=$lang->translate($val['name']);
|
$mname=$lang->translate($val['name']);
|
||||||
$mtitle=$lang->translate($val['title']);
|
$mtitle=$lang->translate($val['title']);
|
||||||
$sel='';
|
$sel='';
|
||||||
if($qstr==$link){
|
if($qstr==$link){
|
||||||
$sel=' class="sel"';
|
$sel=' class="sel"';
|
||||||
$this->title=$mtitle; //$_TITLE
|
$this->title=$mtitle; //$_TITLE
|
||||||
}
|
}
|
||||||
|
|
||||||
$icon='empty';
|
$icon='empty';
|
||||||
if(isset($val['icon']) && !empty($val['icon'])) $icon=$val['icon'];
|
if(isset($val['icon']) && !empty($val['icon'])) $icon=$val['icon'];
|
||||||
$span='<span class="'.$icon.'"></span>';
|
$span='<span class="'.$icon.'"></span>';
|
||||||
$this->html.=' <li><a href="/'.$link.'/" title="'.$mtitle.'"'.$sel.'>'.$span.'<span class="mtxt">'.$mname.'</span></a>';
|
$this->html.=' <li><a href="/'.$link.'/" title="'.$mtitle.'"'.$sel.'>'.$span.'<span class="mtxt">'.$mname.'</span></a>';
|
||||||
if(!empty($val['submenu'])){
|
if(!empty($val['submenu'])){
|
||||||
$this->html.= PHP_EOL.' <ul class="submenu">'.PHP_EOL;
|
$this->html.= PHP_EOL.' <ul class="submenu">'.PHP_EOL;
|
||||||
foreach($val['submenu'] as $k=>$s){
|
foreach($val['submenu'] as $k=>$s){
|
||||||
$sname=$lang->translate($s['name']);
|
$sname=$lang->translate($s['name']);
|
||||||
$stitle=$lang->translate($s['title']);
|
$stitle=$lang->translate($s['title']);
|
||||||
|
|
||||||
$slink=$link.'/'.$k;
|
$slink=$link.'/'.$k;
|
||||||
$sl=$link.'_'.$k;
|
$sl=$link.'_'.$k;
|
||||||
$ssel='';
|
$ssel='';
|
||||||
if($qstr==$sl){
|
if($qstr==$sl){
|
||||||
$ssel=' class="sel"';
|
$ssel=' class="sel"';
|
||||||
$this->title=$stitle;
|
$this->title=$stitle;
|
||||||
}
|
}
|
||||||
$this->html.= ' <li><a href="/'.$slink.'/" title="'.$stitle.'"'.$ssel.'>'.$sname.'</a></li>'.PHP_EOL;
|
$this->html.= ' <li><a href="/'.$slink.'/" title="'.$stitle.'"'.$ssel.'>'.$sname.'</a></li>'.PHP_EOL;
|
||||||
}
|
}
|
||||||
$this->html.= ' </ul>'.PHP_EOL.' ';
|
$this->html.= ' </ul>'.PHP_EOL.' ';
|
||||||
}
|
}
|
||||||
$this->html.= '</li>'.PHP_EOL;
|
$this->html.= '</li>'.PHP_EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->html.='</ul>';
|
$this->html.='</ul>';
|
||||||
|
|
||||||
if($this->title=='Error'){
|
if($this->title=='Error'){
|
||||||
@@ -86,6 +86,6 @@ class Menu
|
|||||||
if(isset($other_titles[$qstr])){
|
if(isset($other_titles[$qstr])){
|
||||||
$this->title=$lang->translate($other_titles[$qstr]);
|
$this->title=$lang->translate($other_titles[$qstr]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
Всякие интересные фишки
|
Всякие интересные фишки
|
||||||
|
|
||||||
Экран загрузки с прелоадером и раздвигающимися шторками:
|
Экран загрузки с прелоадером и раздвигающимися шторками:
|
||||||
https://ihatetomatoes.net/create-custom-preloading-screen/
|
https://ihatetomatoes.net/create-custom-preloading-screen/
|
||||||
|
|
||||||
Прелоадер
|
Прелоадер
|
||||||
http://jsfiddle.net/s9oax2pp/
|
http://jsfiddle.net/s9oax2pp/
|
||||||
|
|
||||||
|
|||||||
@@ -1,45 +1,45 @@
|
|||||||
/* Eric Meyer's CSS Reset */
|
/* Eric Meyer's CSS Reset */
|
||||||
html, body, div, span, applet, object, iframe,
|
html, body, div, span, applet, object, iframe,
|
||||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
a, abbr, acronym, address, big, cite, code,
|
a, abbr, acronym, address, big, cite, code,
|
||||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
small, strike, strong, sub, sup, tt, var,
|
small, strike, strong, sub, sup, tt, var,
|
||||||
b, u, i, center,
|
b, u, i, center,
|
||||||
dl, dt, dd, ol, ul, li,
|
dl, dt, dd, ol, ul, li,
|
||||||
fieldset, form, label, legend,
|
fieldset, form, label, legend,
|
||||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
article, aside, canvas, details, embed,
|
article, aside, canvas, details, embed,
|
||||||
figure, figcaption, footer, header, hgroup,
|
figure, figcaption, footer, header, hgroup,
|
||||||
menu, nav, output, ruby, section, summary,
|
menu, nav, output, ruby, section, summary,
|
||||||
time, mark, audio, video {
|
time, mark, audio, video {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
font: inherit;
|
font: inherit;
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
/* HTML5 display-role reset for older browsers */
|
/* HTML5 display-role reset for older browsers */
|
||||||
article, aside, details, figcaption, figure,
|
article, aside, details, figcaption, figure,
|
||||||
footer, header, hgroup, menu, nav, section {
|
footer, header, hgroup, menu, nav, section {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
ol, ul {
|
ol, ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
blockquote, q {
|
blockquote, q {
|
||||||
quotes: none;
|
quotes: none;
|
||||||
}
|
}
|
||||||
blockquote:before, blockquote:after,
|
blockquote:before, blockquote:after,
|
||||||
q:before, q:after {
|
q:before, q:after {
|
||||||
content: '';
|
content: '';
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
table {
|
table {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
}
|
}
|
||||||
/* End of Eric Meyer's CSS Reset */
|
/* End of Eric Meyer's CSS Reset */
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,463 +1,463 @@
|
|||||||
div.menu {
|
div.menu {
|
||||||
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||||
background-color:#252526;
|
background-color:#252526;
|
||||||
}
|
}
|
||||||
ul.menu li a {
|
ul.menu li a {
|
||||||
color:rgba(255,255,255,0.7);
|
color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
ul.menu li a:hover span {
|
ul.menu li a:hover span {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
ul.menu a.sel span {
|
ul.menu a.sel span {
|
||||||
color:#7cdcf0;
|
color:#7cdcf0;
|
||||||
}
|
}
|
||||||
ul.menu a:active span {
|
ul.menu a:active span {
|
||||||
color:red !important;
|
color:red !important;
|
||||||
}
|
}
|
||||||
main {
|
main {
|
||||||
background-color:#1e1e1e;
|
background-color:#1e1e1e;
|
||||||
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||||
border-right:1px solid #222;
|
border-right:1px solid #222;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.closer {
|
.closer {
|
||||||
border:1px solid black;
|
border:1px solid black;
|
||||||
background-color:#333;
|
background-color:#333;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
border-bottom: 5px solid #0F83A0;
|
border-bottom: 5px solid #0F83A0;
|
||||||
background-color:#252526;
|
background-color:#252526;
|
||||||
}
|
}
|
||||||
.header li {
|
.header li {
|
||||||
border-right:1px solid #222;
|
border-right:1px solid #222;
|
||||||
}
|
}
|
||||||
.header li.mhome a {
|
.header li.mhome a {
|
||||||
background-color: #0F83A0;
|
background-color: #0F83A0;
|
||||||
}
|
}
|
||||||
.header li a {
|
.header li a {
|
||||||
color: #D5D5D5;
|
color: #D5D5D5;
|
||||||
text-shadow: 0 1px 1px black;
|
text-shadow: 0 1px 1px black;
|
||||||
border-left: 1px solid #383838;
|
border-left: 1px solid #383838;
|
||||||
}
|
}
|
||||||
.header #title {
|
.header #title {
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.asplit #cdown {
|
.asplit #cdown {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tsimple thead th, .tsimple thead td {
|
.tsimple thead th, .tsimple thead td {
|
||||||
border-bottom:3px solid #337ab7;
|
border-bottom:3px solid #337ab7;
|
||||||
}
|
}
|
||||||
.tsimple tbody td {
|
.tsimple tbody td {
|
||||||
border-bottom:1px solid #777;
|
border-bottom:1px solid #777;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:nth-child(2n){
|
.tsimple tbody tr:nth-child(2n){
|
||||||
background-color: #333;
|
background-color: #333;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:nth-child(2n):hover {
|
.tsimple tbody tr:nth-child(2n):hover {
|
||||||
background-color:rgba(255,255,255,0.4);
|
background-color:rgba(255,255,255,0.4);
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:hover {
|
.tsimple tbody tr:hover {
|
||||||
background-color:rgba(255,255,255,0.3);
|
background-color:rgba(255,255,255,0.3);
|
||||||
}
|
}
|
||||||
.tsimple tbody tr.del {
|
.tsimple tbody tr.del {
|
||||||
background-color: #ffe6e6;
|
background-color: #ffe6e6;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr.del:nth-child(2n) {
|
.tsimple tbody tr.del:nth-child(2n) {
|
||||||
background-color:#fde3e3;
|
background-color:#fde3e3;
|
||||||
}
|
}
|
||||||
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
||||||
border-top:2px solid #d1e7f3;
|
border-top:2px solid #d1e7f3;
|
||||||
}
|
}
|
||||||
.tsimple tr.sel td {
|
.tsimple tr.sel td {
|
||||||
background-color:rgba(255,255,255,0.2);
|
background-color:rgba(255,255,255,0.2);
|
||||||
}
|
}
|
||||||
.tsimple tr.helper:hover {
|
.tsimple tr.helper:hover {
|
||||||
background-color:rgba(255,255,255,0.2);
|
background-color:rgba(255,255,255,0.2);
|
||||||
}
|
}
|
||||||
span.icon-cnt:hover .icon-play,
|
span.icon-cnt:hover .icon-play,
|
||||||
span.icon-cnt:hover .icon-stop,
|
span.icon-cnt:hover .icon-stop,
|
||||||
.icon-cancel:hover,
|
.icon-cancel:hover,
|
||||||
.icon-cog:hover,
|
.icon-cog:hover,
|
||||||
.icon-arrows-cw:hover,
|
.icon-arrows-cw:hover,
|
||||||
.icon-download:hover,
|
.icon-download:hover,
|
||||||
.icon-export:hover {
|
.icon-export:hover {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
span.icon-desktop {
|
span.icon-desktop {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
span.icon-desktop:hover {
|
span.icon-desktop:hover {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
span.icon-spin6 {
|
span.icon-spin6 {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
tr.busy .jstatus,
|
tr.busy .jstatus,
|
||||||
tr.busy.s-on .jstatus,
|
tr.busy.s-on .jstatus,
|
||||||
tr.busy.s-off .jstatus {
|
tr.busy.s-off .jstatus {
|
||||||
background-color:Lavender !important;
|
background-color:Lavender !important;
|
||||||
}
|
}
|
||||||
tr.s-on td.jstatus {
|
tr.s-on td.jstatus {
|
||||||
background-color:rgba(0,200,0,0.1);
|
background-color:rgba(0,200,0,0.1);
|
||||||
}
|
}
|
||||||
tr.s-off td.jstatus {
|
tr.s-off td.jstatus {
|
||||||
background-color:rgba(200,0,0,0.1);
|
background-color:rgba(200,0,0,0.1);
|
||||||
}
|
}
|
||||||
tr.maintenance td {
|
tr.maintenance td {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
tr.maintenance td.jstatus {
|
tr.maintenance td.jstatus {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
}
|
}
|
||||||
.tsimple .icon-lock {
|
.tsimple .icon-lock {
|
||||||
color:silver;
|
color:silver;
|
||||||
}
|
}
|
||||||
.vnc-grey {
|
.vnc-grey {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.vnc-wait {
|
.vnc-wait {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
#content h1 {
|
#content h1 {
|
||||||
color:#7cdcf0;
|
color:#7cdcf0;
|
||||||
}
|
}
|
||||||
dialog {
|
dialog {
|
||||||
border:1px solid rgba(0,0,0,.3);
|
border:1px solid rgba(0,0,0,.3);
|
||||||
background-color:#444;
|
background-color:#444;
|
||||||
}
|
}
|
||||||
dialog::backdrop,
|
dialog::backdrop,
|
||||||
#backdrop {
|
#backdrop {
|
||||||
background:rgba(0,0,0,.5);
|
background:rgba(0,0,0,.5);
|
||||||
}
|
}
|
||||||
dialog .panel {
|
dialog .panel {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-box {
|
.window-box {
|
||||||
/*border:1px solid #6f7579;*/
|
/*border:1px solid #6f7579;*/
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
.window-box .close-but {
|
.window-box .close-but {
|
||||||
background-color:#555;
|
background-color:#555;
|
||||||
}
|
}
|
||||||
.window-box .buttons {
|
.window-box .buttons {
|
||||||
background-color:#555;
|
background-color:#555;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
.buttons .button {
|
.buttons .button {
|
||||||
color:white;
|
color:white;
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
text-shadow:1px 1px 2px black;
|
text-shadow:1px 1px 2px black;
|
||||||
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
||||||
}
|
}
|
||||||
.buttons .button.red {
|
.buttons .button.red {
|
||||||
background-color:coral;
|
background-color:coral;
|
||||||
text-shadow:1px 1px 2px black;
|
text-shadow:1px 1px 2px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-box h1 {
|
.window-box h1 {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box h2 {
|
.window-box h2 {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box h3 {
|
.window-box h3 {
|
||||||
border-bottom:3px solid #387db6;
|
border-bottom:3px solid #387db6;
|
||||||
}
|
}
|
||||||
.window-box h3 small {
|
.window-box h3 small {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box .mrow {
|
.window-box .mrow {
|
||||||
border-bottom:1px dotted silver;
|
border-bottom:1px dotted silver;
|
||||||
}
|
}
|
||||||
.window-box .mrow small {
|
.window-box .mrow small {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box .mrow.installed,
|
.window-box .mrow.installed,
|
||||||
.window-box .mrow.installed small {
|
.window-box .mrow.installed small {
|
||||||
color:silver;
|
color:silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win fieldset {
|
form.win fieldset {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
}
|
}
|
||||||
form.win input[type="text"]:required,
|
form.win input[type="text"]:required,
|
||||||
form.win input[type="email"]:required,
|
form.win input[type="email"]:required,
|
||||||
form.win input[type="password"]:required {
|
form.win input[type="password"]:required {
|
||||||
background-color:#fef7f7;
|
background-color:#fef7f7;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
form.win input[type="text"]:valid,
|
form.win input[type="text"]:valid,
|
||||||
form.win input[type="email"]:valid,
|
form.win input[type="email"]:valid,
|
||||||
form.win input[type="password"]:valid {
|
form.win input[type="password"]:valid {
|
||||||
border:1px solid green;
|
border:1px solid green;
|
||||||
background-color:Honeydew;
|
background-color:Honeydew;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win input[type="email"]:invalid,
|
form.win input[type="email"]:invalid,
|
||||||
form.win input[type="password"]:invalid {
|
form.win input[type="password"]:invalid {
|
||||||
background-color:#fef7f7;
|
background-color:#fef7f7;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=checkbox]:checked + label,
|
input[type=checkbox]:checked + label,
|
||||||
input[type=radio]:checked + label {
|
input[type=radio]:checked + label {
|
||||||
color:#c3622c;
|
color:#c3622c;
|
||||||
}
|
}
|
||||||
form.helper fieldset label {
|
form.helper fieldset label {
|
||||||
color:black !important;
|
color:black !important;
|
||||||
}
|
}
|
||||||
form.win .field-name {
|
form.win .field-name {
|
||||||
color:#43c990;
|
color:#43c990;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inp_comment {
|
.inp_comment {
|
||||||
color:red;
|
color:red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cbsd-str {
|
.cbsd-str {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.cbsd-cmd {
|
.cbsd-cmd {
|
||||||
color:darkred;
|
color:darkred;
|
||||||
}
|
}
|
||||||
.cbsd-lnch {
|
.cbsd-lnch {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
td.progress {
|
td.progress {
|
||||||
background-color:LemonChiffon;
|
background-color:LemonChiffon;
|
||||||
}
|
}
|
||||||
td.ok {
|
td.ok {
|
||||||
background-color:rgba(0,200,0,0.1);
|
background-color:rgba(0,200,0,0.1);
|
||||||
}
|
}
|
||||||
td.error {
|
td.error {
|
||||||
background-color:rgba(200,0,0,0.1);
|
background-color:rgba(200,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-content .helpers-list li {
|
.window-content .helpers-list li {
|
||||||
border-bottom:1px dotted silver;
|
border-bottom:1px dotted silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
#config-menu ul
|
#config-menu ul
|
||||||
{
|
{
|
||||||
/*border:1px solid gray;*/
|
/*border:1px solid gray;*/
|
||||||
background-color:black;
|
background-color:black;
|
||||||
}
|
}
|
||||||
#config-menu li:hover {
|
#config-menu li:hover {
|
||||||
/* background:#f0f0f0;
|
/* background:#f0f0f0;
|
||||||
*/
|
*/
|
||||||
background:#073642;
|
background:#073642;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
#config-menu .menu-cog {
|
#config-menu .menu-cog {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
/*border:1px solid gray;*/
|
/*border:1px solid gray;*/
|
||||||
background-color:black;
|
background-color:black;
|
||||||
}
|
}
|
||||||
|
|
||||||
span.top-button {
|
span.top-button {
|
||||||
color: white;
|
color: white;
|
||||||
background-color: #337ab7;
|
background-color: #337ab7;
|
||||||
text-shadow: 1px 1px 2px black;
|
text-shadow: 1px 1px 2px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.noty_bar {
|
.noty_bar {
|
||||||
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.spinner {
|
.spinner {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.warning {
|
.warning {
|
||||||
background-color:#fff0f0;
|
background-color:#fff0f0;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.helper {
|
form.helper {
|
||||||
border:1px solid gray;
|
border:1px solid gray;
|
||||||
background-color:#fafafa;
|
background-color:#fafafa;
|
||||||
box-shadow:3px 3px 6px rgba(0,0,0,0.4);
|
box-shadow:3px 3px 6px rgba(0,0,0,0.4);
|
||||||
}
|
}
|
||||||
form.helper div.form-field + h1 {
|
form.helper div.form-field + h1 {
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
form.helper h1 {
|
form.helper h1 {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
color:gray !important;
|
color:gray !important;
|
||||||
border-bottom:1px solid #ccc;
|
border-bottom:1px solid #ccc;
|
||||||
}
|
}
|
||||||
form.helper .buttons {
|
form.helper .buttons {
|
||||||
background:#f0f0f0;
|
background:#f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
form.helper fieldset {
|
form.helper fieldset {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=range]::-moz-range-track {
|
input[type=range]::-moz-range-track {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
.range input[type="text"]:disabled {
|
.range input[type="text"]:disabled {
|
||||||
background-color:#fcfcfc;
|
background-color:#fcfcfc;
|
||||||
color:black;
|
color:black;
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.online, .offline {
|
.online, .offline {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.online:before {color:green;}
|
.online:before {color:green;}
|
||||||
.offline:before {color:red;}
|
.offline:before {color:red;}
|
||||||
|
|
||||||
.uploader .browser label {
|
.uploader .browser label {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
color:white;
|
color:white;
|
||||||
box-shadow:2px 2px 2px #888888;
|
box-shadow:2px 2px 2px #888888;
|
||||||
}
|
}
|
||||||
.uploader div.browser input {
|
.uploader div.browser input {
|
||||||
border:solid transparent;
|
border:solid transparent;
|
||||||
}
|
}
|
||||||
.uploader-progress {
|
.uploader-progress {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.uploader-progress .file {
|
.uploader-progress .file {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
margin-top:4px;
|
margin-top:4px;
|
||||||
}
|
}
|
||||||
.uploader-progress .line {
|
.uploader-progress .line {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
#debug {
|
#debug {
|
||||||
border:3px double red;
|
border:3px double red;
|
||||||
background-color:antiquewhite;
|
background-color:antiquewhite;
|
||||||
}
|
}
|
||||||
#debug h1 {
|
#debug h1 {
|
||||||
background:darkred;
|
background:darkred;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.login-area {
|
div.login-area {
|
||||||
background-color:rgba(0,0,0,0.9);
|
background-color:rgba(0,0,0,0.9);
|
||||||
}
|
}
|
||||||
dialog .login-header {
|
dialog .login-header {
|
||||||
background-color:#e0e0e0;
|
background-color:#e0e0e0;
|
||||||
color:#347ab7;
|
color:#347ab7;
|
||||||
border-bottom:1px solid silver;
|
border-bottom:1px solid silver;
|
||||||
}
|
}
|
||||||
.ccopy {
|
.ccopy {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.login-wait {
|
.login-wait {
|
||||||
background-color:rgba(255,255,255,0.9);
|
background-color:rgba(255,255,255,0.9);
|
||||||
}
|
}
|
||||||
.login-error-nouser {
|
.login-error-nouser {
|
||||||
color:red;
|
color:red;
|
||||||
background-color:rgba(255,250,250,0.9);
|
background-color:rgba(255,250,250,0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadersmall {
|
.loadersmall {
|
||||||
border:5px solid #f3f3f3;
|
border:5px solid #f3f3f3;
|
||||||
border-top:5px solid #555;
|
border-top:5px solid #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.smoothie-chart-tooltip {
|
div.smoothie-chart-tooltip {
|
||||||
background: #d0d0d0; /* #fcfccc; */
|
background: #d0d0d0; /* #fcfccc; */
|
||||||
color: black;
|
color: black;
|
||||||
box-shadow:3px 3px 3px 0px rgba(0,0,0,0.2);
|
box-shadow:3px 3px 3px 0px rgba(0,0,0,0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
body.overview div.smoothie-chart-tooltip {
|
body.overview div.smoothie-chart-tooltip {
|
||||||
background:#3a3a3a;
|
background:#3a3a3a;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.smoothie-chart-tooltip .black {
|
.smoothie-chart-tooltip .black {
|
||||||
background-color:#3a3a3a;
|
background-color:#3a3a3a;
|
||||||
}
|
}
|
||||||
.smoothie-chart-tooltip .black .time {
|
.smoothie-chart-tooltip .black .time {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.asplit #cdown {
|
.asplit #cdown {
|
||||||
background-color:#444;
|
background-color:#444;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
box-shadow:inset 0 2px 4px 0px rgba(0,0,0,0.1);
|
box-shadow:inset 0 2px 4px 0px rgba(0,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#cinfo h2 {
|
#cinfo h2 {
|
||||||
color:#7cdcf0;
|
color:#7cdcf0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.copys {
|
.copys {
|
||||||
background-color:rgba(255,255,255,0.7);
|
background-color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
dl#summaryInfo dt {
|
dl#summaryInfo dt {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
|
|
||||||
header .top-right {
|
header .top-right {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
header .top-right a {
|
header .top-right a {
|
||||||
color:#FFFAA0;
|
color:#FFFAA0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.summary_table {
|
.summary_table {
|
||||||
font-size:9pt;
|
font-size:9pt;
|
||||||
}
|
}
|
||||||
.summary_table td {
|
.summary_table td {
|
||||||
border-bottom:1px solid rgba(255,255,255,0.2);
|
border-bottom:1px solid rgba(255,255,255,0.2);
|
||||||
}
|
}
|
||||||
.summary_table tr td:first-child {
|
.summary_table tr td:first-child {
|
||||||
padding-right:10px;
|
padding-right:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#menu .icon-chart-bar:before {
|
#menu .icon-chart-bar:before {
|
||||||
color:rgba(255,100,100,0.7);
|
color:rgba(255,100,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-server:before {
|
#menu .icon-server:before {
|
||||||
color:rgba(100,255,100,0.7);
|
color:rgba(100,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-cubes:before {
|
#menu .icon-cubes:before {
|
||||||
color:rgba(100,100,255,0.7);
|
color:rgba(100,100,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-th-list:before {
|
#menu .icon-th-list:before {
|
||||||
color:rgba(100,255,255,0.7);
|
color:rgba(100,255,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-plug:before {
|
#menu .icon-plug:before {
|
||||||
color:rgba(255,100,255,0.7);
|
color:rgba(255,100,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-key:before {
|
#menu .icon-key:before {
|
||||||
color:rgba(255,255,100,0.7);
|
color:rgba(255,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-inbox:before {
|
#menu .icon-inbox:before {
|
||||||
color:rgba(100,255,100,0.7);
|
color:rgba(100,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-upload:before {
|
#menu .icon-upload:before {
|
||||||
color:rgba(255,100,100,0.7);
|
color:rgba(255,100,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-database:before {
|
#menu .icon-database:before {
|
||||||
color:rgba(100,255,100,0.7);
|
color:rgba(100,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-edit:before {
|
#menu .icon-edit:before {
|
||||||
color:rgba(255,100,255,0.7);
|
color:rgba(255,100,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-list-alt:before {
|
#menu .icon-list-alt:before {
|
||||||
color:rgba(255,255,255,0.7);
|
color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-wpforms:before {
|
#menu .icon-wpforms:before {
|
||||||
|
|||||||
@@ -1,460 +1,460 @@
|
|||||||
div.menu {
|
div.menu {
|
||||||
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||||
background-color:#252526;
|
background-color:#252526;
|
||||||
}
|
}
|
||||||
ul.menu li a {
|
ul.menu li a {
|
||||||
color:rgba(255,255,255,0.7);
|
color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
ul.menu li a:hover span {
|
ul.menu li a:hover span {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
ul.menu a.sel span {
|
ul.menu a.sel span {
|
||||||
color:#7cdcf0;
|
color:#7cdcf0;
|
||||||
}
|
}
|
||||||
ul.menu a:active span {
|
ul.menu a:active span {
|
||||||
color:red !important;
|
color:red !important;
|
||||||
}
|
}
|
||||||
main {
|
main {
|
||||||
background-color:#1e1e1e;
|
background-color:#1e1e1e;
|
||||||
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||||
border-right:1px solid #222;
|
border-right:1px solid #222;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.closer {
|
.closer {
|
||||||
border:1px solid black;
|
border:1px solid black;
|
||||||
background-color:#333;
|
background-color:#333;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
border-bottom: 5px solid #0F83A0;
|
border-bottom: 5px solid #0F83A0;
|
||||||
background-color:#252526;
|
background-color:#252526;
|
||||||
}
|
}
|
||||||
.header li {
|
.header li {
|
||||||
border-right:1px solid #222;
|
border-right:1px solid #222;
|
||||||
}
|
}
|
||||||
.header li.mhome a {
|
.header li.mhome a {
|
||||||
background-color: #0F83A0;
|
background-color: #0F83A0;
|
||||||
}
|
}
|
||||||
.header li a {
|
.header li a {
|
||||||
color: #D5D5D5;
|
color: #D5D5D5;
|
||||||
text-shadow: 0 1px 1px black;
|
text-shadow: 0 1px 1px black;
|
||||||
border-left: 1px solid #383838;
|
border-left: 1px solid #383838;
|
||||||
}
|
}
|
||||||
.header #title {
|
.header #title {
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.asplit #cdown {
|
.asplit #cdown {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tsimple thead th, .tsimple thead td {
|
.tsimple thead th, .tsimple thead td {
|
||||||
border-bottom:3px solid #337ab7;
|
border-bottom:3px solid #337ab7;
|
||||||
}
|
}
|
||||||
.tsimple tbody td {
|
.tsimple tbody td {
|
||||||
border-bottom:1px solid #777;
|
border-bottom:1px solid #777;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:nth-child(2n){
|
.tsimple tbody tr:nth-child(2n){
|
||||||
background-color: #333;
|
background-color: #333;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:nth-child(2n):hover {
|
.tsimple tbody tr:nth-child(2n):hover {
|
||||||
background-color:rgba(255,255,255,0.4);
|
background-color:rgba(255,255,255,0.4);
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:hover {
|
.tsimple tbody tr:hover {
|
||||||
background-color:rgba(255,255,255,0.3);
|
background-color:rgba(255,255,255,0.3);
|
||||||
}
|
}
|
||||||
.tsimple tbody tr.del {
|
.tsimple tbody tr.del {
|
||||||
background-color: #ffe6e6;
|
background-color: #ffe6e6;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr.del:nth-child(2n) {
|
.tsimple tbody tr.del:nth-child(2n) {
|
||||||
background-color:#fde3e3;
|
background-color:#fde3e3;
|
||||||
}
|
}
|
||||||
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
||||||
border-top:2px solid #d1e7f3;
|
border-top:2px solid #d1e7f3;
|
||||||
}
|
}
|
||||||
.tsimple tr.sel td {
|
.tsimple tr.sel td {
|
||||||
background-color:rgba(255,255,255,0.2);
|
background-color:rgba(255,255,255,0.2);
|
||||||
}
|
}
|
||||||
.tsimple tr.helper:hover {
|
.tsimple tr.helper:hover {
|
||||||
background-color:rgba(255,255,255,0.2);
|
background-color:rgba(255,255,255,0.2);
|
||||||
}
|
}
|
||||||
span.icon-cnt:hover .icon-play,
|
span.icon-cnt:hover .icon-play,
|
||||||
span.icon-cnt:hover .icon-stop,
|
span.icon-cnt:hover .icon-stop,
|
||||||
.icon-cancel:hover,
|
.icon-cancel:hover,
|
||||||
.icon-cog:hover,
|
.icon-cog:hover,
|
||||||
.icon-arrows-cw:hover,
|
.icon-arrows-cw:hover,
|
||||||
.icon-download:hover,
|
.icon-download:hover,
|
||||||
.icon-export:hover {
|
.icon-export:hover {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
span.icon-desktop {
|
span.icon-desktop {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
span.icon-desktop:hover {
|
span.icon-desktop:hover {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
span.icon-spin6 {
|
span.icon-spin6 {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
tr.busy .jstatus,
|
tr.busy .jstatus,
|
||||||
tr.busy.s-on .jstatus,
|
tr.busy.s-on .jstatus,
|
||||||
tr.busy.s-off .jstatus {
|
tr.busy.s-off .jstatus {
|
||||||
background-color:Lavender !important;
|
background-color:Lavender !important;
|
||||||
}
|
}
|
||||||
tr.s-on td.jstatus {
|
tr.s-on td.jstatus {
|
||||||
background-color:rgba(0,200,0,0.1);
|
background-color:rgba(0,200,0,0.1);
|
||||||
}
|
}
|
||||||
tr.s-off td.jstatus {
|
tr.s-off td.jstatus {
|
||||||
background-color:rgba(200,0,0,0.1);
|
background-color:rgba(200,0,0,0.1);
|
||||||
}
|
}
|
||||||
tr.maintenance td {
|
tr.maintenance td {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
tr.maintenance td.jstatus {
|
tr.maintenance td.jstatus {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
}
|
}
|
||||||
.tsimple .icon-lock {
|
.tsimple .icon-lock {
|
||||||
color:silver;
|
color:silver;
|
||||||
}
|
}
|
||||||
.vnc-grey {
|
.vnc-grey {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.vnc-wait {
|
.vnc-wait {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
#content h1 {
|
#content h1 {
|
||||||
color:#7cdcf0;
|
color:#7cdcf0;
|
||||||
}
|
}
|
||||||
dialog {
|
dialog {
|
||||||
border:1px solid rgba(0,0,0,.3);
|
border:1px solid rgba(0,0,0,.3);
|
||||||
background-color:#444;
|
background-color:#444;
|
||||||
}
|
}
|
||||||
dialog::backdrop,
|
dialog::backdrop,
|
||||||
#backdrop {
|
#backdrop {
|
||||||
background:rgba(0,0,0,.5);
|
background:rgba(0,0,0,.5);
|
||||||
}
|
}
|
||||||
dialog .panel {
|
dialog .panel {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-box {
|
.window-box {
|
||||||
border:1px solid #6f7579;
|
border:1px solid #6f7579;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
.window-box .close-but {
|
.window-box .close-but {
|
||||||
background-color:#555;
|
background-color:#555;
|
||||||
}
|
}
|
||||||
.window-box .buttons {
|
.window-box .buttons {
|
||||||
background-color:#555;
|
background-color:#555;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
.buttons .button {
|
.buttons .button {
|
||||||
color:white;
|
color:white;
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
text-shadow:1px 1px 2px black;
|
text-shadow:1px 1px 2px black;
|
||||||
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
||||||
}
|
}
|
||||||
.buttons .button.red {
|
.buttons .button.red {
|
||||||
background-color:coral;
|
background-color:coral;
|
||||||
text-shadow:1px 1px 2px black;
|
text-shadow:1px 1px 2px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-box h1 {
|
.window-box h1 {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box h2 {
|
.window-box h2 {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box h3 {
|
.window-box h3 {
|
||||||
border-bottom:3px solid #387db6;
|
border-bottom:3px solid #387db6;
|
||||||
}
|
}
|
||||||
.window-box h3 small {
|
.window-box h3 small {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box .mrow {
|
.window-box .mrow {
|
||||||
border-bottom:1px dotted silver;
|
border-bottom:1px dotted silver;
|
||||||
}
|
}
|
||||||
.window-box .mrow small {
|
.window-box .mrow small {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box .mrow.installed,
|
.window-box .mrow.installed,
|
||||||
.window-box .mrow.installed small {
|
.window-box .mrow.installed small {
|
||||||
color:silver;
|
color:silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win fieldset {
|
form.win fieldset {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
}
|
}
|
||||||
form.win input[type="text"]:required,
|
form.win input[type="text"]:required,
|
||||||
form.win input[type="email"]:required,
|
form.win input[type="email"]:required,
|
||||||
form.win input[type="password"]:required {
|
form.win input[type="password"]:required {
|
||||||
background-color:#fef7f7;
|
background-color:#fef7f7;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
form.win input[type="text"]:valid,
|
form.win input[type="text"]:valid,
|
||||||
form.win input[type="email"]:valid,
|
form.win input[type="email"]:valid,
|
||||||
form.win input[type="password"]:valid {
|
form.win input[type="password"]:valid {
|
||||||
border:1px solid green;
|
border:1px solid green;
|
||||||
background-color:Honeydew;
|
background-color:Honeydew;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win input[type="email"]:invalid,
|
form.win input[type="email"]:invalid,
|
||||||
form.win input[type="password"]:invalid {
|
form.win input[type="password"]:invalid {
|
||||||
background-color:#fef7f7;
|
background-color:#fef7f7;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=checkbox]:checked + label,
|
input[type=checkbox]:checked + label,
|
||||||
input[type=radio]:checked + label {
|
input[type=radio]:checked + label {
|
||||||
color:#c3622c;
|
color:#c3622c;
|
||||||
}
|
}
|
||||||
form.helper fieldset label {
|
form.helper fieldset label {
|
||||||
color:black !important;
|
color:black !important;
|
||||||
}
|
}
|
||||||
form.win .field-name {
|
form.win .field-name {
|
||||||
color:#43c990;
|
color:#43c990;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inp_comment {
|
.inp_comment {
|
||||||
color:red;
|
color:red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cbsd-str {
|
.cbsd-str {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.cbsd-cmd {
|
.cbsd-cmd {
|
||||||
color:darkred;
|
color:darkred;
|
||||||
}
|
}
|
||||||
.cbsd-lnch {
|
.cbsd-lnch {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
td.progress {
|
td.progress {
|
||||||
background-color:LemonChiffon;
|
background-color:LemonChiffon;
|
||||||
}
|
}
|
||||||
td.ok {
|
td.ok {
|
||||||
background-color:rgba(0,200,0,0.1);
|
background-color:rgba(0,200,0,0.1);
|
||||||
}
|
}
|
||||||
td.error {
|
td.error {
|
||||||
background-color:rgba(200,0,0,0.1);
|
background-color:rgba(200,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-content .helpers-list li {
|
.window-content .helpers-list li {
|
||||||
border-bottom:1px dotted silver;
|
border-bottom:1px dotted silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
#config-menu ul
|
#config-menu ul
|
||||||
{
|
{
|
||||||
border:1px solid gray;
|
border:1px solid gray;
|
||||||
background-color:black;
|
background-color:black;
|
||||||
}
|
}
|
||||||
#config-menu li:hover {
|
#config-menu li:hover {
|
||||||
/* background:#f0f0f0;
|
/* background:#f0f0f0;
|
||||||
*/
|
*/
|
||||||
background:#073642;
|
background:#073642;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
#config-menu .menu-cog {
|
#config-menu .menu-cog {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
border:1px solid gray;
|
border:1px solid gray;
|
||||||
background-color:black;
|
background-color:black;
|
||||||
}
|
}
|
||||||
|
|
||||||
span.top-button {
|
span.top-button {
|
||||||
color: white;
|
color: white;
|
||||||
background-color: #337ab7;
|
background-color: #337ab7;
|
||||||
text-shadow: 1px 1px 2px black;
|
text-shadow: 1px 1px 2px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.noty_bar {
|
.noty_bar {
|
||||||
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.spinner {
|
.spinner {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.warning {
|
.warning {
|
||||||
background-color:#fff0f0;
|
background-color:#fff0f0;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.helper {
|
form.helper {
|
||||||
border:1px solid gray;
|
border:1px solid gray;
|
||||||
background-color:#fafafa;
|
background-color:#fafafa;
|
||||||
box-shadow:3px 3px 6px rgba(0,0,0,0.4);
|
box-shadow:3px 3px 6px rgba(0,0,0,0.4);
|
||||||
}
|
}
|
||||||
form.helper div.form-field + h1 {
|
form.helper div.form-field + h1 {
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
form.helper h1 {
|
form.helper h1 {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
color:gray !important;
|
color:gray !important;
|
||||||
border-bottom:1px solid #ccc;
|
border-bottom:1px solid #ccc;
|
||||||
}
|
}
|
||||||
form.helper .buttons {
|
form.helper .buttons {
|
||||||
background:#f0f0f0;
|
background:#f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
form.helper fieldset {
|
form.helper fieldset {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=range]::-moz-range-track {
|
input[type=range]::-moz-range-track {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
.range input[type="text"]:disabled {
|
.range input[type="text"]:disabled {
|
||||||
background-color:#fcfcfc;
|
background-color:#fcfcfc;
|
||||||
color:black;
|
color:black;
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.online, .offline {
|
.online, .offline {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.online:before {color:green;}
|
.online:before {color:green;}
|
||||||
.offline:before {color:red;}
|
.offline:before {color:red;}
|
||||||
|
|
||||||
.uploader .browser label {
|
.uploader .browser label {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
color:white;
|
color:white;
|
||||||
box-shadow:2px 2px 2px #888888;
|
box-shadow:2px 2px 2px #888888;
|
||||||
}
|
}
|
||||||
.uploader div.browser input {
|
.uploader div.browser input {
|
||||||
border:solid transparent;
|
border:solid transparent;
|
||||||
}
|
}
|
||||||
.uploader-progress {
|
.uploader-progress {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.uploader-progress .file {
|
.uploader-progress .file {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
margin-top:4px;
|
margin-top:4px;
|
||||||
}
|
}
|
||||||
.uploader-progress .line {
|
.uploader-progress .line {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
#debug {
|
#debug {
|
||||||
border:3px double red;
|
border:3px double red;
|
||||||
background-color:antiquewhite;
|
background-color:antiquewhite;
|
||||||
}
|
}
|
||||||
#debug h1 {
|
#debug h1 {
|
||||||
background:darkred;
|
background:darkred;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.login-area {
|
div.login-area {
|
||||||
background-color:rgba(0,0,0,0.9);
|
background-color:rgba(0,0,0,0.9);
|
||||||
}
|
}
|
||||||
dialog .login-header {
|
dialog .login-header {
|
||||||
background-color:#e0e0e0;
|
background-color:#e0e0e0;
|
||||||
color:#347ab7;
|
color:#347ab7;
|
||||||
border-bottom:1px solid silver;
|
border-bottom:1px solid silver;
|
||||||
}
|
}
|
||||||
.ccopy {
|
.ccopy {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.login-wait {
|
.login-wait {
|
||||||
background-color:rgba(255,255,255,0.9);
|
background-color:rgba(255,255,255,0.9);
|
||||||
}
|
}
|
||||||
.login-error-nouser {
|
.login-error-nouser {
|
||||||
color:red;
|
color:red;
|
||||||
background-color:rgba(255,250,250,0.9);
|
background-color:rgba(255,250,250,0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadersmall {
|
.loadersmall {
|
||||||
border:5px solid #f3f3f3;
|
border:5px solid #f3f3f3;
|
||||||
border-top:5px solid #555;
|
border-top:5px solid #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.smoothie-chart-tooltip {
|
div.smoothie-chart-tooltip {
|
||||||
background: #d0d0d0; /* #fcfccc; */
|
background: #d0d0d0; /* #fcfccc; */
|
||||||
color: black;
|
color: black;
|
||||||
box-shadow:3px 3px 3px 0px rgba(0,0,0,0.2);
|
box-shadow:3px 3px 3px 0px rgba(0,0,0,0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
body.overview div.smoothie-chart-tooltip {
|
body.overview div.smoothie-chart-tooltip {
|
||||||
background:#3a3a3a;
|
background:#3a3a3a;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.smoothie-chart-tooltip .black {
|
.smoothie-chart-tooltip .black {
|
||||||
background-color:#3a3a3a;
|
background-color:#3a3a3a;
|
||||||
}
|
}
|
||||||
.smoothie-chart-tooltip .black .time {
|
.smoothie-chart-tooltip .black .time {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.asplit #cdown {
|
.asplit #cdown {
|
||||||
background-color:#444;
|
background-color:#444;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
box-shadow:inset 0 2px 4px 0px rgba(0,0,0,0.1);
|
box-shadow:inset 0 2px 4px 0px rgba(0,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#cinfo h2 {
|
#cinfo h2 {
|
||||||
color:#7cdcf0;
|
color:#7cdcf0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.copys {
|
.copys {
|
||||||
background-color:rgba(255,255,255,0.7);
|
background-color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
dl#summaryInfo dt {
|
dl#summaryInfo dt {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
|
|
||||||
header .top-right {
|
header .top-right {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.summary_table {
|
.summary_table {
|
||||||
font-size:9pt;
|
font-size:9pt;
|
||||||
}
|
}
|
||||||
.summary_table td {
|
.summary_table td {
|
||||||
border-bottom:1px solid rgba(255,255,255,0.2);
|
border-bottom:1px solid rgba(255,255,255,0.2);
|
||||||
}
|
}
|
||||||
.summary_table tr td:first-child {
|
.summary_table tr td:first-child {
|
||||||
padding-right:10px;
|
padding-right:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#menu .icon-chart-bar:before {
|
#menu .icon-chart-bar:before {
|
||||||
color:rgba(255,100,100,0.7);
|
color:rgba(255,100,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-server:before {
|
#menu .icon-server:before {
|
||||||
color:rgba(100,255,100,0.7);
|
color:rgba(100,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-cubes:before {
|
#menu .icon-cubes:before {
|
||||||
color:rgba(100,100,255,0.7);
|
color:rgba(100,100,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-th-list:before {
|
#menu .icon-th-list:before {
|
||||||
color:rgba(100,255,255,0.7);
|
color:rgba(100,255,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-plug:before {
|
#menu .icon-plug:before {
|
||||||
color:rgba(255,100,255,0.7);
|
color:rgba(255,100,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-key:before {
|
#menu .icon-key:before {
|
||||||
color:rgba(255,255,100,0.7);
|
color:rgba(255,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-inbox:before {
|
#menu .icon-inbox:before {
|
||||||
color:rgba(100,255,100,0.7);
|
color:rgba(100,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-upload:before {
|
#menu .icon-upload:before {
|
||||||
color:rgba(255,100,100,0.7);
|
color:rgba(255,100,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-database:before {
|
#menu .icon-database:before {
|
||||||
color:rgba(100,255,100,0.7);
|
color:rgba(100,255,100,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-edit:before {
|
#menu .icon-edit:before {
|
||||||
color:rgba(255,100,255,0.7);
|
color:rgba(255,100,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-list-alt:before {
|
#menu .icon-list-alt:before {
|
||||||
color:rgba(255,255,255,0.7);
|
color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
#menu .icon-wpforms:before {
|
#menu .icon-wpforms:before {
|
||||||
|
|||||||
@@ -1,409 +1,409 @@
|
|||||||
div.menu {
|
div.menu {
|
||||||
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||||
background-color:#eee;
|
background-color:#eee;
|
||||||
}
|
}
|
||||||
ul.menu li a {
|
ul.menu li a {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
ul.menu li a:hover span {
|
ul.menu li a:hover span {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
ul.menu a.sel span {
|
ul.menu a.sel span {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
ul.menu a:active span {
|
ul.menu a:active span {
|
||||||
color:red !important;
|
color:red !important;
|
||||||
}
|
}
|
||||||
main {
|
main {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||||
border-right:1px solid #222;
|
border-right:1px solid #222;
|
||||||
}
|
}
|
||||||
.closer {
|
.closer {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
background-color:#eaeaea;
|
background-color:#eaeaea;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
border-bottom: 5px solid #0F83A0;
|
border-bottom: 5px solid #0F83A0;
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.header li {
|
.header li {
|
||||||
border-right:1px solid #222;
|
border-right:1px solid #222;
|
||||||
}
|
}
|
||||||
.header li.mhome a {
|
.header li.mhome a {
|
||||||
background-color: #0F83A0;
|
background-color: #0F83A0;
|
||||||
}
|
}
|
||||||
.header li a {
|
.header li a {
|
||||||
color: #D5D5D5;
|
color: #D5D5D5;
|
||||||
text-shadow: 0 1px 1px black;
|
text-shadow: 0 1px 1px black;
|
||||||
border-left: 1px solid #383838;
|
border-left: 1px solid #383838;
|
||||||
}
|
}
|
||||||
.header #title {
|
.header #title {
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.asplit #cdown {
|
.asplit #cdown {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tsimple thead th, .tsimple thead td {
|
.tsimple thead th, .tsimple thead td {
|
||||||
border-bottom:3px solid #337ab7;
|
border-bottom:3px solid #337ab7;
|
||||||
}
|
}
|
||||||
.tsimple tbody td {
|
.tsimple tbody td {
|
||||||
border-bottom:1px solid #f0f0f0;
|
border-bottom:1px solid #f0f0f0;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:nth-child(2n){
|
.tsimple tbody tr:nth-child(2n){
|
||||||
background-color: #fafafa;
|
background-color: #fafafa;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:nth-child(2n):hover {
|
.tsimple tbody tr:nth-child(2n):hover {
|
||||||
background-color:#fbfbe3;
|
background-color:#fbfbe3;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr:hover {
|
.tsimple tbody tr:hover {
|
||||||
background-color:#fcfccc
|
background-color:#fcfccc
|
||||||
}
|
}
|
||||||
.tsimple tbody tr.del {
|
.tsimple tbody tr.del {
|
||||||
background-color: #ffe6e6;
|
background-color: #ffe6e6;
|
||||||
}
|
}
|
||||||
.tsimple tbody tr.del:nth-child(2n) {
|
.tsimple tbody tr.del:nth-child(2n) {
|
||||||
background-color:#fde3e3;
|
background-color:#fde3e3;
|
||||||
}
|
}
|
||||||
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
||||||
border-top:2px solid #d1e7f3;
|
border-top:2px solid #d1e7f3;
|
||||||
}
|
}
|
||||||
.tsimple tr.sel td {
|
.tsimple tr.sel td {
|
||||||
background-color:#fefec0;
|
background-color:#fefec0;
|
||||||
}
|
}
|
||||||
.tsimple tr.helper:hover {
|
.tsimple tr.helper:hover {
|
||||||
background-color:#fcfccc;
|
background-color:#fcfccc;
|
||||||
}
|
}
|
||||||
span.icon-cnt:hover .icon-play,
|
span.icon-cnt:hover .icon-play,
|
||||||
span.icon-cnt:hover .icon-stop,
|
span.icon-cnt:hover .icon-stop,
|
||||||
.icon-cancel:hover,
|
.icon-cancel:hover,
|
||||||
.icon-cog:hover,
|
.icon-cog:hover,
|
||||||
.icon-arrows-cw:hover,
|
.icon-arrows-cw:hover,
|
||||||
.icon-download:hover,
|
.icon-download:hover,
|
||||||
.icon-export:hover {
|
.icon-export:hover {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
span.icon-desktop {
|
span.icon-desktop {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
span.icon-desktop:hover {
|
span.icon-desktop:hover {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
span.icon-spin6 {
|
span.icon-spin6 {
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
tr.busy .jstatus,
|
tr.busy .jstatus,
|
||||||
tr.busy.s-on .jstatus,
|
tr.busy.s-on .jstatus,
|
||||||
tr.busy.s-off .jstatus {
|
tr.busy.s-off .jstatus {
|
||||||
background-color:Lavender !important;
|
background-color:Lavender !important;
|
||||||
}
|
}
|
||||||
tr.s-on td.jstatus {
|
tr.s-on td.jstatus {
|
||||||
background-color:Honeydew;
|
background-color:Honeydew;
|
||||||
}
|
}
|
||||||
tr.s-off td.jstatus {
|
tr.s-off td.jstatus {
|
||||||
background-color:Seashell;
|
background-color:Seashell;
|
||||||
}
|
}
|
||||||
tr.maintenance td {
|
tr.maintenance td {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
tr.maintenance td.jstatus {
|
tr.maintenance td.jstatus {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
}
|
}
|
||||||
.tsimple .icon-lock {
|
.tsimple .icon-lock {
|
||||||
color:silver;
|
color:silver;
|
||||||
}
|
}
|
||||||
.vnc-grey {
|
.vnc-grey {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.vnc-wait {
|
.vnc-wait {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
#content h1 {
|
#content h1 {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
dialog {
|
dialog {
|
||||||
border:1px solid rgba(0,0,0,.3);
|
border:1px solid rgba(0,0,0,.3);
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
}
|
}
|
||||||
dialog::backdrop,
|
dialog::backdrop,
|
||||||
#backdrop {
|
#backdrop {
|
||||||
background:rgba(0,0,0,.5);
|
background:rgba(0,0,0,.5);
|
||||||
}
|
}
|
||||||
dialog .panel {
|
dialog .panel {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-box {
|
.window-box {
|
||||||
/*border:1px solid #337ab7;*/
|
/*border:1px solid #337ab7;*/
|
||||||
}
|
}
|
||||||
.window-box .close-but {
|
.window-box .close-but {
|
||||||
background-color:#f3f3f3;
|
background-color:#f3f3f3;
|
||||||
}
|
}
|
||||||
.window-box .buttons {
|
.window-box .buttons {
|
||||||
background-color:#e0e0e0;
|
background-color:#e0e0e0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
.buttons .button {
|
.buttons .button {
|
||||||
color:white;
|
color:white;
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
text-shadow:1px 1px 2px black;
|
text-shadow:1px 1px 2px black;
|
||||||
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
||||||
}
|
}
|
||||||
.buttons .button.red {
|
.buttons .button.red {
|
||||||
background-color:coral;
|
background-color:coral;
|
||||||
text-shadow:1px 1px 2px black;
|
text-shadow:1px 1px 2px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-box h1 {
|
.window-box h1 {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box h2 {
|
.window-box h2 {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box h3 {
|
.window-box h3 {
|
||||||
border-bottom:3px solid #387db6;
|
border-bottom:3px solid #387db6;
|
||||||
}
|
}
|
||||||
.window-box h3 small {
|
.window-box h3 small {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box .mrow {
|
.window-box .mrow {
|
||||||
border-bottom:1px dotted silver;
|
border-bottom:1px dotted silver;
|
||||||
}
|
}
|
||||||
.window-box .mrow small {
|
.window-box .mrow small {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.window-box .mrow.installed,
|
.window-box .mrow.installed,
|
||||||
.window-box .mrow.installed small {
|
.window-box .mrow.installed small {
|
||||||
color:silver;
|
color:silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win fieldset {
|
form.win fieldset {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
}
|
}
|
||||||
form.win input[type="text"]:required,
|
form.win input[type="text"]:required,
|
||||||
form.win input[type="email"]:required,
|
form.win input[type="email"]:required,
|
||||||
form.win input[type="password"]:required {
|
form.win input[type="password"]:required {
|
||||||
background-color:#fef7f7;
|
background-color:#fef7f7;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
form.win input[type="text"]:valid,
|
form.win input[type="text"]:valid,
|
||||||
form.win input[type="email"]:valid,
|
form.win input[type="email"]:valid,
|
||||||
form.win input[type="password"]:valid {
|
form.win input[type="password"]:valid {
|
||||||
border:1px solid green;
|
border:1px solid green;
|
||||||
background-color:Honeydew;
|
background-color:Honeydew;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win input[type="email"]:invalid,
|
form.win input[type="email"]:invalid,
|
||||||
form.win input[type="password"]:invalid {
|
form.win input[type="password"]:invalid {
|
||||||
background-color:#ffd5d5;
|
background-color:#ffd5d5;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.win input:invalid:focus {
|
form.win input:invalid:focus {
|
||||||
outline-color:red;
|
outline-color:red;
|
||||||
}
|
}
|
||||||
form.win input:valid:focus {
|
form.win input:valid:focus {
|
||||||
outline-color:green;
|
outline-color:green;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=checkbox]:checked + label,
|
input[type=checkbox]:checked + label,
|
||||||
input[type=radio]:checked + label {
|
input[type=radio]:checked + label {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
form.helper fieldset label {
|
form.helper fieldset label {
|
||||||
color:black !important;
|
color:black !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inp_comment {
|
.inp_comment {
|
||||||
color:red;
|
color:red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cbsd-str {
|
.cbsd-str {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
.cbsd-cmd {
|
.cbsd-cmd {
|
||||||
color:darkred;
|
color:darkred;
|
||||||
}
|
}
|
||||||
.cbsd-lnch {
|
.cbsd-lnch {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
td.progress {
|
td.progress {
|
||||||
background-color:LemonChiffon;
|
background-color:LemonChiffon;
|
||||||
}
|
}
|
||||||
td.ok {
|
td.ok {
|
||||||
background-color:Honeydew;
|
background-color:Honeydew;
|
||||||
}
|
}
|
||||||
td.error {
|
td.error {
|
||||||
background-color:Seashell;
|
background-color:Seashell;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-content .helpers-list li {
|
.window-content .helpers-list li {
|
||||||
border-bottom:1px dotted silver;
|
border-bottom:1px dotted silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
#config-menu ul
|
#config-menu ul
|
||||||
{
|
{
|
||||||
/*border:1px solid gray;*/
|
/*border:1px solid gray;*/
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
#config-menu li:hover {
|
#config-menu li:hover {
|
||||||
background:#f0f0f0;
|
background:#f0f0f0;
|
||||||
}
|
}
|
||||||
#config-menu .menu-cog {
|
#config-menu .menu-cog {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
/*border:1px solid gray;*/
|
/*border:1px solid gray;*/
|
||||||
border-bottom-width: 0px;
|
border-bottom-width: 0px;
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
span.top-button {
|
span.top-button {
|
||||||
color: white;
|
color: white;
|
||||||
background-color: #337ab7;
|
background-color: #337ab7;
|
||||||
text-shadow: 1px 1px 2px black;
|
text-shadow: 1px 1px 2px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.noty_bar {
|
.noty_bar {
|
||||||
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.spinner {
|
.spinner {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.warning {
|
.warning {
|
||||||
background-color:#fff0f0;
|
background-color:#fff0f0;
|
||||||
border:1px solid #d7a0a0;
|
border:1px solid #d7a0a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.helper {
|
form.helper {
|
||||||
border:1px solid gray;
|
border:1px solid gray;
|
||||||
background-color:#fafafa;
|
background-color:#fafafa;
|
||||||
box-shadow:3px 3px 6px rgba(0,0,0,0.4);
|
box-shadow:3px 3px 6px rgba(0,0,0,0.4);
|
||||||
}
|
}
|
||||||
form.helper div.form-field + h1 {
|
form.helper div.form-field + h1 {
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
form.helper h1 {
|
form.helper h1 {
|
||||||
background-color:#f0f0f0;
|
background-color:#f0f0f0;
|
||||||
color:gray !important;
|
color:gray !important;
|
||||||
border-bottom:1px solid #ccc;
|
border-bottom:1px solid #ccc;
|
||||||
}
|
}
|
||||||
form.helper .buttons {
|
form.helper .buttons {
|
||||||
background:#f0f0f0;
|
background:#f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
}
|
}
|
||||||
form.helper fieldset {
|
form.helper fieldset {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=range]::-moz-range-track {
|
input[type=range]::-moz-range-track {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
.range input[type="text"]:disabled {
|
.range input[type="text"]:disabled {
|
||||||
background-color:#fcfcfc;
|
background-color:#fcfcfc;
|
||||||
color:black;
|
color:black;
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
}
|
}
|
||||||
|
|
||||||
.online, .offline {
|
.online, .offline {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.online:before {color:green;}
|
.online:before {color:green;}
|
||||||
.offline:before {color:red;}
|
.offline:before {color:red;}
|
||||||
|
|
||||||
.uploader .browser label {
|
.uploader .browser label {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
color:white;
|
color:white;
|
||||||
box-shadow:2px 2px 2px #888888;
|
box-shadow:2px 2px 2px #888888;
|
||||||
}
|
}
|
||||||
.uploader div.browser input {
|
.uploader div.browser input {
|
||||||
border:solid transparent;
|
border:solid transparent;
|
||||||
}
|
}
|
||||||
.uploader-progress {
|
.uploader-progress {
|
||||||
background-color:white;
|
background-color:white;
|
||||||
}
|
}
|
||||||
.uploader-progress .file {
|
.uploader-progress .file {
|
||||||
border:1px solid silver;
|
border:1px solid silver;
|
||||||
margin-top:4px;
|
margin-top:4px;
|
||||||
}
|
}
|
||||||
.uploader-progress .line {
|
.uploader-progress .line {
|
||||||
background-color:#337ab7;
|
background-color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
#debug {
|
#debug {
|
||||||
border:3px double red;
|
border:3px double red;
|
||||||
background-color:antiquewhite;
|
background-color:antiquewhite;
|
||||||
}
|
}
|
||||||
#debug h1 {
|
#debug h1 {
|
||||||
background:darkred;
|
background:darkred;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.login-area {
|
div.login-area {
|
||||||
background-color:rgba(0,0,0,0.9);
|
background-color:rgba(0,0,0,0.9);
|
||||||
}
|
}
|
||||||
dialog .login-header {
|
dialog .login-header {
|
||||||
background-color:#e0e0e0;
|
background-color:#e0e0e0;
|
||||||
color:#347ab7;
|
color:#347ab7;
|
||||||
border-bottom:1px solid silver;
|
border-bottom:1px solid silver;
|
||||||
}
|
}
|
||||||
.ccopy {
|
.ccopy {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.login-wait {
|
.login-wait {
|
||||||
background-color:rgba(255,255,255,0.9);
|
background-color:rgba(255,255,255,0.9);
|
||||||
}
|
}
|
||||||
.login-error-nouser {
|
.login-error-nouser {
|
||||||
color:red;
|
color:red;
|
||||||
background-color:rgba(255,250,250,0.9);
|
background-color:rgba(255,250,250,0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadersmall {
|
.loadersmall {
|
||||||
border:5px solid #f3f3f3;
|
border:5px solid #f3f3f3;
|
||||||
border-top:5px solid #555;
|
border-top:5px solid #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.smoothie-chart-tooltip {
|
div.smoothie-chart-tooltip {
|
||||||
background: #d0d0d0; /* #fcfccc; */
|
background: #d0d0d0; /* #fcfccc; */
|
||||||
color: black;
|
color: black;
|
||||||
box-shadow:3px 3px 3px 0px rgba(0,0,0,0.2);
|
box-shadow:3px 3px 3px 0px rgba(0,0,0,0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
body.overview div.smoothie-chart-tooltip {
|
body.overview div.smoothie-chart-tooltip {
|
||||||
background:#3a3a3a;
|
background:#3a3a3a;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.smoothie-chart-tooltip .black {
|
.smoothie-chart-tooltip .black {
|
||||||
background-color:#3a3a3a;
|
background-color:#3a3a3a;
|
||||||
}
|
}
|
||||||
.smoothie-chart-tooltip .black .time {
|
.smoothie-chart-tooltip .black .time {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.asplit #cdown {
|
.asplit #cdown {
|
||||||
background-color: #f0f0f0;
|
background-color: #f0f0f0;
|
||||||
border-top:1px solid silver;
|
border-top:1px solid silver;
|
||||||
box-shadow:inset 0 2px 4px 0px rgba(0,0,0,0.1);
|
box-shadow:inset 0 2px 4px 0px rgba(0,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#cinfo h2 {
|
#cinfo h2 {
|
||||||
color:#337ab7;
|
color:#337ab7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.copys {
|
.copys {
|
||||||
background-color:rgba(255,255,255,0.7);
|
background-color:rgba(255,255,255,0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
dl#summaryInfo dt {
|
dl#summaryInfo dt {
|
||||||
color:gray;
|
color:gray;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'keyname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'keyname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="authkey" class="window-box">
|
<dialog id="authkey" class="window-box">
|
||||||
<h1><?php echo $this->translate('Create Authkey');?></h1>
|
<h1><?php echo $this->translate('Create Authkey');?></h1>
|
||||||
<h2><?php echo $this->translate('Settings');?></h2>
|
<h2><?php echo $this->translate('Settings');?></h2>
|
||||||
<form class="win" method="post" id="authkeySettings" onsubmit="return false;">
|
<form class="win" method="post" id="authkeySettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Authkey name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Authkey name');?>:</span>
|
||||||
<input type="text" name="keyname" value="" pattern="[\x20-\x21\x23-\x26\x28-\x7F]+" required="required" />
|
<input type="text" name="keyname" value="" pattern="[\x20-\x21\x23-\x26\x28-\x7F]+" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Authkey');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Authkey');?>:</span>
|
||||||
<textarea name="keysrc" rows="10"></textarea>
|
<textarea name="keysrc" rows="10"></textarea>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,38 +1,38 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'version':'<?php echo $this->translate("Can not be empty. Name must be with a numbers and dot symbol");?>',
|
'version':'<?php echo $this->translate("Can not be empty. Name must be with a numbers and dot symbol");?>',
|
||||||
});
|
});
|
||||||
src_table_pattern='<?php $res=$this->getTableChunk('baseslist','tbody'); echo str_replace(array("\n","\r","\t"),'',$res[1]);?>';
|
src_table_pattern='<?php $res=$this->getTableChunk('baseslist','tbody'); echo str_replace(array("\n","\r","\t"),'',$res[1]);?>';
|
||||||
</script>
|
</script>
|
||||||
<dialog id="getrepo" class="window-box">
|
<dialog id="getrepo" class="window-box">
|
||||||
<h1><?php echo $this->translate('Compile FreeBSD');?></h1>
|
<h1><?php echo $this->translate('Compile FreeBSD');?></h1>
|
||||||
<h2><?php echo $this->translate('Compile from bases');?></h2>
|
<h2><?php echo $this->translate('Compile from bases');?></h2>
|
||||||
<form class="win" method="post" id="repoSettings" onsubmit="return false;">
|
<form class="win" method="post" id="repoSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Version number');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Version number');?>:</span>
|
||||||
<input type="text" name="version" value="" pattern="[0-9.]{1,5}" required="required" maxlength="5" />
|
<input type="text" name="version" value="" pattern="[0-9.]{1,5}" required="required" maxlength="5" />
|
||||||
</p>
|
</p>
|
||||||
<!--
|
<!--
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Version');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Version');?>:</span>
|
||||||
<input type="radio" name="version" value="release" id="ver1" checked="checked" class="inline"><label for="ver1">Release</label></radio>
|
<input type="radio" name="version" value="release" id="ver1" checked="checked" class="inline"><label for="ver1">Release</label></radio>
|
||||||
<input type="radio" name="version" value="stable" id="ver2" class="inline"><label for="ver2">Stable</label></radio>
|
<input type="radio" name="version" value="stable" id="ver2" class="inline"><label for="ver2">Stable</label></radio>
|
||||||
</p>
|
</p>
|
||||||
-->
|
-->
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Repository');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Repository');?>:</span>
|
||||||
<select name="repository" disabled="disabled">
|
<select name="repository" disabled="disabled">
|
||||||
<option value="official"><?php echo $this->translate('Official FreeBSD repository (svn)');?></option>
|
<option value="official"><?php echo $this->translate('Official FreeBSD repository (svn)');?></option>
|
||||||
<option value="clonos" selected="selected"><?php echo $this->translate('Clonos repository');?></option>
|
<option value="clonos" selected="selected"><?php echo $this->translate('Clonos repository');?></option>
|
||||||
<option value="own"><?php echo $this->translate('Your own repository');?></option>
|
<option value="own"><?php echo $this->translate('Your own repository');?></option>
|
||||||
<option value="neighbor"><?php echo $this->translate('Neighbor node');?></option>
|
<option value="neighbor"><?php echo $this->translate('Neighbor node');?></option>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Get');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Get');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'version':'<?php echo $this->translate("Can not be empty. Name must be with a numbers and dot symbol");?>',
|
'version':'<?php echo $this->translate("Can not be empty. Name must be with a numbers and dot symbol");?>',
|
||||||
});
|
});
|
||||||
src_table_pattern='<?php $res=$this->getTableChunk('baseslist','tbody'); echo str_replace(array("\n","\r","\t"),'',$res[1]);?>';
|
src_table_pattern='<?php $res=$this->getTableChunk('baseslist','tbody'); echo str_replace(array("\n","\r","\t"),'',$res[1]);?>';
|
||||||
</script>
|
</script>
|
||||||
<dialog id="basescompile" class="window-box">
|
<dialog id="basescompile" class="window-box">
|
||||||
<h1><?php echo $this->translate('Compile FreeBSD');?></h1>
|
<h1><?php echo $this->translate('Compile FreeBSD');?></h1>
|
||||||
<h2><?php echo $this->translate('Compile from sources');?></h2>
|
<h2><?php echo $this->translate('Compile from sources');?></h2>
|
||||||
<form class="win" method="post" id="basesSettings" onsubmit="return false;">
|
<form class="win" method="post" id="basesSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Sources version');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Sources version');?>:</span>
|
||||||
<select name="sources">
|
<select name="sources">
|
||||||
<?php $this->getBasesCompileList(); ?>
|
<?php $this->getBasesCompileList(); ?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Source');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Source');?>:</span>
|
||||||
<select name="repository" disabled="disabled">
|
<select name="repository" disabled="disabled">
|
||||||
<option value="clonos"><?php echo $this->translate('Clonos repository');?></option>
|
<option value="clonos"><?php echo $this->translate('Clonos repository');?></option>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Get');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Get');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'vm_name':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'vm_name':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="bhyve-clone" class="window-box new">
|
<dialog id="bhyve-clone" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Clone Virtual Machine');?></span>
|
<span class="new"><?php echo $this->translate('Clone Virtual Machine');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Cloned Virtual Machine Settings');?></h2>
|
<h2><?php echo $this->translate('Cloned Virtual Machine Settings');?></h2>
|
||||||
<form class="win" method="post" id="bhyveCloneSettings" onsubmit="return false;">
|
<form class="win" method="post" id="bhyveCloneSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Virtual Machine name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Virtual Machine name');?>:</span>
|
||||||
<input type="text" name="vm_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{1,}" required="required" class="edit-disable" />
|
<input type="text" name="vm_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{1,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Clone');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Clone');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,102 +1,102 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'vm_name':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'vm_name':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'vm_size':'You need type «g» char after numbers',
|
'vm_size':'You need type «g» char after numbers',
|
||||||
'vm_ram':'You need type «g» char after numbers',
|
'vm_ram':'You need type «g» char after numbers',
|
||||||
});
|
});
|
||||||
<?php
|
<?php
|
||||||
//print_r($this->config->os_types);exit;
|
//print_r($this->config->os_types);exit;
|
||||||
?>
|
?>
|
||||||
</script>
|
</script>
|
||||||
<dialog id="bhyve-new" class="window-box">
|
<dialog id="bhyve-new" class="window-box">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Create Virtual Machine');?></span>
|
<span class="new"><?php echo $this->translate('Create Virtual Machine');?></span>
|
||||||
<span class="edit"><?php echo $this->translate('Edit Virtual Machine');?></span>
|
<span class="edit"><?php echo $this->translate('Edit Virtual Machine');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Virtual Machine Settings');?></h2>
|
<h2><?php echo $this->translate('Virtual Machine Settings');?></h2>
|
||||||
<form class="win" method="post" id="bhyveSettings" onsubmit="return false;">
|
<form class="win" method="post" id="bhyveSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('VM OS profile');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM OS profile');?>:</span>
|
||||||
<select name="vm_os_profile" onchange="clonos.onChangeOsProfile(this,event);">
|
<select name="vm_os_profile" onchange="clonos.onChangeOsProfile(this,event);">
|
||||||
<?php echo $this->config->os_types_create(); ?>
|
<?php echo $this->config->os_types_create(); ?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Virtual Machine name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Virtual Machine name');?>:</span>
|
||||||
<input type="text" name="vm_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{1,}" required="required" class="edit-disable" />
|
<input type="text" name="vm_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{1,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('VM template (cpu, ram, hdd)');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM template (cpu, ram, hdd)');?>:</span>
|
||||||
<select name="vm_packages" onchange="clonos.onChangePkgTemplate(this,event);">
|
<select name="vm_packages" onchange="clonos.onChangePkgTemplate(this,event);">
|
||||||
<?php $vm_res=$this->config->vm_packages_list(); echo $vm_res['html']; ?>
|
<?php $vm_res=$this->config->vm_packages_list(); echo $vm_res['html']; ?>
|
||||||
</select>
|
</select>
|
||||||
<script type="text/javascript">clonos.vm_packages_new_min_id=<?php echo $vm_res['min_id']; ?>;</script>
|
<script type="text/javascript">clonos.vm_packages_new_min_id=<?php echo $vm_res['min_id']; ?>;</script>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM CPUs');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM CPUs');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="vm_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngCpus" oninput="rngCpusShow.value=rngCpus.value" />
|
<input type="range" name="vm_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngCpus" oninput="rngCpusShow.value=rngCpus.value" />
|
||||||
<input type="text" disabled="disabled" id="rngCpusShow" value="1" name="vm_cpus_show" />
|
<input type="text" disabled="disabled" id="rngCpusShow" value="1" name="vm_cpus_show" />
|
||||||
<!-- input type="text" name="vm_cpus" value="" pattern="[0-9]+" placeholder="1" required="required" / -->
|
<!-- input type="text" name="vm_cpus" value="" pattern="[0-9]+" placeholder="1" required="required" / -->
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM RAM');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM RAM');?>:</span>
|
||||||
<!-- <input type="text" name="vm_ram" value="" pattern="^[0-9]+\s*(g|gb|mb|m|t|tb)$" placeholder="1g" required="required" /> -->
|
<!-- <input type="text" name="vm_ram" value="" pattern="^[0-9]+\s*(g|gb|mb|m|t|tb)$" placeholder="1g" required="required" /> -->
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="vm_ram" class="vHorizon" min="1" max="64" value="1" style="margin:6px 0;" id="rngRam" oninput="rngRamShow.value=rngRam.value+'g'" />
|
<input type="range" name="vm_ram" class="vHorizon" min="1" max="64" value="1" style="margin:6px 0;" id="rngRam" oninput="rngRamShow.value=rngRam.value+'g'" />
|
||||||
<input type="text" disabled="disabled" id="rngRamShow" value="1" name="vm_ram_show" />
|
<input type="text" disabled="disabled" id="rngRamShow" value="1" name="vm_ram_show" />
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('VM Image size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM Image size');?>:</span>
|
||||||
<!-- <input type="text" name="vm_size" value="" pattern="^[0-9]+(g|gb|t|tb)$" placeholder="10g" required="required" class="edit-disable" /> -->
|
<!-- <input type="text" name="vm_size" value="" pattern="^[0-9]+(g|gb|t|tb)$" placeholder="10g" required="required" class="edit-disable" /> -->
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="vm_imgsize" class="vHorizon" min="20" max="866" value="20" style="margin:6px 0;" id="rngImgsize" oninput="rngImgsizeShow.value=rngImgsize.value+'g'" />
|
<input type="range" name="vm_imgsize" class="vHorizon" min="20" max="866" value="20" style="margin:6px 0;" id="rngImgsize" oninput="rngImgsizeShow.value=rngImgsize.value+'g'" />
|
||||||
<input type="text" disabled="disabled" id="rngImgsizeShow" value="1" name="vm_imgsize_show" />
|
<input type="text" disabled="disabled" id="rngImgsizeShow" value="1" name="vm_imgsize_show" />
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Attached boot ISO image');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Attached boot ISO image');?>:</span>
|
||||||
<select name="vm_iso_image">
|
<select name="vm_iso_image">
|
||||||
<option value="-2"></option>
|
<option value="-2"></option>
|
||||||
<option value="-1" selected>Profile default ISO</option>
|
<option value="-1" selected>Profile default ISO</option>
|
||||||
<?php echo $this->media_iso_list_html(); ?>
|
<?php echo $this->media_iso_list_html(); ?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VNC IP address');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VNC IP address');?>:</span>
|
||||||
<input type="radio" name="bhyve_vnc_tcp_bind" value="127.0.0.1" id="vncip0" checked="checked" class="inline"><label for="vncip0">127.0.0.1</label></radio>
|
<input type="radio" name="bhyve_vnc_tcp_bind" value="127.0.0.1" id="vncip0" checked="checked" class="inline"><label for="vncip0">127.0.0.1</label></radio>
|
||||||
<input type="radio" name="bhyve_vnc_tcp_bind" value="0.0.0.0" id="vncip1" class="inline"><label for="vncip1">0.0.0.0</label></radio>
|
<input type="radio" name="bhyve_vnc_tcp_bind" value="0.0.0.0" id="vncip1" class="inline"><label for="vncip1">0.0.0.0</label></radio>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VNC PORT');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VNC PORT');?>:</span>
|
||||||
<input type="text" name="vm_vnc_port" value="" placeholder="0" maxlength="5" />
|
<input type="text" name="vm_vnc_port" value="" placeholder="0" maxlength="5" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VNC Password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VNC Password');?>:</span>
|
||||||
<input type="password" name="vm_vnc_password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('use to log in VNC console');?></small>
|
<input type="password" name="vm_vnc_password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('use to log in VNC console');?></small>
|
||||||
</p>
|
</p>
|
||||||
<!-- <p>
|
<!-- <p>
|
||||||
<span class="field-name"><?php echo $this->translate('CD-ROM ISO');?>:</span>
|
<span class="field-name"><?php echo $this->translate('CD-ROM ISO');?>:</span>
|
||||||
<select name="cd-rom">
|
<select name="cd-rom">
|
||||||
<option value="profile">profile</option>
|
<option value="profile">profile</option>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
--> <p>
|
--> <p>
|
||||||
<span class="field-name"><?php echo $this->translate('Net Interface');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Net Interface');?>:</span>
|
||||||
<!-- <input type="radio" name="interface" value="auto" id="rint0" checked="checked" class="inline"><label for="rint0">auto</label></radio> -->
|
<!-- <input type="radio" name="interface" value="auto" id="rint0" checked="checked" class="inline"><label for="rint0">auto</label></radio> -->
|
||||||
<select name="interface">
|
<select name="interface">
|
||||||
<option value="auto">auto</option>
|
<option value="auto">auto</option>
|
||||||
<?php echo $this->get_interfaces_html(); ?>
|
<?php echo $this->get_interfaces_html(); ?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,84 +1,84 @@
|
|||||||
<dialog id="bhyve-obtain" class="window-box">
|
<dialog id="bhyve-obtain" class="window-box">
|
||||||
<h1><?php echo $this->translate('Create Virtual Machine from Library');?></h1>
|
<h1><?php echo $this->translate('Create Virtual Machine from Library');?></h1>
|
||||||
<h2><?php echo $this->translate('Virtual Machine Settings');?></h2>
|
<h2><?php echo $this->translate('Virtual Machine Settings');?></h2>
|
||||||
<form class="win" method="post" id="bhyveObtSettings" onsubmit="return false;">
|
<form class="win" method="post" id="bhyveObtSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM OS profile');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM OS profile');?>:</span>
|
||||||
<select name="vm_os_profile" onchange="clonos.onChangeOsProfile(this,event);">
|
<select name="vm_os_profile" onchange="clonos.onChangeOsProfile(this,event);">
|
||||||
<?php echo $this->config->os_types_create('obtain'); ?>
|
<?php echo $this->config->os_types_create('obtain'); ?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Virtual Machine name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Virtual Machine name');?>:</span>
|
||||||
<input type="text" name="vm_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{1,}" required="required" />
|
<input type="text" name="vm_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{1,}" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM template (cpu, ram, hdd)');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM template (cpu, ram, hdd)');?>:</span>
|
||||||
<select name="vm_packages" onchange="clonos.onChangePkgTemplate(this,event);">
|
<select name="vm_packages" onchange="clonos.onChangePkgTemplate(this,event);">
|
||||||
<?php $vm_res=$this->config->vm_packages_list(); echo $vm_res['html']; ?>
|
<?php $vm_res=$this->config->vm_packages_list(); echo $vm_res['html']; ?>
|
||||||
</select>
|
</select>
|
||||||
<script type="text/javascript">clonos.vm_packages_obtain_min_id=<?php echo $vm_res['min_id']; ?>;</script>
|
<script type="text/javascript">clonos.vm_packages_obtain_min_id=<?php echo $vm_res['min_id']; ?>;</script>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM CPUs');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM CPUs');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="vm_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngCpus1" oninput="rngCpusShow1.value=rngCpus1.value" />
|
<input type="range" name="vm_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngCpus1" oninput="rngCpusShow1.value=rngCpus1.value" />
|
||||||
<input type="text" disabled="disabled" id="rngCpusShow1" value="1" name="vm_cpus_show" />
|
<input type="text" disabled="disabled" id="rngCpusShow1" value="1" name="vm_cpus_show" />
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM RAM');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM RAM');?>:</span>
|
||||||
<!-- <input type="text" name="vm_ram" value="" pattern="^[0-9]+(g|gb|mb|m)$" placeholder="1g" required="required" /> -->
|
<!-- <input type="text" name="vm_ram" value="" pattern="^[0-9]+(g|gb|mb|m)$" placeholder="1g" required="required" /> -->
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="vm_ram" class="vHorizon" min="1" max="64" value="1" style="margin:6px 0;" id="rngRam1" oninput="rngRamShow1.value=rngRam1.value+'g'" />
|
<input type="range" name="vm_ram" class="vHorizon" min="1" max="64" value="1" style="margin:6px 0;" id="rngRam1" oninput="rngRamShow1.value=rngRam1.value+'g'" />
|
||||||
<input type="text" disabled="disabled" id="rngRamShow1" value="1" name="vm_ram_show" />
|
<input type="text" disabled="disabled" id="rngRamShow1" value="1" name="vm_ram_show" />
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM Image size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM Image size');?>:</span>
|
||||||
<!-- <input type="text" name="vm_size" value="" pattern="^[0-9]+(g|gb|mb|m|t|tb)$" placeholder="10g" required="required" /> -->
|
<!-- <input type="text" name="vm_size" value="" pattern="^[0-9]+(g|gb|mb|m|t|tb)$" placeholder="10g" required="required" /> -->
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="vm_size" class="vHorizon" min="20" max="866" value="20" style="margin:6px 0;" id="rngImgsize1" oninput="rngImgsizeShow1.value=rngImgsize1.value+'g'" />
|
<input type="range" name="vm_size" class="vHorizon" min="20" max="866" value="20" style="margin:6px 0;" id="rngImgsize1" oninput="rngImgsizeShow1.value=rngImgsize1.value+'g'" />
|
||||||
<input type="text" disabled="disabled" id="rngImgsizeShow1" value="1" name="vm_imgsize_show" />
|
<input type="text" disabled="disabled" id="rngImgsizeShow1" value="1" name="vm_imgsize_show" />
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Gateway');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Gateway');?>:</span>
|
||||||
<input type="text" name="gateway" value="10.0.0.1" pattern="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="gateway" value="10.0.0.1" pattern="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Mask');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Mask');?>:</span>
|
||||||
<input type="text" name="mask" value="255.255.255.0" pattern="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="mask" value="255.255.255.0" pattern="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM Password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM Password');?>:</span>
|
||||||
<input type="password" name="vm_password" value="cbsd" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('default is');?>: «cbsd»</small>
|
<input type="password" name="vm_password" value="cbsd" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('default is');?>: «cbsd»</small>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('USER Password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('USER Password');?>:</span>
|
||||||
<input type="password" name="user_password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('напиши осознанный текст');?></small>
|
<input type="password" name="user_password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('напиши осознанный текст');?></small>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Authkey');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Authkey');?>:</span>
|
||||||
<select name="vm_authkey">
|
<select name="vm_authkey">
|
||||||
<?php echo $this->config->authkeys_list(); ?>
|
<?php echo $this->config->authkeys_list(); ?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VNC Password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VNC Password');?>:</span>
|
||||||
<input type="password" name="vnc_password" value="cbsd" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('use to log in VNC. Default is');?>: cbsd</small>
|
<input type="password" name="vnc_password" value="cbsd" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <?php echo $this->translate('use to log in VNC. Default is');?>: cbsd</small>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="bhyve-rename" class="window-box new">
|
<dialog id="bhyve-rename" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Rename virtual machine');?></span>
|
<span class="new"><?php echo $this->translate('Rename virtual machine');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Renamed Virtual Machine Settings');?></h2>
|
<h2><?php echo $this->translate('Renamed Virtual Machine Settings');?></h2>
|
||||||
<form class="win" method="post" id="bhyveRenameSettings" onsubmit="return false;">
|
<form class="win" method="post" id="bhyveRenameSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p class="warning" style="width:400px;">
|
<p class="warning" style="width:400px;">
|
||||||
<?php echo $this->translate('@rename_warning@'); ?>
|
<?php echo $this->translate('@rename_warning@'); ?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('VM name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('VM name');?>:</span>
|
||||||
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Rename');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Rename');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<dialog id="helpers-add" class="window-box new">
|
<dialog id="helpers-add" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Helpers add');?></span>
|
<span class="new"><?php echo $this->translate('Helpers add');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Select helpers for install');?></h2>
|
<h2><?php echo $this->translate('Select helpers for install');?></h2>
|
||||||
<form class="win" method="post" id="helpersAddSettings" onsubmit="return false;">
|
<form class="win" method="post" id="helpersAddSettings" onsubmit="return false;">
|
||||||
<div class="window-content"></div>
|
<div class="window-content"></div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Add');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Add');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
'hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
||||||
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="image-import" class="window-box new">
|
<dialog id="image-import" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Image Import');?></span>
|
<span class="new"><?php echo $this->translate('Image Import');?></span>
|
||||||
<!-- <span class="edit"><?php echo $this->translate('Edit jail');?></span> -->
|
<!-- <span class="edit"><?php echo $this->translate('Edit jail');?></span> -->
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Settings');?></h2>
|
<h2><?php echo $this->translate('Settings');?></h2>
|
||||||
<form class="win" method="post" id="imageImportSettings" onsubmit="return false;">
|
<form class="win" method="post" id="imageImportSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('New name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('New name');?>:</span>
|
||||||
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
||||||
<div class="inp_comment" id="name_comment"></div>
|
<div class="inp_comment" id="name_comment"></div>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
||||||
<input type="text" name="host_hostname" value="" required="required" />
|
<input type="text" name="host_hostname" value="" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<input type="hidden" name="file_id" value="" />
|
<input type="hidden" name="file_id" value="" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Import');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Import');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'host_hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
'host_hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
||||||
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="jail-clone" class="window-box new">
|
<dialog id="jail-clone" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Clone jail');?></span>
|
<span class="new"><?php echo $this->translate('Clone jail');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Cloned Jail Settings');?></h2>
|
<h2><?php echo $this->translate('Cloned Jail Settings');?></h2>
|
||||||
<form class="win" method="post" id="jailCloneSettings" onsubmit="return false;">
|
<form class="win" method="post" id="jailCloneSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p class="warning" style="width:400px;">
|
<p class="warning" style="width:400px;">
|
||||||
<?php echo $this->translate('@clone_warning@'); ?>
|
<?php echo $this->translate('@clone_warning@'); ?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Jail name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Jail name');?>:</span>
|
||||||
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
||||||
<input type="text" name="host_hostname" value="" required="required" />
|
<input type="text" name="host_hostname" value="" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Clone');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Clone');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="jail-import" class="window-box new">
|
<dialog id="jail-import" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Import jail');?></span>
|
<span class="new"><?php echo $this->translate('Import jail');?></span>
|
||||||
<span class="edit"><?php echo $this->translate('Edit jail');?></span>
|
<span class="edit"><?php echo $this->translate('Edit jail');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Jail Import');?></h2>
|
<h2><?php echo $this->translate('Jail Import');?></h2>
|
||||||
<form class="win" method="post" id="jailImport" onsubmit="return false;">
|
<form class="win" method="post" id="jailImport" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<!-- D&D Markup -->
|
<!-- D&D Markup -->
|
||||||
<div id="drag-and-drop-zone" class="uploader">
|
<div id="drag-and-drop-zone" class="uploader">
|
||||||
<div>Drag & Drop Files Here</div>
|
<div>Drag & Drop Files Here</div>
|
||||||
<div class="or">-or-</div>
|
<div class="or">-or-</div>
|
||||||
<div class="browser">
|
<div class="browser">
|
||||||
<label>
|
<label>
|
||||||
<span>Click to open the file Browser</span>
|
<span>Click to open the file Browser</span>
|
||||||
<input type="file" name="jimp_files[]" multiple="multiple" title='Click to add Files'>
|
<input type="file" name="jimp_files[]" multiple="multiple" title='Click to add Files'>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="uploader-progress"></div>
|
<div class="uploader-progress"></div>
|
||||||
<!-- /D&D Markup -->
|
<!-- /D&D Markup -->
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
<script type="text/javascript">clonos.fileUploadPrepare();</script>
|
<script type="text/javascript">clonos.fileUploadPrepare();</script>
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
'hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
||||||
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="jail-rename" class="window-box new">
|
<dialog id="jail-rename" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Rename jail');?></span>
|
<span class="new"><?php echo $this->translate('Rename jail');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Renamed Jail Settings');?></h2>
|
<h2><?php echo $this->translate('Renamed Jail Settings');?></h2>
|
||||||
<form class="win" method="post" id="jailRenameSettings" onsubmit="return false;">
|
<form class="win" method="post" id="jailRenameSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p class="warning" style="width:400px;">
|
<p class="warning" style="width:400px;">
|
||||||
<?php echo $this->translate('@rename_warning@'); ?>
|
<?php echo $this->translate('@rename_warning@'); ?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Jail name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Jail name');?>:</span>
|
||||||
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
||||||
<input type="text" name="host_hostname" value="" required="required" />
|
<input type="text" name="host_hostname" value="" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Rename');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Rename');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<div id="config-menu" style="display:none;">
|
<div id="config-menu" style="display:none;">
|
||||||
<span class="icon-cog menu-cog"></span>
|
<span class="icon-cog menu-cog"></span>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="icon-edit" id="jddm-rename"> <?php echo $this->translate('rename');?></li>
|
<li class="icon-edit" id="jddm-rename"> <?php echo $this->translate('rename');?></li>
|
||||||
<li class="icon-pencil" id="jddm-edit"> <?php echo $this->translate('edit');?></li>
|
<li class="icon-pencil" id="jddm-edit"> <?php echo $this->translate('edit');?></li>
|
||||||
<li class="icon-docs" id="jddm-clone"> <?php echo $this->translate('clone');?></li>
|
<li class="icon-docs" id="jddm-clone"> <?php echo $this->translate('clone');?></li>
|
||||||
<li class="icon-gift" id="jddm-export"> <?php echo $this->translate('export');?></li>
|
<li class="icon-gift" id="jddm-export"> <?php echo $this->translate('export');?></li>
|
||||||
<li class="icon-cubes" id="jddm-helpers"> <?php echo $this->translate('helpers');?></li>
|
<li class="icon-cubes" id="jddm-helpers"> <?php echo $this->translate('helpers');?></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -1,75 +1,75 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'jname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
'hostname':'<?php echo $this->translate("This field can not be empty");?>',
|
||||||
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
'ip':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
||||||
'rootpass':'<?php echo $this->translate("Password can not be less than 3 symbols");?>',
|
'rootpass':'<?php echo $this->translate("Password can not be less than 3 symbols");?>',
|
||||||
'rootpass1':'<?php echo $this->translate("Please retype password correctly");?>',
|
'rootpass1':'<?php echo $this->translate("Please retype password correctly");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="jail-settings" class="window-box new">
|
<dialog id="jail-settings" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Create jail');?></span>
|
<span class="new"><?php echo $this->translate('Create jail');?></span>
|
||||||
<span class="edit"><?php echo $this->translate('Edit jail');?></span>
|
<span class="edit"><?php echo $this->translate('Edit jail');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Jail Settings');?></h2>
|
<h2><?php echo $this->translate('Jail Settings');?></h2>
|
||||||
<form class="win" method="post" id="jailSettings" onsubmit="return false;">
|
<form class="win" method="post" id="jailSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Jail name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Jail name');?>:</span>
|
||||||
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
||||||
<input type="text" name="host_hostname" value="" required="required" />
|
<input type="text" name="host_hostname" value="" required="required" />
|
||||||
<!--
|
<!--
|
||||||
<small class="astart-warn">— <?php echo $this->translate('available on the jail is not running');?></small>
|
<small class="astart-warn">— <?php echo $this->translate('available on the jail is not running');?></small>
|
||||||
-->
|
-->
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^DHCP[vV]6$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('Root password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Root password');?>:</span>
|
||||||
<input type="password" name="user_pw_root" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input>
|
<input type="password" name="user_pw_root" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input>
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('Root password (again)');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Root password (again)');?>:</span>
|
||||||
<input type="password" name="user_pw_root_1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input>
|
<input type="password" name="user_pw_root_1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Net Interface');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Net Interface');?>:</span>
|
||||||
<input type="radio" name="interface" value="auto" id="rint0" checked="checked" class="inline"><label for="rint0">auto</label></radio>
|
<input type="radio" name="interface" value="auto" id="rint0" checked="checked" class="inline"><label for="rint0">auto</label></radio>
|
||||||
<input type="radio" name="interface" value="lo0" id="rint2" class="inline"><label for="rint2">lo0</label></radio>
|
<input type="radio" name="interface" value="lo0" id="rint2" class="inline"><label for="rint2">lo0</label></radio>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Parameters');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Parameters');?>:</span>
|
||||||
<input type="checkbox" name="baserw" id="bwritable-id" /><label for="bwritable-id"> <?php echo $this->translate('Base writable');?>?</label>
|
<input type="checkbox" name="baserw" id="bwritable-id" /><label for="bwritable-id"> <?php echo $this->translate('Base writable');?>?</label>
|
||||||
<br />
|
<br />
|
||||||
<input type="checkbox" name="mount_ports" id="mount-id" /><label for="mount-id"> <?php echo $this->translate('Mount');?> /usr/ports?</label>
|
<input type="checkbox" name="mount_ports" id="mount-id" /><label for="mount-id"> <?php echo $this->translate('Mount');?> /usr/ports?</label>
|
||||||
<br />
|
<br />
|
||||||
<input type="checkbox" name="astart" id="astart-id" /><label for="astart-id"> <?php echo $this->translate('Autostart jail at system startup');?></label>
|
<input type="checkbox" name="astart" id="astart-id" /><label for="astart-id"> <?php echo $this->translate('Autostart jail at system startup');?></label>
|
||||||
<br />
|
<br />
|
||||||
<input type="checkbox" name="vnet" id="vnet-id" /><label for="vnet-id"> <?php echo $this->translate('Virtual network stack (VIMAGE)');?></label>
|
<input type="checkbox" name="vnet" id="vnet-id" /><label for="vnet-id"> <?php echo $this->translate('Virtual network stack (VIMAGE)');?></label>
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('Enabled services');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Enabled services');?>:</span>
|
||||||
<input type="checkbox" name="serv-ftpd" value="ftpd" id="esrv0" class="inline"><label for="esrv0">ftpd</label></checkbox>
|
<input type="checkbox" name="serv-ftpd" value="ftpd" id="esrv0" class="inline"><label for="esrv0">ftpd</label></checkbox>
|
||||||
<input type="checkbox" name="serv-sshd" value="sshd" id="esrv1" class="inline"><label for="esrv1">sshd</label></checkbox>
|
<input type="checkbox" name="serv-sshd" value="sshd" id="esrv1" class="inline"><label for="esrv1">sshd</label></checkbox>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
сложное правило для пароля: цифры, буквы маленькие и заглавные, плюс спецсимволы
|
сложное правило для пароля: цифры, буквы маленькие и заглавные, плюс спецсимволы
|
||||||
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$
|
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$
|
||||||
*/
|
*/
|
||||||
@@ -1,87 +1,87 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'vm_name':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'vm_name':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="k8s-new" class="window-box new">
|
<dialog id="k8s-new" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Create Kubernetes');?></span>
|
<span class="new"><?php echo $this->translate('Create Kubernetes');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('create master node and workers');?></h2>
|
<h2><?php echo $this->translate('create master node and workers');?></h2>
|
||||||
<form class="win" method="post" id="k8sNewSettings" onsubmit="return false;">
|
<form class="win" method="post" id="k8sNewSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Cluster name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Cluster name');?>:</span>
|
||||||
<input type="text" name="cname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
<input type="text" name="cname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Master Nodes count');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Master Nodes count');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="master_nodes" class="vHorizon" min="1" max="7" value="1" style="margin:6px 0;" id="rngMNodes" oninput="rngMNodesShow.value=rngMNodes.value">
|
<input type="range" name="master_nodes" class="vHorizon" min="1" max="7" value="1" style="margin:6px 0;" id="rngMNodes" oninput="rngMNodesShow.value=rngMNodes.value">
|
||||||
<input type="text" disabled="disabled" id="rngMNodesShow" value="1" name="master_cpus_count">
|
<input type="text" disabled="disabled" id="rngMNodesShow" value="1" name="master_cpus_count">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Master Nodes RAM size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Master Nodes RAM size');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="master_ram" class="vHorizon" min="1" max="8" value="1" style="margin:6px 0;" id="rngMRam" oninput="rngMRamShow.value=rngMRam.value+'g'">
|
<input type="range" name="master_ram" class="vHorizon" min="1" max="8" value="1" style="margin:6px 0;" id="rngMRam" oninput="rngMRamShow.value=rngMRam.value+'g'">
|
||||||
<input type="text" disabled="disabled" id="rngMRamShow" value="1g" name="master_ram_size">
|
<input type="text" disabled="disabled" id="rngMRamShow" value="1g" name="master_ram_size">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Master Node CPUs count');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Master Node CPUs count');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="master_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngMCpus" oninput="rngMCpusShow.value=rngMCpus.value">
|
<input type="range" name="master_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngMCpus" oninput="rngMCpusShow.value=rngMCpus.value">
|
||||||
<input type="text" disabled="disabled" id="rngMCpusShow" value="1" name="master_cpus_count">
|
<input type="text" disabled="disabled" id="rngMCpusShow" value="1" name="master_cpus_count">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Master Node Image size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Master Node Image size');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="master_img" class="vHorizon" min="10" max="40" value="10" style="margin:6px 0;" id="rngMImg" oninput="rngMImgShow.value=rngMImg.value+'gb'">
|
<input type="range" name="master_img" class="vHorizon" min="10" max="40" value="10" style="margin:6px 0;" id="rngMImg" oninput="rngMImgShow.value=rngMImg.value+'gb'">
|
||||||
<input type="text" disabled="disabled" id="rngMImgShow" value="10gb" name="master_img_size">
|
<input type="text" disabled="disabled" id="rngMImgShow" value="10gb" name="master_img_size">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Worker Nodes count');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Worker Nodes count');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="worker_nodes" class="vHorizon" min="0" max="8" value="0" style="margin:6px 0;" id="rngWNodes" oninput="rngWNodesShow.value=rngWNodes.value">
|
<input type="range" name="worker_nodes" class="vHorizon" min="0" max="8" value="0" style="margin:6px 0;" id="rngWNodes" oninput="rngWNodesShow.value=rngWNodes.value">
|
||||||
<input type="text" disabled="disabled" id="rngWNodesShow" value="0" name="worker_nodes_count">
|
<input type="text" disabled="disabled" id="rngWNodesShow" value="0" name="worker_nodes_count">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Worker Nodes RAM size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Worker Nodes RAM size');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="worker_ram" class="vHorizon" min="1" max="8" value="1" style="margin:6px 0;" id="rngWRam" oninput="rngWRamShow.value=rngWRam.value+'g'">
|
<input type="range" name="worker_ram" class="vHorizon" min="1" max="8" value="1" style="margin:6px 0;" id="rngWRam" oninput="rngWRamShow.value=rngWRam.value+'g'">
|
||||||
<input type="text" disabled="disabled" id="rngWRamShow" value="1g" name="worker_ram_size">
|
<input type="text" disabled="disabled" id="rngWRamShow" value="1g" name="worker_ram_size">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Worker Nodes CPUs count');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Worker Nodes CPUs count');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="worker_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngWCpus" oninput="rngWCpusShow.value=rngWCpus.value">
|
<input type="range" name="worker_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngWCpus" oninput="rngWCpusShow.value=rngWCpus.value">
|
||||||
<input type="text" disabled="disabled" id="rngWCpusShow" value="1" name="worker_cpus_count">
|
<input type="text" disabled="disabled" id="rngWCpusShow" value="1" name="worker_cpus_count">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Worker Nodes Image size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Worker Nodes Image size');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="worker_img" class="vHorizon" min="10" max="40" value="10" style="margin:6px 0;" id="rngWImg" oninput="rngWImgShow.value=rngWImg.value+'gb'">
|
<input type="range" name="worker_img" class="vHorizon" min="10" max="40" value="10" style="margin:6px 0;" id="rngWImg" oninput="rngWImgShow.value=rngWImg.value+'gb'">
|
||||||
<input type="text" disabled="disabled" id="rngWImgShow" value="10gb" name="worker_img_size">
|
<input type="text" disabled="disabled" id="rngWImgShow" value="10gb" name="worker_img_size">
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Parameters');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Parameters');?>:</span>
|
||||||
<input type="checkbox" name="pv_enable" id="pvenable-id"><label for="pvenable-id"> <?php echo $this->translate('PV on or off');?></label>
|
<input type="checkbox" name="pv_enable" id="pvenable-id"><label for="pvenable-id"> <?php echo $this->translate('PV on or off');?></label>
|
||||||
<br>
|
<br>
|
||||||
<input type="checkbox" name="kubelet_master" id="kubmaster-id"><label for="kubmaster-id"> <?php echo $this->translate('Master and Worker is a same thing');?></label>
|
<input type="checkbox" name="kubelet_master" id="kubmaster-id"><label for="kubmaster-id"> <?php echo $this->translate('Master and Worker is a same thing');?></label>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({});
|
err_messages.add({});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="media-upload" class="window-box">
|
<dialog id="media-upload" class="window-box">
|
||||||
<h1><?php echo $this->translate('Add Storage Media');?></h1>
|
<h1><?php echo $this->translate('Add Storage Media');?></h1>
|
||||||
<h2><?php echo $this->translate('Upload ISO');?></h2>
|
<h2><?php echo $this->translate('Upload ISO');?></h2>
|
||||||
<form class="win" method="post" id="mediaSettings" onsubmit="return false;">
|
<form class="win" method="post" id="mediaSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<!-- D&D Markup -->
|
<!-- D&D Markup -->
|
||||||
<div id="drag-and-drop-zone" class="uploader">
|
<div id="drag-and-drop-zone" class="uploader">
|
||||||
<div>Drag & Drop Files Here</div>
|
<div>Drag & Drop Files Here</div>
|
||||||
<div class="or">-or-</div>
|
<div class="or">-or-</div>
|
||||||
<div class="browser">
|
<div class="browser">
|
||||||
<label>
|
<label>
|
||||||
<span>Click to open the file Browser</span>
|
<span>Click to open the file Browser</span>
|
||||||
<input type="file" name="files[]" multiple="multiple" title='Click to add Files'>
|
<input type="file" name="files[]" multiple="multiple" title='Click to add Files'>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="uploader-progress"></div>
|
<div class="uploader-progress"></div>
|
||||||
<!-- /D&D Markup -->
|
<!-- /D&D Markup -->
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
<script type="text/javascript">clonos.fileUploadPrepare();</script>
|
<script type="text/javascript">clonos.fileUploadPrepare();</script>
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'netname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'netname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'network':'<?php echo $this->translate("Write something");?>',
|
'network':'<?php echo $this->translate("Write something");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="media" class="window-box">
|
<dialog id="media" class="window-box">
|
||||||
<h1><?php echo $this->translate('Add Storage Media');?></h1>
|
<h1><?php echo $this->translate('Add Storage Media');?></h1>
|
||||||
<h2><?php echo $this->translate('Settings');?></h2>
|
<h2><?php echo $this->translate('Settings');?></h2>
|
||||||
<form class="win" method="post" id="mediaSettings" onsubmit="return false;">
|
<form class="win" method="post" id="mediaSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Media name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Media name');?>:</span>
|
||||||
<input type="text" name="medianame" value="" pattern="[\x20-\x21\x23-\x26\x28-\x7F]+" required="required" />
|
<input type="text" name="medianame" value="" pattern="[\x20-\x21\x23-\x26\x28-\x7F]+" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Path');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Path');?>:</span>
|
||||||
<input type="text" name="mediapath" value="" pattern=".+" required="required" />
|
<input type="text" name="mediapath" value="" pattern=".+" required="required" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<dialog id="settings-getupdate" class="window-box tasklog">
|
<dialog id="settings-getupdate" class="window-box tasklog">
|
||||||
<h1><?php echo $this->translate('Settings update');?></h1>
|
<h1><?php echo $this->translate('Settings update');?></h1>
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
Check for updates…
|
Check for updates…
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Get updates');?>" class="new button ok-but hidden">
|
<input type="button" value="<?php echo $this->translate('Get updates');?>" class="new button ok-but hidden">
|
||||||
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,44 +1,44 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'version':'<?php echo $this->translate("Can not be empty. Name must be with a numbers and dot symbol");?>',
|
'version':'<?php echo $this->translate("Can not be empty. Name must be with a numbers and dot symbol");?>',
|
||||||
});
|
});
|
||||||
src_table_pattern='<?php $res=$this->getTableChunk('srcslist','tbody'); echo str_replace(array("\n","\r","\t"),'',$res[1]);?>';
|
src_table_pattern='<?php $res=$this->getTableChunk('srcslist','tbody'); echo str_replace(array("\n","\r","\t"),'',$res[1]);?>';
|
||||||
</script>
|
</script>
|
||||||
<dialog id="srcget" class="window-box">
|
<dialog id="srcget" class="window-box">
|
||||||
<h1><?php echo $this->translate('Get Sources FreeBSD');?></h1>
|
<h1><?php echo $this->translate('Get Sources FreeBSD');?></h1>
|
||||||
<h2><?php echo $this->translate('Get Version');?></h2>
|
<h2><?php echo $this->translate('Get Version');?></h2>
|
||||||
<form class="win" method="post" id="srcSettings" onsubmit="return false;">
|
<form class="win" method="post" id="srcSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Version number');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Version number');?>:</span>
|
||||||
<input type="text" name="version" value="" pattern="[0-9.]{1,5}" required="required" maxlength="5" />
|
<input type="text" name="version" value="" pattern="[0-9.]{1,5}" required="required" maxlength="5" />
|
||||||
</p>
|
</p>
|
||||||
<!--
|
<!--
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Version');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Version');?>:</span>
|
||||||
<input type="radio" name="version" value="release" id="ver1" checked="checked" class="inline"><label for="ver1">Release</label></radio>
|
<input type="radio" name="version" value="release" id="ver1" checked="checked" class="inline"><label for="ver1">Release</label></radio>
|
||||||
<input type="radio" name="version" value="stable" id="ver2" class="inline"><label for="ver2">Stable</label></radio>
|
<input type="radio" name="version" value="stable" id="ver2" class="inline"><label for="ver2">Stable</label></radio>
|
||||||
</p>
|
</p>
|
||||||
-->
|
-->
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Repository');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Repository');?>:</span>
|
||||||
<select name="repository" disabled="disabled">
|
<select name="repository" disabled="disabled">
|
||||||
<option value="official"><?php echo $this->translate('Official FreeBSD repository (svn)');?></option>
|
<option value="official"><?php echo $this->translate('Official FreeBSD repository (svn)');?></option>
|
||||||
<option value="clonos"><?php echo $this->translate('Clonos repository');?></option>
|
<option value="clonos"><?php echo $this->translate('Clonos repository');?></option>
|
||||||
<option value="own"><?php echo $this->translate('Your own repository');?></option>
|
<option value="own"><?php echo $this->translate('Your own repository');?></option>
|
||||||
<option value="neighbor"><?php echo $this->translate('Neighbor node');?></option>
|
<option value="neighbor"><?php echo $this->translate('Neighbor node');?></option>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Get');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Get');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$
|
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$
|
||||||
*/
|
*/
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
<dialog id="login" class="window-box">
|
<dialog id="login" class="window-box">
|
||||||
<div class="login-wait hide"><div class="loadersmall"></div></div>
|
<div class="login-wait hide"><div class="loadersmall"></div></div>
|
||||||
<div class="login-error-nouser hide"><?php echo $this->translate('<span class="icon-attention" style="font-size:large;"></span> Error! User not found!'); ?></div>
|
<div class="login-error-nouser hide"><?php echo $this->translate('<span class="icon-attention" style="font-size:large;"></span> Error! User not found!'); ?></div>
|
||||||
<div class="login-header"><span class="icon-expeditedssl"></span><?php echo $this->translate('Login');?></div>
|
<div class="login-header"><span class="icon-expeditedssl"></span><?php echo $this->translate('Login');?></div>
|
||||||
<form class="win" method="post" id="loginData" onsubmit="return false;">
|
<form class="win" method="post" id="loginData" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Login');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Login');?>:</span>
|
||||||
<input type="text" name="login" value="" autofocus />
|
<input type="text" name="login" value="" autofocus />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Password');?>:</span>
|
||||||
<input type="password" name="password" value="" />
|
<input type="password" name="password" value="" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Go to the system');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Go to the system');?>" class="button ok-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<dialog id="tasklog" class="window-box tasklog">
|
<dialog id="tasklog" class="window-box tasklog">
|
||||||
<h1><?php echo $this->translate('Task log');?></h1>
|
<h1><?php echo $this->translate('Task log');?></h1>
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
Task log here…
|
Task log here…
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,57 +1,57 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'username':'<?php echo $this->translate("CHANGE THIS TEXT!!! Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'username':'<?php echo $this->translate("CHANGE THIS TEXT!!! Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'first_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
'first_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
||||||
'last_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
'last_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="users-new" class="window-box new">
|
<dialog id="users-new" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Add new user');?></span>
|
<span class="new"><?php echo $this->translate('Add new user');?></span>
|
||||||
<span class="edit"><?php echo $this->translate('Edit user info');?></span>
|
<span class="edit"><?php echo $this->translate('Edit user info');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('User Settings');?></h2>
|
<h2><?php echo $this->translate('User Settings');?></h2>
|
||||||
<form class="win" method="post" id="userSettings" onsubmit="return false;">
|
<form class="win" method="post" id="userSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('User name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('User name');?>:</span>
|
||||||
<input type="text" name="username" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" />
|
<input type="text" name="username" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" />
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('User password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('User password');?>:</span>
|
||||||
<input type="password" name="password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" class="edit-disable"></input>
|
<input type="password" name="password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" class="edit-disable"></input>
|
||||||
</p>
|
</p>
|
||||||
<p class="new">
|
<p class="new">
|
||||||
<span class="field-name"><?php echo $this->translate('User password (again)');?>:</span>
|
<span class="field-name"><?php echo $this->translate('User password (again)');?>:</span>
|
||||||
<input type="password" name="password1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" class="edit-disable"></input>
|
<input type="password" name="password1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" class="edit-disable"></input>
|
||||||
</p>
|
</p>
|
||||||
<fieldset class="edit full">
|
<fieldset class="edit full">
|
||||||
<legend><input type="checkbox" id="letsedit-1" class="letsedit" /><label for="letsedit-1"> <?php echo $this->translate('Change the password');?>:</label></legend>
|
<legend><input type="checkbox" id="letsedit-1" class="letsedit" /><label for="letsedit-1"> <?php echo $this->translate('Change the password');?>:</label></legend>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('User password');?>:</span>
|
<span class="field-name"><?php echo $this->translate('User password');?>:</span>
|
||||||
<input type="password" name="password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" disabled></input>
|
<input type="password" name="password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" disabled></input>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('User password (again)');?>:</span>
|
<span class="field-name"><?php echo $this->translate('User password (again)');?>:</span>
|
||||||
<input type="password" name="password1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" disabled></input>
|
<input type="password" name="password1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" disabled></input>
|
||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('First name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('First name');?>:</span>
|
||||||
<input type="text" name="first_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" />
|
<input type="text" name="first_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Last name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Last name');?>:</span>
|
||||||
<input type="text" name="last_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" />
|
<input type="text" name="last_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<input type="checkbox" name="actuser" id="actuser" /><label for="actuser"> <?php echo $this->translate('Activate user');?></label>
|
<input type="checkbox" name="actuser" id="actuser" /><label for="actuser"> <?php echo $this->translate('Activate user');?></label>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Add');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Add');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
@@ -1,46 +1,46 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'name':'<?php echo $this->translate("CHANGE THIS TEXT!!! Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'name':'<?php echo $this->translate("CHANGE THIS TEXT!!! Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'first_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
'first_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
||||||
'last_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
'last_name':'<?php echo $this->translate("TYPE THIS TEXT!!!");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="vm_packages-new" class="window-box new">
|
<dialog id="vm_packages-new" class="window-box new">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="new"><?php echo $this->translate('Add new template');?></span>
|
<span class="new"><?php echo $this->translate('Add new template');?></span>
|
||||||
<span class="edit"><?php echo $this->translate('Edit template');?></span>
|
<span class="edit"><?php echo $this->translate('Edit template');?></span>
|
||||||
</h1>
|
</h1>
|
||||||
<h2><?php echo $this->translate('Template Settings');?></h2>
|
<h2><?php echo $this->translate('Template Settings');?></h2>
|
||||||
<form class="win" method="post" id="templateSettings" onsubmit="return false;">
|
<form class="win" method="post" id="templateSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Name');?>:</span>
|
||||||
<input type="text" name="name" value="" pattern=".{2,}" required="required" class="edit-enable" />
|
<input type="text" name="name" value="" pattern=".{2,}" required="required" class="edit-enable" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Description');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Description');?>:</span>
|
||||||
<textarea name="description" rows="3"></textarea>
|
<textarea name="description" rows="3"></textarea>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('RAM Size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('RAM Size');?>:</span>
|
||||||
<input type="text" name="pkg_vm_ram" value="" pattern="^[0-9]+\s*(g|G|gb|GB|mb|MB|m|M)$" placeholder="1g" required="required" />
|
<input type="text" name="pkg_vm_ram" value="" pattern="^[0-9]+\s*(g|G|gb|GB|mb|MB|m|M)$" placeholder="1g" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('HDD Size');?>:</span>
|
<span class="field-name"><?php echo $this->translate('HDD Size');?>:</span>
|
||||||
<input type="text" name="pkg_vm_disk" value="" pattern="^[0-9]+\s*(g|G|gb|GB|mb|MB|m|M)$" placeholder="10g" required="required" />
|
<input type="text" name="pkg_vm_disk" value="" pattern="^[0-9]+\s*(g|G|gb|GB|mb|MB|m|M)$" placeholder="10g" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('CPUs Count');?>:</span>
|
<span class="field-name"><?php echo $this->translate('CPUs Count');?>:</span>
|
||||||
<span class="range">
|
<span class="range">
|
||||||
<input type="range" name="pkg_vm_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngCpus" oninput="rngCpusShow.value=rngCpus.value" />
|
<input type="range" name="pkg_vm_cpus" class="vHorizon" min="1" max="16" value="1" style="margin:6px 0;" id="rngCpus" oninput="rngCpusShow.value=rngCpus.value" />
|
||||||
<input type="text" disabled="disabled" id="rngCpusShow" value="1" />
|
<input type="text" disabled="disabled" id="rngCpusShow" value="1" />
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Add');?>" class="new button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Add');?>" class="new button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Save');?>" class="edit button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
<dialog id="vnc">
|
<dialog id="vnc">
|
||||||
<div class="panel" style="text-align:right;">
|
<div class="panel" style="text-align:right;">
|
||||||
<span onclick="clonos.dialogFullscreen(this);" style="font-size:130%;cursor:pointer;"
|
<span onclick="clonos.dialogFullscreen(this);" style="font-size:130%;cursor:pointer;"
|
||||||
<span class="dialog-fullscreen"></span>
|
<span class="dialog-fullscreen"></span>
|
||||||
</span>
|
</span>
|
||||||
<span onclick="clonos.dialogClose();" style="font-size:150%;font-weight:bold;cursor:pointer;">
|
<span onclick="clonos.dialogClose();" style="font-size:150%;font-weight:bold;cursor:pointer;">
|
||||||
<span class="dialog-close"></span>
|
<span class="dialog-close"></span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="vnc-wait">
|
<div class="vnc-wait">
|
||||||
<div class="outer">
|
<div class="outer">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<span class="icon-spin5 animate-spin"></span><?php echo $this->translate('Please, wait for initialize Virtual Machine');?>
|
<span class="icon-spin5 animate-spin"></span><?php echo $this->translate('Please, wait for initialize Virtual Machine');?>
|
||||||
<br /><small style="display: block;font-size: small;margin-top: 20px;"><?php echo $this->translate('You can click here, or wait');?>: <span id="vnc-countdown"><?php echo $this->translate('some time');?></span></small>
|
<br /><small style="display: block;font-size: small;margin-top: 20px;"><?php echo $this->translate('You can click here, or wait');?>: <span id="vnc-countdown"><?php echo $this->translate('some time');?></span></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<iframe src="about:blank" id="vnc-iframe" border="0" width="1026" height="802"></iframe>
|
<iframe src="about:blank" id="vnc-iframe" border="0" width="1026" height="802"></iframe>
|
||||||
</dialog>
|
</dialog>
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
<dialog id="vnc">
|
<dialog id="vnc">
|
||||||
<div class="panel" style="text-align:right;">
|
<div class="panel" style="text-align:right;">
|
||||||
<span onclick="clonos.dialogClose();" style="font-size:150%;font-weight:bold;cursor:pointer;">
|
<span onclick="clonos.dialogClose();" style="font-size:150%;font-weight:bold;cursor:pointer;">
|
||||||
<span class="dialog-fullscreen"></span>
|
<span class="dialog-fullscreen"></span>
|
||||||
<span class="dialog-close"></span>
|
<span class="dialog-close"></span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<iframe src="about:blank" id="vnc-iframe" border="0" width="800" height="600"></iframe> <!-- 760 436 -->
|
<iframe src="about:blank" id="vnc-iframe" border="0" width="800" height="600"></iframe> <!-- 760 436 -->
|
||||||
</dialog>
|
</dialog>
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
err_messages.add({
|
err_messages.add({
|
||||||
'netname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
'netname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||||
'network':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
'network':'<?php echo $this->translate("Write correct ip address, e.g: 10.0.0.2");?>',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<dialog id="vpnet" class="window-box">
|
<dialog id="vpnet" class="window-box">
|
||||||
<h1><?php echo $this->translate('Create Network');?></h1>
|
<h1><?php echo $this->translate('Create Network');?></h1>
|
||||||
<h2><?php echo $this->translate('Settings');?></h2>
|
<h2><?php echo $this->translate('Settings');?></h2>
|
||||||
<form class="win" method="post" id="vpnetSettings" onsubmit="return false;">
|
<form class="win" method="post" id="vpnetSettings" onsubmit="return false;">
|
||||||
<div class="window-content">
|
<div class="window-content">
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Network name');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Network name');?>:</span>
|
||||||
<input type="text" name="netname" value="" pattern="[\x20-\x21\x23-\x26\x28-\x7F]+" required="required" />
|
<input type="text" name="netname" value="" pattern="[\x20-\x21\x23-\x26\x28-\x7F]+" required="required" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="field-name"><?php echo $this->translate('Network');?>:</span>
|
<span class="field-name"><?php echo $this->translate('Network');?>:</span>
|
||||||
<input type="text" name="network" value="" pattern="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
<input type="text" name="network" value="" pattern="^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
<input type="button" value="<?php echo $this->translate('Create');?>" class="button ok-but" />
|
||||||
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
<input type="button" value="<?php echo $this->translate('Cancel');?>" class="button red cancel-but" />
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
@@ -1,39 +1,39 @@
|
|||||||
<?php
|
<?php
|
||||||
if(isset($_GET['file'])){
|
if(isset($_GET['file'])){
|
||||||
$file=$_GET['file'];
|
$file=$_GET['file'];
|
||||||
$filename=$file;
|
$filename=$file;
|
||||||
}else{
|
}else{
|
||||||
header('HTTP/1.0 404 Not Found');
|
header('HTTP/1.0 404 Not Found');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$res=$clonos->userAutologin();
|
$res=$clonos->userAutologin();
|
||||||
|
|
||||||
if(isset($res['id']) && $res['id']>0){
|
if(isset($res['id']) && $res['id']>0){
|
||||||
|
|
||||||
$file=$clonos->media_import.$file;
|
$file=$clonos->media_import.$file;
|
||||||
|
|
||||||
header('Content-disposition: attachment; filename='.$filename);
|
header('Content-disposition: attachment; filename='.$filename);
|
||||||
header('Content-type: application/octet-stream');
|
header('Content-type: application/octet-stream');
|
||||||
header('Cache-Control: must-revalidate');
|
header('Cache-Control: must-revalidate');
|
||||||
header('Pragma: public');
|
header('Pragma: public');
|
||||||
header('Content-Length: '.filesize($file));
|
header('Content-Length: '.filesize($file));
|
||||||
header("Pragma: no-cache");
|
header("Pragma: no-cache");
|
||||||
header("Expires: 0");
|
header("Expires: 0");
|
||||||
|
|
||||||
$chunkSize = 1024 * 1024;
|
$chunkSize = 1024 * 1024;
|
||||||
$handle = fopen($file, 'rb');
|
$handle = fopen($file, 'rb');
|
||||||
while (!feof($handle))
|
while (!feof($handle))
|
||||||
{
|
{
|
||||||
$buffer = fread($handle, $chunkSize);
|
$buffer = fread($handle, $chunkSize);
|
||||||
echo $buffer;
|
echo $buffer;
|
||||||
ob_flush();
|
ob_flush();
|
||||||
flush();
|
flush();
|
||||||
}
|
}
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
header('HTTP/1.1 401 Unauthorized');
|
header('HTTP/1.1 401 Unauthorized');
|
||||||
exit;
|
exit;
|
||||||
370
public/index.php
370
public/index.php
@@ -1,189 +1,189 @@
|
|||||||
<?php
|
<?php
|
||||||
if(preg_match('/(?i)msie [5-9]/',$_SERVER['HTTP_USER_AGENT']))
|
if(preg_match('/(?i)msie [5-9]/',$_SERVER['HTTP_USER_AGENT']))
|
||||||
{
|
{
|
||||||
echo '<!DOCTYPE html><div style="margin-top:10%;text-align:center;font-size:large;color:darkred;"><p>Sorry, your browser is not supported!</p><p>Please, use last version of any browser.</p></html>';
|
echo '<!DOCTYPE html><div style="margin-top:10%;text-align:center;font-size:large;color:darkred;"><p>Sorry, your browser is not supported!</p><p>Please, use last version of any browser.</p></html>';
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$_real_path=realpath('../');
|
|
||||||
$uri=trim($_SERVER['REQUEST_URI'],'/');
|
|
||||||
require_once($_real_path.'/php/clonos.php');
|
|
||||||
require_once($_real_path.'/php/menu.php');
|
|
||||||
$chunks=Utils::gen_uri_chunks($uri);
|
|
||||||
$clonos=new ClonOS($_real_path, $chunks);
|
|
||||||
$locale = new Localization($_real_path.'/public/'); # /usr/home/web/cp/clonos/public/
|
|
||||||
$menu=new Menu($locale, $chunks);
|
|
||||||
|
|
||||||
if(isset($_GET['upload'])){
|
|
||||||
include('upload.php');
|
|
||||||
CBSD::register_media($path,$file,$ext);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
if(isset($_GET['download'])){
|
|
||||||
include('download.php');
|
|
||||||
CBSD::register_media($path,$file,$ext);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
$lang=$locale->get_lang();
|
|
||||||
$_ds=DIRECTORY_SEPARATOR;
|
|
||||||
$root=trim($_SERVER['DOCUMENT_ROOT'], $_ds);
|
|
||||||
|
|
||||||
if(!empty($chunks)) $uri=$chunks[0];
|
|
||||||
|
|
||||||
$file_path=$_ds.$root.$_ds.'pages'.$_ds.$uri.$_ds;
|
|
||||||
$file_name=$file_path.$lang.'.index.php';
|
|
||||||
$json_name=$file_path.'a.json.php';
|
|
||||||
|
|
||||||
if(empty($uri)){
|
$_real_path=realpath('../');
|
||||||
header('Location: /'.$menu->first_key.'/',true);
|
$uri=trim($_SERVER['REQUEST_URI'],'/');
|
||||||
exit;
|
require_once($_real_path.'/php/clonos.php');
|
||||||
}
|
require_once($_real_path.'/php/menu.php');
|
||||||
|
$chunks=Utils::gen_uri_chunks($uri);
|
||||||
|
$clonos=new ClonOS($_real_path, $chunks);
|
||||||
|
$locale = new Localization($_real_path.'/public/'); # /usr/home/web/cp/clonos/public/
|
||||||
|
$menu=new Menu($locale, $chunks);
|
||||||
|
|
||||||
error_reporting(E_ALL);
|
if(isset($_GET['upload'])){
|
||||||
|
include('upload.php');
|
||||||
$user_info=$clonos->userAutologin();
|
CBSD::register_media($path,$file,$ext);
|
||||||
if(!$user_info['error']){
|
exit;
|
||||||
$user_info_txt="user_id='${user_info['id']}';user_login='${user_info['username']}';";
|
}
|
||||||
}else{
|
if(isset($_GET['download'])){
|
||||||
$user_info['username']='guest';
|
include('download.php');
|
||||||
}
|
CBSD::register_media($path,$file,$ext);
|
||||||
?>
|
exit;
|
||||||
<!DOCTYPE html>
|
}
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
$lang=$locale->get_lang();
|
||||||
<title>ClonOS — <?php echo $menu->title; ?></title>
|
$_ds=DIRECTORY_SEPARATOR;
|
||||||
<link href="/images/favicon.ico?" rel="shortcut icon" type="image/x-icon" />
|
$root=trim($_SERVER['DOCUMENT_ROOT'], $_ds);
|
||||||
<script src="/js/jquery.js" type="text/javascript"></script>
|
|
||||||
<script src="/js/clonos.js" type="text/javascript"></script>
|
if(!empty($chunks)) $uri=$chunks[0];
|
||||||
<script src="/js/dmuploader.js" type="text/javascript"></script>
|
|
||||||
<script src="/js/smoothie.js" type="text/javascript"></script>
|
$file_path=$_ds.$root.$_ds.'pages'.$_ds.$uri.$_ds;
|
||||||
<script src="/js/noty/packaged/jquery.noty.packaged.min.js" type="text/javascript"></script>
|
$file_name=$file_path.$lang.'.index.php';
|
||||||
<link type="text/css" href="/css/reset.css" rel="stylesheet" />
|
$json_name=$file_path.'a.json.php';
|
||||||
<link type="text/css" href="/css/styles.css" rel="stylesheet" />
|
|
||||||
<link type="text/css" href="/font/clonos.css" rel="stylesheet" />
|
if(empty($uri)){
|
||||||
<link type="text/css" href="/font/animation.css" rel="stylesheet" />
|
header('Location: /'.$menu->first_key.'/',true);
|
||||||
<script src="/lang/<?php echo $lang; ?>.js" type="text/javascript"></script>
|
exit;
|
||||||
<style type="text/css">html{background-color:#aaa;} .hide{display:none;}</style>
|
}
|
||||||
<meta name="keywords" content="" />
|
|
||||||
<meta name="description" content="" />
|
error_reporting(E_ALL);
|
||||||
<script type="text/javascript">
|
|
||||||
_first_start=true;
|
$user_info=$clonos->userAutologin();
|
||||||
err_messages={add:function(arr){for(n in arr){err_messages[n]=arr[n];}}};
|
if(!$user_info['error']){
|
||||||
<?php if(isset($user_info_txt)) echo $user_info_txt; ?>
|
$user_info_txt="user_id='${user_info['id']}';user_login='${user_info['username']}';";
|
||||||
</script>
|
}else{
|
||||||
</head>
|
$user_info['username']='guest';
|
||||||
<script type="text/javascript">
|
}
|
||||||
try{
|
?>
|
||||||
var theme=localStorage.getItem('Theme') || 'light';
|
<!DOCTYPE html>
|
||||||
var cs=['light','dark'];
|
<head>
|
||||||
for(c=0,cl=cs.length;c<cl;c++)
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
{
|
<title>ClonOS — <?php echo $menu->title; ?></title>
|
||||||
var css=cs[c];
|
<link href="/images/favicon.ico?" rel="shortcut icon" type="image/x-icon" />
|
||||||
var disabled=(theme==css)?'':' disabled="disabled"';
|
<script src="/js/jquery.js" type="text/javascript"></script>
|
||||||
var hcss=$('<link rel="stylesheet" href="/css/themes/'+css+'.css" id="'+css+'" class="alternate"'+disabled+'>');
|
<script src="/js/clonos.js" type="text/javascript"></script>
|
||||||
$('head').append(hcss);
|
<script src="/js/dmuploader.js" type="text/javascript"></script>
|
||||||
$('#'+css).get(0).disabled=(theme!=css);
|
<script src="/js/smoothie.js" type="text/javascript"></script>
|
||||||
}
|
<script src="/js/noty/packaged/jquery.noty.packaged.min.js" type="text/javascript"></script>
|
||||||
}catch(e){}
|
<link type="text/css" href="/css/reset.css" rel="stylesheet" />
|
||||||
</script>
|
<link type="text/css" href="/css/styles.css" rel="stylesheet" />
|
||||||
<body class="gadget1 login <?php echo $uri;?>">
|
<link type="text/css" href="/font/clonos.css" rel="stylesheet" />
|
||||||
|
<link type="text/css" href="/font/animation.css" rel="stylesheet" />
|
||||||
<main>
|
<script src="/lang/<?php echo $lang; ?>.js" type="text/javascript"></script>
|
||||||
<div class="main"><div id="content">
|
<style type="text/css">html{background-color:#aaa;} .hide{display:none;}</style>
|
||||||
<div id="ctop">
|
<meta name="keywords" content="" />
|
||||||
<?php
|
<meta name="description" content="" />
|
||||||
if(file_exists($file_name)){
|
<script type="text/javascript">
|
||||||
include($file_name);
|
_first_start=true;
|
||||||
} else {
|
err_messages={add:function(arr){for(n in arr){err_messages[n]=arr[n];}}};
|
||||||
echo '<h1>'.$locale->translate('Not implemented yet').'!</h1>';
|
<?php if(isset($user_info_txt)) echo $user_info_txt; ?>
|
||||||
}
|
</script>
|
||||||
$clonos->placeDialogs();
|
</head>
|
||||||
?>
|
<script type="text/javascript">
|
||||||
</div>
|
try{
|
||||||
<div id="cdown"><span class="split-close"></span>
|
var theme=localStorage.getItem('Theme') || 'light';
|
||||||
<div id="cinfo">
|
var cs=['light','dark'];
|
||||||
<div class="left">
|
for(c=0,cl=cs.length;c<cl;c++)
|
||||||
<dl id="summaryInfo">
|
{
|
||||||
<dt>Имя клетки:</dt>
|
var css=cs[c];
|
||||||
<dd>Jail1</dd>
|
var disabled=(theme==css)?'':' disabled="disabled"';
|
||||||
</dl>
|
var hcss=$('<link rel="stylesheet" href="/css/themes/'+css+'.css" id="'+css+'" class="alternate"'+disabled+'>');
|
||||||
</div>
|
$('head').append(hcss);
|
||||||
<div class="right">
|
$('#'+css).get(0).disabled=(theme!=css);
|
||||||
<h2><?php echo $locale->translate('CPU usage');?>, %:</h2>
|
}
|
||||||
<div class="graph v-black g--summary-cpu l-cpu"></div>
|
}catch(e){}
|
||||||
<br />
|
</script>
|
||||||
<h2><?php echo $locale->translate('Memory usage');?>, %:</h2>
|
<body class="gadget1 login <?php echo $uri;?>">
|
||||||
<div class="graph v-black g--summary-mem l-mem"></div>
|
|
||||||
<br />
|
<main>
|
||||||
<h2><?php echo $locale->translate('I/O storage');?>, iops:</h2>
|
<div class="main"><div id="content">
|
||||||
<div class="graph v-black g--summary-iops l-read,write pr-no te-iops"></div>
|
<div id="ctop">
|
||||||
<br />
|
<?php
|
||||||
<h2><?php echo $locale->translate('I/O storage');?>, bit per seconds:</h2>
|
if(file_exists($file_name)){
|
||||||
<div class="graph v-black g--summary-bps l-read,write pr-no te-bps"></div>
|
include($file_name);
|
||||||
</div>
|
} else {
|
||||||
</div>
|
echo '<h1>'.$locale->translate('Not implemented yet').'!</h1>';
|
||||||
</div>
|
}
|
||||||
</div></div>
|
$clonos->placeDialogs();
|
||||||
</main>
|
?>
|
||||||
|
</div>
|
||||||
<div class="menu">
|
<div id="cdown"><span class="split-close"></span>
|
||||||
<div id="menu">
|
<div id="cinfo">
|
||||||
<div class="closer"></div>
|
<div class="left">
|
||||||
<?php
|
<dl id="summaryInfo">
|
||||||
echo $menu->html;
|
<dt>Имя клетки:</dt>
|
||||||
?>
|
<dd>Jail1</dd>
|
||||||
<div id="console"></div>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="right">
|
||||||
|
<h2><?php echo $locale->translate('CPU usage');?>, %:</h2>
|
||||||
<header>
|
<div class="graph v-black g--summary-cpu l-cpu"></div>
|
||||||
<div class="top-right">
|
<br />
|
||||||
<span class="txt">
|
<h2><?php echo $locale->translate('Memory usage');?>, %:</h2>
|
||||||
<a href="https://www.patreon.com/clonos" target="_blank"><?php echo $locale->translate('DONATE'); ?></a>
|
<div class="graph v-black g--summary-mem l-mem"></div>
|
||||||
<span class="space"></span>
|
<br />
|
||||||
<?php echo $locale->translate('VERSION'),': ',file_get_contents($clonos->realpath.'version'); ?>
|
<h2><?php echo $locale->translate('I/O storage');?>, iops:</h2>
|
||||||
<span class="space"></span>
|
<div class="graph v-black g--summary-iops l-read,write pr-no te-iops"></div>
|
||||||
<?php echo $locale->translate('THEMES'); ?>:
|
<br />
|
||||||
</span>
|
<h2><?php echo $locale->translate('I/O storage');?>, bit per seconds:</h2>
|
||||||
<span class="ch_theme">
|
<div class="graph v-black g--summary-bps l-read,write pr-no te-bps"></div>
|
||||||
<span class="light"></span><span class="dark"></span>
|
</div>
|
||||||
</span>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="header">
|
</div></div>
|
||||||
<span id="title"><?php echo $menu->title; ?></span>
|
</main>
|
||||||
<ul>
|
|
||||||
<li class="mhome"><a href="/">Home</a></li>
|
<div class="menu">
|
||||||
<?php // if($clonos->environment=='development') { ?>
|
<div id="menu">
|
||||||
<li><a href="/settings/"><?php echo $locale->translate('Settings'); ?></a></li>
|
<div class="closer"></div>
|
||||||
<?php // } ?>
|
<?php
|
||||||
<li><a href="/users/"><?php echo $locale->translate('Users'); ?></a></li>
|
echo $menu->html;
|
||||||
|
?>
|
||||||
|
<div id="console"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<div class="top-right">
|
||||||
|
<span class="txt">
|
||||||
|
<a href="https://www.patreon.com/clonos" target="_blank"><?php echo $locale->translate('DONATE'); ?></a>
|
||||||
|
<span class="space"></span>
|
||||||
|
<?php echo $locale->translate('VERSION'),': ',file_get_contents($clonos->realpath.'version'); ?>
|
||||||
|
<span class="space"></span>
|
||||||
|
<?php echo $locale->translate('THEMES'); ?>:
|
||||||
|
</span>
|
||||||
|
<span class="ch_theme">
|
||||||
|
<span class="light"></span><span class="dark"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<span id="title"><?php echo $menu->title; ?></span>
|
||||||
|
<ul>
|
||||||
|
<li class="mhome"><a href="/">Home</a></li>
|
||||||
|
<?php // if($clonos->environment=='development') { ?>
|
||||||
|
<li><a href="/settings/"><?php echo $locale->translate('Settings'); ?></a></li>
|
||||||
|
<?php // } ?>
|
||||||
|
<li><a href="/users/"><?php echo $locale->translate('Users'); ?></a></li>
|
||||||
<li><a target="_blank" href="/shell/">>><?php echo $locale->translate('Console'); ?></a></li>
|
<li><a target="_blank" href="/shell/">>><?php echo $locale->translate('Console'); ?></a></li>
|
||||||
<!--
|
<!--
|
||||||
<li><a href="/profile/"><?php echo $locale->translate('Profile'); ?></a></li>
|
<li><a href="/profile/"><?php echo $locale->translate('Profile'); ?></a></li>
|
||||||
<li><a href="/support/"><?php echo $locale->translate('Support'); ?></a></li>
|
<li><a href="/support/"><?php echo $locale->translate('Support'); ?></a></li>
|
||||||
-->
|
-->
|
||||||
<li><a name="">
|
<li><a name="">
|
||||||
<select id="lng-sel">
|
<select id="lng-sel">
|
||||||
<?php
|
<?php
|
||||||
foreach(Config::$languages as $lng=>$lngname){
|
foreach(Config::$languages as $lng=>$lngname){
|
||||||
$sel = ($lang==$lng) ? ' selected="selected"' : '';
|
$sel = ($lang==$lng) ? ' selected="selected"' : '';
|
||||||
echo ' <option value="'.$lng.'"'.$sel.'>'.$lngname.'</option>'.PHP_EOL;
|
echo ' <option value="'.$lng.'"'.$sel.'>'.$lngname.'</option>'.PHP_EOL;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li><a onclick="clonos.logout();" class="link" id="user-login"><?php echo $user_info['username']; ?></a></li>
|
<li><a onclick="clonos.logout();" class="link" id="user-login"><?php echo $user_info['username']; ?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="login-area<?php if(!$user_info['error']) echo ' hide'; ?>"><?php echo $clonos->placeDialogByName('system-login'); ?>
|
<div class="login-area<?php if(!$user_info['error']) echo ' hide'; ?>"><?php echo $clonos->placeDialogByName('system-login'); ?>
|
||||||
<div class="ccopy">ClonOS — is a powerfull system for…</div>
|
<div class="ccopy">ClonOS — is a powerfull system for…</div>
|
||||||
<div class="ccopy">Cloud computing, Lightweight containerization, Virtualization, etc…</div>
|
<div class="ccopy">Cloud computing, Lightweight containerization, Virtualization, etc…</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="spinner"></div>
|
<div class="spinner"></div>
|
||||||
<div class="online icon-online" id="net-stat" onclick="ws_debug();"></div>
|
<div class="online icon-online" id="net-stat" onclick="ws_debug();"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
7202
public/js/clonos-o
7202
public/js/clonos-o
File diff suppressed because it is too large
Load Diff
7802
public/js/clonos.js
7802
public/js/clonos.js
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* dmuploader.min.js - Jquery File Uploader - 0.1
|
* dmuploader.min.js - Jquery File Uploader - 0.1
|
||||||
* http://www.daniel.com.uy/projects/jquery-file-uploader/
|
* http://www.daniel.com.uy/projects/jquery-file-uploader/
|
||||||
*
|
*
|
||||||
* Copyright (c) 2013 Daniel Morales
|
* Copyright (c) 2013 Daniel Morales
|
||||||
* Dual licensed under the MIT and GPL licenses.
|
* Dual licensed under the MIT and GPL licenses.
|
||||||
* http://www.daniel.com.uy/doc/license/
|
* http://www.daniel.com.uy/doc/license/
|
||||||
*/
|
*/
|
||||||
(function(t){var n="dmUploader";var r={url:document.URL,method:"POST",extraData:{},maxFileSize:0,allowedTypes:"*",extFilter:null,dataType:null,fileName:"file",onInit:function(){},onFallbackMode:function(){message},onNewFile:function(e,t){},onBeforeUpload:function(e){},onComplete:function(){},onUploadProgress:function(e,t){},onUploadSuccess:function(e,t){},onUploadError:function(e,t){},onFileTypeError:function(e){},onFileSizeError:function(e){},onFileExtError:function(e){}};var i=function(e,n){this.element=t(e);this.settings=t.extend({},r,n);if(!this.checkBrowser()){return false}this.init();return true};i.prototype.checkBrowser=function(){if(window.FormData===undefined){this.settings.onFallbackMode.call(this.element,"Browser doesn't support Form API");return false}if(this.element.find("input[type=file]").length>0){return true}if(!this.checkEvent("drop",this.element)||!this.checkEvent("dragstart",this.element)){this.settings.onFallbackMode.call(this.element,"Browser doesn't support Ajax Drag and Drop");return false}return true};i.prototype.checkEvent=function(e,t){var t=t||document.createElement("div");var e="on"+e;var n=e in t;if(!n){if(!t.setAttribute){t=document.createElement("div")}if(t.setAttribute&&t.removeAttribute){t.setAttribute(e,"");n=typeof t[e]=="function";if(typeof t[e]!="undefined"){t[e]=undefined}t.removeAttribute(e)}}t=null;return n};i.prototype.init=function(){var e=this;e.queue=new Array;e.queuePos=-1;e.queueRunning=false;e.element.on("drop",function(t){t.preventDefault();var n=t.originalEvent.dataTransfer.files;e.queueFiles(n)});e.element.find("input[type=file]").on("change",function(n){var r=n.target.files;e.queueFiles(r);t(this).val("")});this.settings.onInit.call(this.element)};i.prototype.queueFiles=function(e){var n=this.queue.length;for(var r=0;r<e.length;r++){var i=e[r];if(this.settings.maxFileSize>0&&i.size>this.settings.maxFileSize){this.settings.onFileSizeError.call(this.element,i);continue}if(this.settings.allowedTypes!="*"&&!i.type.match(this.settings.allowedTypes)){this.settings.onFileTypeError.call(this.element,i);continue}if(this.settings.extFilter!=null){var s=this.settings.extFilter.toLowerCase().split(";");var o=i.name.toLowerCase().split(".").pop();if(t.inArray(o,s)<0){this.settings.onFileExtError.call(this.element,i);continue}}this.queue.push(i);var u=this.queue.length-1;this.settings.onNewFile.call(this.element,u,i)}if(this.queueRunning){return false}if(this.queue.length==n){return false}this.processQueue();return true};i.prototype.processQueue=function(){var n=this;n.queuePos++;if(n.queuePos>=n.queue.length){n.settings.onComplete.call(n.element);n.queuePos=n.queue.length-1;n.queueRunning=false;return}var r=n.queue[n.queuePos];var i=new FormData;i.append(n.settings.fileName,r);n.settings.onBeforeUpload.call(n.element,n.queuePos);t.each(n.settings.extraData,function(e,t){i.append(e,t)});n.queueRunning=true;t.ajax({url:n.settings.url,type:n.settings.method,dataType:n.settings.dataType,data:i,cache:false,contentType:false,processData:false,forceSync:false,xhr:function(){var r=t.ajaxSettings.xhr();if(r.upload){r.upload.addEventListener("progress",function(t){var r=0;var i=t.loaded||t.position;var s=t.total||e.totalSize;if(t.lengthComputable){r=Math.ceil(i/s*100)}n.settings.onUploadProgress.call(n.element,n.queuePos,r)},false)}return r},success:function(e,t,r){n.settings.onUploadSuccess.call(n.element,n.queuePos,e)},error:function(e,t,r){n.settings.onUploadError.call(n.element,n.queuePos,r)},complete:function(e,t){n.processQueue()}})};t.fn.dmUploader=function(e){return this.each(function(){if(!t.data(this,n)){t.data(this,n,new i(this,e))}})};t(document).on("dragenter",function(e){e.stopPropagation();e.preventDefault()});t(document).on("dragover",function(e){e.stopPropagation();e.preventDefault()});t(document).on("drop",function(e){e.stopPropagation();e.preventDefault()})})(jQuery)
|
(function(t){var n="dmUploader";var r={url:document.URL,method:"POST",extraData:{},maxFileSize:0,allowedTypes:"*",extFilter:null,dataType:null,fileName:"file",onInit:function(){},onFallbackMode:function(){message},onNewFile:function(e,t){},onBeforeUpload:function(e){},onComplete:function(){},onUploadProgress:function(e,t){},onUploadSuccess:function(e,t){},onUploadError:function(e,t){},onFileTypeError:function(e){},onFileSizeError:function(e){},onFileExtError:function(e){}};var i=function(e,n){this.element=t(e);this.settings=t.extend({},r,n);if(!this.checkBrowser()){return false}this.init();return true};i.prototype.checkBrowser=function(){if(window.FormData===undefined){this.settings.onFallbackMode.call(this.element,"Browser doesn't support Form API");return false}if(this.element.find("input[type=file]").length>0){return true}if(!this.checkEvent("drop",this.element)||!this.checkEvent("dragstart",this.element)){this.settings.onFallbackMode.call(this.element,"Browser doesn't support Ajax Drag and Drop");return false}return true};i.prototype.checkEvent=function(e,t){var t=t||document.createElement("div");var e="on"+e;var n=e in t;if(!n){if(!t.setAttribute){t=document.createElement("div")}if(t.setAttribute&&t.removeAttribute){t.setAttribute(e,"");n=typeof t[e]=="function";if(typeof t[e]!="undefined"){t[e]=undefined}t.removeAttribute(e)}}t=null;return n};i.prototype.init=function(){var e=this;e.queue=new Array;e.queuePos=-1;e.queueRunning=false;e.element.on("drop",function(t){t.preventDefault();var n=t.originalEvent.dataTransfer.files;e.queueFiles(n)});e.element.find("input[type=file]").on("change",function(n){var r=n.target.files;e.queueFiles(r);t(this).val("")});this.settings.onInit.call(this.element)};i.prototype.queueFiles=function(e){var n=this.queue.length;for(var r=0;r<e.length;r++){var i=e[r];if(this.settings.maxFileSize>0&&i.size>this.settings.maxFileSize){this.settings.onFileSizeError.call(this.element,i);continue}if(this.settings.allowedTypes!="*"&&!i.type.match(this.settings.allowedTypes)){this.settings.onFileTypeError.call(this.element,i);continue}if(this.settings.extFilter!=null){var s=this.settings.extFilter.toLowerCase().split(";");var o=i.name.toLowerCase().split(".").pop();if(t.inArray(o,s)<0){this.settings.onFileExtError.call(this.element,i);continue}}this.queue.push(i);var u=this.queue.length-1;this.settings.onNewFile.call(this.element,u,i)}if(this.queueRunning){return false}if(this.queue.length==n){return false}this.processQueue();return true};i.prototype.processQueue=function(){var n=this;n.queuePos++;if(n.queuePos>=n.queue.length){n.settings.onComplete.call(n.element);n.queuePos=n.queue.length-1;n.queueRunning=false;return}var r=n.queue[n.queuePos];var i=new FormData;i.append(n.settings.fileName,r);n.settings.onBeforeUpload.call(n.element,n.queuePos);t.each(n.settings.extraData,function(e,t){i.append(e,t)});n.queueRunning=true;t.ajax({url:n.settings.url,type:n.settings.method,dataType:n.settings.dataType,data:i,cache:false,contentType:false,processData:false,forceSync:false,xhr:function(){var r=t.ajaxSettings.xhr();if(r.upload){r.upload.addEventListener("progress",function(t){var r=0;var i=t.loaded||t.position;var s=t.total||e.totalSize;if(t.lengthComputable){r=Math.ceil(i/s*100)}n.settings.onUploadProgress.call(n.element,n.queuePos,r)},false)}return r},success:function(e,t,r){n.settings.onUploadSuccess.call(n.element,n.queuePos,e)},error:function(e,t,r){n.settings.onUploadError.call(n.element,n.queuePos,r)},complete:function(e,t){n.processQueue()}})};t.fn.dmUploader=function(e){return this.each(function(){if(!t.data(this,n)){t.data(this,n,new i(this,e))}})};t(document).on("dragenter",function(e){e.stopPropagation();e.preventDefault()});t(document).on("dragover",function(e){e.stopPropagation();e.preventDefault()});t(document).on("drop",function(e){e.stopPropagation();e.preventDefault()})})(jQuery)
|
||||||
2
public/js/jquery.js
vendored
2
public/js/jquery.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,106 +1,106 @@
|
|||||||
/*
|
/*
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.12/p5.min.js" type="text/javascript"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.12/p5.min.js" type="text/javascript"></script>
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
cool matrix effect
|
cool matrix effect
|
||||||
http://creativetier.com/code-rain-js/templates/rain-message/index.php?n=1
|
http://creativetier.com/code-rain-js/templates/rain-message/index.php?n=1
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
one more
|
one more
|
||||||
https://dev.to/gnsp/making-the-matrix-effect-in-javascript-din
|
https://dev.to/gnsp/making-the-matrix-effect-in-javascript-din
|
||||||
*/
|
*/
|
||||||
var streams = [];
|
var streams = [];
|
||||||
var fadeInterval = 1.6;
|
var fadeInterval = 1.6;
|
||||||
var symbolSize = 14;
|
var symbolSize = 14;
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
createCanvas(
|
createCanvas(
|
||||||
window.innerWidth,
|
window.innerWidth,
|
||||||
window.innerHeight
|
window.innerHeight
|
||||||
);
|
);
|
||||||
background(0);
|
background(0);
|
||||||
var x = 0;
|
var x = 0;
|
||||||
for (var i = 0; i <= width / symbolSize; i++) {
|
for (var i = 0; i <= width / symbolSize; i++) {
|
||||||
var stream = new Stream();
|
var stream = new Stream();
|
||||||
stream.generateSymbols(x, random(-2000, 0));
|
stream.generateSymbols(x, random(-2000, 0));
|
||||||
streams.push(stream);
|
streams.push(stream);
|
||||||
x += symbolSize
|
x += symbolSize
|
||||||
}
|
}
|
||||||
|
|
||||||
textFont('Consolas');
|
textFont('Consolas');
|
||||||
textSize(symbolSize);
|
textSize(symbolSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw() {
|
function draw() {
|
||||||
background(0, 150);
|
background(0, 150);
|
||||||
streams.forEach(function(stream) {
|
streams.forEach(function(stream) {
|
||||||
stream.render();
|
stream.render();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function Symbol(x, y, speed, first, opacity) {
|
function Symbol(x, y, speed, first, opacity) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
this.value;
|
this.value;
|
||||||
this.speed = speed;
|
this.speed = speed;
|
||||||
this.first = first;
|
this.first = first;
|
||||||
this.opacity = opacity;
|
this.opacity = opacity;
|
||||||
this.switchInterval = round(random(2, 25));
|
this.switchInterval = round(random(2, 25));
|
||||||
this.setToRandomSymbol = function() {
|
this.setToRandomSymbol = function() {
|
||||||
var charType = round(random(0, 5));
|
var charType = round(random(0, 5));
|
||||||
if (frameCount % this.switchInterval == 0) {
|
if (frameCount % this.switchInterval == 0) {
|
||||||
if (charType > 1) {
|
if (charType > 1) {
|
||||||
// set it to Katakana
|
// set it to Katakana
|
||||||
this.value = String.fromCharCode(
|
this.value = String.fromCharCode(
|
||||||
0x30A0 + round(random(0, 96))
|
0x30A0 + round(random(0, 96))
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// set it to numeric
|
// set it to numeric
|
||||||
this.value = round(random(0,9));
|
this.value = round(random(0,9));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.rain = function() {
|
this.rain = function() {
|
||||||
this.y = (this.y >= height) ? 0 : this.y += this.speed;
|
this.y = (this.y >= height) ? 0 : this.y += this.speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Stream() {
|
function Stream() {
|
||||||
this.symbols = [];
|
this.symbols = [];
|
||||||
this.totalSymbols = round(random(5, 35));
|
this.totalSymbols = round(random(5, 35));
|
||||||
this.speed = random(5, 22);
|
this.speed = random(5, 22);
|
||||||
|
|
||||||
this.generateSymbols = function(x, y) {
|
this.generateSymbols = function(x, y) {
|
||||||
var opacity = 255;
|
var opacity = 255;
|
||||||
var first = round(random(0, 4)) == 1;
|
var first = round(random(0, 4)) == 1;
|
||||||
for (var i =0; i <= this.totalSymbols; i++) {
|
for (var i =0; i <= this.totalSymbols; i++) {
|
||||||
symbol = new Symbol(
|
symbol = new Symbol(
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
this.speed,
|
this.speed,
|
||||||
first,
|
first,
|
||||||
opacity
|
opacity
|
||||||
);
|
);
|
||||||
symbol.setToRandomSymbol();
|
symbol.setToRandomSymbol();
|
||||||
this.symbols.push(symbol);
|
this.symbols.push(symbol);
|
||||||
opacity -= (255 / this.totalSymbols) / fadeInterval;
|
opacity -= (255 / this.totalSymbols) / fadeInterval;
|
||||||
y -= symbolSize;
|
y -= symbolSize;
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.render = function() {
|
this.render = function() {
|
||||||
this.symbols.forEach(function(symbol) {
|
this.symbols.forEach(function(symbol) {
|
||||||
if (symbol.first) {
|
if (symbol.first) {
|
||||||
fill(140, 255, 170, symbol.opacity);
|
fill(140, 255, 170, symbol.opacity);
|
||||||
} else {
|
} else {
|
||||||
fill(0, 255, 70, symbol.opacity);
|
fill(0, 255, 70, symbol.opacity);
|
||||||
}
|
}
|
||||||
text(symbol.value, symbol.x, symbol.y);
|
text(symbol.value, symbol.x, symbol.y);
|
||||||
symbol.rain();
|
symbol.rain();
|
||||||
symbol.setToRandomSymbol();
|
symbol.setToRandomSymbol();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,432 +1,432 @@
|
|||||||
/*!
|
/*!
|
||||||
* Noty Helpers Javascript From JQuery Javascript Library
|
* Noty Helpers Javascript From JQuery Javascript Library
|
||||||
*
|
*
|
||||||
* Ported by Maksim Pecherskiy. Original Licensing:
|
* Ported by Maksim Pecherskiy. Original Licensing:
|
||||||
*
|
*
|
||||||
* http://jquery.com/
|
* http://jquery.com/
|
||||||
*
|
*
|
||||||
* Copyright 2011, John Resig
|
* Copyright 2011, John Resig
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
* http://jquery.org/license
|
* http://jquery.org/license
|
||||||
*
|
*
|
||||||
* Includes Sizzle.js
|
* Includes Sizzle.js
|
||||||
* http://sizzlejs.com/
|
* http://sizzlejs.com/
|
||||||
* Copyright 2011, The Dojo Foundation
|
* Copyright 2011, The Dojo Foundation
|
||||||
* Released under the MIT, BSD, and GPL Licenses.
|
* Released under the MIT, BSD, and GPL Licenses.
|
||||||
*
|
*
|
||||||
* Date: Mon Nov 21 21:11:03 2011 -0500
|
* Date: Mon Nov 21 21:11:03 2011 -0500
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
(function(){
|
(function(){
|
||||||
|
|
||||||
// String to Object flags format cache
|
// String to Object flags format cache
|
||||||
var flagsCache = {};
|
var flagsCache = {};
|
||||||
|
|
||||||
// Convert String-formatted flags into Object-formatted ones and store in cache
|
// Convert String-formatted flags into Object-formatted ones and store in cache
|
||||||
function createFlags( flags ) {
|
function createFlags( flags ) {
|
||||||
var object = flagsCache[ flags ] = {},
|
var object = flagsCache[ flags ] = {},
|
||||||
i, length;
|
i, length;
|
||||||
flags = flags.split( /\s+/ );
|
flags = flags.split( /\s+/ );
|
||||||
for ( i = 0, length = flags.length; i < length; i++ ) {
|
for ( i = 0, length = flags.length; i < length; i++ ) {
|
||||||
object[ flags[i] ] = true;
|
object[ flags[i] ] = true;
|
||||||
}
|
}
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
jQuery.extend({
|
jQuery.extend({
|
||||||
|
|
||||||
_mark: function( elem, type ) {
|
_mark: function( elem, type ) {
|
||||||
if ( elem ) {
|
if ( elem ) {
|
||||||
type = (type || "fx") + "mark";
|
type = (type || "fx") + "mark";
|
||||||
jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
|
jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_unmark: function( force, elem, type ) {
|
_unmark: function( force, elem, type ) {
|
||||||
if ( force !== true ) {
|
if ( force !== true ) {
|
||||||
type = elem;
|
type = elem;
|
||||||
elem = force;
|
elem = force;
|
||||||
force = false;
|
force = false;
|
||||||
}
|
}
|
||||||
if ( elem ) {
|
if ( elem ) {
|
||||||
type = type || "fx";
|
type = type || "fx";
|
||||||
var key = type + "mark",
|
var key = type + "mark",
|
||||||
count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
|
count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
|
||||||
if ( count ) {
|
if ( count ) {
|
||||||
jQuery.data( elem, key, count, true );
|
jQuery.data( elem, key, count, true );
|
||||||
} else {
|
} else {
|
||||||
jQuery.removeData( elem, key, true );
|
jQuery.removeData( elem, key, true );
|
||||||
handleQueueMarkDefer( elem, type, "mark" );
|
handleQueueMarkDefer( elem, type, "mark" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
queue: function( elem, type, data ) {
|
queue: function( elem, type, data ) {
|
||||||
if ( elem ) {
|
if ( elem ) {
|
||||||
type = (type || "fx") + "queue";
|
type = (type || "fx") + "queue";
|
||||||
var q = jQuery.data( elem, type, undefined, true );
|
var q = jQuery.data( elem, type, undefined, true );
|
||||||
// Speed up dequeue by getting out quickly if this is just a lookup
|
// Speed up dequeue by getting out quickly if this is just a lookup
|
||||||
if ( data ) {
|
if ( data ) {
|
||||||
if ( !q || jQuery.isArray(data) ) {
|
if ( !q || jQuery.isArray(data) ) {
|
||||||
q = jQuery.data( elem, type, jQuery.makeArray(data), true );
|
q = jQuery.data( elem, type, jQuery.makeArray(data), true );
|
||||||
} else {
|
} else {
|
||||||
q.push( data );
|
q.push( data );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return q || [];
|
return q || [];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
dequeue: function( elem, type ) {
|
dequeue: function( elem, type ) {
|
||||||
type = type || "fx";
|
type = type || "fx";
|
||||||
|
|
||||||
var queue = jQuery.queue( elem, type ),
|
var queue = jQuery.queue( elem, type ),
|
||||||
fn = queue.shift(),
|
fn = queue.shift(),
|
||||||
defer;
|
defer;
|
||||||
|
|
||||||
// If the fx queue is dequeued, always remove the progress sentinel
|
// If the fx queue is dequeued, always remove the progress sentinel
|
||||||
if ( fn === "inprogress" ) {
|
if ( fn === "inprogress" ) {
|
||||||
fn = queue.shift();
|
fn = queue.shift();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( fn ) {
|
if ( fn ) {
|
||||||
// Add a progress sentinel to prevent the fx queue from being
|
// Add a progress sentinel to prevent the fx queue from being
|
||||||
// automatically dequeued
|
// automatically dequeued
|
||||||
if ( type === "fx" ) {
|
if ( type === "fx" ) {
|
||||||
queue.unshift("inprogress");
|
queue.unshift("inprogress");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn.call(elem, function() {
|
fn.call(elem, function() {
|
||||||
jQuery.dequeue(elem, type);
|
jQuery.dequeue(elem, type);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !queue.length ) {
|
if ( !queue.length ) {
|
||||||
jQuery.removeData( elem, type + "queue", true );
|
jQuery.removeData( elem, type + "queue", true );
|
||||||
handleQueueMarkDefer( elem, type, "queue" );
|
handleQueueMarkDefer( elem, type, "queue" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
queue: function( type, data ) {
|
queue: function( type, data ) {
|
||||||
if ( typeof type !== "string" ) {
|
if ( typeof type !== "string" ) {
|
||||||
data = type;
|
data = type;
|
||||||
type = "fx";
|
type = "fx";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( data === undefined ) {
|
if ( data === undefined ) {
|
||||||
return jQuery.queue( this[0], type );
|
return jQuery.queue( this[0], type );
|
||||||
}
|
}
|
||||||
return this.each(function() {
|
return this.each(function() {
|
||||||
var queue = jQuery.queue( this, type, data );
|
var queue = jQuery.queue( this, type, data );
|
||||||
|
|
||||||
if ( type === "fx" && queue[0] !== "inprogress" ) {
|
if ( type === "fx" && queue[0] !== "inprogress" ) {
|
||||||
jQuery.dequeue( this, type );
|
jQuery.dequeue( this, type );
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
dequeue: function( type ) {
|
dequeue: function( type ) {
|
||||||
return this.each(function() {
|
return this.each(function() {
|
||||||
jQuery.dequeue( this, type );
|
jQuery.dequeue( this, type );
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// Based off of the plugin by Clint Helfers, with permission.
|
// Based off of the plugin by Clint Helfers, with permission.
|
||||||
// http://blindsignals.com/index.php/2009/07/jquery-delay/
|
// http://blindsignals.com/index.php/2009/07/jquery-delay/
|
||||||
delay: function( time, type ) {
|
delay: function( time, type ) {
|
||||||
time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
|
time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
|
||||||
type = type || "fx";
|
type = type || "fx";
|
||||||
|
|
||||||
return this.queue( type, function() {
|
return this.queue( type, function() {
|
||||||
var elem = this;
|
var elem = this;
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
jQuery.dequeue( elem, type );
|
jQuery.dequeue( elem, type );
|
||||||
}, time );
|
}, time );
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
clearQueue: function( type ) {
|
clearQueue: function( type ) {
|
||||||
return this.queue( type || "fx", [] );
|
return this.queue( type || "fx", [] );
|
||||||
},
|
},
|
||||||
// Get a promise resolved when queues of a certain type
|
// Get a promise resolved when queues of a certain type
|
||||||
// are emptied (fx is the type by default)
|
// are emptied (fx is the type by default)
|
||||||
promise: function( type, object ) {
|
promise: function( type, object ) {
|
||||||
if ( typeof type !== "string" ) {
|
if ( typeof type !== "string" ) {
|
||||||
object = type;
|
object = type;
|
||||||
type = undefined;
|
type = undefined;
|
||||||
}
|
}
|
||||||
type = type || "fx";
|
type = type || "fx";
|
||||||
var defer = jQuery.Deferred(),
|
var defer = jQuery.Deferred(),
|
||||||
elements = this,
|
elements = this,
|
||||||
i = elements.length,
|
i = elements.length,
|
||||||
count = 1,
|
count = 1,
|
||||||
deferDataKey = type + "defer",
|
deferDataKey = type + "defer",
|
||||||
queueDataKey = type + "queue",
|
queueDataKey = type + "queue",
|
||||||
markDataKey = type + "mark",
|
markDataKey = type + "mark",
|
||||||
tmp;
|
tmp;
|
||||||
function resolve() {
|
function resolve() {
|
||||||
if ( !( --count ) ) {
|
if ( !( --count ) ) {
|
||||||
defer.resolveWith( elements, [ elements ] );
|
defer.resolveWith( elements, [ elements ] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while( i-- ) {
|
while( i-- ) {
|
||||||
if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
|
if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
|
||||||
( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
|
( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
|
||||||
jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
|
jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
|
||||||
jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
|
jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
|
||||||
count++;
|
count++;
|
||||||
tmp.done( resolve );
|
tmp.done( resolve );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resolve();
|
resolve();
|
||||||
return defer.promise();
|
return defer.promise();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function handleQueueMarkDefer( elem, type, src ) {
|
function handleQueueMarkDefer( elem, type, src ) {
|
||||||
var deferDataKey = type + "defer",
|
var deferDataKey = type + "defer",
|
||||||
queueDataKey = type + "queue",
|
queueDataKey = type + "queue",
|
||||||
markDataKey = type + "mark",
|
markDataKey = type + "mark",
|
||||||
defer = jQuery._data( elem, deferDataKey );
|
defer = jQuery._data( elem, deferDataKey );
|
||||||
if ( defer &&
|
if ( defer &&
|
||||||
( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
|
( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
|
||||||
( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
|
( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
|
||||||
// Give room for hard-coded callbacks to fire first
|
// Give room for hard-coded callbacks to fire first
|
||||||
// and eventually mark/queue something else on the element
|
// and eventually mark/queue something else on the element
|
||||||
setTimeout( function() {
|
setTimeout( function() {
|
||||||
if ( !jQuery._data( elem, queueDataKey ) &&
|
if ( !jQuery._data( elem, queueDataKey ) &&
|
||||||
!jQuery._data( elem, markDataKey ) ) {
|
!jQuery._data( elem, markDataKey ) ) {
|
||||||
jQuery.removeData( elem, deferDataKey, true );
|
jQuery.removeData( elem, deferDataKey, true );
|
||||||
defer.fire();
|
defer.fire();
|
||||||
}
|
}
|
||||||
}, 0 );
|
}, 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
jQuery.Callbacks = function( flags ) {
|
jQuery.Callbacks = function( flags ) {
|
||||||
|
|
||||||
// Convert flags from String-formatted to Object-formatted
|
// Convert flags from String-formatted to Object-formatted
|
||||||
// (we check in cache first)
|
// (we check in cache first)
|
||||||
flags = flags ? ( /*flagsCache[ flags ] || */createFlags( flags ) ) : {};
|
flags = flags ? ( /*flagsCache[ flags ] || */createFlags( flags ) ) : {};
|
||||||
|
|
||||||
var // Actual callback list
|
var // Actual callback list
|
||||||
list = [],
|
list = [],
|
||||||
// Stack of fire calls for repeatable lists
|
// Stack of fire calls for repeatable lists
|
||||||
stack = [],
|
stack = [],
|
||||||
// Last fire value (for non-forgettable lists)
|
// Last fire value (for non-forgettable lists)
|
||||||
memory,
|
memory,
|
||||||
// Flag to know if list is currently firing
|
// Flag to know if list is currently firing
|
||||||
firing,
|
firing,
|
||||||
// First callback to fire (used internally by add and fireWith)
|
// First callback to fire (used internally by add and fireWith)
|
||||||
firingStart,
|
firingStart,
|
||||||
// End of the loop when firing
|
// End of the loop when firing
|
||||||
firingLength,
|
firingLength,
|
||||||
// Index of currently firing callback (modified by remove if needed)
|
// Index of currently firing callback (modified by remove if needed)
|
||||||
firingIndex,
|
firingIndex,
|
||||||
// Add one or several callbacks to the list
|
// Add one or several callbacks to the list
|
||||||
add = function( args ) {
|
add = function( args ) {
|
||||||
var i,
|
var i,
|
||||||
length,
|
length,
|
||||||
elem,
|
elem,
|
||||||
type,
|
type,
|
||||||
actual;
|
actual;
|
||||||
for ( i = 0, length = args.length; i < length; i++ ) {
|
for ( i = 0, length = args.length; i < length; i++ ) {
|
||||||
elem = args[ i ];
|
elem = args[ i ];
|
||||||
type = jQuery.type( elem );
|
type = jQuery.type( elem );
|
||||||
if ( type === "array" ) {
|
if ( type === "array" ) {
|
||||||
// Inspect recursively
|
// Inspect recursively
|
||||||
add( elem );
|
add( elem );
|
||||||
} else if ( type === "function" ) {
|
} else if ( type === "function" ) {
|
||||||
// Add if not in unique mode and callback is not in
|
// Add if not in unique mode and callback is not in
|
||||||
if ( !flags.unique || !self.has( elem ) ) {
|
if ( !flags.unique || !self.has( elem ) ) {
|
||||||
list.push( elem );
|
list.push( elem );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// Fire callbacks
|
// Fire callbacks
|
||||||
fire = function( context, args ) {
|
fire = function( context, args ) {
|
||||||
args = args || [];
|
args = args || [];
|
||||||
memory = !flags.memory || [ context, args ];
|
memory = !flags.memory || [ context, args ];
|
||||||
firing = true;
|
firing = true;
|
||||||
firingIndex = firingStart || 0;
|
firingIndex = firingStart || 0;
|
||||||
firingStart = 0;
|
firingStart = 0;
|
||||||
firingLength = list.length;
|
firingLength = list.length;
|
||||||
for ( ; list && firingIndex < firingLength; firingIndex++ ) {
|
for ( ; list && firingIndex < firingLength; firingIndex++ ) {
|
||||||
if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
|
if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
|
||||||
memory = true; // Mark as halted
|
memory = true; // Mark as halted
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
firing = false;
|
firing = false;
|
||||||
if ( list ) {
|
if ( list ) {
|
||||||
if ( !flags.once ) {
|
if ( !flags.once ) {
|
||||||
if ( stack && stack.length ) {
|
if ( stack && stack.length ) {
|
||||||
memory = stack.shift();
|
memory = stack.shift();
|
||||||
self.fireWith( memory[ 0 ], memory[ 1 ] );
|
self.fireWith( memory[ 0 ], memory[ 1 ] );
|
||||||
}
|
}
|
||||||
} else if ( memory === true ) {
|
} else if ( memory === true ) {
|
||||||
self.disable();
|
self.disable();
|
||||||
} else {
|
} else {
|
||||||
list = [];
|
list = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// Actual Callbacks object
|
// Actual Callbacks object
|
||||||
self = {
|
self = {
|
||||||
// Add a callback or a collection of callbacks to the list
|
// Add a callback or a collection of callbacks to the list
|
||||||
add: function() {
|
add: function() {
|
||||||
if ( list ) {
|
if ( list ) {
|
||||||
var length = list.length;
|
var length = list.length;
|
||||||
add( arguments );
|
add( arguments );
|
||||||
// Do we need to add the callbacks to the
|
// Do we need to add the callbacks to the
|
||||||
// current firing batch?
|
// current firing batch?
|
||||||
if ( firing ) {
|
if ( firing ) {
|
||||||
firingLength = list.length;
|
firingLength = list.length;
|
||||||
// With memory, if we're not firing then
|
// With memory, if we're not firing then
|
||||||
// we should call right away, unless previous
|
// we should call right away, unless previous
|
||||||
// firing was halted (stopOnFalse)
|
// firing was halted (stopOnFalse)
|
||||||
} else if ( memory && memory !== true ) {
|
} else if ( memory && memory !== true ) {
|
||||||
firingStart = length;
|
firingStart = length;
|
||||||
fire( memory[ 0 ], memory[ 1 ] );
|
fire( memory[ 0 ], memory[ 1 ] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// Remove a callback from the list
|
// Remove a callback from the list
|
||||||
remove: function() {
|
remove: function() {
|
||||||
if ( list ) {
|
if ( list ) {
|
||||||
var args = arguments,
|
var args = arguments,
|
||||||
argIndex = 0,
|
argIndex = 0,
|
||||||
argLength = args.length;
|
argLength = args.length;
|
||||||
for ( ; argIndex < argLength ; argIndex++ ) {
|
for ( ; argIndex < argLength ; argIndex++ ) {
|
||||||
for ( var i = 0; i < list.length; i++ ) {
|
for ( var i = 0; i < list.length; i++ ) {
|
||||||
if ( args[ argIndex ] === list[ i ] ) {
|
if ( args[ argIndex ] === list[ i ] ) {
|
||||||
// Handle firingIndex and firingLength
|
// Handle firingIndex and firingLength
|
||||||
if ( firing ) {
|
if ( firing ) {
|
||||||
if ( i <= firingLength ) {
|
if ( i <= firingLength ) {
|
||||||
firingLength--;
|
firingLength--;
|
||||||
if ( i <= firingIndex ) {
|
if ( i <= firingIndex ) {
|
||||||
firingIndex--;
|
firingIndex--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Remove the element
|
// Remove the element
|
||||||
list.splice( i--, 1 );
|
list.splice( i--, 1 );
|
||||||
// If we have some unicity property then
|
// If we have some unicity property then
|
||||||
// we only need to do this once
|
// we only need to do this once
|
||||||
if ( flags.unique ) {
|
if ( flags.unique ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// Control if a given callback is in the list
|
// Control if a given callback is in the list
|
||||||
has: function( fn ) {
|
has: function( fn ) {
|
||||||
if ( list ) {
|
if ( list ) {
|
||||||
var i = 0,
|
var i = 0,
|
||||||
length = list.length;
|
length = list.length;
|
||||||
for ( ; i < length; i++ ) {
|
for ( ; i < length; i++ ) {
|
||||||
if ( fn === list[ i ] ) {
|
if ( fn === list[ i ] ) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
// Remove all callbacks from the list
|
// Remove all callbacks from the list
|
||||||
empty: function() {
|
empty: function() {
|
||||||
list = [];
|
list = [];
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// Have the list do nothing anymore
|
// Have the list do nothing anymore
|
||||||
disable: function() {
|
disable: function() {
|
||||||
list = stack = memory = undefined;
|
list = stack = memory = undefined;
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// Is it disabled?
|
// Is it disabled?
|
||||||
disabled: function() {
|
disabled: function() {
|
||||||
return !list;
|
return !list;
|
||||||
},
|
},
|
||||||
// Lock the list in its current state
|
// Lock the list in its current state
|
||||||
lock: function() {
|
lock: function() {
|
||||||
stack = undefined;
|
stack = undefined;
|
||||||
if ( !memory || memory === true ) {
|
if ( !memory || memory === true ) {
|
||||||
self.disable();
|
self.disable();
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// Is it locked?
|
// Is it locked?
|
||||||
locked: function() {
|
locked: function() {
|
||||||
return !stack;
|
return !stack;
|
||||||
},
|
},
|
||||||
// Call all callbacks with the given context and arguments
|
// Call all callbacks with the given context and arguments
|
||||||
fireWith: function( context, args ) {
|
fireWith: function( context, args ) {
|
||||||
if ( stack ) {
|
if ( stack ) {
|
||||||
if ( firing ) {
|
if ( firing ) {
|
||||||
if ( !flags.once ) {
|
if ( !flags.once ) {
|
||||||
stack.push( [ context, args ] );
|
stack.push( [ context, args ] );
|
||||||
}
|
}
|
||||||
} else if ( !( flags.once && memory ) ) {
|
} else if ( !( flags.once && memory ) ) {
|
||||||
fire( context, args );
|
fire( context, args );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// Call all the callbacks with the given arguments
|
// Call all the callbacks with the given arguments
|
||||||
fire: function() {
|
fire: function() {
|
||||||
self.fireWith( this, arguments );
|
self.fireWith( this, arguments );
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
// To know if the callbacks have already been called at least once
|
// To know if the callbacks have already been called at least once
|
||||||
fired: function() {
|
fired: function() {
|
||||||
return !!memory;
|
return !!memory;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
// Get a promise resolved when queues of a certain type
|
// Get a promise resolved when queues of a certain type
|
||||||
// are emptied (fx is the type by default)
|
// are emptied (fx is the type by default)
|
||||||
promise: function( type, object ) {
|
promise: function( type, object ) {
|
||||||
if ( typeof type !== "string" ) {
|
if ( typeof type !== "string" ) {
|
||||||
object = type;
|
object = type;
|
||||||
type = undefined;
|
type = undefined;
|
||||||
}
|
}
|
||||||
type = type || "fx";
|
type = type || "fx";
|
||||||
var defer = jQuery.Deferred(),
|
var defer = jQuery.Deferred(),
|
||||||
elements = this,
|
elements = this,
|
||||||
i = elements.length,
|
i = elements.length,
|
||||||
count = 1,
|
count = 1,
|
||||||
deferDataKey = type + "defer",
|
deferDataKey = type + "defer",
|
||||||
queueDataKey = type + "queue",
|
queueDataKey = type + "queue",
|
||||||
markDataKey = type + "mark",
|
markDataKey = type + "mark",
|
||||||
tmp;
|
tmp;
|
||||||
function resolve() {
|
function resolve() {
|
||||||
if ( !( --count ) ) {
|
if ( !( --count ) ) {
|
||||||
defer.resolveWith( elements, [ elements ] );
|
defer.resolveWith( elements, [ elements ] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while( i-- ) {
|
while( i-- ) {
|
||||||
if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
|
if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
|
||||||
( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
|
( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
|
||||||
jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
|
jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
|
||||||
jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
|
jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
|
||||||
count++;
|
count++;
|
||||||
tmp.add( resolve );
|
tmp.add( resolve );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resolve();
|
resolve();
|
||||||
return defer.promise();
|
return defer.promise();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,19 +1,19 @@
|
|||||||
<?php
|
<?php
|
||||||
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) ||
|
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) ||
|
||||||
strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])!='xmlhttprequest' ||
|
strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])!='xmlhttprequest' ||
|
||||||
!isset($_POST['path']))
|
!isset($_POST['path']))
|
||||||
{echo '{}';exit;}
|
{echo '{}';exit;}
|
||||||
|
|
||||||
$_ds=DIRECTORY_SEPARATOR;
|
$_ds=DIRECTORY_SEPARATOR;
|
||||||
$path=trim($_POST['path'],$_ds);
|
$path=trim($_POST['path'],$_ds);
|
||||||
|
|
||||||
$_REALPATH=realpath('../');
|
$_REALPATH=realpath('../');
|
||||||
include($_REALPATH.'/php/clonos.php');
|
include($_REALPATH.'/php/clonos.php');
|
||||||
$clonos=new ClonOS($_REALPATH);
|
$clonos=new ClonOS($_REALPATH);
|
||||||
$clonos->json_req=true;
|
$clonos->json_req=true;
|
||||||
|
|
||||||
//$file_path=$_REALPATH.$_ds.'public/pages'.$_ds.$path.$_ds;
|
//$file_path=$_REALPATH.$_ds.'public/pages'.$_ds.$path.$_ds;
|
||||||
//$clonos->json_name=$file_path.'a.json.php';
|
//$clonos->json_name=$file_path.'a.json.php';
|
||||||
|
|
||||||
//if(file_exists($json_name)) include($json_name); else echo '{}';
|
//if(file_exists($json_name)) include($json_name); else echo '{}';
|
||||||
exit;
|
exit;
|
||||||
@@ -1,49 +1,49 @@
|
|||||||
clonos.lang={
|
clonos.lang={
|
||||||
"Error": "Fehler",
|
"Error": "Fehler",
|
||||||
"No data, add something": "Keine Daten vorhanden. Bitte wählen Sie etwas aus.",
|
"No data, add something": "Keine Daten vorhanden. Bitte wählen Sie etwas aus.",
|
||||||
"available on the jail is not running": "Nur verfügbar, wenn die Jail nicht in Betrieb ist",
|
"available on the jail is not running": "Nur verfügbar, wenn die Jail nicht in Betrieb ist",
|
||||||
"Log is empty": "Kein Inhalt in der Log-Datei",
|
"Log is empty": "Kein Inhalt in der Log-Datei",
|
||||||
"Exported jails": "Exportierte jails",
|
"Exported jails": "Exportierte jails",
|
||||||
"Download": "Herunterladen",
|
"Download": "Herunterladen",
|
||||||
"Jail is created": "Jail wurde erstellt",
|
"Jail is created": "Jail wurde erstellt",
|
||||||
"Jail already launched": "Jail ist bereits aktiv",
|
"Jail already launched": "Jail ist bereits aktiv",
|
||||||
"Jail already stopped": "Jail aist bereit gestoppt",
|
"Jail already stopped": "Jail aist bereit gestoppt",
|
||||||
"Export not available on launched jail": "Export einer laufenden Jail ist nicht möglich",
|
"Export not available on launched jail": "Export einer laufenden Jail ist nicht möglich",
|
||||||
"This field cannot be left blank": "Dieses Feld muss ausgefüllt sein",
|
"This field cannot be left blank": "Dieses Feld muss ausgefüllt sein",
|
||||||
"You need to select one or more jails for clone": "Eine oder mehrere Jails müssen zum kopieren ausgewählt werden",
|
"You need to select one or more jails for clone": "Eine oder mehrere Jails müssen zum kopieren ausgewählt werden",
|
||||||
"You want to restart selected jail! Are you sure?":"Möchten Sie die ausgewählten Jails wirklich neustarten?",
|
"You want to restart selected jail! Are you sure?":"Möchten Sie die ausgewählten Jails wirklich neustarten?",
|
||||||
"You want to restart selected virtual machine! Are you sure?":"Möchten Sie die ausgewählten VMs wirklich neustarten?",
|
"You want to restart selected virtual machine! Are you sure?":"Möchten Sie die ausgewählten VMs wirklich neustarten?",
|
||||||
"You want to delete selected jail! Are you sure?":"Möchten Sie die ausgewählten Jails wirklich löschen?",
|
"You want to delete selected jail! Are you sure?":"Möchten Sie die ausgewählten Jails wirklich löschen?",
|
||||||
"You want to delete selected virtual machine! Are you sure?":"Möchten Sie die ausgewählten VMs wirklich neustarten?",
|
"You want to delete selected virtual machine! Are you sure?":"Möchten Sie die ausgewählten VMs wirklich neustarten?",
|
||||||
|
|
||||||
"You want to delete selected authkey! Are you sure?":"Möchten Sie den ausgewählten Schlüssel wirklich löschen?",
|
"You want to delete selected authkey! Are you sure?":"Möchten Sie den ausgewählten Schlüssel wirklich löschen?",
|
||||||
|
|
||||||
|
|
||||||
"Not running":"Nicht in Betrieb",
|
"Not running":"Nicht in Betrieb",
|
||||||
"Not Launched":"Nicht gestartet",
|
"Not Launched":"Nicht gestartet",
|
||||||
"Launched":"Gestartet",
|
"Launched":"Gestartet",
|
||||||
"Stopping":"Gestoppt",
|
"Stopping":"Gestoppt",
|
||||||
"Stopped":"Stoppe",
|
"Stopped":"Stoppe",
|
||||||
"Removing":"Lösche",
|
"Removing":"Lösche",
|
||||||
"Removed":"Gelöscht",
|
"Removed":"Gelöscht",
|
||||||
"Creating":"Erstelle",
|
"Creating":"Erstelle",
|
||||||
"Created":"Erstellt",
|
"Created":"Erstellt",
|
||||||
"Starting":"Starte",
|
"Starting":"Starte",
|
||||||
"Exporting":"Exportiere",
|
"Exporting":"Exportiere",
|
||||||
"Cloning":"Kopiere",
|
"Cloning":"Kopiere",
|
||||||
"Cloned":"Kopiert",
|
"Cloned":"Kopiert",
|
||||||
"Restarting":"Start neu",
|
"Restarting":"Start neu",
|
||||||
"Restarted":"Neugestartet",
|
"Restarted":"Neugestartet",
|
||||||
"Update":"Aktualisieren",
|
"Update":"Aktualisieren",
|
||||||
"Updating":"Aktulisiere",
|
"Updating":"Aktulisiere",
|
||||||
"Updated":"Aktualisiert",
|
"Updated":"Aktualisiert",
|
||||||
"Delete":"Löschen",
|
"Delete":"Löschen",
|
||||||
"Save":"Speichern",
|
"Save":"Speichern",
|
||||||
|
|
||||||
"end":"Beenden",
|
"end":"Beenden",
|
||||||
|
|
||||||
"This name is already exists!":"Dieser Name besteht bereits",
|
"This name is already exists!":"Dieser Name besteht bereits",
|
||||||
"Passwords must match!":"Die Kennwörter müssen gleich sein!",
|
"Passwords must match!":"Die Kennwörter müssen gleich sein!",
|
||||||
|
|
||||||
"@redirect_alert@":"Sie werden in 3s zur Jail Übersicht weitergeleitet!",
|
"@redirect_alert@":"Sie werden in 3s zur Jail Übersicht weitergeleitet!",
|
||||||
}
|
}
|
||||||
@@ -1,159 +1,159 @@
|
|||||||
<?php
|
<?php
|
||||||
$lang=array(
|
$lang=array(
|
||||||
'Settings'=>'Einstellungen',
|
'Settings'=>'Einstellungen',
|
||||||
'Profile'=>'Profile',
|
'Profile'=>'Profile',
|
||||||
'Support'=>'Hilfe',
|
'Support'=>'Hilfe',
|
||||||
|
|
||||||
'Overview'=>'Übersicht',
|
'Overview'=>'Übersicht',
|
||||||
'Summary Overview'=>'Zusammenfassung Übersicht',
|
'Summary Overview'=>'Zusammenfassung Übersicht',
|
||||||
'Jails containers'=>'Jail containers',
|
'Jails containers'=>'Jail containers',
|
||||||
'Jails containers control panel'=>'Jail containers Einstellungen',
|
'Jails containers control panel'=>'Jail containers Einstellungen',
|
||||||
'Template for jail'=>'Template für jail',
|
'Template for jail'=>'Template für jail',
|
||||||
'Helpers and wizard for containers'=>'Hilfe und Assistenten für Containers',
|
'Helpers and wizard for containers'=>'Hilfe und Assistenten für Containers',
|
||||||
'Helpers of jails'=>'Unterstützung of jails',
|
'Helpers of jails'=>'Unterstützung of jails',
|
||||||
'Virtual machine control panel'=>'Virtual Machine Einstellungen',
|
'Virtual machine control panel'=>'Virtual Machine Einstellungen',
|
||||||
'Bhyve VMs'=>'Bhyve VMs',
|
'Bhyve VMs'=>'Bhyve VMs',
|
||||||
'Virtual machine control panel'=>'Virtual Machine Einstellungen',
|
'Virtual machine control panel'=>'Virtual Machine Einstellungen',
|
||||||
'Nodes'=>'Nodes',
|
'Nodes'=>'Nodes',
|
||||||
'Nodes control panel'=>'Nodes Einstellungen',
|
'Nodes control panel'=>'Nodes Einstellungen',
|
||||||
'VM Packages'=>'VM Pakete',
|
'VM Packages'=>'VM Pakete',
|
||||||
'Manage for virtual machine packages'=>'Einrichten von VM Paketen',
|
'Manage for virtual machine packages'=>'Einrichten von VM Paketen',
|
||||||
'Virtual Private Network'=>'Virtual Private Network',
|
'Virtual Private Network'=>'Virtual Private Network',
|
||||||
'Manage for virtual private networks'=>'Einstellungen für VPNs',
|
'Manage for virtual private networks'=>'Einstellungen für VPNs',
|
||||||
'Authkeys'=>'Authkeys',
|
'Authkeys'=>'Authkeys',
|
||||||
'Manage for SSH auth key'=>'Einstellungen für SSH Schlüssel',
|
'Manage for SSH auth key'=>'Einstellungen für SSH Schlüssel',
|
||||||
'Storage Media'=>'Speichermedien',
|
'Storage Media'=>'Speichermedien',
|
||||||
'Virtual Media Manager'=>'Virtual Media Verwaltung',
|
'Virtual Media Manager'=>'Virtual Media Verwaltung',
|
||||||
'Repository'=>'Repository',
|
'Repository'=>'Repository',
|
||||||
'Remote repository'=>'Remote repository',
|
'Remote repository'=>'Remote repository',
|
||||||
'FreeBSD Bases'=>'FreeBSD Verwaltung',
|
'FreeBSD Bases'=>'FreeBSD Verwaltung',
|
||||||
'FreeBSD bases manager'=>'FreeBSD Bases Verwaltung',
|
'FreeBSD bases manager'=>'FreeBSD Bases Verwaltung',
|
||||||
'FreeBSD Sources'=>'FreeBSD Sources',
|
'FreeBSD Sources'=>'FreeBSD Sources',
|
||||||
'FreeBSD sources manager'=>'FreeBSD Sources Verwaltung',
|
'FreeBSD sources manager'=>'FreeBSD Sources Verwaltung',
|
||||||
'Jail Marketplace'=>'Jail Marktplatz',
|
'Jail Marketplace'=>'Jail Marktplatz',
|
||||||
'Public remote containers marketplace'=>'Öffentlicher Container Marktplatz',
|
'Public remote containers marketplace'=>'Öffentlicher Container Marktplatz',
|
||||||
'Bhyve Marketplace'=>'Bhyve Marktplatz',
|
'Bhyve Marketplace'=>'Bhyve Marktplatz',
|
||||||
'Public remote virtual machine marketplace'=>'Öffentlicher VM Marktplatz',
|
'Public remote virtual machine marketplace'=>'Öffentlicher VM Marktplatz',
|
||||||
'TaskLog'=>'TaskLog',
|
'TaskLog'=>'TaskLog',
|
||||||
'System task log'=>'System Prozess log',
|
'System task log'=>'System Prozess log',
|
||||||
|
|
||||||
'Not implemented yet'=>'Noch nicht implementiert',
|
'Not implemented yet'=>'Noch nicht implementiert',
|
||||||
|
|
||||||
|
|
||||||
'Not Launched'=>'Nicht gestartet',
|
'Not Launched'=>'Nicht gestartet',
|
||||||
'Starting'=>'Starte',
|
'Starting'=>'Starte',
|
||||||
'Launched'=>'Gestartet',
|
'Launched'=>'Gestartet',
|
||||||
'Creating'=>'Erstellen',
|
'Creating'=>'Erstellen',
|
||||||
'Created'=>'Erstellen',
|
'Created'=>'Erstellen',
|
||||||
'Stopping'=>'Stoppen',
|
'Stopping'=>'Stoppen',
|
||||||
'Stopped'=>'Gestoppt',
|
'Stopped'=>'Gestoppt',
|
||||||
'Removing'=>'Entfernen',
|
'Removing'=>'Entfernen',
|
||||||
'Exporting'=>'Exportieren',
|
'Exporting'=>'Exportieren',
|
||||||
'Cloning'=>'Kopieren',
|
'Cloning'=>'Kopieren',
|
||||||
'Cloned'=>'Kopiert',
|
'Cloned'=>'Kopiert',
|
||||||
'Restarting'=>'Neustarten',
|
'Restarting'=>'Neustarten',
|
||||||
'Restarted'=>'Negestartet',
|
'Restarted'=>'Negestartet',
|
||||||
'Maintenance'=>'Wartung',
|
'Maintenance'=>'Wartung',
|
||||||
|
|
||||||
'Create jail'=>'Erstelle jail',
|
'Create jail'=>'Erstelle jail',
|
||||||
'Edit jail'=>'Modifiziere jail',
|
'Edit jail'=>'Modifiziere jail',
|
||||||
'Jail Settings'=>'Jail Einstellungen',
|
'Jail Settings'=>'Jail Einstellungen',
|
||||||
'Jail name'=>'Jail Name',
|
'Jail name'=>'Jail Name',
|
||||||
'Hostname'=>'Hostname',
|
'Hostname'=>'Hostname',
|
||||||
'available on the jail is not running'=>'Nur verfügbar, wenn die Jail nicht läuft',
|
'available on the jail is not running'=>'Nur verfügbar, wenn die Jail nicht läuft',
|
||||||
'IP address'=>'IP address',
|
'IP address'=>'IP address',
|
||||||
'Root password'=>'Root password (optional)',
|
'Root password'=>'Root password (optional)',
|
||||||
'Root password (again)'=>'Root password (again)',
|
'Root password (again)'=>'Root password (again)',
|
||||||
'Description'=>'Beschreibung',
|
'Description'=>'Beschreibung',
|
||||||
'Net Interface'=>'Netzwerk Interface',
|
'Net Interface'=>'Netzwerk Interface',
|
||||||
'Parameters'=>'Parameter',
|
'Parameters'=>'Parameter',
|
||||||
'Autostart'=>'Autostart',
|
'Autostart'=>'Autostart',
|
||||||
'Autostart jail at system startup'=>'Starte Jail beim Systemstart',
|
'Autostart jail at system startup'=>'Starte Jail beim Systemstart',
|
||||||
'Base writable'=>'Base beschreibbar',
|
'Base writable'=>'Base beschreibbar',
|
||||||
'Virtual network stack (VIMAGE)'=>'Virtual Network Stack (VIMAGE)',
|
'Virtual network stack (VIMAGE)'=>'Virtual Network Stack (VIMAGE)',
|
||||||
'Mount'=>'Mount',
|
'Mount'=>'Mount',
|
||||||
'Enabled services'=>'Aktiviere services',
|
'Enabled services'=>'Aktiviere services',
|
||||||
'Create'=>'Erstellen',
|
'Create'=>'Erstellen',
|
||||||
'Cancel'=>'Abbrechen',
|
'Cancel'=>'Abbrechen',
|
||||||
'Save'=>'Speichern',
|
'Save'=>'Speichern',
|
||||||
|
|
||||||
'Delete'=>'Löschen',
|
'Delete'=>'Löschen',
|
||||||
'Protected jail'=>'Geschützte jai',
|
'Protected jail'=>'Geschützte jai',
|
||||||
'Open VNC'=>'Open VNC',
|
'Open VNC'=>'Open VNC',
|
||||||
'Restart jail'=>'Starte Jail neu',
|
'Restart jail'=>'Starte Jail neu',
|
||||||
'Restart bhyve'=>'Starte VM neu',
|
'Restart bhyve'=>'Starte VM neu',
|
||||||
|
|
||||||
//err_messages
|
//err_messages
|
||||||
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Kann nicht leer sein und muss starten mit / a-z / und darf keiner Sonderzeichen enthalten: -,.=%',
|
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Kann nicht leer sein und muss starten mit / a-z / und darf keiner Sonderzeichen enthalten: -,.=%',
|
||||||
'This field can not be empty'=>'Das Feld dard nicht leer sein',
|
'This field can not be empty'=>'Das Feld dard nicht leer sein',
|
||||||
'Write correct ip address, e.g: 10.0.0.2'=>'Bitte valide IP-Adresse angeben wie z.B.: 10.0.0.2',
|
'Write correct ip address, e.g: 10.0.0.2'=>'Bitte valide IP-Adresse angeben wie z.B.: 10.0.0.2',
|
||||||
'Password can not be less than 3 symbols'=>'Passwort darf nicht unter 3 Zeichen sein',
|
'Password can not be less than 3 symbols'=>'Passwort darf nicht unter 3 Zeichen sein',
|
||||||
'Please retype password correctly'=>'Bitte Passwort korrekt neu eingeben',
|
'Please retype password correctly'=>'Bitte Passwort korrekt neu eingeben',
|
||||||
|
|
||||||
'edit'=>'Bearbeiten',
|
'edit'=>'Bearbeiten',
|
||||||
'clone'=>'Kopieren',
|
'clone'=>'Kopieren',
|
||||||
'export'=>'Exportieren',
|
'export'=>'Exportieren',
|
||||||
'helpers'=>'Hilfe',
|
'helpers'=>'Hilfe',
|
||||||
'rename'=>'Umbenennen',
|
'rename'=>'Umbenennen',
|
||||||
|
|
||||||
'default is'=>'Stadnard ist',
|
'default is'=>'Stadnard ist',
|
||||||
|
|
||||||
'Create Virtual Machine'=>'Erstelle Virtual Machine',
|
'Create Virtual Machine'=>'Erstelle Virtual Machine',
|
||||||
'Create Virtual Machine from Library'=>'Erstelle Virtual Machine aus Bibliothek',
|
'Create Virtual Machine from Library'=>'Erstelle Virtual Machine aus Bibliothek',
|
||||||
'Virtual Machine Settings'=>'Virtual Machine Einstellungen',
|
'Virtual Machine Settings'=>'Virtual Machine Einstellungen',
|
||||||
'Virtual Machine name'=>'Virtual Machine Name',
|
'Virtual Machine name'=>'Virtual Machine Name',
|
||||||
'VM OS profile'=>'VM OS Profil',
|
'VM OS profile'=>'VM OS Profil',
|
||||||
'Authkey'=>'Authkey',
|
'Authkey'=>'Authkey',
|
||||||
'VM CPUs'=>'vCPU core',
|
'VM CPUs'=>'vCPU core',
|
||||||
'VM RAM'=>'RAM',
|
'VM RAM'=>'RAM',
|
||||||
'VM Image size'=>'Image Disk Größe',
|
'VM Image size'=>'Image Disk Größe',
|
||||||
'VNC PORT'=>'VNC port ( 0 - ist Standard )',
|
'VNC PORT'=>'VNC port ( 0 - ist Standard )',
|
||||||
'VM Password'=>'Root Passwort',
|
'VM Password'=>'Root Passwort',
|
||||||
|
|
||||||
'Create Authkey'=>'Erstelle Authkey',
|
'Create Authkey'=>'Erstelle Authkey',
|
||||||
'Authkey name'=>'Authkey Name',
|
'Authkey name'=>'Authkey Name',
|
||||||
'Authkey'=>'Authkey',
|
'Authkey'=>'Authkey',
|
||||||
|
|
||||||
'Open'=>'Öffne',
|
'Open'=>'Öffne',
|
||||||
'Close'=>'Schließe',
|
'Close'=>'Schließe',
|
||||||
'Get'=>'Erhalte',
|
'Get'=>'Erhalte',
|
||||||
'Update'=>'Aktualisieren',
|
'Update'=>'Aktualisieren',
|
||||||
|
|
||||||
'Updating'=>'Aktualisiere',
|
'Updating'=>'Aktualisiere',
|
||||||
'Version'=>'Version',
|
'Version'=>'Version',
|
||||||
'Version number'=>'Versions Nummer (z.B.: 12.2, 13)',
|
'Version number'=>'Versions Nummer (z.B.: 12.2, 13)',
|
||||||
|
|
||||||
'Source'=>'Quelle',
|
'Source'=>'Quelle',
|
||||||
|
|
||||||
'@clone_warning@'=>'<strong>ACHTUNG!</strong> Kopieren eines laufenden Containers kann zu Dateninkonsistenz führen. Bitte stoppen Sie erst den Container!',
|
'@clone_warning@'=>'<strong>ACHTUNG!</strong> Kopieren eines laufenden Containers kann zu Dateninkonsistenz führen. Bitte stoppen Sie erst den Container!',
|
||||||
|
|
||||||
'edit_title'=>'Anpassen',
|
'edit_title'=>'Anpassen',
|
||||||
'delete_title'=>'Löschen',
|
'delete_title'=>'Löschen',
|
||||||
|
|
||||||
'Please, wait for initialize Virtual Machine'=>'Bitte warten Sie, bis die VM initialisiert wurde',
|
'Please, wait for initialize Virtual Machine'=>'Bitte warten Sie, bis die VM initialisiert wurde',
|
||||||
'You can click here, or wait'=>'Hier klicken oder warten',
|
'You can click here, or wait'=>'Hier klicken oder warten',
|
||||||
'some time'=>'einige Zeit',
|
'some time'=>'einige Zeit',
|
||||||
|
|
||||||
'host_hostname'=>'Jail Fully Qualified Domain Name',
|
'host_hostname'=>'Jail Fully Qualified Domain Name',
|
||||||
'ip4_addr'=>'Jail IPv4 und/oder IPv6 Addresse',
|
'ip4_addr'=>'Jail IPv4 und/oder IPv6 Addresse',
|
||||||
'allow_mount'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von Dateisystemen',
|
'allow_mount'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von Dateisystemen',
|
||||||
'allow_nullfs'=>'Erlaube priviligierten Benutzern innerhalb der Jail NULLFS Dateisystem',
|
'allow_nullfs'=>'Erlaube priviligierten Benutzern innerhalb der Jail NULLFS Dateisystem',
|
||||||
'allow_fdescfs'=>'Jail darf das fdescfs file system einbinden',
|
'allow_fdescfs'=>'Jail darf das fdescfs file system einbinden',
|
||||||
'interface'=>'Automatisches Erstllen und Entfernen von IP Adressen auf ausgewählten NICs. 0 zum deaktivieren',
|
'interface'=>'Automatisches Erstllen und Entfernen von IP Adressen auf ausgewählten NICs. 0 zum deaktivieren',
|
||||||
'baserw'=>'Jail hat eine vollständige Kopie des Basis-Systemens. Kein NULLFS mount',
|
'baserw'=>'Jail hat eine vollständige Kopie des Basis-Systemens. Kein NULLFS mount',
|
||||||
'mount_ports'=>'Jail hat /usr/ports /usr/ports tree nur lesend',
|
'mount_ports'=>'Jail hat /usr/ports /usr/ports tree nur lesend',
|
||||||
'astart'=>'Starte Jail beim Systemstart',
|
'astart'=>'Starte Jail beim Systemstart',
|
||||||
'vnet'=>'Aktiviere Virtual Network Stack (VNET/VIMAGE)',
|
'vnet'=>'Aktiviere Virtual Network Stack (VNET/VIMAGE)',
|
||||||
'mount_fdescfs'=>'Binde ein FDESCFS Dateisystem ein',
|
'mount_fdescfs'=>'Binde ein FDESCFS Dateisystem ein',
|
||||||
'allow_tmpfs'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von TMPFS Dateisystemen',
|
'allow_tmpfs'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von TMPFS Dateisystemen',
|
||||||
'allow_zfs'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von ZFS Dateisystemen',
|
'allow_zfs'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von ZFS Dateisystemen',
|
||||||
'protected'=>'Erstellen von geschützten und nicht löschbaren Umgebungen',
|
'protected'=>'Erstellen von geschützten und nicht löschbaren Umgebungen',
|
||||||
'allow_reserved_ports'=>'Erlaube der Jail Ports unterhalb von 1024 zu binden',
|
'allow_reserved_ports'=>'Erlaube der Jail Ports unterhalb von 1024 zu binden',
|
||||||
'allow_raw_sockets'=>'Erlaube der Jail RAW Sockets zu erstellen',
|
'allow_raw_sockets'=>'Erlaube der Jail RAW Sockets zu erstellen',
|
||||||
'allow_fusefs'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von FUSE Dateisysteme',
|
'allow_fusefs'=>'Erlaube priviligierten Benutzern innerhalb der Jail das Einbinden von FUSE Dateisysteme',
|
||||||
'allow_read_msgbuf'=>'Erlaube unpriviligierte Benutzern den Kernel Buffer zu lesen',
|
'allow_read_msgbuf'=>'Erlaube unpriviligierte Benutzern den Kernel Buffer zu lesen',
|
||||||
'allow_vmm'=>'Jail darf auf vmm(4) zugreifen',
|
'allow_vmm'=>'Jail darf auf vmm(4) zugreifen',
|
||||||
'allow_unprivileged_proc_debug'=>'Erlaube unpriviligierten Prozessen Debug Optionen zu nutzen',
|
'allow_unprivileged_proc_debug'=>'Erlaube unpriviligierten Prozessen Debug Optionen zu nutzen',
|
||||||
|
|
||||||
//''=>'',
|
//''=>'',
|
||||||
);
|
);
|
||||||
@@ -1,49 +1,49 @@
|
|||||||
clonos.lang={
|
clonos.lang={
|
||||||
"Error": "Error",
|
"Error": "Error",
|
||||||
"No data, add something": "No data, add something",
|
"No data, add something": "No data, add something",
|
||||||
"available on the jail is not running": "available when jail is not running",
|
"available on the jail is not running": "available when jail is not running",
|
||||||
"Log is empty": "Log is empty",
|
"Log is empty": "Log is empty",
|
||||||
"Exported jails": "Exported jails",
|
"Exported jails": "Exported jails",
|
||||||
"Download": "Download",
|
"Download": "Download",
|
||||||
"Jail is created": "Jail is created",
|
"Jail is created": "Jail is created",
|
||||||
"Jail already launched": "Jail already launched",
|
"Jail already launched": "Jail already launched",
|
||||||
"Jail already stopped": "Jail already stopped",
|
"Jail already stopped": "Jail already stopped",
|
||||||
"Export not available on launched jail": "Export not available on launched jail",
|
"Export not available on launched jail": "Export not available on launched jail",
|
||||||
"This field cannot be left blank": "This field cannot be left blank",
|
"This field cannot be left blank": "This field cannot be left blank",
|
||||||
"You need to select one or more jails for clone": "You need to select one or more jails for clone",
|
"You need to select one or more jails for clone": "You need to select one or more jails for clone",
|
||||||
"You want to restart selected jail! Are you sure?":"You want to restart selected jail! Are you sure?",
|
"You want to restart selected jail! Are you sure?":"You want to restart selected jail! Are you sure?",
|
||||||
"You want to restart selected virtual machine! Are you sure?":"You want to restart selected virtual machine! Are you sure?",
|
"You want to restart selected virtual machine! Are you sure?":"You want to restart selected virtual machine! Are you sure?",
|
||||||
"You want to delete selected jail! Are you sure?":"You want to delete selected jail! Are you sure?",
|
"You want to delete selected jail! Are you sure?":"You want to delete selected jail! Are you sure?",
|
||||||
"You want to delete selected virtual machine! Are you sure?":"You want to delete selected virtual machine! Are you sure?",
|
"You want to delete selected virtual machine! Are you sure?":"You want to delete selected virtual machine! Are you sure?",
|
||||||
|
|
||||||
"You want to delete selected authkey! Are you sure?":"You want to delete selected authkey! Are you sure?",
|
"You want to delete selected authkey! Are you sure?":"You want to delete selected authkey! Are you sure?",
|
||||||
|
|
||||||
|
|
||||||
"Not running":"Not running",
|
"Not running":"Not running",
|
||||||
"Not Launched":"Not Launched",
|
"Not Launched":"Not Launched",
|
||||||
"Launched":"Launched",
|
"Launched":"Launched",
|
||||||
"Stopping":"Stopping",
|
"Stopping":"Stopping",
|
||||||
"Stopped":"Stopped",
|
"Stopped":"Stopped",
|
||||||
"Removing":"Removing",
|
"Removing":"Removing",
|
||||||
"Removed":"Removed",
|
"Removed":"Removed",
|
||||||
"Creating":"Creating",
|
"Creating":"Creating",
|
||||||
"Created":"Created",
|
"Created":"Created",
|
||||||
"Starting":"Starting",
|
"Starting":"Starting",
|
||||||
"Exporting":"Exporting",
|
"Exporting":"Exporting",
|
||||||
"Cloning":"Cloning",
|
"Cloning":"Cloning",
|
||||||
"Cloned":"Cloned",
|
"Cloned":"Cloned",
|
||||||
"Restarting":"Restarting",
|
"Restarting":"Restarting",
|
||||||
"Restarted":"Restarted",
|
"Restarted":"Restarted",
|
||||||
"Update":"Update",
|
"Update":"Update",
|
||||||
"Updating":"Updating",
|
"Updating":"Updating",
|
||||||
"Updated":"Updated",
|
"Updated":"Updated",
|
||||||
"Delete":"Delete",
|
"Delete":"Delete",
|
||||||
"Save":"Save",
|
"Save":"Save",
|
||||||
|
|
||||||
"end":"end",
|
"end":"end",
|
||||||
|
|
||||||
"This name is already exists!":"This name is already exists!",
|
"This name is already exists!":"This name is already exists!",
|
||||||
"Passwords must match!":"Passwords must match!",
|
"Passwords must match!":"Passwords must match!",
|
||||||
|
|
||||||
"@redirect_alert@":"You will be redirected to jails list in 3 seconds!",
|
"@redirect_alert@":"You will be redirected to jails list in 3 seconds!",
|
||||||
}
|
}
|
||||||
@@ -1,159 +1,159 @@
|
|||||||
<?php
|
<?php
|
||||||
$lang=array(
|
$lang=array(
|
||||||
'Settings'=>'Settings',
|
'Settings'=>'Settings',
|
||||||
'Profile'=>'Profile',
|
'Profile'=>'Profile',
|
||||||
'Support'=>'Support',
|
'Support'=>'Support',
|
||||||
|
|
||||||
'Overview'=>'Overview',
|
'Overview'=>'Overview',
|
||||||
'Summary Overview'=>'Summary Overview',
|
'Summary Overview'=>'Summary Overview',
|
||||||
'Jails containers'=>'Jail containers',
|
'Jails containers'=>'Jail containers',
|
||||||
'Jails containers control panel'=>'Jail containers control panel',
|
'Jails containers control panel'=>'Jail containers control panel',
|
||||||
'Template for jail'=>'Template for jail',
|
'Template for jail'=>'Template for jail',
|
||||||
'Helpers and wizard for containers'=>'Helpers and wizard for containers',
|
'Helpers and wizard for containers'=>'Helpers and wizard for containers',
|
||||||
'Helpers of jails'=>'Helpers of jails',
|
'Helpers of jails'=>'Helpers of jails',
|
||||||
'Virtual machine control panel'=>'Virtual machine control panel',
|
'Virtual machine control panel'=>'Virtual machine control panel',
|
||||||
'Bhyve VMs'=>'Bhyve VMs',
|
'Bhyve VMs'=>'Bhyve VMs',
|
||||||
'Virtual machine control panel'=>'Virtual machine control panel',
|
'Virtual machine control panel'=>'Virtual machine control panel',
|
||||||
'Nodes'=>'Nodes',
|
'Nodes'=>'Nodes',
|
||||||
'Nodes control panel'=>'Nodes control panel',
|
'Nodes control panel'=>'Nodes control panel',
|
||||||
'VM Packages'=>'VM Packages',
|
'VM Packages'=>'VM Packages',
|
||||||
'Manage for virtual machine packages'=>'Manage for virtual machine packages',
|
'Manage for virtual machine packages'=>'Manage for virtual machine packages',
|
||||||
'Virtual Private Network'=>'Virtual Private Network',
|
'Virtual Private Network'=>'Virtual Private Network',
|
||||||
'Manage for virtual private networks'=>'Manage for virtual private networks',
|
'Manage for virtual private networks'=>'Manage for virtual private networks',
|
||||||
'Authkeys'=>'Authkeys',
|
'Authkeys'=>'Authkeys',
|
||||||
'Manage for SSH auth key'=>'Manage for SSH auth key',
|
'Manage for SSH auth key'=>'Manage for SSH auth key',
|
||||||
'Storage Media'=>'Storage Media',
|
'Storage Media'=>'Storage Media',
|
||||||
'Virtual Media Manager'=>'Virtual Media Manager',
|
'Virtual Media Manager'=>'Virtual Media Manager',
|
||||||
'Repository'=>'Repository',
|
'Repository'=>'Repository',
|
||||||
'Remote repository'=>'Remote repository',
|
'Remote repository'=>'Remote repository',
|
||||||
'FreeBSD Bases'=>'FreeBSD Bases',
|
'FreeBSD Bases'=>'FreeBSD Bases',
|
||||||
'FreeBSD bases manager'=>'FreeBSD bases manager',
|
'FreeBSD bases manager'=>'FreeBSD bases manager',
|
||||||
'FreeBSD Sources'=>'FreeBSD Sources',
|
'FreeBSD Sources'=>'FreeBSD Sources',
|
||||||
'FreeBSD sources manager'=>'FreeBSD sources manager',
|
'FreeBSD sources manager'=>'FreeBSD sources manager',
|
||||||
'Jail Marketplace'=>'Jail Marketplace',
|
'Jail Marketplace'=>'Jail Marketplace',
|
||||||
'Public remote containers marketplace'=>'Public remote containers marketplace',
|
'Public remote containers marketplace'=>'Public remote containers marketplace',
|
||||||
'Bhyve Marketplace'=>'Bhyve Marketplace',
|
'Bhyve Marketplace'=>'Bhyve Marketplace',
|
||||||
'Public remote virtual machine marketplace'=>'Public remote virtual machine marketplace',
|
'Public remote virtual machine marketplace'=>'Public remote virtual machine marketplace',
|
||||||
'TaskLog'=>'TaskLog',
|
'TaskLog'=>'TaskLog',
|
||||||
'System task log'=>'System task log',
|
'System task log'=>'System task log',
|
||||||
|
|
||||||
'Not implemented yet'=>'Not yet implemented',
|
'Not implemented yet'=>'Not yet implemented',
|
||||||
|
|
||||||
|
|
||||||
'Not Launched'=>'Not Launched',
|
'Not Launched'=>'Not Launched',
|
||||||
'Starting'=>'Starting',
|
'Starting'=>'Starting',
|
||||||
'Launched'=>'Launched',
|
'Launched'=>'Launched',
|
||||||
'Creating'=>'Creating',
|
'Creating'=>'Creating',
|
||||||
'Created'=>'Created',
|
'Created'=>'Created',
|
||||||
'Stopping'=>'Stopping',
|
'Stopping'=>'Stopping',
|
||||||
'Stopped'=>'Stopped',
|
'Stopped'=>'Stopped',
|
||||||
'Removing'=>'Removing',
|
'Removing'=>'Removing',
|
||||||
'Exporting'=>'Exporting',
|
'Exporting'=>'Exporting',
|
||||||
'Cloning'=>'Cloning',
|
'Cloning'=>'Cloning',
|
||||||
'Cloned'=>'Cloned',
|
'Cloned'=>'Cloned',
|
||||||
'Restarting'=>'Restarting',
|
'Restarting'=>'Restarting',
|
||||||
'Restarted'=>'Restarted',
|
'Restarted'=>'Restarted',
|
||||||
'Maintenance'=>'Maintenance',
|
'Maintenance'=>'Maintenance',
|
||||||
|
|
||||||
'Create jail'=>'Create jail',
|
'Create jail'=>'Create jail',
|
||||||
'Edit jail'=>'Edit jail',
|
'Edit jail'=>'Edit jail',
|
||||||
'Jail Settings'=>'Jail Settings',
|
'Jail Settings'=>'Jail Settings',
|
||||||
'Jail name'=>'Jail name',
|
'Jail name'=>'Jail name',
|
||||||
'Hostname'=>'Hostname',
|
'Hostname'=>'Hostname',
|
||||||
'available on the jail is not running'=>'Available when the jail is not running',
|
'available on the jail is not running'=>'Available when the jail is not running',
|
||||||
'IP address'=>'IP address',
|
'IP address'=>'IP address',
|
||||||
'Root password'=>'Root password (optional)',
|
'Root password'=>'Root password (optional)',
|
||||||
'Root password (again)'=>'Root password (again)',
|
'Root password (again)'=>'Root password (again)',
|
||||||
'Description'=>'Description',
|
'Description'=>'Description',
|
||||||
'Net Interface'=>'Net Interface',
|
'Net Interface'=>'Net Interface',
|
||||||
'Parameters'=>'Parameters',
|
'Parameters'=>'Parameters',
|
||||||
'Autostart'=>'Autostart',
|
'Autostart'=>'Autostart',
|
||||||
'Autostart jail at system startup'=>'Autostart jail at system startup',
|
'Autostart jail at system startup'=>'Autostart jail at system startup',
|
||||||
'Base writable'=>'Base writable',
|
'Base writable'=>'Base writable',
|
||||||
'Virtual network stack (VIMAGE)'=>'Virtual network stack (VIMAGE)',
|
'Virtual network stack (VIMAGE)'=>'Virtual network stack (VIMAGE)',
|
||||||
'Mount'=>'Mount',
|
'Mount'=>'Mount',
|
||||||
'Enabled services'=>'Enabled services',
|
'Enabled services'=>'Enabled services',
|
||||||
'Create'=>'Create',
|
'Create'=>'Create',
|
||||||
'Cancel'=>'Cancel',
|
'Cancel'=>'Cancel',
|
||||||
'Save'=>'Save',
|
'Save'=>'Save',
|
||||||
|
|
||||||
'Delete'=>'Delete',
|
'Delete'=>'Delete',
|
||||||
'Protected jail'=>'Protected jail',
|
'Protected jail'=>'Protected jail',
|
||||||
'Open VNC'=>'Open VNC',
|
'Open VNC'=>'Open VNC',
|
||||||
'Restart jail'=>'Restart jail',
|
'Restart jail'=>'Restart jail',
|
||||||
'Restart bhyve'=>'Restart VM',
|
'Restart bhyve'=>'Restart VM',
|
||||||
|
|
||||||
//err_messages
|
//err_messages
|
||||||
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Can not be empty. Name must begin with a letter / a-z / and may not have any special symbols: -,.=%',
|
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Can not be empty. Name must begin with a letter / a-z / and may not have any special symbols: -,.=%',
|
||||||
'This field can not be empty'=>'This field cannot be empty',
|
'This field can not be empty'=>'This field cannot be empty',
|
||||||
'Write correct ip address, e.g: 10.0.0.2'=>'Write the correct ip address, e.g: 10.0.0.2',
|
'Write correct ip address, e.g: 10.0.0.2'=>'Write the correct ip address, e.g: 10.0.0.2',
|
||||||
'Password can not be less than 3 symbols'=>'Password can not be less than 3 symbols',
|
'Password can not be less than 3 symbols'=>'Password can not be less than 3 symbols',
|
||||||
'Please retype password correctly'=>'Please retype password correctly',
|
'Please retype password correctly'=>'Please retype password correctly',
|
||||||
|
|
||||||
'edit'=>'edit',
|
'edit'=>'edit',
|
||||||
'clone'=>'clone',
|
'clone'=>'clone',
|
||||||
'export'=>'export',
|
'export'=>'export',
|
||||||
'helpers'=>'helpers',
|
'helpers'=>'helpers',
|
||||||
'rename'=>'rename',
|
'rename'=>'rename',
|
||||||
|
|
||||||
'default is'=>'default is',
|
'default is'=>'default is',
|
||||||
|
|
||||||
'Create Virtual Machine'=>'Create Virtual Machine',
|
'Create Virtual Machine'=>'Create Virtual Machine',
|
||||||
'Create Virtual Machine from Library'=>'Obtain Virtual Machine from Library',
|
'Create Virtual Machine from Library'=>'Obtain Virtual Machine from Library',
|
||||||
'Virtual Machine Settings'=>'Virtual Machine Settings',
|
'Virtual Machine Settings'=>'Virtual Machine Settings',
|
||||||
'Virtual Machine name'=>'Virtual Machine name',
|
'Virtual Machine name'=>'Virtual Machine name',
|
||||||
'VM OS profile'=>'VM OS profile',
|
'VM OS profile'=>'VM OS profile',
|
||||||
'Authkey'=>'Authkey',
|
'Authkey'=>'Authkey',
|
||||||
'VM CPUs'=>'vCPU core',
|
'VM CPUs'=>'vCPU core',
|
||||||
'VM RAM'=>'RAM',
|
'VM RAM'=>'RAM',
|
||||||
'VM Image size'=>'Image disk size',
|
'VM Image size'=>'Image disk size',
|
||||||
'VNC PORT'=>'VNC port ( 0 - is auto )',
|
'VNC PORT'=>'VNC port ( 0 - is auto )',
|
||||||
'VM Password'=>'Root password',
|
'VM Password'=>'Root password',
|
||||||
|
|
||||||
'Create Authkey'=>'Create Authkey',
|
'Create Authkey'=>'Create Authkey',
|
||||||
'Authkey name'=>'Authkey name',
|
'Authkey name'=>'Authkey name',
|
||||||
'Authkey'=>'Authkey',
|
'Authkey'=>'Authkey',
|
||||||
|
|
||||||
'Open'=>'Open',
|
'Open'=>'Open',
|
||||||
'Close'=>'Close',
|
'Close'=>'Close',
|
||||||
'Get'=>'Get',
|
'Get'=>'Get',
|
||||||
'Update'=>'Update',
|
'Update'=>'Update',
|
||||||
|
|
||||||
'Updating'=>'Updating',
|
'Updating'=>'Updating',
|
||||||
'Version'=>'Version',
|
'Version'=>'Version',
|
||||||
'Version number'=>'Version number (e.g: 12.2, 13)',
|
'Version number'=>'Version number (e.g: 12.2, 13)',
|
||||||
|
|
||||||
'Source'=>'Source',
|
'Source'=>'Source',
|
||||||
|
|
||||||
'@clone_warning@'=>'<strong>ATTENTION!</strong> Cloning a running container can lead into data inconsistency in clones (e.g. environments with active databases). Stop the container for safe cloning or continue, if you are confident in the security operation!',
|
'@clone_warning@'=>'<strong>ATTENTION!</strong> Cloning a running container can lead into data inconsistency in clones (e.g. environments with active databases). Stop the container for safe cloning or continue, if you are confident in the security operation!',
|
||||||
|
|
||||||
'edit_title'=>'Edit',
|
'edit_title'=>'Edit',
|
||||||
'delete_title'=>'Delete',
|
'delete_title'=>'Delete',
|
||||||
|
|
||||||
'Please, wait for initialize Virtual Machine'=>'Please, wait for initializing the Virtual Machine',
|
'Please, wait for initialize Virtual Machine'=>'Please, wait for initializing the Virtual Machine',
|
||||||
'You can click here, or wait'=>'You can click here, or wait',
|
'You can click here, or wait'=>'You can click here, or wait',
|
||||||
'some time'=>'some time',
|
'some time'=>'some time',
|
||||||
|
|
||||||
'host_hostname'=>'Jail Fully Qualified Domain Name',
|
'host_hostname'=>'Jail Fully Qualified Domain Name',
|
||||||
'ip4_addr'=>'Jail IPv4 and/or IPv6 address',
|
'ip4_addr'=>'Jail IPv4 and/or IPv6 address',
|
||||||
'allow_mount'=>'Allow privileged users inside the jail to mount and unmount file system',
|
'allow_mount'=>'Allow privileged users inside the jail to mount and unmount file system',
|
||||||
'allow_nullfs'=>'Allow privileged users inside the jail to mount and unmount NULLFS file system',
|
'allow_nullfs'=>'Allow privileged users inside the jail to mount and unmount NULLFS file system',
|
||||||
'allow_fdescfs'=>'Jail may mount the fdescfs file system',
|
'allow_fdescfs'=>'Jail may mount the fdescfs file system',
|
||||||
'interface'=>'Auto create and auto remove IP on selected NICs. 0 for disable',
|
'interface'=>'Auto create and auto remove IP on selected NICs. 0 for disable',
|
||||||
'baserw'=>'Jail has personal copy of base system with write access, no NULLFS mount',
|
'baserw'=>'Jail has personal copy of base system with write access, no NULLFS mount',
|
||||||
'mount_ports'=>'Jail has /usr/ports /usr/ports tree in read-only',
|
'mount_ports'=>'Jail has /usr/ports /usr/ports tree in read-only',
|
||||||
'astart'=>'Autostart jail at system startup',
|
'astart'=>'Autostart jail at system startup',
|
||||||
'vnet'=>'Enable virtual network stack (VNET/VIMAGE)',
|
'vnet'=>'Enable virtual network stack (VNET/VIMAGE)',
|
||||||
'mount_fdescfs'=>'Mount a FDESCFS filesystem on the chrooted',
|
'mount_fdescfs'=>'Mount a FDESCFS filesystem on the chrooted',
|
||||||
'allow_tmpfs'=>'Allow privileged users inside the jail mount and unmount TMPFS file system',
|
'allow_tmpfs'=>'Allow privileged users inside the jail mount and unmount TMPFS file system',
|
||||||
'allow_zfs'=>'Privileged users inside the jail will be able to mount and unmount the ZFS file system',
|
'allow_zfs'=>'Privileged users inside the jail will be able to mount and unmount the ZFS file system',
|
||||||
'protected'=>'Prevent modification or deletion of an environment',
|
'protected'=>'Prevent modification or deletion of an environment',
|
||||||
'allow_reserved_ports'=>'Allow the jail root user to bind to ports lower than 1024',
|
'allow_reserved_ports'=>'Allow the jail root user to bind to ports lower than 1024',
|
||||||
'allow_raw_sockets'=>'The jail root user is allowed to create raw sockets',
|
'allow_raw_sockets'=>'The jail root user is allowed to create raw sockets',
|
||||||
'allow_fusefs'=>'Allow privileged users inside the jail to mount and unmount fuse-based file systems',
|
'allow_fusefs'=>'Allow privileged users inside the jail to mount and unmount fuse-based file systems',
|
||||||
'allow_read_msgbuf'=>'Allow an unprivileged user to read the kernel message buffer',
|
'allow_read_msgbuf'=>'Allow an unprivileged user to read the kernel message buffer',
|
||||||
'allow_vmm'=>'The jail may access vmm(4)',
|
'allow_vmm'=>'The jail may access vmm(4)',
|
||||||
'allow_unprivileged_proc_debug'=>'Unprivileged processes in the jail may use debugging facilities',
|
'allow_unprivileged_proc_debug'=>'Unprivileged processes in the jail may use debugging facilities',
|
||||||
|
|
||||||
//''=>'',
|
//''=>'',
|
||||||
);
|
);
|
||||||
@@ -1,49 +1,49 @@
|
|||||||
clonos.lang={
|
clonos.lang={
|
||||||
"Error": "Error",
|
"Error": "Error",
|
||||||
"No data, add something": "Sin datos, añade algo",
|
"No data, add something": "Sin datos, añade algo",
|
||||||
"available on the jail is not running": "disponible cuando la jaula no está en ejecución",
|
"available on the jail is not running": "disponible cuando la jaula no está en ejecución",
|
||||||
"Log is empty": "Registro vacío",
|
"Log is empty": "Registro vacío",
|
||||||
"Exported jails": "Jaulas exportadas",
|
"Exported jails": "Jaulas exportadas",
|
||||||
"Download": "Descarga",
|
"Download": "Descarga",
|
||||||
"Jail is created": "Jaula creada",
|
"Jail is created": "Jaula creada",
|
||||||
"Jail already launched": "Jaula ya lanzada",
|
"Jail already launched": "Jaula ya lanzada",
|
||||||
"Jail already stopped": "Jaula ya detenida",
|
"Jail already stopped": "Jaula ya detenida",
|
||||||
"Export not available on launched jail": "Exportar no disponible con la jaula en ejecución",
|
"Export not available on launched jail": "Exportar no disponible con la jaula en ejecución",
|
||||||
"This field cannot be left blank": "Este campo no puede dejarse en blanco",
|
"This field cannot be left blank": "Este campo no puede dejarse en blanco",
|
||||||
"You need to select one or more jails for clone": "Debes seleccionar una o más jaulas para clonar",
|
"You need to select one or more jails for clone": "Debes seleccionar una o más jaulas para clonar",
|
||||||
"You want to restart selected jail! Are you sure?":"Deseas reiniciar la jaula seleccionada. ¿Estás seguro?",
|
"You want to restart selected jail! Are you sure?":"Deseas reiniciar la jaula seleccionada. ¿Estás seguro?",
|
||||||
"You want to restart selected virtual machine! Are you sure?":"Deseas reiniciar la máquina virtual seleccionada. ¿Estás seguro?",
|
"You want to restart selected virtual machine! Are you sure?":"Deseas reiniciar la máquina virtual seleccionada. ¿Estás seguro?",
|
||||||
"You want to delete selected jail! Are you sure?":"Deseas eliminar la jaula seleccionada. ¿Estás seguro?",
|
"You want to delete selected jail! Are you sure?":"Deseas eliminar la jaula seleccionada. ¿Estás seguro?",
|
||||||
"You want to delete selected virtual machine! Are you sure?":"Deseas eliminar la máquina virtual seleccionada. ¿Estás seguro?",
|
"You want to delete selected virtual machine! Are you sure?":"Deseas eliminar la máquina virtual seleccionada. ¿Estás seguro?",
|
||||||
|
|
||||||
"You want to delete selected authkey! Are you sure?":"Deseas eliminar la clave de autenticación seleccionada. ¿Estás seguro?",
|
"You want to delete selected authkey! Are you sure?":"Deseas eliminar la clave de autenticación seleccionada. ¿Estás seguro?",
|
||||||
|
|
||||||
|
|
||||||
"Not running":"No está en ejecución",
|
"Not running":"No está en ejecución",
|
||||||
"Not Launched":"No Lanzado",
|
"Not Launched":"No Lanzado",
|
||||||
"Launched":"Lanzado",
|
"Launched":"Lanzado",
|
||||||
"Stopping":"Deteniendo",
|
"Stopping":"Deteniendo",
|
||||||
"Stopped":"Detenido",
|
"Stopped":"Detenido",
|
||||||
"Removing":"Eliminando",
|
"Removing":"Eliminando",
|
||||||
"Removed":"Eliminado",
|
"Removed":"Eliminado",
|
||||||
"Creating":"Creando",
|
"Creating":"Creando",
|
||||||
"Created":"Creado",
|
"Created":"Creado",
|
||||||
"Starting":"Iniciando",
|
"Starting":"Iniciando",
|
||||||
"Exporting":"Exportando",
|
"Exporting":"Exportando",
|
||||||
"Cloning":"Clonando",
|
"Cloning":"Clonando",
|
||||||
"Cloned":"Clonado",
|
"Cloned":"Clonado",
|
||||||
"Restarting":"Reiniciando",
|
"Restarting":"Reiniciando",
|
||||||
"Restarted":"Reiniciado",
|
"Restarted":"Reiniciado",
|
||||||
"Update":"Actualizar",
|
"Update":"Actualizar",
|
||||||
"Updating":"Actualizando",
|
"Updating":"Actualizando",
|
||||||
"Updated":"Actualizado",
|
"Updated":"Actualizado",
|
||||||
"Delete":"Eliminar",
|
"Delete":"Eliminar",
|
||||||
"Save":"Guardar",
|
"Save":"Guardar",
|
||||||
|
|
||||||
"end":"fin",
|
"end":"fin",
|
||||||
|
|
||||||
"This name is already exists!":"¡Este nombre ya existe!",
|
"This name is already exists!":"¡Este nombre ya existe!",
|
||||||
"Passwords must match!":"¡Las contraseñas deben coincidir!",
|
"Passwords must match!":"¡Las contraseñas deben coincidir!",
|
||||||
|
|
||||||
"@redirect_alert@":"¡Vas a ser redirigido a la lista de jaulas en 3 segundos!",
|
"@redirect_alert@":"¡Vas a ser redirigido a la lista de jaulas en 3 segundos!",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,160 +1,160 @@
|
|||||||
<?php
|
<?php
|
||||||
$lang=array(
|
$lang=array(
|
||||||
'Settings'=>'Ajustes',
|
'Settings'=>'Ajustes',
|
||||||
'Profile'=>'Perfil',
|
'Profile'=>'Perfil',
|
||||||
'Support'=>'Soporte',
|
'Support'=>'Soporte',
|
||||||
|
|
||||||
'Overview'=>'Resumen',
|
'Overview'=>'Resumen',
|
||||||
'Summary Overview'=>'Resumen General',
|
'Summary Overview'=>'Resumen General',
|
||||||
'Jails containers'=>'Jaulas contenedores',
|
'Jails containers'=>'Jaulas contenedores',
|
||||||
'Jails containers control panel'=>'Panel de control de Jaulas',
|
'Jails containers control panel'=>'Panel de control de Jaulas',
|
||||||
'Template for jail'=>'Plantilla de jaula',
|
'Template for jail'=>'Plantilla de jaula',
|
||||||
'Helpers and wizard for containers'=>'Asistentes para contenedores',
|
'Helpers and wizard for containers'=>'Asistentes para contenedores',
|
||||||
'Helpers of jails'=>'Asistentes para jaulas',
|
'Helpers of jails'=>'Asistentes para jaulas',
|
||||||
'Virtual machine control panel'=>'Panel de control de Máquinas Virtuales',
|
'Virtual machine control panel'=>'Panel de control de Máquinas Virtuales',
|
||||||
'Bhyve VMs'=>'Bhyve VMs',
|
'Bhyve VMs'=>'Bhyve VMs',
|
||||||
'Virtual machine control panel'=>'Panel de control de Máquinas Virtuales',
|
'Virtual machine control panel'=>'Panel de control de Máquinas Virtuales',
|
||||||
'Nodes'=>'Nodos',
|
'Nodes'=>'Nodos',
|
||||||
'Nodes control panel'=>'Panel de control de Nodos',
|
'Nodes control panel'=>'Panel de control de Nodos',
|
||||||
'VM Packages'=>'Paquetes VM',
|
'VM Packages'=>'Paquetes VM',
|
||||||
'Manager for virtual machine packages'=>'Gestor de paquetes de Máquinas Virtuales',
|
'Manager for virtual machine packages'=>'Gestor de paquetes de Máquinas Virtuales',
|
||||||
'Virtual Private Network'=>'Red Privada Virtual',
|
'Virtual Private Network'=>'Red Privada Virtual',
|
||||||
'Manager for virtual private networks'=>'Gestor de redes privadas virtuales',
|
'Manager for virtual private networks'=>'Gestor de redes privadas virtuales',
|
||||||
'Authkeys'=>'Claves de autenticación',
|
'Authkeys'=>'Claves de autenticación',
|
||||||
'Manager for SSH auth key'=>'Gestor de claves de autenticación de SSH',
|
'Manager for SSH auth key'=>'Gestor de claves de autenticación de SSH',
|
||||||
'Storage Media'=>'Medios de Almacenamiento',
|
'Storage Media'=>'Medios de Almacenamiento',
|
||||||
'Virtual Media Manager'=>'Gestor de Medios Virtuales',
|
'Virtual Media Manager'=>'Gestor de Medios Virtuales',
|
||||||
'Repository'=>'Repositorio',
|
'Repository'=>'Repositorio',
|
||||||
'Remote repository'=>'Repositorio remoto',
|
'Remote repository'=>'Repositorio remoto',
|
||||||
'FreeBSD Bases'=>'Bases FreeBSD',
|
'FreeBSD Bases'=>'Bases FreeBSD',
|
||||||
'FreeBSD bases manager'=>'Gestor de bases FreeBSD',
|
'FreeBSD bases manager'=>'Gestor de bases FreeBSD',
|
||||||
'FreeBSD Sources'=>'Fuentes FreeBSD',
|
'FreeBSD Sources'=>'Fuentes FreeBSD',
|
||||||
'FreeBSD sources manager'=>'Gestor de fuentes FreeBSD',
|
'FreeBSD sources manager'=>'Gestor de fuentes FreeBSD',
|
||||||
'Jail Marketplace'=>'Mercado de Jaulas',
|
'Jail Marketplace'=>'Mercado de Jaulas',
|
||||||
'Public remote containers marketplace'=>'Mercado de contenedores públicos remotos',
|
'Public remote containers marketplace'=>'Mercado de contenedores públicos remotos',
|
||||||
'Bhyve Marketplace'=>'Mercado Bhyve',
|
'Bhyve Marketplace'=>'Mercado Bhyve',
|
||||||
'Public remote virtual machine marketplace'=>'Mercado de máquinas virtuales públicas remotas',
|
'Public remote virtual machine marketplace'=>'Mercado de máquinas virtuales públicas remotas',
|
||||||
'TaskLog'=>'Registro de Tareas',
|
'TaskLog'=>'Registro de Tareas',
|
||||||
'System task log'=>'Registro de Tareas del Sistema',
|
'System task log'=>'Registro de Tareas del Sistema',
|
||||||
|
|
||||||
'Not implemented yet'=>'Sin implementación',
|
'Not implemented yet'=>'Sin implementación',
|
||||||
|
|
||||||
|
|
||||||
'Not Launched'=>'No Lanzado',
|
'Not Launched'=>'No Lanzado',
|
||||||
'Starting'=>'Iniciando',
|
'Starting'=>'Iniciando',
|
||||||
'Launched'=>'Lanzado',
|
'Launched'=>'Lanzado',
|
||||||
'Creating'=>'Creando',
|
'Creating'=>'Creando',
|
||||||
'Created'=>'Creado',
|
'Created'=>'Creado',
|
||||||
'Stopping'=>'Deteniendo',
|
'Stopping'=>'Deteniendo',
|
||||||
'Stopped'=>'Detenido',
|
'Stopped'=>'Detenido',
|
||||||
'Removing'=>'Eliminando',
|
'Removing'=>'Eliminando',
|
||||||
'Exporting'=>'Exportando',
|
'Exporting'=>'Exportando',
|
||||||
'Cloning'=>'Clonando',
|
'Cloning'=>'Clonando',
|
||||||
'Cloned'=>'Clonado',
|
'Cloned'=>'Clonado',
|
||||||
'Restarting'=>'Reiniciando',
|
'Restarting'=>'Reiniciando',
|
||||||
'Restarted'=>'Reniniciado',
|
'Restarted'=>'Reniniciado',
|
||||||
'Maintenance'=>'Mantenimiento',
|
'Maintenance'=>'Mantenimiento',
|
||||||
|
|
||||||
'Create jail'=>'Crear Jaula',
|
'Create jail'=>'Crear Jaula',
|
||||||
'Edit jail'=>'Editar Jaula',
|
'Edit jail'=>'Editar Jaula',
|
||||||
'Jail Settings'=>'Ajustes de la Jaula',
|
'Jail Settings'=>'Ajustes de la Jaula',
|
||||||
'Jail name'=>'Nombre de la Jaula',
|
'Jail name'=>'Nombre de la Jaula',
|
||||||
'Hostname'=>'Nombre de Host',
|
'Hostname'=>'Nombre de Host',
|
||||||
'available on the jail is not running'=>'available on the jail is not running',
|
'available on the jail is not running'=>'available on the jail is not running',
|
||||||
'IP address'=>'Dirección IP',
|
'IP address'=>'Dirección IP',
|
||||||
'Root password'=>'Contraseña Root (opcional)',
|
'Root password'=>'Contraseña Root (opcional)',
|
||||||
'Root password (again)'=>'Contraseña Root (otra vez)',
|
'Root password (again)'=>'Contraseña Root (otra vez)',
|
||||||
'Description'=>'Descripción',
|
'Description'=>'Descripción',
|
||||||
'Net Interface'=>'Interfaz de Red',
|
'Net Interface'=>'Interfaz de Red',
|
||||||
'Parameters'=>'Parámetros',
|
'Parameters'=>'Parámetros',
|
||||||
'Autostart'=>'Autoiniciar',
|
'Autostart'=>'Autoiniciar',
|
||||||
'Autostart jail at system startup'=>'Autoiniciar jaula al arranque del sistema',
|
'Autostart jail at system startup'=>'Autoiniciar jaula al arranque del sistema',
|
||||||
'Base writable'=>'Base escribible',
|
'Base writable'=>'Base escribible',
|
||||||
'Virtual network stack (VIMAGE)'=>'Virtual network stack (VIMAGE)',
|
'Virtual network stack (VIMAGE)'=>'Virtual network stack (VIMAGE)',
|
||||||
'Mount'=>'Montar',
|
'Mount'=>'Montar',
|
||||||
'Enabled services'=>'Servicios activados',
|
'Enabled services'=>'Servicios activados',
|
||||||
'Create'=>'Crear',
|
'Create'=>'Crear',
|
||||||
'Cancel'=>'Cancelar',
|
'Cancel'=>'Cancelar',
|
||||||
'Save'=>'Guardar',
|
'Save'=>'Guardar',
|
||||||
|
|
||||||
'Delete'=>'Eliminar',
|
'Delete'=>'Eliminar',
|
||||||
'Protected jail'=>'Jaula Protegida',
|
'Protected jail'=>'Jaula Protegida',
|
||||||
'Open VNC'=>'Abrir VNC',
|
'Open VNC'=>'Abrir VNC',
|
||||||
'Restart jail'=>'Reiniciar jaula',
|
'Restart jail'=>'Reiniciar jaula',
|
||||||
'Restart bhyve'=>'Reiniciar MV',
|
'Restart bhyve'=>'Reiniciar MV',
|
||||||
|
|
||||||
|
|
||||||
//err_messages
|
//err_messages
|
||||||
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'No puede estar vacío. El nombre debe empezar por una letra / a-z / y no tener símbolos especiales: -,.=%',
|
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'No puede estar vacío. El nombre debe empezar por una letra / a-z / y no tener símbolos especiales: -,.=%',
|
||||||
'This field can not be empty'=>'Este campo no puede estar vacío',
|
'This field can not be empty'=>'Este campo no puede estar vacío',
|
||||||
'Write correct ip address, e.g: 10.0.0.2'=>'Escriba la dirección IP correcta, ejemplo: 10.0.0.2',
|
'Write correct ip address, e.g: 10.0.0.2'=>'Escriba la dirección IP correcta, ejemplo: 10.0.0.2',
|
||||||
'Password can not be less than 3 symbols'=>'La contraseña no puede ser menos de 3 símbolos',
|
'Password can not be less than 3 symbols'=>'La contraseña no puede ser menos de 3 símbolos',
|
||||||
'Please retype password correctly'=>'Por favor, reescribe la contraseña correctamente',
|
'Please retype password correctly'=>'Por favor, reescribe la contraseña correctamente',
|
||||||
|
|
||||||
'edit'=>'editar',
|
'edit'=>'editar',
|
||||||
'clone'=>'clonar',
|
'clone'=>'clonar',
|
||||||
'export'=>'exportar',
|
'export'=>'exportar',
|
||||||
'helpers'=>'asistentes',
|
'helpers'=>'asistentes',
|
||||||
'rename'=>'renombrar',
|
'rename'=>'renombrar',
|
||||||
|
|
||||||
'default is'=>'por defecto es',
|
'default is'=>'por defecto es',
|
||||||
|
|
||||||
'Create Virtual Machine'=>'Crear Máquina Virtual',
|
'Create Virtual Machine'=>'Crear Máquina Virtual',
|
||||||
'Create Virtual Machine from Library'=>'Obtener Máquina Virtual from Biblioteca',
|
'Create Virtual Machine from Library'=>'Obtener Máquina Virtual from Biblioteca',
|
||||||
'Virtual Machine Settings'=>'Ajustes de Máquina Virtual',
|
'Virtual Machine Settings'=>'Ajustes de Máquina Virtual',
|
||||||
'Virtual Machine name'=>'Nombre de la Máquina Virtual',
|
'Virtual Machine name'=>'Nombre de la Máquina Virtual',
|
||||||
'VM OS profile'=>'Perfil MV SO',
|
'VM OS profile'=>'Perfil MV SO',
|
||||||
'Authkey'=>'Clave de Autenticación',
|
'Authkey'=>'Clave de Autenticación',
|
||||||
'VM CPUs'=>'MV CPUs',
|
'VM CPUs'=>'MV CPUs',
|
||||||
'VM RAM'=>'MV RAM',
|
'VM RAM'=>'MV RAM',
|
||||||
'VM Image size'=>'Tamaño de la imagen de disco',
|
'VM Image size'=>'Tamaño de la imagen de disco',
|
||||||
'VNC PORT'=>'Puerto VNC ( 0 - is auto )',
|
'VNC PORT'=>'Puerto VNC ( 0 - is auto )',
|
||||||
'VM Password'=>'Contraseña MV',
|
'VM Password'=>'Contraseña MV',
|
||||||
|
|
||||||
'Create Authkey'=>'Crear Clave de Autenticación',
|
'Create Authkey'=>'Crear Clave de Autenticación',
|
||||||
'Authkey name'=>'Nombre de Clave de Autenticación',
|
'Authkey name'=>'Nombre de Clave de Autenticación',
|
||||||
'Authkey'=>'Clave de Autenticación',
|
'Authkey'=>'Clave de Autenticación',
|
||||||
|
|
||||||
'Open'=>'Abrir',
|
'Open'=>'Abrir',
|
||||||
'Close'=>'Cerrar',
|
'Close'=>'Cerrar',
|
||||||
'Get'=>'Conseguir',
|
'Get'=>'Conseguir',
|
||||||
'Update'=>'Actualizar',
|
'Update'=>'Actualizar',
|
||||||
|
|
||||||
'Updating'=>'Actualizando',
|
'Updating'=>'Actualizando',
|
||||||
'Version'=>'Versión',
|
'Version'=>'Versión',
|
||||||
'Version number'=>'Número de versión(ejemplo:: 12.2, 13)',
|
'Version number'=>'Número de versión(ejemplo:: 12.2, 13)',
|
||||||
|
|
||||||
'Source'=>'Fuente',
|
'Source'=>'Fuente',
|
||||||
|
|
||||||
'@clone_warning@'=>'<strong>¡ATENCIÓN!</strong> ¡Clonar del contenedor en ejecución puede llevar a inconsistencias de datos en los clones, (por ejemplo en entornos con bases de datos activas). Detenga el contenedor para una clonación segura, o continúe si está conforme con la seguridad de la operación!',
|
'@clone_warning@'=>'<strong>¡ATENCIÓN!</strong> ¡Clonar del contenedor en ejecución puede llevar a inconsistencias de datos en los clones, (por ejemplo en entornos con bases de datos activas). Detenga el contenedor para una clonación segura, o continúe si está conforme con la seguridad de la operación!',
|
||||||
|
|
||||||
'edit_title'=>'Editar',
|
'edit_title'=>'Editar',
|
||||||
'delete_title'=>'Eliminar',
|
'delete_title'=>'Eliminar',
|
||||||
|
|
||||||
'Please, wait for initialize Virtual Machine'=>'Por favor, espere a la inicialización de la Máquina Virtual',
|
'Please, wait for initialize Virtual Machine'=>'Por favor, espere a la inicialización de la Máquina Virtual',
|
||||||
'You can click here, or wait'=>'Puede hacer click aquí, o esperar',
|
'You can click here, or wait'=>'Puede hacer click aquí, o esperar',
|
||||||
'some time'=>'algún tiempo',
|
'some time'=>'algún tiempo',
|
||||||
|
|
||||||
'host_hostname'=>'Nombre de Dominio Completo de la Jaula (FQDN)',
|
'host_hostname'=>'Nombre de Dominio Completo de la Jaula (FQDN)',
|
||||||
'ip4_addr'=>'todas las direcciones IPv4 y/o IPv6',
|
'ip4_addr'=>'todas las direcciones IPv4 y/o IPv6',
|
||||||
'allow_mount'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros dentro de la jaula',
|
'allow_mount'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros dentro de la jaula',
|
||||||
'allow_nullfs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros NULLFS dentro de la jaula',
|
'allow_nullfs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros NULLFS dentro de la jaula',
|
||||||
'allow_fdescfs'=>'La jaula puede montar el sistema de ficheros fdescfs',
|
'allow_fdescfs'=>'La jaula puede montar el sistema de ficheros fdescfs',
|
||||||
'interface'=>'Crear y eliminar automáticamente IP en NICs seleccionadas. 0 para deshabilitar',
|
'interface'=>'Crear y eliminar automáticamente IP en NICs seleccionadas. 0 para deshabilitar',
|
||||||
'baserw'=>'La jaula tiene una copia personal del sistema base con permisos de escritura, montar NULLFS no disponible',
|
'baserw'=>'La jaula tiene una copia personal del sistema base con permisos de escritura, montar NULLFS no disponible',
|
||||||
'mount_ports'=>'La jaula tiene /usr/ports /usr/ports/tree en sólo lectura',
|
'mount_ports'=>'La jaula tiene /usr/ports /usr/ports/tree en sólo lectura',
|
||||||
'astart'=>'Iniciar automáticamente la jaula al arranque',
|
'astart'=>'Iniciar automáticamente la jaula al arranque',
|
||||||
'vnet'=>'Habilitar virtual network stack (VNET/VIMAGE)',
|
'vnet'=>'Habilitar virtual network stack (VNET/VIMAGE)',
|
||||||
'mount_fdescfs'=>'Montar un sistema de ficheros FDESCFS usando chroot',
|
'mount_fdescfs'=>'Montar un sistema de ficheros FDESCFS usando chroot',
|
||||||
'allow_tmpfs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros TMPFS dentro de la jaula',
|
'allow_tmpfs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros TMPFS dentro de la jaula',
|
||||||
'allow_zfs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros ZFS dentro de la jaula',
|
'allow_zfs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros ZFS dentro de la jaula',
|
||||||
'protected'=>'Prevenir modificación o eliminación de un entorno',
|
'protected'=>'Prevenir modificación o eliminación de un entorno',
|
||||||
'allow_reserved_ports'=>'Permitir al root de la jaula enlazar puertos menores a 1024',
|
'allow_reserved_ports'=>'Permitir al root de la jaula enlazar puertos menores a 1024',
|
||||||
'allow_raw_sockets'=>'El root de la jaula puede crear raw sockets',
|
'allow_raw_sockets'=>'El root de la jaula puede crear raw sockets',
|
||||||
'allow_fusefs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros basados en FUSE dentro de la jaula',
|
'allow_fusefs'=>'Permitir a usuarios privilegiados montar y desmontar sistemas de ficheros basados en FUSE dentro de la jaula',
|
||||||
'allow_read_msgbuf'=>'Permitir a un usuario no privilegiado leer el buffer de mensajes del kernel',
|
'allow_read_msgbuf'=>'Permitir a un usuario no privilegiado leer el buffer de mensajes del kernel',
|
||||||
'allow_vmm'=>'La jaula puede acceder a vmm(4)',
|
'allow_vmm'=>'La jaula puede acceder a vmm(4)',
|
||||||
'allow_unprivileged_proc_debug'=>'Procesos no privilegiados en la jaula pueden usar instalaciones de depuración',
|
'allow_unprivileged_proc_debug'=>'Procesos no privilegiados en la jaula pueden usar instalaciones de depuración',
|
||||||
|
|
||||||
//''=>'',
|
//''=>'',
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,49 +1,49 @@
|
|||||||
clonos.lang={
|
clonos.lang={
|
||||||
"Error": "Erreur",
|
"Error": "Erreur",
|
||||||
"No data, add something": "Pas de données, ajoutez quelque chose",
|
"No data, add something": "Pas de données, ajoutez quelque chose",
|
||||||
"available on the jail is not running": "disponible quand le jail n'est pas en fonctionnement",
|
"available on the jail is not running": "disponible quand le jail n'est pas en fonctionnement",
|
||||||
"Log is empty": "Fichier journal vide",
|
"Log is empty": "Fichier journal vide",
|
||||||
"Exported jails": "Jails exportées",
|
"Exported jails": "Jails exportées",
|
||||||
"Download": "Téléchargement",
|
"Download": "Téléchargement",
|
||||||
"Jail is created": "Jail créée",
|
"Jail is created": "Jail créée",
|
||||||
"Jail already launched": "Jail déjà lancée",
|
"Jail already launched": "Jail déjà lancée",
|
||||||
"Jail already stopped": "Jail déjà arrêtée",
|
"Jail already stopped": "Jail déjà arrêtée",
|
||||||
"Export not available on launched jail": "L'export n'est pas disponible sur une jail en fonctionnement",
|
"Export not available on launched jail": "L'export n'est pas disponible sur une jail en fonctionnement",
|
||||||
"This field cannot be left blank": "Ce champ ne peut pas être vide",
|
"This field cannot be left blank": "Ce champ ne peut pas être vide",
|
||||||
"You need to select one or more jails for clone": "Sélectionnez une ou plusieurs jails à cloner",
|
"You need to select one or more jails for clone": "Sélectionnez une ou plusieurs jails à cloner",
|
||||||
"You want to restart selected jail! Are you sure?":"Confirmez-vous le redémarrage de la jail sélectionnée ?",
|
"You want to restart selected jail! Are you sure?":"Confirmez-vous le redémarrage de la jail sélectionnée ?",
|
||||||
"You want to restart selected virtual machine! Are you sure?":"Confirmez-vous le redémarrage de la machine virtuelle sélectionnée ?",
|
"You want to restart selected virtual machine! Are you sure?":"Confirmez-vous le redémarrage de la machine virtuelle sélectionnée ?",
|
||||||
"You want to delete selected jail! Are you sure?":"Confirmez-vous l'effacement de la jail sélectionnée ?",
|
"You want to delete selected jail! Are you sure?":"Confirmez-vous l'effacement de la jail sélectionnée ?",
|
||||||
"You want to delete selected virtual machine! Are you sure?":"Confirmez-vous l'effacement de la machine virtuelle sélectionnée ?",
|
"You want to delete selected virtual machine! Are you sure?":"Confirmez-vous l'effacement de la machine virtuelle sélectionnée ?",
|
||||||
|
|
||||||
"You want to delete selected authkey! Are you sure?":"Confirmez-vous l'effacement de la clef d'authentification sélectionnée ?",
|
"You want to delete selected authkey! Are you sure?":"Confirmez-vous l'effacement de la clef d'authentification sélectionnée ?",
|
||||||
|
|
||||||
|
|
||||||
"Not running":"Pas en fonctionnement",
|
"Not running":"Pas en fonctionnement",
|
||||||
"Not Launched":"Pas lancé",
|
"Not Launched":"Pas lancé",
|
||||||
"Launched":"Lancé",
|
"Launched":"Lancé",
|
||||||
"Stopping":"Arrêt en cours",
|
"Stopping":"Arrêt en cours",
|
||||||
"Stopped":"Arrêtée",
|
"Stopped":"Arrêtée",
|
||||||
"Removing":"Effacement en cours",
|
"Removing":"Effacement en cours",
|
||||||
"Removed":"Effacée",
|
"Removed":"Effacée",
|
||||||
"Creating":"Création en cours",
|
"Creating":"Création en cours",
|
||||||
"Created":"Créée",
|
"Created":"Créée",
|
||||||
"Starting":"Démarrage en cours",
|
"Starting":"Démarrage en cours",
|
||||||
"Exporting":"Export en cours",
|
"Exporting":"Export en cours",
|
||||||
"Cloning":"Clonage en cous",
|
"Cloning":"Clonage en cous",
|
||||||
"Cloned":"Clonée",
|
"Cloned":"Clonée",
|
||||||
"Restarting":"Redémarrage en cours",
|
"Restarting":"Redémarrage en cours",
|
||||||
"Restarted":"Redémarrée",
|
"Restarted":"Redémarrée",
|
||||||
"Update":"Mettre à jour",
|
"Update":"Mettre à jour",
|
||||||
"Updating":"Mise à jour en cours",
|
"Updating":"Mise à jour en cours",
|
||||||
"Updated":"Mise à jour",
|
"Updated":"Mise à jour",
|
||||||
"Delete":"Effacement",
|
"Delete":"Effacement",
|
||||||
"Save":"Sauvegarde",
|
"Save":"Sauvegarde",
|
||||||
|
|
||||||
"end":"fin",
|
"end":"fin",
|
||||||
|
|
||||||
"This name is already exists!":"Ce nom existe déjà !",
|
"This name is already exists!":"Ce nom existe déjà !",
|
||||||
"Passwords must match!":"Les mots de passe doivent être identiques !",
|
"Passwords must match!":"Les mots de passe doivent être identiques !",
|
||||||
|
|
||||||
"@redirect_alert@":"Vous allez être redirigé vers la liste dans 3 secondes !",
|
"@redirect_alert@":"Vous allez être redirigé vers la liste dans 3 secondes !",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,159 +1,159 @@
|
|||||||
<?php
|
<?php
|
||||||
$lang=array(
|
$lang=array(
|
||||||
'Settings'=>'Paramètres',
|
'Settings'=>'Paramètres',
|
||||||
'Profile'=>'Profil',
|
'Profile'=>'Profil',
|
||||||
'Support'=>'Support',
|
'Support'=>'Support',
|
||||||
|
|
||||||
'Overview'=>'Aperçu',
|
'Overview'=>'Aperçu',
|
||||||
'Summary Overview'=>'Aperçu simplifié',
|
'Summary Overview'=>'Aperçu simplifié',
|
||||||
'Jails containers'=>'Conteneurs Jails',
|
'Jails containers'=>'Conteneurs Jails',
|
||||||
'Jails containers control panel'=>'Panneau de contrôle des conteneurs jails',
|
'Jails containers control panel'=>'Panneau de contrôle des conteneurs jails',
|
||||||
'Template for jail'=>'Modèle pour les jails',
|
'Template for jail'=>'Modèle pour les jails',
|
||||||
'Helpers and wizard for containers'=>'Assistant pour les conteneurs',
|
'Helpers and wizard for containers'=>'Assistant pour les conteneurs',
|
||||||
'Helpers of jails'=>'Assistant pour les jails',
|
'Helpers of jails'=>'Assistant pour les jails',
|
||||||
'Virtual machine control panel'=>'Panneau de contrôle pour les machines virtuelles',
|
'Virtual machine control panel'=>'Panneau de contrôle pour les machines virtuelles',
|
||||||
'Bhyve VMs'=>'Machines virtuelles Bhyve',
|
'Bhyve VMs'=>'Machines virtuelles Bhyve',
|
||||||
'Virtual machine control panel'=>'Panneau de contrôle pour les machines virtuelles',
|
'Virtual machine control panel'=>'Panneau de contrôle pour les machines virtuelles',
|
||||||
'Nodes'=>'Nodes',
|
'Nodes'=>'Nodes',
|
||||||
'Nodes control panel'=>'Panneau de contrôle pour les nodes',
|
'Nodes control panel'=>'Panneau de contrôle pour les nodes',
|
||||||
'VM Packages'=>'Paquetage pour les machines virtuelles',
|
'VM Packages'=>'Paquetage pour les machines virtuelles',
|
||||||
'Manage for virtual machine packages'=>'Gestionnaire des paquetages de machines virtuelles',
|
'Manage for virtual machine packages'=>'Gestionnaire des paquetages de machines virtuelles',
|
||||||
'Virtual Private Network'=>'Réseau privé virtuel',
|
'Virtual Private Network'=>'Réseau privé virtuel',
|
||||||
'Manage for virtual private networks'=>'Gestionnaire des réseaux privés virtuels',
|
'Manage for virtual private networks'=>'Gestionnaire des réseaux privés virtuels',
|
||||||
'Authkeys'=>'Clefs authentification',
|
'Authkeys'=>'Clefs authentification',
|
||||||
'Manage for SSH auth key'=>'Gestionnaire des clefs SSH',
|
'Manage for SSH auth key'=>'Gestionnaire des clefs SSH',
|
||||||
'Storage Media'=>'Médias de stockage',
|
'Storage Media'=>'Médias de stockage',
|
||||||
'Virtual Media Manager'=>'Gestionnaire des médias virtuels',
|
'Virtual Media Manager'=>'Gestionnaire des médias virtuels',
|
||||||
'Repository'=>'Dépôt',
|
'Repository'=>'Dépôt',
|
||||||
'Remote repository'=>'Dépôt distant',
|
'Remote repository'=>'Dépôt distant',
|
||||||
'FreeBSD Bases'=>'Bases FreeBSD',
|
'FreeBSD Bases'=>'Bases FreeBSD',
|
||||||
'FreeBSD bases manager'=>'Gestionnaire des bases FreeBSD',
|
'FreeBSD bases manager'=>'Gestionnaire des bases FreeBSD',
|
||||||
'FreeBSD Sources'=>'Sources FreeBSD',
|
'FreeBSD Sources'=>'Sources FreeBSD',
|
||||||
'FreeBSD sources manager'=>'Gestionnaire des sources FreeBSD',
|
'FreeBSD sources manager'=>'Gestionnaire des sources FreeBSD',
|
||||||
'Jail Marketplace'=>'Marketplace Jail',
|
'Jail Marketplace'=>'Marketplace Jail',
|
||||||
'Public remote containers marketplace'=>'Marketplace des conteneurs publics',
|
'Public remote containers marketplace'=>'Marketplace des conteneurs publics',
|
||||||
'Bhyve Marketplace'=>'Marketplace Bhyve',
|
'Bhyve Marketplace'=>'Marketplace Bhyve',
|
||||||
'Public remote virtual machine marketplace'=>'Marketplace des machines virtuelles publiques',
|
'Public remote virtual machine marketplace'=>'Marketplace des machines virtuelles publiques',
|
||||||
'TaskLog'=>'Journal des tâches',
|
'TaskLog'=>'Journal des tâches',
|
||||||
'System task log'=>'Journal des tâches systèmes',
|
'System task log'=>'Journal des tâches systèmes',
|
||||||
|
|
||||||
'Not implemented yet'=>'Implémentation non terminée',
|
'Not implemented yet'=>'Implémentation non terminée',
|
||||||
|
|
||||||
|
|
||||||
'Not Launched'=>'Pas lancé',
|
'Not Launched'=>'Pas lancé',
|
||||||
'Starting'=>'Démarrage en cours',
|
'Starting'=>'Démarrage en cours',
|
||||||
'Launched'=>'Lancé',
|
'Launched'=>'Lancé',
|
||||||
'Creating'=>'Création en cours',
|
'Creating'=>'Création en cours',
|
||||||
'Created'=>'Créé',
|
'Created'=>'Créé',
|
||||||
'Stopping'=>'Arrêt en cours',
|
'Stopping'=>'Arrêt en cours',
|
||||||
'Stopped'=>'Arrêté',
|
'Stopped'=>'Arrêté',
|
||||||
'Removing'=>'Effacement en cours',
|
'Removing'=>'Effacement en cours',
|
||||||
'Exporting'=>'Export en cours',
|
'Exporting'=>'Export en cours',
|
||||||
'Cloning'=>'Clonage en cours',
|
'Cloning'=>'Clonage en cours',
|
||||||
'Cloned'=>'Clôné',
|
'Cloned'=>'Clôné',
|
||||||
'Restarting'=>'Relance en cours',
|
'Restarting'=>'Relance en cours',
|
||||||
'Restarted'=>'Relancé',
|
'Restarted'=>'Relancé',
|
||||||
'Maintenance'=>'Maintenance',
|
'Maintenance'=>'Maintenance',
|
||||||
|
|
||||||
'Create jail'=>'Créer une jail',
|
'Create jail'=>'Créer une jail',
|
||||||
'Edit jail'=>'Modifier une jail',
|
'Edit jail'=>'Modifier une jail',
|
||||||
'Jail Settings'=>'Paramètres de Jail',
|
'Jail Settings'=>'Paramètres de Jail',
|
||||||
'Jail name'=>'Nom de la jail',
|
'Jail name'=>'Nom de la jail',
|
||||||
'Hostname'=>'Nom du serveur',
|
'Hostname'=>'Nom du serveur',
|
||||||
'available on the jail is not running'=>'Disponible quand la jail est arrêtée',
|
'available on the jail is not running'=>'Disponible quand la jail est arrêtée',
|
||||||
'IP address'=>'Addresse IP',
|
'IP address'=>'Addresse IP',
|
||||||
'Root password'=>'Mot de passe Root (optionel)',
|
'Root password'=>'Mot de passe Root (optionel)',
|
||||||
'Root password (again)'=>'Mot de passe Root (2eme entrée)',
|
'Root password (again)'=>'Mot de passe Root (2eme entrée)',
|
||||||
'Description'=>'Description',
|
'Description'=>'Description',
|
||||||
'Net Interface'=>'Interface réseau',
|
'Net Interface'=>'Interface réseau',
|
||||||
'Parameters'=>'Paramètres',
|
'Parameters'=>'Paramètres',
|
||||||
'Autostart'=>'Démarrage automatique',
|
'Autostart'=>'Démarrage automatique',
|
||||||
'Autostart jail at system startup'=>'Démarrage automatique la jail lors du démarrage système',
|
'Autostart jail at system startup'=>'Démarrage automatique la jail lors du démarrage système',
|
||||||
'Base writable'=>'Base writable',
|
'Base writable'=>'Base writable',
|
||||||
'Virtual network stack (VIMAGE)'=>'Pile réseau virtuelle (VIMAGE)',
|
'Virtual network stack (VIMAGE)'=>'Pile réseau virtuelle (VIMAGE)',
|
||||||
'Mount'=>'Montage',
|
'Mount'=>'Montage',
|
||||||
'Enabled services'=>'Services actifs',
|
'Enabled services'=>'Services actifs',
|
||||||
'Create'=>'Créer',
|
'Create'=>'Créer',
|
||||||
'Cancel'=>'Annuler',
|
'Cancel'=>'Annuler',
|
||||||
'Save'=>'Sauvegarder',
|
'Save'=>'Sauvegarder',
|
||||||
|
|
||||||
'Delete'=>'Effacer',
|
'Delete'=>'Effacer',
|
||||||
'Protected jail'=>'Jail protégée',
|
'Protected jail'=>'Jail protégée',
|
||||||
'Open VNC'=>'Ouvrir VNC',
|
'Open VNC'=>'Ouvrir VNC',
|
||||||
'Restart jail'=>'Redémarrer jail',
|
'Restart jail'=>'Redémarrer jail',
|
||||||
'Restart bhyve'=>'Redémarrer bhyve',
|
'Restart bhyve'=>'Redémarrer bhyve',
|
||||||
|
|
||||||
//err_messages
|
//err_messages
|
||||||
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Le nom ne peut pas être vide. Il doit commencer par une lettre / a-z / et ne peut pas contenir les symboles: -,.=%',
|
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Le nom ne peut pas être vide. Il doit commencer par une lettre / a-z / et ne peut pas contenir les symboles: -,.=%',
|
||||||
'This field can not be empty'=>'Ce champ ne peut pas être vide',
|
'This field can not be empty'=>'Ce champ ne peut pas être vide',
|
||||||
'Write correct ip address, e.g: 10.0.0.2'=>'Entrez une adresse IP correcte. Par ex. : 10.0.0.2',
|
'Write correct ip address, e.g: 10.0.0.2'=>'Entrez une adresse IP correcte. Par ex. : 10.0.0.2',
|
||||||
'Password can not be less than 3 symbols'=>'Le mot de passe ne peut pas compter moins de 3 caractères',
|
'Password can not be less than 3 symbols'=>'Le mot de passe ne peut pas compter moins de 3 caractères',
|
||||||
'Please retype password correctly'=>'Merci de ré-entrer un mot de passe correct',
|
'Please retype password correctly'=>'Merci de ré-entrer un mot de passe correct',
|
||||||
|
|
||||||
'edit'=>'éditer',
|
'edit'=>'éditer',
|
||||||
'clone'=>'cloner',
|
'clone'=>'cloner',
|
||||||
'export'=>'exporter',
|
'export'=>'exporter',
|
||||||
'helpers'=> 'assistants',
|
'helpers'=> 'assistants',
|
||||||
'rename'=>'renommer',
|
'rename'=>'renommer',
|
||||||
|
|
||||||
'default is'=>'le défaut est',
|
'default is'=>'le défaut est',
|
||||||
|
|
||||||
'Create Virtual Machine'=>'Créer des machines virtuelles',
|
'Create Virtual Machine'=>'Créer des machines virtuelles',
|
||||||
'Create Virtual Machine from Library'=>'Obtenir une machine virtuelle de la bibliothèque',
|
'Create Virtual Machine from Library'=>'Obtenir une machine virtuelle de la bibliothèque',
|
||||||
'Virtual Machine Settings'=>'Paramètres de la machine virtuelle',
|
'Virtual Machine Settings'=>'Paramètres de la machine virtuelle',
|
||||||
'Virtual Machine name'=>'Nom de la machine virtuelle',
|
'Virtual Machine name'=>'Nom de la machine virtuelle',
|
||||||
'VM OS profile'=>'Profile OS de la machine virtuelle',
|
'VM OS profile'=>'Profile OS de la machine virtuelle',
|
||||||
'Authkey'=>'Clef authentification',
|
'Authkey'=>'Clef authentification',
|
||||||
'VM CPUs'=>'Coeur vCPU',
|
'VM CPUs'=>'Coeur vCPU',
|
||||||
'VM RAM'=>'RAM',
|
'VM RAM'=>'RAM',
|
||||||
'VM Image size'=>'Taille image disque',
|
'VM Image size'=>'Taille image disque',
|
||||||
'VNC PORT'=>'Port VNC ( 0 - automatique)',
|
'VNC PORT'=>'Port VNC ( 0 - automatique)',
|
||||||
'VM Password'=>'Mot de passe Root',
|
'VM Password'=>'Mot de passe Root',
|
||||||
|
|
||||||
'Create Authkey'=>'Créer clef authentification',
|
'Create Authkey'=>'Créer clef authentification',
|
||||||
'Authkey name'=>'Nom de la clef authentification',
|
'Authkey name'=>'Nom de la clef authentification',
|
||||||
'Authkey'=>'Clef authentification',
|
'Authkey'=>'Clef authentification',
|
||||||
|
|
||||||
'Open'=>'Ouvrir',
|
'Open'=>'Ouvrir',
|
||||||
'Close'=>'Fermer',
|
'Close'=>'Fermer',
|
||||||
'Get'=>'Obtenir',
|
'Get'=>'Obtenir',
|
||||||
'Update'=>'Mettre à jour',
|
'Update'=>'Mettre à jour',
|
||||||
|
|
||||||
'Updating'=>'Mise à jour en cours',
|
'Updating'=>'Mise à jour en cours',
|
||||||
'Version'=>'Version',
|
'Version'=>'Version',
|
||||||
'Version number'=>'Numéro de version (ex: 12.2, 13)',
|
'Version number'=>'Numéro de version (ex: 12.2, 13)',
|
||||||
|
|
||||||
'Source'=>'Source',
|
'Source'=>'Source',
|
||||||
|
|
||||||
'@clone_warning@'=>'<strong>ATTENTION !</strong> Cloner un conteneur en fonctionnement peut entraîner une perte des données dnas les clones (ex. des environnements avec des bases de données actives). Arrêtez le conteneur pour éviter ces problèmes ou continuer si vous êtes certain de ne pas courir de risques !',
|
'@clone_warning@'=>'<strong>ATTENTION !</strong> Cloner un conteneur en fonctionnement peut entraîner une perte des données dnas les clones (ex. des environnements avec des bases de données actives). Arrêtez le conteneur pour éviter ces problèmes ou continuer si vous êtes certain de ne pas courir de risques !',
|
||||||
|
|
||||||
'edit_title'=>'Edition',
|
'edit_title'=>'Edition',
|
||||||
'delete_title'=>'Effacement',
|
'delete_title'=>'Effacement',
|
||||||
|
|
||||||
'Please, wait for initialize Virtual Machine'=>'Merci de patienter - initialisation de la VM',
|
'Please, wait for initialize Virtual Machine'=>'Merci de patienter - initialisation de la VM',
|
||||||
'You can click here, or wait'=>'Cliquez ici ou patientez',
|
'You can click here, or wait'=>'Cliquez ici ou patientez',
|
||||||
'some time'=>'quelques instants',
|
'some time'=>'quelques instants',
|
||||||
|
|
||||||
'host_hostname'=>'FQDN de la Jail',
|
'host_hostname'=>'FQDN de la Jail',
|
||||||
'ip4_addr'=>'Adresse Jail IPv4 et/ou IPv6',
|
'ip4_addr'=>'Adresse Jail IPv4 et/ou IPv6',
|
||||||
'allow_mount'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers',
|
'allow_mount'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers',
|
||||||
'allow_nullfs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers NULLFS',
|
'allow_nullfs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers NULLFS',
|
||||||
'allow_fdescfs'=>'La Jail peut monter le système de fichiers fdescfs',
|
'allow_fdescfs'=>'La Jail peut monter le système de fichiers fdescfs',
|
||||||
'interface'=>'Créer et enlever des IP sur les cartes réseaux automatiquement. 0 pour désactiver',
|
'interface'=>'Créer et enlever des IP sur les cartes réseaux automatiquement. 0 pour désactiver',
|
||||||
'baserw'=>'La Jail a une copie du système de base avec accès en écriture, sans montage NULLFS',
|
'baserw'=>'La Jail a une copie du système de base avec accès en écriture, sans montage NULLFS',
|
||||||
'mount_ports'=>'La Jail a /usr/ports /usr/ports en lecture seule',
|
'mount_ports'=>'La Jail a /usr/ports /usr/ports en lecture seule',
|
||||||
'astart'=>'Démarrage de la jail lors du démarrage système',
|
'astart'=>'Démarrage de la jail lors du démarrage système',
|
||||||
'vnet'=>'Activer le stack réseau virtuel (VNET/VIMAGE)',
|
'vnet'=>'Activer le stack réseau virtuel (VNET/VIMAGE)',
|
||||||
'mount_fdescfs'=>'Monter un système de fichiers FDESCFS dans le chroot',
|
'mount_fdescfs'=>'Monter un système de fichiers FDESCFS dans le chroot',
|
||||||
'allow_tmpfs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers TMPFS',
|
'allow_tmpfs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers TMPFS',
|
||||||
'allow_zfs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers ZFS',
|
'allow_zfs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers ZFS',
|
||||||
'protected'=>'Interdire modification ou effacement de cet environnement',
|
'protected'=>'Interdire modification ou effacement de cet environnement',
|
||||||
'allow_reserved_ports'=>'Autoriser root à utiliser les ports inférieurs à 1024',
|
'allow_reserved_ports'=>'Autoriser root à utiliser les ports inférieurs à 1024',
|
||||||
'allow_raw_sockets'=>'Autoriser root à créer des raw sockets',
|
'allow_raw_sockets'=>'Autoriser root à créer des raw sockets',
|
||||||
'allow_fusefs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers fuse',
|
'allow_fusefs'=>'Autoriser les utilisateurs privilégiés de la jail à monter/démonter des systèmes de fichiers fuse',
|
||||||
'allow_read_msgbuf'=>'Autoriser un utilisateur sans privilèges à lire le tampon des messages du noyau',
|
'allow_read_msgbuf'=>'Autoriser un utilisateur sans privilèges à lire le tampon des messages du noyau',
|
||||||
'allow_vmm'=>'La jail aura accès à vmm(4)',
|
'allow_vmm'=>'La jail aura accès à vmm(4)',
|
||||||
'allow_unprivileged_proc_debug'=>'Les processus sans privilèges peuvent utiliser les fonctions de debugging',
|
'allow_unprivileged_proc_debug'=>'Les processus sans privilèges peuvent utiliser les fonctions de debugging',
|
||||||
|
|
||||||
//''=>'',
|
//''=>'',
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,76 +1,76 @@
|
|||||||
clonos.lang={
|
clonos.lang={
|
||||||
"Error": "Ошибка",
|
"Error": "Ошибка",
|
||||||
"No data, add something": "Нет данных, добавьте что-нибудь",
|
"No data, add something": "Нет данных, добавьте что-нибудь",
|
||||||
"available on the jail is not running": "доступно при остановленной клетке",
|
"available on the jail is not running": "доступно при остановленной клетке",
|
||||||
"Log is empty": "Лог пуст",
|
"Log is empty": "Лог пуст",
|
||||||
"Exported jails": "Экспортированные клетки",
|
"Exported jails": "Экспортированные клетки",
|
||||||
"Download": "Скачать",
|
"Download": "Скачать",
|
||||||
"Jail is created": "Клетка создана",
|
"Jail is created": "Клетка создана",
|
||||||
"Jail already launched": "Клетка уже запущена",
|
"Jail already launched": "Клетка уже запущена",
|
||||||
"Jail already stopped": "Клетка уже остановлена",
|
"Jail already stopped": "Клетка уже остановлена",
|
||||||
"Export not available on launched jail": "Экспорт невозможен на запущенной клетке",
|
"Export not available on launched jail": "Экспорт невозможен на запущенной клетке",
|
||||||
"This field cannot be left blank": "Это поле должно быть заполнено",
|
"This field cannot be left blank": "Это поле должно быть заполнено",
|
||||||
"You need to select one or more jails for clone": "Вам необходимо выбрать одну или несколько клеток для клонирования",
|
"You need to select one or more jails for clone": "Вам необходимо выбрать одну или несколько клеток для клонирования",
|
||||||
"You want to restart selected jail! Are you sure?":"Вы уверены, что хотите перезапустить выбранную клетку?",
|
"You want to restart selected jail! Are you sure?":"Вы уверены, что хотите перезапустить выбранную клетку?",
|
||||||
"You want to restart selected virtual machine! Are you sure?":"Вы уверены, что хотите перезапустить выбранную виртуальную машину?",
|
"You want to restart selected virtual machine! Are you sure?":"Вы уверены, что хотите перезапустить выбранную виртуальную машину?",
|
||||||
"You want to delete selected jail! Are you sure?":"Вы уверены, что хотите удалить выбранную клетку?",
|
"You want to delete selected jail! Are you sure?":"Вы уверены, что хотите удалить выбранную клетку?",
|
||||||
"You want to delete selected virtual machine! Are you sure?":"Вы уверены, что хотите удалить выбранную виртуальную машину?",
|
"You want to delete selected virtual machine! Are you sure?":"Вы уверены, что хотите удалить выбранную виртуальную машину?",
|
||||||
|
|
||||||
"You want to delete selected authkey! Are you sure?":"Вы уверены, что хотите удалить выбранный ключ авторизации?",
|
"You want to delete selected authkey! Are you sure?":"Вы уверены, что хотите удалить выбранный ключ авторизации?",
|
||||||
|
|
||||||
|
|
||||||
"Not running":"Не запущено",
|
"Not running":"Не запущено",
|
||||||
"Not Launched":"Не запущено",
|
"Not Launched":"Не запущено",
|
||||||
"Launched":"Запущено",
|
"Launched":"Запущено",
|
||||||
"Stopping":"Останавливается",
|
"Stopping":"Останавливается",
|
||||||
"Stopped":"Остановлено",
|
"Stopped":"Остановлено",
|
||||||
"Removing":"Удаляется",
|
"Removing":"Удаляется",
|
||||||
"Removed":"Удалено",
|
"Removed":"Удалено",
|
||||||
"Creating":"Создаётся",
|
"Creating":"Создаётся",
|
||||||
"Created":"Создано",
|
"Created":"Создано",
|
||||||
"Starting":"Запускается",
|
"Starting":"Запускается",
|
||||||
"Exporting":"Экспортируется",
|
"Exporting":"Экспортируется",
|
||||||
"Exported":"Экспортировано",
|
"Exported":"Экспортировано",
|
||||||
"Cloning":"Клонируется",
|
"Cloning":"Клонируется",
|
||||||
"Cloned":"Клонировано",
|
"Cloned":"Клонировано",
|
||||||
"Restarting":"Перезапускаем",
|
"Restarting":"Перезапускаем",
|
||||||
"Restarted":"Перезапущено",
|
"Restarted":"Перезапущено",
|
||||||
"Update":"Обновить",
|
"Update":"Обновить",
|
||||||
"Updating":"Обновляется",
|
"Updating":"Обновляется",
|
||||||
"Updated":"Обновлено",
|
"Updated":"Обновлено",
|
||||||
"Delete":"Удалить",
|
"Delete":"Удалить",
|
||||||
"Save":"Сохранить",
|
"Save":"Сохранить",
|
||||||
"Rename":"Переименовать",
|
"Rename":"Переименовать",
|
||||||
"Renaming":"Переименовываем",
|
"Renaming":"Переименовываем",
|
||||||
"Renamed":"Переименовано",
|
"Renamed":"Переименовано",
|
||||||
"Fetch":"Получить",
|
"Fetch":"Получить",
|
||||||
"Fetching":"Получаем",
|
"Fetching":"Получаем",
|
||||||
"Fetched":"Получено",
|
"Fetched":"Получено",
|
||||||
"Compile":"Собрать",
|
"Compile":"Собрать",
|
||||||
"Compiling":"Собираем",
|
"Compiling":"Собираем",
|
||||||
"Compiled":"Собрано",
|
"Compiled":"Собрано",
|
||||||
|
|
||||||
//"Create jail":"Создание контейнера",
|
//"Create jail":"Создание контейнера",
|
||||||
//"Edit jail":"Редактирование параметров контейнера",
|
//"Edit jail":"Редактирование параметров контейнера",
|
||||||
|
|
||||||
"end":"конец",
|
"end":"конец",
|
||||||
|
|
||||||
"jail":"клетка",
|
"jail":"клетка",
|
||||||
"bhyve":"виртуальная машина",
|
"bhyve":"виртуальная машина",
|
||||||
|
|
||||||
"This name is already exists!":"Такое имя уже существует!",
|
"This name is already exists!":"Такое имя уже существует!",
|
||||||
"Passwords must match!":"Пароли должны совпадать!",
|
"Passwords must match!":"Пароли должны совпадать!",
|
||||||
|
|
||||||
"@redirect_alert@":"Вы будете перенаправлены на список контейнеров через 3 секунды!",
|
"@redirect_alert@":"Вы будете перенаправлены на список контейнеров через 3 секунды!",
|
||||||
|
|
||||||
"description":"описание",
|
"description":"описание",
|
||||||
"properties":"параметры",
|
"properties":"параметры",
|
||||||
|
|
||||||
"starting...":"Запуск обновления...",
|
"starting...":"Запуск обновления...",
|
||||||
"update phase 1/5..":"Фаза обновления: 1/5..",
|
"update phase 1/5..":"Фаза обновления: 1/5..",
|
||||||
"update phase 2/5..":"Фаза обновления: 2/5..",
|
"update phase 2/5..":"Фаза обновления: 2/5..",
|
||||||
"update phase 3/5..":"Фаза обновления: 3/5..",
|
"update phase 3/5..":"Фаза обновления: 3/5..",
|
||||||
"update phase 4/5..":"Фаза обновления: 4/5..",
|
"update phase 4/5..":"Фаза обновления: 4/5..",
|
||||||
"update phase 5/5..":"Фаза обновления: 5/5..",
|
"update phase 5/5..":"Фаза обновления: 5/5..",
|
||||||
"complete":"Обновление завершено",
|
"complete":"Обновление завершено",
|
||||||
}
|
}
|
||||||
@@ -1,201 +1,201 @@
|
|||||||
<?php
|
<?php
|
||||||
$lang=array(
|
$lang=array(
|
||||||
'Settings'=>'Настройки',
|
'Settings'=>'Настройки',
|
||||||
'Profile'=>'Профиль',
|
'Profile'=>'Профиль',
|
||||||
'Support'=>'Поддержка',
|
'Support'=>'Поддержка',
|
||||||
|
|
||||||
'Overview'=>'Общая информация',
|
'Overview'=>'Общая информация',
|
||||||
'Summary Overview'=>'Общая информация',
|
'Summary Overview'=>'Общая информация',
|
||||||
'Jails containers'=>'Контейнеры',
|
'Jails containers'=>'Контейнеры',
|
||||||
'Jails containers control panel'=>'Панель управления контейнерами',
|
'Jails containers control panel'=>'Панель управления контейнерами',
|
||||||
'Template for jail'=>'Шаблоны окружений',
|
'Template for jail'=>'Шаблоны окружений',
|
||||||
'Helpers and wizard for containers'=>'Хелперы и шаблоны для контейнеров',
|
'Helpers and wizard for containers'=>'Хелперы и шаблоны для контейнеров',
|
||||||
'Helpers of jails'=>'Хелперы контейнера',
|
'Helpers of jails'=>'Хелперы контейнера',
|
||||||
'Virtual machine control panel'=>'Панель управления виртуальными машинами',
|
'Virtual machine control panel'=>'Панель управления виртуальными машинами',
|
||||||
'Bhyve VMs'=>'Виртуальные машины',
|
'Bhyve VMs'=>'Виртуальные машины',
|
||||||
'Virtual machine control panel'=>'Панель управления нодами',
|
'Virtual machine control panel'=>'Панель управления нодами',
|
||||||
'Nodes'=>'Сервера',
|
'Nodes'=>'Сервера',
|
||||||
'Nodes control panel'=>'Панель управления нодами',
|
'Nodes control panel'=>'Панель управления нодами',
|
||||||
'VM Packages'=>'Шаблоны виртуальных машин',
|
'VM Packages'=>'Шаблоны виртуальных машин',
|
||||||
'Manage for virtual machine packages'=>'Управление профилями виртуальных машин',
|
'Manage for virtual machine packages'=>'Управление профилями виртуальных машин',
|
||||||
'K8S clusters'=>'Кластеры K8S',
|
'K8S clusters'=>'Кластеры K8S',
|
||||||
'Manage K8S clusters'=>'Управление K8S кластерами',
|
'Manage K8S clusters'=>'Управление K8S кластерами',
|
||||||
'Virtual Private Network'=>'Виртуальные сети',
|
'Virtual Private Network'=>'Виртуальные сети',
|
||||||
'Manage for virtual private networks'=>'Панель управления подсетями',
|
'Manage for virtual private networks'=>'Панель управления подсетями',
|
||||||
'Authkeys'=>'Ключи авторизации',
|
'Authkeys'=>'Ключи авторизации',
|
||||||
'Manage for SSH auth key'=>'Панель управления авторизационными ключами',
|
'Manage for SSH auth key'=>'Панель управления авторизационными ключами',
|
||||||
'Storage Media'=>'Виртуальные носители',
|
'Storage Media'=>'Виртуальные носители',
|
||||||
'Virtual Media Manager'=>'Менеджер виртуальных носителей',
|
'Virtual Media Manager'=>'Менеджер виртуальных носителей',
|
||||||
'Imported images'=>'Импортированные образы',
|
'Imported images'=>'Импортированные образы',
|
||||||
'Repository'=>'Репозиторий',
|
'Repository'=>'Репозиторий',
|
||||||
'Remote repository'=>'Публичный репозиторий',
|
'Remote repository'=>'Публичный репозиторий',
|
||||||
'FreeBSD Bases'=>'Базы FreeBSD',
|
'FreeBSD Bases'=>'Базы FreeBSD',
|
||||||
'FreeBSD bases manager'=>'Управление базами FreeBSD',
|
'FreeBSD bases manager'=>'Управление базами FreeBSD',
|
||||||
'FreeBSD Sources'=>'FreeBSD исходники',
|
'FreeBSD Sources'=>'FreeBSD исходники',
|
||||||
'FreeBSD sources manager'=>'Управление исходными кодами FreeBSD',
|
'FreeBSD sources manager'=>'Управление исходными кодами FreeBSD',
|
||||||
'Jail Marketplace'=>'Преднастроенные контейнеры',
|
'Jail Marketplace'=>'Преднастроенные контейнеры',
|
||||||
'Public remote containers marketplace'=>'Репозиторий преднастроенных контейнеров',
|
'Public remote containers marketplace'=>'Репозиторий преднастроенных контейнеров',
|
||||||
'Bhyve Marketplace'=>'Преднастроенные виртуальные машины',
|
'Bhyve Marketplace'=>'Преднастроенные виртуальные машины',
|
||||||
'Public remote virtual machine marketplace'=>'Репозиторий преднастроенных виртуальных машин',
|
'Public remote virtual machine marketplace'=>'Репозиторий преднастроенных виртуальных машин',
|
||||||
'TaskLog'=>'Логи задач',
|
'TaskLog'=>'Логи задач',
|
||||||
'System task log'=>'Просмотр журнала системных задач',
|
'System task log'=>'Просмотр журнала системных задач',
|
||||||
|
|
||||||
'Not implemented yet'=>'Раздел в разработке',
|
'Not implemented yet'=>'Раздел в разработке',
|
||||||
|
|
||||||
'Description'=>'Описание',
|
'Description'=>'Описание',
|
||||||
|
|
||||||
'Not Launched'=>'не запущено',
|
'Not Launched'=>'не запущено',
|
||||||
'Starting'=>'запускается',
|
'Starting'=>'запускается',
|
||||||
'Launched'=>'запущено',
|
'Launched'=>'запущено',
|
||||||
'Creating'=>'создаётся',
|
'Creating'=>'создаётся',
|
||||||
'Created'=>'создано',
|
'Created'=>'создано',
|
||||||
'Stopping'=>'останавливается',
|
'Stopping'=>'останавливается',
|
||||||
'Stopped'=>'остановлено',
|
'Stopped'=>'остановлено',
|
||||||
'Removing'=>'удаляется',
|
'Removing'=>'удаляется',
|
||||||
'Exporting'=>'экспортируется',
|
'Exporting'=>'экспортируется',
|
||||||
'Cloning'=>'клонируется',
|
'Cloning'=>'клонируется',
|
||||||
'Cloned'=>'клонировано',
|
'Cloned'=>'клонировано',
|
||||||
'Restarting'=>'перезапускаем',
|
'Restarting'=>'перезапускаем',
|
||||||
'Restarted'=>'перезапущено',
|
'Restarted'=>'перезапущено',
|
||||||
'Maintenance'=>'на обслуживании',
|
'Maintenance'=>'на обслуживании',
|
||||||
|
|
||||||
'Add helper'=>'добавить хелпер',
|
'Add helper'=>'добавить хелпер',
|
||||||
'Create jail'=>'создание контейнера',
|
'Create jail'=>'создание контейнера',
|
||||||
'Edit jail'=>'редактирование параметров контейнера',
|
'Edit jail'=>'редактирование параметров контейнера',
|
||||||
'Jail Settings'=>'настройки контейнера',
|
'Jail Settings'=>'настройки контейнера',
|
||||||
'Jail name'=>'имя контейнера',
|
'Jail name'=>'имя контейнера',
|
||||||
'Hostname'=>'имя хоста',
|
'Hostname'=>'имя хоста',
|
||||||
'available on the jail is not running'=>'доступно при остановленном контейнере',
|
'available on the jail is not running'=>'доступно при остановленном контейнере',
|
||||||
'IP address'=>'IP-адрес',
|
'IP address'=>'IP-адрес',
|
||||||
'Root password'=>'пароль пользователя ROOT (опционально)',
|
'Root password'=>'пароль пользователя ROOT (опционально)',
|
||||||
'Root password (again)'=>'пароль пользователя ROOT (повтор)',
|
'Root password (again)'=>'пароль пользователя ROOT (повтор)',
|
||||||
'Description'=>'описание',
|
'Description'=>'описание',
|
||||||
'Net Interface'=>'привязать к сетевому интерфейсу',
|
'Net Interface'=>'привязать к сетевому интерфейсу',
|
||||||
'Parameters'=>'параметры',
|
'Parameters'=>'параметры',
|
||||||
'Autostart'=>'автозапуск',
|
'Autostart'=>'автозапуск',
|
||||||
'Autostart jail at system startup'=>'автозапуск контейнера при загрузке системы',
|
'Autostart jail at system startup'=>'автозапуск контейнера при загрузке системы',
|
||||||
'Base writable'=>'R/W базовой системы',
|
'Base writable'=>'R/W базовой системы',
|
||||||
'Virtual network stack (VIMAGE)'=>'виртуальный сетевой стек (VIMAGE)',
|
'Virtual network stack (VIMAGE)'=>'виртуальный сетевой стек (VIMAGE)',
|
||||||
'Mount'=>'примонтировать',
|
'Mount'=>'примонтировать',
|
||||||
'Enabled services'=>'автозапуск сервисов',
|
'Enabled services'=>'автозапуск сервисов',
|
||||||
'Create'=>'Создать',
|
'Create'=>'Создать',
|
||||||
'Cancel'=>'Отменить',
|
'Cancel'=>'Отменить',
|
||||||
'Save'=>'Сохранить',
|
'Save'=>'Сохранить',
|
||||||
'Download'=>'Скачать',
|
'Download'=>'Скачать',
|
||||||
|
|
||||||
'Delete'=>'Удалить',
|
'Delete'=>'Удалить',
|
||||||
'Protected jail'=>'запрет на удаление',
|
'Protected jail'=>'запрет на удаление',
|
||||||
'Protected bhyve'=>'запрет на удаление',
|
'Protected bhyve'=>'запрет на удаление',
|
||||||
'Open VNC'=>'консоль управления',
|
'Open VNC'=>'консоль управления',
|
||||||
'Restart jail'=>'перезапустить контейнер',
|
'Restart jail'=>'перезапустить контейнер',
|
||||||
'Restart bhyve'=>'перезапустить виртуальную машину',
|
'Restart bhyve'=>'перезапустить виртуальную машину',
|
||||||
|
|
||||||
|
|
||||||
'Helpers list for jail'=>'список хелперов в контейнере',
|
'Helpers list for jail'=>'список хелперов в контейнере',
|
||||||
|
|
||||||
//err_messages
|
//err_messages
|
||||||
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Не может быть пустым. Имя должно начинаться и содержать латинские буквы / a-z / и не должно иметь спец. символы: -,.=% и тд.',
|
'Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%'=>'Не может быть пустым. Имя должно начинаться и содержать латинские буквы / a-z / и не должно иметь спец. символы: -,.=% и тд.',
|
||||||
'This field can not be empty'=>'Это поле не может быть пустым',
|
'This field can not be empty'=>'Это поле не может быть пустым',
|
||||||
'Write correct ip address, e.g: 10.0.0.2'=>'Укажите корректный IP адрес, например: 10.0.0.2',
|
'Write correct ip address, e.g: 10.0.0.2'=>'Укажите корректный IP адрес, например: 10.0.0.2',
|
||||||
'Password can not be less than 3 symbols'=>'Пароль не должен быть меньше трех символов',
|
'Password can not be less than 3 symbols'=>'Пароль не должен быть меньше трех символов',
|
||||||
'Please retype password correctly'=>'Повторите пароль правильно',
|
'Please retype password correctly'=>'Повторите пароль правильно',
|
||||||
'will be created new jail with helper inside'=>'будет создан новый контейнер с настроенным модулем',
|
'will be created new jail with helper inside'=>'будет создан новый контейнер с настроенным модулем',
|
||||||
|
|
||||||
'edit'=>'редактировать',
|
'edit'=>'редактировать',
|
||||||
'clone'=>'клонировать',
|
'clone'=>'клонировать',
|
||||||
'export'=>'экспортировать',
|
'export'=>'экспортировать',
|
||||||
'helpers'=>'хелперы',
|
'helpers'=>'хелперы',
|
||||||
'rename'=>'переименовать',
|
'rename'=>'переименовать',
|
||||||
|
|
||||||
'default is'=>'по-умолчанию',
|
'default is'=>'по-умолчанию',
|
||||||
|
|
||||||
'Create Virtual Machine'=>'Создание виртуальной машины',
|
'Create Virtual Machine'=>'Создание виртуальной машины',
|
||||||
'Create Virtual Machine from Library'=>'Создание из библиотеки',
|
'Create Virtual Machine from Library'=>'Создание из библиотеки',
|
||||||
'Virtual Machine Settings'=>'Настройки',
|
'Virtual Machine Settings'=>'Настройки',
|
||||||
'Virtual Machine name'=>'Имя виртуальной машины',
|
'Virtual Machine name'=>'Имя виртуальной машины',
|
||||||
'VM OS profile'=>'Профиль операционной системы',
|
'VM OS profile'=>'Профиль операционной системы',
|
||||||
'Authkey'=>'SSH Ключ',
|
'Authkey'=>'SSH Ключ',
|
||||||
'VM CPUs'=>'Количество виртуальных ядер',
|
'VM CPUs'=>'Количество виртуальных ядер',
|
||||||
'VM RAM'=>'Объём памяти',
|
'VM RAM'=>'Объём памяти',
|
||||||
'VM Image size'=>'Объём виртуального диска',
|
'VM Image size'=>'Объём виртуального диска',
|
||||||
'VNC PORT'=>'Порт для подключения VNC клиента (0 - авто)',
|
'VNC PORT'=>'Порт для подключения VNC клиента (0 - авто)',
|
||||||
'VM Password'=>'Пароль администратора',
|
'VM Password'=>'Пароль администратора',
|
||||||
|
|
||||||
'Create Authkey'=>'Создание ключа авторизации',
|
'Create Authkey'=>'Создание ключа авторизации',
|
||||||
'Authkey name'=>'Имя ключа',
|
'Authkey name'=>'Имя ключа',
|
||||||
'Authkey'=>'SSH ключ',
|
'Authkey'=>'SSH ключ',
|
||||||
|
|
||||||
'Helpers add'=>'Добавление хелперов',
|
'Helpers add'=>'Добавление хелперов',
|
||||||
'Select helpers for install'=>'Выберите хелперы для установки',
|
'Select helpers for install'=>'Выберите хелперы для установки',
|
||||||
|
|
||||||
'Open'=>'Открыть',
|
'Open'=>'Открыть',
|
||||||
'Close'=>'Закрыть',
|
'Close'=>'Закрыть',
|
||||||
'Get'=>'Получить',
|
'Get'=>'Получить',
|
||||||
'Update'=>'Обновить',
|
'Update'=>'Обновить',
|
||||||
'Add'=>'Добавить',
|
'Add'=>'Добавить',
|
||||||
|
|
||||||
'Updating'=>'Обновляется',
|
'Updating'=>'Обновляется',
|
||||||
'Version'=>'Версия',
|
'Version'=>'Версия',
|
||||||
'Version number'=>'Номер версии (например: 12.2, 13)',
|
'Version number'=>'Номер версии (например: 12.2, 13)',
|
||||||
|
|
||||||
'Source'=>'Источник',
|
'Source'=>'Источник',
|
||||||
|
|
||||||
'@clone_warning@'=>'<strong>ВНИМАНИЕ!</strong> Клонирование запущенного контейнера может привести к неконсистентным данным клона (например окружение с активной базой данных). Остановите контейнер для безопасного клонирования или продолжайте, если уверены в безопасности операции!',
|
'@clone_warning@'=>'<strong>ВНИМАНИЕ!</strong> Клонирование запущенного контейнера может привести к неконсистентным данным клона (например окружение с активной базой данных). Остановите контейнер для безопасного клонирования или продолжайте, если уверены в безопасности операции!',
|
||||||
'@rename_warning@'=>'<strong>ВНИМАНИЕ!</strong> Контейнер запущен. Переименование работает только при выключенном окружении, поэтому данный контейнер предварительно будет остановлен!',
|
'@rename_warning@'=>'<strong>ВНИМАНИЕ!</strong> Контейнер запущен. Переименование работает только при выключенном окружении, поэтому данный контейнер предварительно будет остановлен!',
|
||||||
|
|
||||||
'No installed helpers'=>'Нет установленных хелперов',
|
|
||||||
|
|
||||||
'edit_title'=>'Редактировать',
|
|
||||||
'delete_title'=>'Удалить',
|
|
||||||
|
|
||||||
'Users'=>'Пользователи',
|
|
||||||
'CBSD Users'=>'Учётные записи пользователей CBSD',
|
|
||||||
|
|
||||||
|
|
||||||
'jail'=>'контейнер',
|
|
||||||
'bhyve'=>'bhyve',
|
|
||||||
|
|
||||||
'Since imported name already exist, we are change it'=>'Поскольку оригинальное имя уже существует, мы поменяли его <br />на свободное',
|
|
||||||
|
|
||||||
'Please, wait for initialize Virtual Machine'=>'Пожалуйста, подождите пока инициализируется виртуальная машина',
|
|
||||||
'You can click here, or wait'=>'Вы можете кликнуть сюда или подождать',
|
|
||||||
'some time'=>'некоторое время',
|
|
||||||
|
|
||||||
'CPU usage'=>'Нагрузка процессора',
|
|
||||||
'Memory usage'=>'Использование памяти',
|
|
||||||
|
|
||||||
|
|
||||||
'THEMES'=>'ТЕМЫ',
|
|
||||||
'VERSION'=>'ВЕРСИЯ',
|
|
||||||
|
|
||||||
'host_hostname'=>'Имя хоста (FQDN)',
|
|
||||||
'ip4_addr'=>'IP-адрес',
|
|
||||||
'allow_mount'=>'разрешить привилегированным пользователям монтировать другие файловые системы',
|
|
||||||
'allow_nullfs'=>'разрешить привилегированным пользователям использовать NULLFS',
|
|
||||||
'allow_fdescfs'=>'разрешить использование fdescfs',
|
|
||||||
'interface'=>'автоматическая привязка к сетевому интерфейсу',
|
|
||||||
'baserw'=>'чтение/запись базовой системы',
|
|
||||||
'mount_ports'=>'монтирование /usr/ports в режиме «только чтение»',
|
|
||||||
'astart'=>'автоматический запуск клетки при старте системы',
|
|
||||||
'vnet'=>'включить виртуальный сетевой стек (VNET/VIMAGE)',
|
|
||||||
'mount_fdescfs'=>'подключить файловую систему fdescfs',
|
|
||||||
'allow_tmpfs'=>'разрешить привилегированным пользователям использовать TMPFS',
|
|
||||||
'allow_zfs'=>'разрешить привилегированным пользователям использовать ZFS',
|
|
||||||
'protected'=>'запрет редактирования или удаления окружения',
|
|
||||||
'allow_reserved_ports'=>'разрешить root пользователю открывать порты на прослушивание ниже 1024',
|
|
||||||
'allow_raw_sockets'=>'разрешить использование raw сокетов (ping, traceroute)',
|
|
||||||
'allow_fusefs'=>'разрешить привилегированным пользователям использовать FUSE файловые системы',
|
|
||||||
'allow_read_msgbuf'=>'разрешить непривилегированным пользователям читать буфер сообщений ядра',
|
|
||||||
'allow_vmm'=>'разрешить доступ к vmm(4) для создания виртуальных машин внутри контейнера',
|
|
||||||
'allow_unprivileged_proc_debug'=>'непривилегированные процессы могут использовать средства отладки (dtrace,truss,strace)',
|
|
||||||
|
|
||||||
'yes'=>'да',
|
|
||||||
'no'=>'нет',
|
|
||||||
'on'=>'вкл',
|
|
||||||
'off'=>'выкл',
|
|
||||||
'auto'=>'авто',
|
|
||||||
|
|
||||||
'jailed'=>'может запускать bhyve',
|
'No installed helpers'=>'Нет установленных хелперов',
|
||||||
|
|
||||||
|
'edit_title'=>'Редактировать',
|
||||||
|
'delete_title'=>'Удалить',
|
||||||
|
|
||||||
|
'Users'=>'Пользователи',
|
||||||
|
'CBSD Users'=>'Учётные записи пользователей CBSD',
|
||||||
|
|
||||||
|
|
||||||
|
'jail'=>'контейнер',
|
||||||
|
'bhyve'=>'bhyve',
|
||||||
|
|
||||||
|
'Since imported name already exist, we are change it'=>'Поскольку оригинальное имя уже существует, мы поменяли его <br />на свободное',
|
||||||
|
|
||||||
|
'Please, wait for initialize Virtual Machine'=>'Пожалуйста, подождите пока инициализируется виртуальная машина',
|
||||||
|
'You can click here, or wait'=>'Вы можете кликнуть сюда или подождать',
|
||||||
|
'some time'=>'некоторое время',
|
||||||
|
|
||||||
|
'CPU usage'=>'Нагрузка процессора',
|
||||||
|
'Memory usage'=>'Использование памяти',
|
||||||
|
|
||||||
|
|
||||||
|
'THEMES'=>'ТЕМЫ',
|
||||||
|
'VERSION'=>'ВЕРСИЯ',
|
||||||
|
|
||||||
|
'host_hostname'=>'Имя хоста (FQDN)',
|
||||||
|
'ip4_addr'=>'IP-адрес',
|
||||||
|
'allow_mount'=>'разрешить привилегированным пользователям монтировать другие файловые системы',
|
||||||
|
'allow_nullfs'=>'разрешить привилегированным пользователям использовать NULLFS',
|
||||||
|
'allow_fdescfs'=>'разрешить использование fdescfs',
|
||||||
|
'interface'=>'автоматическая привязка к сетевому интерфейсу',
|
||||||
|
'baserw'=>'чтение/запись базовой системы',
|
||||||
|
'mount_ports'=>'монтирование /usr/ports в режиме «только чтение»',
|
||||||
|
'astart'=>'автоматический запуск клетки при старте системы',
|
||||||
|
'vnet'=>'включить виртуальный сетевой стек (VNET/VIMAGE)',
|
||||||
|
'mount_fdescfs'=>'подключить файловую систему fdescfs',
|
||||||
|
'allow_tmpfs'=>'разрешить привилегированным пользователям использовать TMPFS',
|
||||||
|
'allow_zfs'=>'разрешить привилегированным пользователям использовать ZFS',
|
||||||
|
'protected'=>'запрет редактирования или удаления окружения',
|
||||||
|
'allow_reserved_ports'=>'разрешить root пользователю открывать порты на прослушивание ниже 1024',
|
||||||
|
'allow_raw_sockets'=>'разрешить использование raw сокетов (ping, traceroute)',
|
||||||
|
'allow_fusefs'=>'разрешить привилегированным пользователям использовать FUSE файловые системы',
|
||||||
|
'allow_read_msgbuf'=>'разрешить непривилегированным пользователям читать буфер сообщений ядра',
|
||||||
|
'allow_vmm'=>'разрешить доступ к vmm(4) для создания виртуальных машин внутри контейнера',
|
||||||
|
'allow_unprivileged_proc_debug'=>'непривилегированные процессы могут использовать средства отладки (dtrace,truss,strace)',
|
||||||
|
|
||||||
|
'yes'=>'да',
|
||||||
|
'no'=>'нет',
|
||||||
|
'on'=>'вкл',
|
||||||
|
'off'=>'выкл',
|
||||||
|
'auto'=>'авто',
|
||||||
|
|
||||||
|
'jailed'=>'может запускать bhyve',
|
||||||
'cd_boot_firmware'=>'прошивка для загрузки с ISO',
|
'cd_boot_firmware'=>'прошивка для загрузки с ISO',
|
||||||
'debug_engine'=>'запуск через дебаггер',
|
'debug_engine'=>'запуск через дебаггер',
|
||||||
'vm_cpu_topology'=>'топология CPU',
|
'vm_cpu_topology'=>'топология CPU',
|
||||||
@@ -219,7 +219,7 @@ $lang=array(
|
|||||||
'bhyve_vnc_tcp_bind'=>'адрес прослушивания VNC',
|
'bhyve_vnc_tcp_bind'=>'адрес прослушивания VNC',
|
||||||
'cd_vnc_wait'=>'запуск с CD ждет подключения VNC',
|
'cd_vnc_wait'=>'запуск с CD ждет подключения VNC',
|
||||||
'vm_hostbridge'=>'тип северного моста (hostbridge)',
|
'vm_hostbridge'=>'тип северного моста (hostbridge)',
|
||||||
'vm_console'=>'тип консоли',
|
'vm_console'=>'тип консоли',
|
||||||
|
|
||||||
'DONATE'=>'ПОДДЕРЖАТЬ ПРОЕКТ',
|
'DONATE'=>'ПОДДЕРЖАТЬ ПРОЕКТ',
|
||||||
);
|
);
|
||||||
40
public/novnc/node_modules/@types/component-emitter/README.md
generated
vendored
40
public/novnc/node_modules/@types/component-emitter/README.md
generated
vendored
@@ -1,13 +1,13 @@
|
|||||||
# Installation
|
# Installation
|
||||||
> `npm install --save @types/component-emitter`
|
> `npm install --save @types/component-emitter`
|
||||||
|
|
||||||
# Summary
|
# Summary
|
||||||
This package contains type definitions for component-emitter (https://www.npmjs.com/package/component-emitter).
|
This package contains type definitions for component-emitter (https://www.npmjs.com/package/component-emitter).
|
||||||
|
|
||||||
# Details
|
# Details
|
||||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/component-emitter.
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/component-emitter.
|
||||||
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/component-emitter/index.d.ts)
|
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/component-emitter/index.d.ts)
|
||||||
````ts
|
````ts
|
||||||
// Type definitions for component-emitter v1.2.1
|
// Type definitions for component-emitter v1.2.1
|
||||||
// Project: https://www.npmjs.com/package/component-emitter
|
// Project: https://www.npmjs.com/package/component-emitter
|
||||||
// Definitions by: Peter Snider <https://github.com/psnider>
|
// Definitions by: Peter Snider <https://github.com/psnider>
|
||||||
@@ -33,13 +33,13 @@ declare const Emitter: {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export = Emitter;
|
export = Emitter;
|
||||||
|
|
||||||
````
|
````
|
||||||
|
|
||||||
### Additional Details
|
### Additional Details
|
||||||
* Last updated: Thu, 14 Oct 2021 19:01:31 GMT
|
* Last updated: Thu, 14 Oct 2021 19:01:31 GMT
|
||||||
* Dependencies: none
|
* Dependencies: none
|
||||||
* Global values: none
|
* Global values: none
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
These definitions were written by [Peter Snider](https://github.com/psnider).
|
These definitions were written by [Peter Snider](https://github.com/psnider).
|
||||||
|
|||||||
32
public/novnc/node_modules/@types/cookie/README.md
generated
vendored
32
public/novnc/node_modules/@types/cookie/README.md
generated
vendored
@@ -1,16 +1,16 @@
|
|||||||
# Installation
|
# Installation
|
||||||
> `npm install --save @types/cookie`
|
> `npm install --save @types/cookie`
|
||||||
|
|
||||||
# Summary
|
# Summary
|
||||||
This package contains type definitions for cookie (https://github.com/jshttp/cookie).
|
This package contains type definitions for cookie (https://github.com/jshttp/cookie).
|
||||||
|
|
||||||
# Details
|
# Details
|
||||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cookie.
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cookie.
|
||||||
|
|
||||||
### Additional Details
|
### Additional Details
|
||||||
* Last updated: Tue, 06 Jul 2021 20:32:30 GMT
|
* Last updated: Tue, 06 Jul 2021 20:32:30 GMT
|
||||||
* Dependencies: none
|
* Dependencies: none
|
||||||
* Global values: none
|
* Global values: none
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
These definitions were written by [Pine Mizune](https://github.com/pine), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).
|
These definitions were written by [Pine Mizune](https://github.com/pine), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).
|
||||||
|
|||||||
40
public/novnc/node_modules/@types/cors/README.md
generated
vendored
40
public/novnc/node_modules/@types/cors/README.md
generated
vendored
@@ -1,13 +1,13 @@
|
|||||||
# Installation
|
# Installation
|
||||||
> `npm install --save @types/cors`
|
> `npm install --save @types/cors`
|
||||||
|
|
||||||
# Summary
|
# Summary
|
||||||
This package contains type definitions for cors (https://github.com/expressjs/cors/).
|
This package contains type definitions for cors (https://github.com/expressjs/cors/).
|
||||||
|
|
||||||
# Details
|
# Details
|
||||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors.
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors.
|
||||||
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors/index.d.ts)
|
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors/index.d.ts)
|
||||||
````ts
|
````ts
|
||||||
// Type definitions for cors 2.8
|
// Type definitions for cors 2.8
|
||||||
// Project: https://github.com/expressjs/cors/
|
// Project: https://github.com/expressjs/cors/
|
||||||
// Definitions by: Alan Plum <https://github.com/pluma>
|
// Definitions by: Alan Plum <https://github.com/pluma>
|
||||||
@@ -66,13 +66,13 @@ declare function e<T extends e.CorsRequest = e.CorsRequest>(
|
|||||||
next: (err?: any) => any,
|
next: (err?: any) => any,
|
||||||
) => void;
|
) => void;
|
||||||
export = e;
|
export = e;
|
||||||
|
|
||||||
````
|
````
|
||||||
|
|
||||||
### Additional Details
|
### Additional Details
|
||||||
* Last updated: Fri, 09 Jul 2021 07:31:29 GMT
|
* Last updated: Fri, 09 Jul 2021 07:31:29 GMT
|
||||||
* Dependencies: none
|
* Dependencies: none
|
||||||
* Global values: none
|
* Global values: none
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
These definitions were written by [Alan Plum](https://github.com/pluma), and [Gaurav Sharma](https://github.com/gtpan77).
|
These definitions were written by [Alan Plum](https://github.com/pluma), and [Gaurav Sharma](https://github.com/gtpan77).
|
||||||
|
|||||||
32
public/novnc/node_modules/@types/node/README.md
generated
vendored
32
public/novnc/node_modules/@types/node/README.md
generated
vendored
@@ -1,16 +1,16 @@
|
|||||||
# Installation
|
# Installation
|
||||||
> `npm install --save @types/node`
|
> `npm install --save @types/node`
|
||||||
|
|
||||||
# Summary
|
# Summary
|
||||||
This package contains type definitions for Node.js (https://nodejs.org/).
|
This package contains type definitions for Node.js (https://nodejs.org/).
|
||||||
|
|
||||||
# Details
|
# Details
|
||||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
|
||||||
|
|
||||||
### Additional Details
|
### Additional Details
|
||||||
* Last updated: Sat, 30 Jul 2022 21:02:20 GMT
|
* Last updated: Sat, 30 Jul 2022 21:02:20 GMT
|
||||||
* Dependencies: none
|
* Dependencies: none
|
||||||
* Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone`
|
* Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone`
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), and [Matteo Collina](https://github.com/mcollina).
|
These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), and [Matteo Collina](https://github.com/mcollina).
|
||||||
|
|||||||
8058
public/novnc/node_modules/JSONStream/test/fixtures/all_npm.json
generated
vendored
8058
public/novnc/node_modules/JSONStream/test/fixtures/all_npm.json
generated
vendored
File diff suppressed because it is too large
Load Diff
2
public/novnc/node_modules/browserify/test/bom/hello.js
generated
vendored
2
public/novnc/node_modules/browserify/test/bom/hello.js
generated
vendored
@@ -1 +1 @@
|
|||||||
console.log('hello')
|
console.log('hello')
|
||||||
|
|||||||
34
public/novnc/node_modules/browserify/test/ignore_transform_key.js
generated
vendored
34
public/novnc/node_modules/browserify/test/ignore_transform_key.js
generated
vendored
@@ -1,17 +1,17 @@
|
|||||||
var browserify = require('../');
|
var browserify = require('../');
|
||||||
var test = require('tap').test;
|
var test = require('tap').test;
|
||||||
var vm = require('vm');
|
var vm = require('vm');
|
||||||
|
|
||||||
test('ignore transform', function(t) {
|
test('ignore transform', function(t) {
|
||||||
t.plan(1);
|
t.plan(1);
|
||||||
|
|
||||||
var b = browserify({
|
var b = browserify({
|
||||||
transformKey: false
|
transformKey: false
|
||||||
});
|
});
|
||||||
b.add(__dirname + '/ignore_transform_key/main.js');
|
b.add(__dirname + '/ignore_transform_key/main.js');
|
||||||
|
|
||||||
b.bundle(function(err, src) {
|
b.bundle(function(err, src) {
|
||||||
if (err) t.fail(err);
|
if (err) t.fail(err);
|
||||||
vm.runInNewContext(src, {t: t});
|
vm.runInNewContext(src, {t: t});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
212
public/novnc/node_modules/color-name/.npmignore
generated
vendored
212
public/novnc/node_modules/color-name/.npmignore
generated
vendored
@@ -1,107 +1,107 @@
|
|||||||
//this will affect all the git repos
|
//this will affect all the git repos
|
||||||
git config --global core.excludesfile ~/.gitignore
|
git config --global core.excludesfile ~/.gitignore
|
||||||
|
|
||||||
|
|
||||||
//update files since .ignore won't if already tracked
|
//update files since .ignore won't if already tracked
|
||||||
git rm --cached <file>
|
git rm --cached <file>
|
||||||
|
|
||||||
# Compiled source #
|
# Compiled source #
|
||||||
###################
|
###################
|
||||||
*.com
|
*.com
|
||||||
*.class
|
*.class
|
||||||
*.dll
|
*.dll
|
||||||
*.exe
|
*.exe
|
||||||
*.o
|
*.o
|
||||||
*.so
|
*.so
|
||||||
|
|
||||||
# Packages #
|
# Packages #
|
||||||
############
|
############
|
||||||
# it's better to unpack these files and commit the raw source
|
# it's better to unpack these files and commit the raw source
|
||||||
# git has its own built in compression methods
|
# git has its own built in compression methods
|
||||||
*.7z
|
*.7z
|
||||||
*.dmg
|
*.dmg
|
||||||
*.gz
|
*.gz
|
||||||
*.iso
|
*.iso
|
||||||
*.jar
|
*.jar
|
||||||
*.rar
|
*.rar
|
||||||
*.tar
|
*.tar
|
||||||
*.zip
|
*.zip
|
||||||
|
|
||||||
# Logs and databases #
|
# Logs and databases #
|
||||||
######################
|
######################
|
||||||
*.log
|
*.log
|
||||||
*.sql
|
*.sql
|
||||||
*.sqlite
|
*.sqlite
|
||||||
|
|
||||||
# OS generated files #
|
# OS generated files #
|
||||||
######################
|
######################
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.DS_Store?
|
.DS_Store?
|
||||||
._*
|
._*
|
||||||
.Spotlight-V100
|
.Spotlight-V100
|
||||||
.Trashes
|
.Trashes
|
||||||
# Icon?
|
# Icon?
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
.cache
|
.cache
|
||||||
.project
|
.project
|
||||||
.settings
|
.settings
|
||||||
.tmproj
|
.tmproj
|
||||||
*.esproj
|
*.esproj
|
||||||
nbproject
|
nbproject
|
||||||
|
|
||||||
# Numerous always-ignore extensions #
|
# Numerous always-ignore extensions #
|
||||||
#####################################
|
#####################################
|
||||||
*.diff
|
*.diff
|
||||||
*.err
|
*.err
|
||||||
*.orig
|
*.orig
|
||||||
*.rej
|
*.rej
|
||||||
*.swn
|
*.swn
|
||||||
*.swo
|
*.swo
|
||||||
*.swp
|
*.swp
|
||||||
*.vi
|
*.vi
|
||||||
*~
|
*~
|
||||||
*.sass-cache
|
*.sass-cache
|
||||||
*.grunt
|
*.grunt
|
||||||
*.tmp
|
*.tmp
|
||||||
|
|
||||||
# Dreamweaver added files #
|
# Dreamweaver added files #
|
||||||
###########################
|
###########################
|
||||||
_notes
|
_notes
|
||||||
dwsync.xml
|
dwsync.xml
|
||||||
|
|
||||||
# Komodo #
|
# Komodo #
|
||||||
###########################
|
###########################
|
||||||
*.komodoproject
|
*.komodoproject
|
||||||
.komodotools
|
.komodotools
|
||||||
|
|
||||||
# Node #
|
# Node #
|
||||||
#####################
|
#####################
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
# Bower #
|
# Bower #
|
||||||
#####################
|
#####################
|
||||||
bower_components
|
bower_components
|
||||||
|
|
||||||
# Folders to ignore #
|
# Folders to ignore #
|
||||||
#####################
|
#####################
|
||||||
.hg
|
.hg
|
||||||
.svn
|
.svn
|
||||||
.CVS
|
.CVS
|
||||||
intermediate
|
intermediate
|
||||||
publish
|
publish
|
||||||
.idea
|
.idea
|
||||||
.graphics
|
.graphics
|
||||||
_test
|
_test
|
||||||
_archive
|
_archive
|
||||||
uploads
|
uploads
|
||||||
tmp
|
tmp
|
||||||
|
|
||||||
# Vim files to ignore #
|
# Vim files to ignore #
|
||||||
#######################
|
#######################
|
||||||
.VimballRecord
|
.VimballRecord
|
||||||
.netrwhist
|
.netrwhist
|
||||||
|
|
||||||
bundle.*
|
bundle.*
|
||||||
|
|
||||||
_demo
|
_demo
|
||||||
14
public/novnc/node_modules/color-name/LICENSE
generated
vendored
14
public/novnc/node_modules/color-name/LICENSE
generated
vendored
@@ -1,8 +1,8 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
Copyright (c) 2015 Dmitry Ivanov
|
Copyright (c) 2015 Dmitry Ivanov
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
22
public/novnc/node_modules/color-name/README.md
generated
vendored
22
public/novnc/node_modules/color-name/README.md
generated
vendored
@@ -1,11 +1,11 @@
|
|||||||
A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors.
|
A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors.
|
||||||
|
|
||||||
[](https://nodei.co/npm/color-name/)
|
[](https://nodei.co/npm/color-name/)
|
||||||
|
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var colors = require('color-name');
|
var colors = require('color-name');
|
||||||
colors.red //[255,0,0]
|
colors.red //[255,0,0]
|
||||||
```
|
```
|
||||||
|
|
||||||
<a href="LICENSE"><img src="https://upload.wikimedia.org/wikipedia/commons/0/0c/MIT_logo.svg" width="120"/></a>
|
<a href="LICENSE"><img src="https://upload.wikimedia.org/wikipedia/commons/0/0c/MIT_logo.svg" width="120"/></a>
|
||||||
|
|||||||
304
public/novnc/node_modules/color-name/index.js
generated
vendored
304
public/novnc/node_modules/color-name/index.js
generated
vendored
@@ -1,152 +1,152 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
"aliceblue": [240, 248, 255],
|
"aliceblue": [240, 248, 255],
|
||||||
"antiquewhite": [250, 235, 215],
|
"antiquewhite": [250, 235, 215],
|
||||||
"aqua": [0, 255, 255],
|
"aqua": [0, 255, 255],
|
||||||
"aquamarine": [127, 255, 212],
|
"aquamarine": [127, 255, 212],
|
||||||
"azure": [240, 255, 255],
|
"azure": [240, 255, 255],
|
||||||
"beige": [245, 245, 220],
|
"beige": [245, 245, 220],
|
||||||
"bisque": [255, 228, 196],
|
"bisque": [255, 228, 196],
|
||||||
"black": [0, 0, 0],
|
"black": [0, 0, 0],
|
||||||
"blanchedalmond": [255, 235, 205],
|
"blanchedalmond": [255, 235, 205],
|
||||||
"blue": [0, 0, 255],
|
"blue": [0, 0, 255],
|
||||||
"blueviolet": [138, 43, 226],
|
"blueviolet": [138, 43, 226],
|
||||||
"brown": [165, 42, 42],
|
"brown": [165, 42, 42],
|
||||||
"burlywood": [222, 184, 135],
|
"burlywood": [222, 184, 135],
|
||||||
"cadetblue": [95, 158, 160],
|
"cadetblue": [95, 158, 160],
|
||||||
"chartreuse": [127, 255, 0],
|
"chartreuse": [127, 255, 0],
|
||||||
"chocolate": [210, 105, 30],
|
"chocolate": [210, 105, 30],
|
||||||
"coral": [255, 127, 80],
|
"coral": [255, 127, 80],
|
||||||
"cornflowerblue": [100, 149, 237],
|
"cornflowerblue": [100, 149, 237],
|
||||||
"cornsilk": [255, 248, 220],
|
"cornsilk": [255, 248, 220],
|
||||||
"crimson": [220, 20, 60],
|
"crimson": [220, 20, 60],
|
||||||
"cyan": [0, 255, 255],
|
"cyan": [0, 255, 255],
|
||||||
"darkblue": [0, 0, 139],
|
"darkblue": [0, 0, 139],
|
||||||
"darkcyan": [0, 139, 139],
|
"darkcyan": [0, 139, 139],
|
||||||
"darkgoldenrod": [184, 134, 11],
|
"darkgoldenrod": [184, 134, 11],
|
||||||
"darkgray": [169, 169, 169],
|
"darkgray": [169, 169, 169],
|
||||||
"darkgreen": [0, 100, 0],
|
"darkgreen": [0, 100, 0],
|
||||||
"darkgrey": [169, 169, 169],
|
"darkgrey": [169, 169, 169],
|
||||||
"darkkhaki": [189, 183, 107],
|
"darkkhaki": [189, 183, 107],
|
||||||
"darkmagenta": [139, 0, 139],
|
"darkmagenta": [139, 0, 139],
|
||||||
"darkolivegreen": [85, 107, 47],
|
"darkolivegreen": [85, 107, 47],
|
||||||
"darkorange": [255, 140, 0],
|
"darkorange": [255, 140, 0],
|
||||||
"darkorchid": [153, 50, 204],
|
"darkorchid": [153, 50, 204],
|
||||||
"darkred": [139, 0, 0],
|
"darkred": [139, 0, 0],
|
||||||
"darksalmon": [233, 150, 122],
|
"darksalmon": [233, 150, 122],
|
||||||
"darkseagreen": [143, 188, 143],
|
"darkseagreen": [143, 188, 143],
|
||||||
"darkslateblue": [72, 61, 139],
|
"darkslateblue": [72, 61, 139],
|
||||||
"darkslategray": [47, 79, 79],
|
"darkslategray": [47, 79, 79],
|
||||||
"darkslategrey": [47, 79, 79],
|
"darkslategrey": [47, 79, 79],
|
||||||
"darkturquoise": [0, 206, 209],
|
"darkturquoise": [0, 206, 209],
|
||||||
"darkviolet": [148, 0, 211],
|
"darkviolet": [148, 0, 211],
|
||||||
"deeppink": [255, 20, 147],
|
"deeppink": [255, 20, 147],
|
||||||
"deepskyblue": [0, 191, 255],
|
"deepskyblue": [0, 191, 255],
|
||||||
"dimgray": [105, 105, 105],
|
"dimgray": [105, 105, 105],
|
||||||
"dimgrey": [105, 105, 105],
|
"dimgrey": [105, 105, 105],
|
||||||
"dodgerblue": [30, 144, 255],
|
"dodgerblue": [30, 144, 255],
|
||||||
"firebrick": [178, 34, 34],
|
"firebrick": [178, 34, 34],
|
||||||
"floralwhite": [255, 250, 240],
|
"floralwhite": [255, 250, 240],
|
||||||
"forestgreen": [34, 139, 34],
|
"forestgreen": [34, 139, 34],
|
||||||
"fuchsia": [255, 0, 255],
|
"fuchsia": [255, 0, 255],
|
||||||
"gainsboro": [220, 220, 220],
|
"gainsboro": [220, 220, 220],
|
||||||
"ghostwhite": [248, 248, 255],
|
"ghostwhite": [248, 248, 255],
|
||||||
"gold": [255, 215, 0],
|
"gold": [255, 215, 0],
|
||||||
"goldenrod": [218, 165, 32],
|
"goldenrod": [218, 165, 32],
|
||||||
"gray": [128, 128, 128],
|
"gray": [128, 128, 128],
|
||||||
"green": [0, 128, 0],
|
"green": [0, 128, 0],
|
||||||
"greenyellow": [173, 255, 47],
|
"greenyellow": [173, 255, 47],
|
||||||
"grey": [128, 128, 128],
|
"grey": [128, 128, 128],
|
||||||
"honeydew": [240, 255, 240],
|
"honeydew": [240, 255, 240],
|
||||||
"hotpink": [255, 105, 180],
|
"hotpink": [255, 105, 180],
|
||||||
"indianred": [205, 92, 92],
|
"indianred": [205, 92, 92],
|
||||||
"indigo": [75, 0, 130],
|
"indigo": [75, 0, 130],
|
||||||
"ivory": [255, 255, 240],
|
"ivory": [255, 255, 240],
|
||||||
"khaki": [240, 230, 140],
|
"khaki": [240, 230, 140],
|
||||||
"lavender": [230, 230, 250],
|
"lavender": [230, 230, 250],
|
||||||
"lavenderblush": [255, 240, 245],
|
"lavenderblush": [255, 240, 245],
|
||||||
"lawngreen": [124, 252, 0],
|
"lawngreen": [124, 252, 0],
|
||||||
"lemonchiffon": [255, 250, 205],
|
"lemonchiffon": [255, 250, 205],
|
||||||
"lightblue": [173, 216, 230],
|
"lightblue": [173, 216, 230],
|
||||||
"lightcoral": [240, 128, 128],
|
"lightcoral": [240, 128, 128],
|
||||||
"lightcyan": [224, 255, 255],
|
"lightcyan": [224, 255, 255],
|
||||||
"lightgoldenrodyellow": [250, 250, 210],
|
"lightgoldenrodyellow": [250, 250, 210],
|
||||||
"lightgray": [211, 211, 211],
|
"lightgray": [211, 211, 211],
|
||||||
"lightgreen": [144, 238, 144],
|
"lightgreen": [144, 238, 144],
|
||||||
"lightgrey": [211, 211, 211],
|
"lightgrey": [211, 211, 211],
|
||||||
"lightpink": [255, 182, 193],
|
"lightpink": [255, 182, 193],
|
||||||
"lightsalmon": [255, 160, 122],
|
"lightsalmon": [255, 160, 122],
|
||||||
"lightseagreen": [32, 178, 170],
|
"lightseagreen": [32, 178, 170],
|
||||||
"lightskyblue": [135, 206, 250],
|
"lightskyblue": [135, 206, 250],
|
||||||
"lightslategray": [119, 136, 153],
|
"lightslategray": [119, 136, 153],
|
||||||
"lightslategrey": [119, 136, 153],
|
"lightslategrey": [119, 136, 153],
|
||||||
"lightsteelblue": [176, 196, 222],
|
"lightsteelblue": [176, 196, 222],
|
||||||
"lightyellow": [255, 255, 224],
|
"lightyellow": [255, 255, 224],
|
||||||
"lime": [0, 255, 0],
|
"lime": [0, 255, 0],
|
||||||
"limegreen": [50, 205, 50],
|
"limegreen": [50, 205, 50],
|
||||||
"linen": [250, 240, 230],
|
"linen": [250, 240, 230],
|
||||||
"magenta": [255, 0, 255],
|
"magenta": [255, 0, 255],
|
||||||
"maroon": [128, 0, 0],
|
"maroon": [128, 0, 0],
|
||||||
"mediumaquamarine": [102, 205, 170],
|
"mediumaquamarine": [102, 205, 170],
|
||||||
"mediumblue": [0, 0, 205],
|
"mediumblue": [0, 0, 205],
|
||||||
"mediumorchid": [186, 85, 211],
|
"mediumorchid": [186, 85, 211],
|
||||||
"mediumpurple": [147, 112, 219],
|
"mediumpurple": [147, 112, 219],
|
||||||
"mediumseagreen": [60, 179, 113],
|
"mediumseagreen": [60, 179, 113],
|
||||||
"mediumslateblue": [123, 104, 238],
|
"mediumslateblue": [123, 104, 238],
|
||||||
"mediumspringgreen": [0, 250, 154],
|
"mediumspringgreen": [0, 250, 154],
|
||||||
"mediumturquoise": [72, 209, 204],
|
"mediumturquoise": [72, 209, 204],
|
||||||
"mediumvioletred": [199, 21, 133],
|
"mediumvioletred": [199, 21, 133],
|
||||||
"midnightblue": [25, 25, 112],
|
"midnightblue": [25, 25, 112],
|
||||||
"mintcream": [245, 255, 250],
|
"mintcream": [245, 255, 250],
|
||||||
"mistyrose": [255, 228, 225],
|
"mistyrose": [255, 228, 225],
|
||||||
"moccasin": [255, 228, 181],
|
"moccasin": [255, 228, 181],
|
||||||
"navajowhite": [255, 222, 173],
|
"navajowhite": [255, 222, 173],
|
||||||
"navy": [0, 0, 128],
|
"navy": [0, 0, 128],
|
||||||
"oldlace": [253, 245, 230],
|
"oldlace": [253, 245, 230],
|
||||||
"olive": [128, 128, 0],
|
"olive": [128, 128, 0],
|
||||||
"olivedrab": [107, 142, 35],
|
"olivedrab": [107, 142, 35],
|
||||||
"orange": [255, 165, 0],
|
"orange": [255, 165, 0],
|
||||||
"orangered": [255, 69, 0],
|
"orangered": [255, 69, 0],
|
||||||
"orchid": [218, 112, 214],
|
"orchid": [218, 112, 214],
|
||||||
"palegoldenrod": [238, 232, 170],
|
"palegoldenrod": [238, 232, 170],
|
||||||
"palegreen": [152, 251, 152],
|
"palegreen": [152, 251, 152],
|
||||||
"paleturquoise": [175, 238, 238],
|
"paleturquoise": [175, 238, 238],
|
||||||
"palevioletred": [219, 112, 147],
|
"palevioletred": [219, 112, 147],
|
||||||
"papayawhip": [255, 239, 213],
|
"papayawhip": [255, 239, 213],
|
||||||
"peachpuff": [255, 218, 185],
|
"peachpuff": [255, 218, 185],
|
||||||
"peru": [205, 133, 63],
|
"peru": [205, 133, 63],
|
||||||
"pink": [255, 192, 203],
|
"pink": [255, 192, 203],
|
||||||
"plum": [221, 160, 221],
|
"plum": [221, 160, 221],
|
||||||
"powderblue": [176, 224, 230],
|
"powderblue": [176, 224, 230],
|
||||||
"purple": [128, 0, 128],
|
"purple": [128, 0, 128],
|
||||||
"rebeccapurple": [102, 51, 153],
|
"rebeccapurple": [102, 51, 153],
|
||||||
"red": [255, 0, 0],
|
"red": [255, 0, 0],
|
||||||
"rosybrown": [188, 143, 143],
|
"rosybrown": [188, 143, 143],
|
||||||
"royalblue": [65, 105, 225],
|
"royalblue": [65, 105, 225],
|
||||||
"saddlebrown": [139, 69, 19],
|
"saddlebrown": [139, 69, 19],
|
||||||
"salmon": [250, 128, 114],
|
"salmon": [250, 128, 114],
|
||||||
"sandybrown": [244, 164, 96],
|
"sandybrown": [244, 164, 96],
|
||||||
"seagreen": [46, 139, 87],
|
"seagreen": [46, 139, 87],
|
||||||
"seashell": [255, 245, 238],
|
"seashell": [255, 245, 238],
|
||||||
"sienna": [160, 82, 45],
|
"sienna": [160, 82, 45],
|
||||||
"silver": [192, 192, 192],
|
"silver": [192, 192, 192],
|
||||||
"skyblue": [135, 206, 235],
|
"skyblue": [135, 206, 235],
|
||||||
"slateblue": [106, 90, 205],
|
"slateblue": [106, 90, 205],
|
||||||
"slategray": [112, 128, 144],
|
"slategray": [112, 128, 144],
|
||||||
"slategrey": [112, 128, 144],
|
"slategrey": [112, 128, 144],
|
||||||
"snow": [255, 250, 250],
|
"snow": [255, 250, 250],
|
||||||
"springgreen": [0, 255, 127],
|
"springgreen": [0, 255, 127],
|
||||||
"steelblue": [70, 130, 180],
|
"steelblue": [70, 130, 180],
|
||||||
"tan": [210, 180, 140],
|
"tan": [210, 180, 140],
|
||||||
"teal": [0, 128, 128],
|
"teal": [0, 128, 128],
|
||||||
"thistle": [216, 191, 216],
|
"thistle": [216, 191, 216],
|
||||||
"tomato": [255, 99, 71],
|
"tomato": [255, 99, 71],
|
||||||
"turquoise": [64, 224, 208],
|
"turquoise": [64, 224, 208],
|
||||||
"violet": [238, 130, 238],
|
"violet": [238, 130, 238],
|
||||||
"wheat": [245, 222, 179],
|
"wheat": [245, 222, 179],
|
||||||
"white": [255, 255, 255],
|
"white": [255, 255, 255],
|
||||||
"whitesmoke": [245, 245, 245],
|
"whitesmoke": [245, 245, 245],
|
||||||
"yellow": [255, 255, 0],
|
"yellow": [255, 255, 0],
|
||||||
"yellowgreen": [154, 205, 50]
|
"yellowgreen": [154, 205, 50]
|
||||||
};
|
};
|
||||||
|
|||||||
14
public/novnc/node_modules/color-name/test.js
generated
vendored
14
public/novnc/node_modules/color-name/test.js
generated
vendored
@@ -1,7 +1,7 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
var names = require('./');
|
var names = require('./');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
|
||||||
assert.deepEqual(names.red, [255,0,0]);
|
assert.deepEqual(names.red, [255,0,0]);
|
||||||
assert.deepEqual(names.aliceblue, [240,248,255]);
|
assert.deepEqual(names.aliceblue, [240,248,255]);
|
||||||
|
|||||||
150
public/novnc/node_modules/component-emitter/History.md
generated
vendored
150
public/novnc/node_modules/component-emitter/History.md
generated
vendored
@@ -1,75 +1,75 @@
|
|||||||
|
|
||||||
1.3.0 / 2018-04-15
|
1.3.0 / 2018-04-15
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* removed bower support
|
* removed bower support
|
||||||
* expose emitter on `exports`
|
* expose emitter on `exports`
|
||||||
* prevent de-optimization from using `arguments`
|
* prevent de-optimization from using `arguments`
|
||||||
|
|
||||||
1.2.1 / 2016-04-18
|
1.2.1 / 2016-04-18
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* enable client side use
|
* enable client side use
|
||||||
|
|
||||||
1.2.0 / 2014-02-12
|
1.2.0 / 2014-02-12
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* prefix events with `$` to support object prototype method names
|
* prefix events with `$` to support object prototype method names
|
||||||
|
|
||||||
1.1.3 / 2014-06-20
|
1.1.3 / 2014-06-20
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* republish for npm
|
* republish for npm
|
||||||
* add LICENSE file
|
* add LICENSE file
|
||||||
|
|
||||||
1.1.2 / 2014-02-10
|
1.1.2 / 2014-02-10
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* package: rename to "component-emitter"
|
* package: rename to "component-emitter"
|
||||||
* package: update "main" and "component" fields
|
* package: update "main" and "component" fields
|
||||||
* Add license to Readme (same format as the other components)
|
* Add license to Readme (same format as the other components)
|
||||||
* created .npmignore
|
* created .npmignore
|
||||||
* travis stuff
|
* travis stuff
|
||||||
|
|
||||||
1.1.1 / 2013-12-01
|
1.1.1 / 2013-12-01
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* fix .once adding .on to the listener
|
* fix .once adding .on to the listener
|
||||||
* docs: Emitter#off()
|
* docs: Emitter#off()
|
||||||
* component: add `.repo` prop
|
* component: add `.repo` prop
|
||||||
|
|
||||||
1.1.0 / 2013-10-20
|
1.1.0 / 2013-10-20
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* add `.addEventListener()` and `.removeEventListener()` aliases
|
* add `.addEventListener()` and `.removeEventListener()` aliases
|
||||||
|
|
||||||
1.0.1 / 2013-06-27
|
1.0.1 / 2013-06-27
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* add support for legacy ie
|
* add support for legacy ie
|
||||||
|
|
||||||
1.0.0 / 2013-02-26
|
1.0.0 / 2013-02-26
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* add `.off()` support for removing all listeners
|
* add `.off()` support for removing all listeners
|
||||||
|
|
||||||
0.0.6 / 2012-10-08
|
0.0.6 / 2012-10-08
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* add `this._callbacks` initialization to prevent funky gotcha
|
* add `this._callbacks` initialization to prevent funky gotcha
|
||||||
|
|
||||||
0.0.5 / 2012-09-07
|
0.0.5 / 2012-09-07
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* fix `Emitter.call(this)` usage
|
* fix `Emitter.call(this)` usage
|
||||||
|
|
||||||
0.0.3 / 2012-07-11
|
0.0.3 / 2012-07-11
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* add `.listeners()`
|
* add `.listeners()`
|
||||||
* rename `.has()` to `.hasListeners()`
|
* rename `.has()` to `.hasListeners()`
|
||||||
|
|
||||||
0.0.2 / 2012-06-28
|
0.0.2 / 2012-06-28
|
||||||
==================
|
==================
|
||||||
|
|
||||||
* fix `.off()` with `.once()`-registered callbacks
|
* fix `.off()` with `.once()`-registered callbacks
|
||||||
|
|||||||
48
public/novnc/node_modules/component-emitter/LICENSE
generated
vendored
48
public/novnc/node_modules/component-emitter/LICENSE
generated
vendored
@@ -1,24 +1,24 @@
|
|||||||
(The MIT License)
|
(The MIT License)
|
||||||
|
|
||||||
Copyright (c) 2014 Component contributors <dev@component.io>
|
Copyright (c) 2014 Component contributors <dev@component.io>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation
|
obtaining a copy of this software and associated documentation
|
||||||
files (the "Software"), to deal in the Software without
|
files (the "Software"), to deal in the Software without
|
||||||
restriction, including without limitation the rights to use,
|
restriction, including without limitation the rights to use,
|
||||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
copies of the Software, and to permit persons to whom the
|
copies of the Software, and to permit persons to whom the
|
||||||
Software is furnished to do so, subject to the following
|
Software is furnished to do so, subject to the following
|
||||||
conditions:
|
conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
The above copyright notice and this permission notice shall be
|
||||||
included in all copies or substantial portions of the Software.
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
OTHER DEALINGS IN THE SOFTWARE.
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|||||||
148
public/novnc/node_modules/component-emitter/Readme.md
generated
vendored
148
public/novnc/node_modules/component-emitter/Readme.md
generated
vendored
@@ -1,74 +1,74 @@
|
|||||||
# Emitter [](https://travis-ci.org/component/emitter)
|
# Emitter [](https://travis-ci.org/component/emitter)
|
||||||
|
|
||||||
Event emitter component.
|
Event emitter component.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
$ component install component/emitter
|
$ component install component/emitter
|
||||||
```
|
```
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
### Emitter(obj)
|
### Emitter(obj)
|
||||||
|
|
||||||
The `Emitter` may also be used as a mixin. For example
|
The `Emitter` may also be used as a mixin. For example
|
||||||
a "plain" object may become an emitter, or you may
|
a "plain" object may become an emitter, or you may
|
||||||
extend an existing prototype.
|
extend an existing prototype.
|
||||||
|
|
||||||
As an `Emitter` instance:
|
As an `Emitter` instance:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var Emitter = require('emitter');
|
var Emitter = require('emitter');
|
||||||
var emitter = new Emitter;
|
var emitter = new Emitter;
|
||||||
emitter.emit('something');
|
emitter.emit('something');
|
||||||
```
|
```
|
||||||
|
|
||||||
As a mixin:
|
As a mixin:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var Emitter = require('emitter');
|
var Emitter = require('emitter');
|
||||||
var user = { name: 'tobi' };
|
var user = { name: 'tobi' };
|
||||||
Emitter(user);
|
Emitter(user);
|
||||||
|
|
||||||
user.emit('im a user');
|
user.emit('im a user');
|
||||||
```
|
```
|
||||||
|
|
||||||
As a prototype mixin:
|
As a prototype mixin:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var Emitter = require('emitter');
|
var Emitter = require('emitter');
|
||||||
Emitter(User.prototype);
|
Emitter(User.prototype);
|
||||||
```
|
```
|
||||||
|
|
||||||
### Emitter#on(event, fn)
|
### Emitter#on(event, fn)
|
||||||
|
|
||||||
Register an `event` handler `fn`.
|
Register an `event` handler `fn`.
|
||||||
|
|
||||||
### Emitter#once(event, fn)
|
### Emitter#once(event, fn)
|
||||||
|
|
||||||
Register a single-shot `event` handler `fn`,
|
Register a single-shot `event` handler `fn`,
|
||||||
removed immediately after it is invoked the
|
removed immediately after it is invoked the
|
||||||
first time.
|
first time.
|
||||||
|
|
||||||
### Emitter#off(event, fn)
|
### Emitter#off(event, fn)
|
||||||
|
|
||||||
* Pass `event` and `fn` to remove a listener.
|
* Pass `event` and `fn` to remove a listener.
|
||||||
* Pass `event` to remove all listeners on that event.
|
* Pass `event` to remove all listeners on that event.
|
||||||
* Pass nothing to remove all listeners on all events.
|
* Pass nothing to remove all listeners on all events.
|
||||||
|
|
||||||
### Emitter#emit(event, ...)
|
### Emitter#emit(event, ...)
|
||||||
|
|
||||||
Emit an `event` with variable option args.
|
Emit an `event` with variable option args.
|
||||||
|
|
||||||
### Emitter#listeners(event)
|
### Emitter#listeners(event)
|
||||||
|
|
||||||
Return an array of callbacks, or an empty array.
|
Return an array of callbacks, or an empty array.
|
||||||
|
|
||||||
### Emitter#hasListeners(event)
|
### Emitter#hasListeners(event)
|
||||||
|
|
||||||
Check if this emitter has `event` handlers.
|
Check if this emitter has `event` handlers.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT
|
MIT
|
||||||
|
|||||||
350
public/novnc/node_modules/component-emitter/index.js
generated
vendored
350
public/novnc/node_modules/component-emitter/index.js
generated
vendored
@@ -1,175 +1,175 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Expose `Emitter`.
|
* Expose `Emitter`.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (typeof module !== 'undefined') {
|
if (typeof module !== 'undefined') {
|
||||||
module.exports = Emitter;
|
module.exports = Emitter;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a new `Emitter`.
|
* Initialize a new `Emitter`.
|
||||||
*
|
*
|
||||||
* @api public
|
* @api public
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function Emitter(obj) {
|
function Emitter(obj) {
|
||||||
if (obj) return mixin(obj);
|
if (obj) return mixin(obj);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mixin the emitter properties.
|
* Mixin the emitter properties.
|
||||||
*
|
*
|
||||||
* @param {Object} obj
|
* @param {Object} obj
|
||||||
* @return {Object}
|
* @return {Object}
|
||||||
* @api private
|
* @api private
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function mixin(obj) {
|
function mixin(obj) {
|
||||||
for (var key in Emitter.prototype) {
|
for (var key in Emitter.prototype) {
|
||||||
obj[key] = Emitter.prototype[key];
|
obj[key] = Emitter.prototype[key];
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listen on the given `event` with `fn`.
|
* Listen on the given `event` with `fn`.
|
||||||
*
|
*
|
||||||
* @param {String} event
|
* @param {String} event
|
||||||
* @param {Function} fn
|
* @param {Function} fn
|
||||||
* @return {Emitter}
|
* @return {Emitter}
|
||||||
* @api public
|
* @api public
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Emitter.prototype.on =
|
Emitter.prototype.on =
|
||||||
Emitter.prototype.addEventListener = function(event, fn){
|
Emitter.prototype.addEventListener = function(event, fn){
|
||||||
this._callbacks = this._callbacks || {};
|
this._callbacks = this._callbacks || {};
|
||||||
(this._callbacks['$' + event] = this._callbacks['$' + event] || [])
|
(this._callbacks['$' + event] = this._callbacks['$' + event] || [])
|
||||||
.push(fn);
|
.push(fn);
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds an `event` listener that will be invoked a single
|
* Adds an `event` listener that will be invoked a single
|
||||||
* time then automatically removed.
|
* time then automatically removed.
|
||||||
*
|
*
|
||||||
* @param {String} event
|
* @param {String} event
|
||||||
* @param {Function} fn
|
* @param {Function} fn
|
||||||
* @return {Emitter}
|
* @return {Emitter}
|
||||||
* @api public
|
* @api public
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Emitter.prototype.once = function(event, fn){
|
Emitter.prototype.once = function(event, fn){
|
||||||
function on() {
|
function on() {
|
||||||
this.off(event, on);
|
this.off(event, on);
|
||||||
fn.apply(this, arguments);
|
fn.apply(this, arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
on.fn = fn;
|
on.fn = fn;
|
||||||
this.on(event, on);
|
this.on(event, on);
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the given callback for `event` or all
|
* Remove the given callback for `event` or all
|
||||||
* registered callbacks.
|
* registered callbacks.
|
||||||
*
|
*
|
||||||
* @param {String} event
|
* @param {String} event
|
||||||
* @param {Function} fn
|
* @param {Function} fn
|
||||||
* @return {Emitter}
|
* @return {Emitter}
|
||||||
* @api public
|
* @api public
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Emitter.prototype.off =
|
Emitter.prototype.off =
|
||||||
Emitter.prototype.removeListener =
|
Emitter.prototype.removeListener =
|
||||||
Emitter.prototype.removeAllListeners =
|
Emitter.prototype.removeAllListeners =
|
||||||
Emitter.prototype.removeEventListener = function(event, fn){
|
Emitter.prototype.removeEventListener = function(event, fn){
|
||||||
this._callbacks = this._callbacks || {};
|
this._callbacks = this._callbacks || {};
|
||||||
|
|
||||||
// all
|
// all
|
||||||
if (0 == arguments.length) {
|
if (0 == arguments.length) {
|
||||||
this._callbacks = {};
|
this._callbacks = {};
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// specific event
|
// specific event
|
||||||
var callbacks = this._callbacks['$' + event];
|
var callbacks = this._callbacks['$' + event];
|
||||||
if (!callbacks) return this;
|
if (!callbacks) return this;
|
||||||
|
|
||||||
// remove all handlers
|
// remove all handlers
|
||||||
if (1 == arguments.length) {
|
if (1 == arguments.length) {
|
||||||
delete this._callbacks['$' + event];
|
delete this._callbacks['$' + event];
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove specific handler
|
// remove specific handler
|
||||||
var cb;
|
var cb;
|
||||||
for (var i = 0; i < callbacks.length; i++) {
|
for (var i = 0; i < callbacks.length; i++) {
|
||||||
cb = callbacks[i];
|
cb = callbacks[i];
|
||||||
if (cb === fn || cb.fn === fn) {
|
if (cb === fn || cb.fn === fn) {
|
||||||
callbacks.splice(i, 1);
|
callbacks.splice(i, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove event specific arrays for event types that no
|
// Remove event specific arrays for event types that no
|
||||||
// one is subscribed for to avoid memory leak.
|
// one is subscribed for to avoid memory leak.
|
||||||
if (callbacks.length === 0) {
|
if (callbacks.length === 0) {
|
||||||
delete this._callbacks['$' + event];
|
delete this._callbacks['$' + event];
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Emit `event` with the given args.
|
* Emit `event` with the given args.
|
||||||
*
|
*
|
||||||
* @param {String} event
|
* @param {String} event
|
||||||
* @param {Mixed} ...
|
* @param {Mixed} ...
|
||||||
* @return {Emitter}
|
* @return {Emitter}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Emitter.prototype.emit = function(event){
|
Emitter.prototype.emit = function(event){
|
||||||
this._callbacks = this._callbacks || {};
|
this._callbacks = this._callbacks || {};
|
||||||
|
|
||||||
var args = new Array(arguments.length - 1)
|
var args = new Array(arguments.length - 1)
|
||||||
, callbacks = this._callbacks['$' + event];
|
, callbacks = this._callbacks['$' + event];
|
||||||
|
|
||||||
for (var i = 1; i < arguments.length; i++) {
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
args[i - 1] = arguments[i];
|
args[i - 1] = arguments[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (callbacks) {
|
if (callbacks) {
|
||||||
callbacks = callbacks.slice(0);
|
callbacks = callbacks.slice(0);
|
||||||
for (var i = 0, len = callbacks.length; i < len; ++i) {
|
for (var i = 0, len = callbacks.length; i < len; ++i) {
|
||||||
callbacks[i].apply(this, args);
|
callbacks[i].apply(this, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return array of callbacks for `event`.
|
* Return array of callbacks for `event`.
|
||||||
*
|
*
|
||||||
* @param {String} event
|
* @param {String} event
|
||||||
* @return {Array}
|
* @return {Array}
|
||||||
* @api public
|
* @api public
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Emitter.prototype.listeners = function(event){
|
Emitter.prototype.listeners = function(event){
|
||||||
this._callbacks = this._callbacks || {};
|
this._callbacks = this._callbacks || {};
|
||||||
return this._callbacks['$' + event] || [];
|
return this._callbacks['$' + event] || [];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if this emitter has `event` handlers.
|
* Check if this emitter has `event` handlers.
|
||||||
*
|
*
|
||||||
* @param {String} event
|
* @param {String} event
|
||||||
* @return {Boolean}
|
* @return {Boolean}
|
||||||
* @api public
|
* @api public
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Emitter.prototype.hasListeners = function(event){
|
Emitter.prototype.hasListeners = function(event){
|
||||||
return !! this.listeners(event).length;
|
return !! this.listeners(event).length;
|
||||||
};
|
};
|
||||||
|
|||||||
462
public/novnc/node_modules/decimal.js/CHANGELOG.md
generated
vendored
462
public/novnc/node_modules/decimal.js/CHANGELOG.md
generated
vendored
@@ -1,231 +1,231 @@
|
|||||||
#### 10.3.1
|
#### 10.3.1
|
||||||
* 25/06/2021
|
* 25/06/2021
|
||||||
* Remove minified versions. Refresh *README*.
|
* Remove minified versions. Refresh *README*.
|
||||||
|
|
||||||
#### 10.3.0
|
#### 10.3.0
|
||||||
* 22/06/2021
|
* 22/06/2021
|
||||||
* Support underscores as separators.
|
* Support underscores as separators.
|
||||||
* #101 Add `Decimal.clamp` method.
|
* #101 Add `Decimal.clamp` method.
|
||||||
* #161 Fix Decimal instances deemed plain objects.
|
* #161 Fix Decimal instances deemed plain objects.
|
||||||
* #100 Add `Decimal.sum` method.
|
* #100 Add `Decimal.sum` method.
|
||||||
* #146 `Symbol.for` to `Symbol['for']` for IE8.
|
* #146 `Symbol.for` to `Symbol['for']` for IE8.
|
||||||
* #132 Fix possible infinite loop when `minE` is very low.
|
* #132 Fix possible infinite loop when `minE` is very low.
|
||||||
* #180 Accept Decimals of different origin.
|
* #180 Accept Decimals of different origin.
|
||||||
* Update Typescript definitions.
|
* Update Typescript definitions.
|
||||||
* Update minification examples in *README*.
|
* Update minification examples in *README*.
|
||||||
* Add minified versions for both *decimal.js* and *decimal.mjs*.
|
* Add minified versions for both *decimal.js* and *decimal.mjs*.
|
||||||
* Add *files* field to *package.json*, and remove build script.
|
* Add *files* field to *package.json*, and remove build script.
|
||||||
|
|
||||||
#### 10.2.1
|
#### 10.2.1
|
||||||
* 28/09/2020
|
* 28/09/2020
|
||||||
* Correct `sqrt` initial estimate.
|
* Correct `sqrt` initial estimate.
|
||||||
|
|
||||||
#### 10.2.0
|
#### 10.2.0
|
||||||
* 08/05/2019
|
* 08/05/2019
|
||||||
* #128 Workaround V8 `Math.pow` change.
|
* #128 Workaround V8 `Math.pow` change.
|
||||||
* #93 Accept `+` prefix when parsing string values.
|
* #93 Accept `+` prefix when parsing string values.
|
||||||
* #129 Fix typo.
|
* #129 Fix typo.
|
||||||
|
|
||||||
#### 10.1.1
|
#### 10.1.1
|
||||||
* 27/02/2019
|
* 27/02/2019
|
||||||
* Check `Symbol` properly.
|
* Check `Symbol` properly.
|
||||||
|
|
||||||
#### 10.1.0
|
#### 10.1.0
|
||||||
* 26/02/2019
|
* 26/02/2019
|
||||||
* #122 Add custom `util.inspect()` function.
|
* #122 Add custom `util.inspect()` function.
|
||||||
* Add `Symbol.toStringTag`.
|
* Add `Symbol.toStringTag`.
|
||||||
* #121 Constructor: add range check for arguments of type number and Decimal.
|
* #121 Constructor: add range check for arguments of type number and Decimal.
|
||||||
* Remove premable from uglifyjs build script.
|
* Remove premable from uglifyjs build script.
|
||||||
* Move *decimal.min.js.map* to root directory.
|
* Move *decimal.min.js.map* to root directory.
|
||||||
|
|
||||||
#### 10.0.2
|
#### 10.0.2
|
||||||
* 13/12/2018
|
* 13/12/2018
|
||||||
* #114 Remove soureMappingURL from *decimal.min.js*.
|
* #114 Remove soureMappingURL from *decimal.min.js*.
|
||||||
* Remove *bower.json*.
|
* Remove *bower.json*.
|
||||||
|
|
||||||
#### 10.0.1
|
#### 10.0.1
|
||||||
* 24/05/2018
|
* 24/05/2018
|
||||||
* Add `browser` field to *package.json*.
|
* Add `browser` field to *package.json*.
|
||||||
|
|
||||||
#### 10.0.0
|
#### 10.0.0
|
||||||
* 10/03/2018
|
* 10/03/2018
|
||||||
* #88 `toNearest` to return the nearest multiple in the direction of the rounding mode.
|
* #88 `toNearest` to return the nearest multiple in the direction of the rounding mode.
|
||||||
* #82 #91 `const` to `var`.
|
* #82 #91 `const` to `var`.
|
||||||
* Add trigonometric precision limit explanantion to documentation.
|
* Add trigonometric precision limit explanantion to documentation.
|
||||||
* Put global ts definitions in separate file (see *bignumber.js* #143).
|
* Put global ts definitions in separate file (see *bignumber.js* #143).
|
||||||
|
|
||||||
#### 9.0.1
|
#### 9.0.1
|
||||||
* 15/12/2017
|
* 15/12/2017
|
||||||
* #80 Typings: correct return type.
|
* #80 Typings: correct return type.
|
||||||
|
|
||||||
#### 9.0.0
|
#### 9.0.0
|
||||||
* 14/12/2017
|
* 14/12/2017
|
||||||
* #78 Typings: remove `toFormat`.
|
* #78 Typings: remove `toFormat`.
|
||||||
|
|
||||||
#### 8.0.0
|
#### 8.0.0
|
||||||
* 10/12/2017
|
* 10/12/2017
|
||||||
* Correct typings: `toFraction` returns `Decimal[]`.
|
* Correct typings: `toFraction` returns `Decimal[]`.
|
||||||
* Type-checking: add `Decimal.isDecimal` method.
|
* Type-checking: add `Decimal.isDecimal` method.
|
||||||
* Enable configuration reset with `defaults: true`.
|
* Enable configuration reset with `defaults: true`.
|
||||||
* Add named export, Decimal, to *decimal.mjs*.
|
* Add named export, Decimal, to *decimal.mjs*.
|
||||||
|
|
||||||
#### 7.5.1
|
#### 7.5.1
|
||||||
* 03/12/2017
|
* 03/12/2017
|
||||||
* Remove typo.
|
* Remove typo.
|
||||||
|
|
||||||
#### 7.5.0
|
#### 7.5.0
|
||||||
* 03/12/2017
|
* 03/12/2017
|
||||||
* Use TypeScript declarations outside modules.
|
* Use TypeScript declarations outside modules.
|
||||||
|
|
||||||
#### 7.4.0
|
#### 7.4.0
|
||||||
* 25/11/2017
|
* 25/11/2017
|
||||||
* Add TypeScript typings.
|
* Add TypeScript typings.
|
||||||
|
|
||||||
#### 7.3.0
|
#### 7.3.0
|
||||||
* 26/09/2017
|
* 26/09/2017
|
||||||
* Rename *decimal.es6.js* to *decimal.mjs*.
|
* Rename *decimal.es6.js* to *decimal.mjs*.
|
||||||
* Amend *.travis.yml*.
|
* Amend *.travis.yml*.
|
||||||
|
|
||||||
#### 7.2.4
|
#### 7.2.4
|
||||||
* 09/09/2017
|
* 09/09/2017
|
||||||
* Update docs regarding `global.crypto`.
|
* Update docs regarding `global.crypto`.
|
||||||
* Fix `import` issues.
|
* Fix `import` issues.
|
||||||
|
|
||||||
#### 7.2.3
|
#### 7.2.3
|
||||||
* 27/06/2017
|
* 27/06/2017
|
||||||
* Bugfix: #58 `pow` sometimes throws when result is `Infinity`.
|
* Bugfix: #58 `pow` sometimes throws when result is `Infinity`.
|
||||||
|
|
||||||
#### 7.2.2
|
#### 7.2.2
|
||||||
* 25/06/2017
|
* 25/06/2017
|
||||||
* Bugfix: #57 Powers of -1 for integers over `Number.MAX_SAFE_INTEGER`.
|
* Bugfix: #57 Powers of -1 for integers over `Number.MAX_SAFE_INTEGER`.
|
||||||
|
|
||||||
#### 7.2.1
|
#### 7.2.1
|
||||||
* 04/05/2017
|
* 04/05/2017
|
||||||
* Fix *README* badges.
|
* Fix *README* badges.
|
||||||
|
|
||||||
#### 7.2.0
|
#### 7.2.0
|
||||||
* 09/04/2017
|
* 09/04/2017
|
||||||
* Add *decimal.es6.js*
|
* Add *decimal.es6.js*
|
||||||
|
|
||||||
#### 7.1.2
|
#### 7.1.2
|
||||||
* 05/04/2017
|
* 05/04/2017
|
||||||
* `Decimal.default` to `Decimal['default']` IE8 issue
|
* `Decimal.default` to `Decimal['default']` IE8 issue
|
||||||
|
|
||||||
#### 7.1.1
|
#### 7.1.1
|
||||||
* 10/01/2017
|
* 10/01/2017
|
||||||
* Remove duplicated for-loop
|
* Remove duplicated for-loop
|
||||||
* Minor refactoring
|
* Minor refactoring
|
||||||
|
|
||||||
#### 7.1.0
|
#### 7.1.0
|
||||||
* 09/11/2016
|
* 09/11/2016
|
||||||
* Support ES6 imports.
|
* Support ES6 imports.
|
||||||
|
|
||||||
#### 7.0.0
|
#### 7.0.0
|
||||||
* 09/11/2016
|
* 09/11/2016
|
||||||
* Remove `require('crypto')` - leave it to the user
|
* Remove `require('crypto')` - leave it to the user
|
||||||
* Default `Decimal.crypto` to `false`
|
* Default `Decimal.crypto` to `false`
|
||||||
* Add `Decimal.set` as `Decimal.config` alias
|
* Add `Decimal.set` as `Decimal.config` alias
|
||||||
|
|
||||||
#### 6.0.0
|
#### 6.0.0
|
||||||
* 30/06/2016
|
* 30/06/2016
|
||||||
* Removed base-88 serialization format
|
* Removed base-88 serialization format
|
||||||
* Amended `toJSON` and removed `Decimal.fromJSON` accordingly
|
* Amended `toJSON` and removed `Decimal.fromJSON` accordingly
|
||||||
|
|
||||||
#### 5.0.8
|
#### 5.0.8
|
||||||
* 09/03/2016
|
* 09/03/2016
|
||||||
* Add newline to single test results
|
* Add newline to single test results
|
||||||
* Correct year
|
* Correct year
|
||||||
|
|
||||||
#### 5.0.7
|
#### 5.0.7
|
||||||
* 29/02/2016
|
* 29/02/2016
|
||||||
* Add decimal.js-light link
|
* Add decimal.js-light link
|
||||||
* Remove outdated example from docs
|
* Remove outdated example from docs
|
||||||
|
|
||||||
#### 5.0.6
|
#### 5.0.6
|
||||||
* 22/02/2016
|
* 22/02/2016
|
||||||
* Add bower.json
|
* Add bower.json
|
||||||
|
|
||||||
#### 5.0.5
|
#### 5.0.5
|
||||||
* 20/02/2016
|
* 20/02/2016
|
||||||
* Bugfix: #26 wrong precision applied
|
* Bugfix: #26 wrong precision applied
|
||||||
|
|
||||||
#### 5.0.4
|
#### 5.0.4
|
||||||
* 14/02/2016
|
* 14/02/2016
|
||||||
* Bugfix: #26 clone
|
* Bugfix: #26 clone
|
||||||
|
|
||||||
#### 5.0.3
|
#### 5.0.3
|
||||||
* 06/02/2016
|
* 06/02/2016
|
||||||
* Refactor tests
|
* Refactor tests
|
||||||
|
|
||||||
#### 5.0.2
|
#### 5.0.2
|
||||||
* 05/02/2016
|
* 05/02/2016
|
||||||
* Added immutability tests
|
* Added immutability tests
|
||||||
* Minor *decimal.js* clean-up
|
* Minor *decimal.js* clean-up
|
||||||
|
|
||||||
#### 5.0.1
|
#### 5.0.1
|
||||||
* 28/01/2016
|
* 28/01/2016
|
||||||
* Bugfix: #20 cos mutates value
|
* Bugfix: #20 cos mutates value
|
||||||
* Add pi info to docs
|
* Add pi info to docs
|
||||||
|
|
||||||
#### 5.0.0
|
#### 5.0.0
|
||||||
* 25/01/2016
|
* 25/01/2016
|
||||||
* Added trigonometric functions and `cubeRoot` method
|
* Added trigonometric functions and `cubeRoot` method
|
||||||
* Added most of JavaScript's `Math` object methods as Decimal methods
|
* Added most of JavaScript's `Math` object methods as Decimal methods
|
||||||
* Added `toBinary`, `toHexadecimal` and `toOctal` methods
|
* Added `toBinary`, `toHexadecimal` and `toOctal` methods
|
||||||
* Added `isPositive` method
|
* Added `isPositive` method
|
||||||
* Removed the 15 significant digit limit for numbers
|
* Removed the 15 significant digit limit for numbers
|
||||||
* `toFraction` now returns an array of two Decimals, not two strings
|
* `toFraction` now returns an array of two Decimals, not two strings
|
||||||
* String values containing whitespace or a plus sign are no longer accepted
|
* String values containing whitespace or a plus sign are no longer accepted
|
||||||
* `valueOf` now returns `'-0'` for minus zero
|
* `valueOf` now returns `'-0'` for minus zero
|
||||||
* `comparedTo` now returns `NaN` not `null` for comparisons with `NaN`
|
* `comparedTo` now returns `NaN` not `null` for comparisons with `NaN`
|
||||||
* `Decimal.max` and `Decimal.min` no longer accept an array
|
* `Decimal.max` and `Decimal.min` no longer accept an array
|
||||||
* The Decimal constructor and `toString` no longer accept a base argument
|
* The Decimal constructor and `toString` no longer accept a base argument
|
||||||
* Binary, hexadecimal and octal prefixes are now recognised for string values
|
* Binary, hexadecimal and octal prefixes are now recognised for string values
|
||||||
* Removed `Decimal.errors` configuration property
|
* Removed `Decimal.errors` configuration property
|
||||||
* Removed `toFormat` method
|
* Removed `toFormat` method
|
||||||
* Removed `Decimal.ONE`
|
* Removed `Decimal.ONE`
|
||||||
* Renamed `exponential` method to `naturalExponential`
|
* Renamed `exponential` method to `naturalExponential`
|
||||||
* Renamed `Decimal.constructor` method to `Decimal.clone`
|
* Renamed `Decimal.constructor` method to `Decimal.clone`
|
||||||
* Simplified error handling and amended error messages
|
* Simplified error handling and amended error messages
|
||||||
* Refactored the test suite
|
* Refactored the test suite
|
||||||
* `Decimal.crypto` is now `undefined` by default, and the `crypto` object will be used if available
|
* `Decimal.crypto` is now `undefined` by default, and the `crypto` object will be used if available
|
||||||
* Major internal refactoring
|
* Major internal refactoring
|
||||||
* Removed *bower.json*
|
* Removed *bower.json*
|
||||||
|
|
||||||
#### 4.0.2
|
#### 4.0.2
|
||||||
* 20/02/2015 Add bower.json. Add source map. Amend travis CI. Amend doc/comments
|
* 20/02/2015 Add bower.json. Add source map. Amend travis CI. Amend doc/comments
|
||||||
|
|
||||||
#### 4.0.1
|
#### 4.0.1
|
||||||
* 11/12/2014 Assign correct constructor when duplicating a Decimal
|
* 11/12/2014 Assign correct constructor when duplicating a Decimal
|
||||||
|
|
||||||
#### 4.0.0
|
#### 4.0.0
|
||||||
* 10/11/2014 `toFormat` amended to use `Decimal.format` object for more flexible configuration
|
* 10/11/2014 `toFormat` amended to use `Decimal.format` object for more flexible configuration
|
||||||
|
|
||||||
#### 3.0.1
|
#### 3.0.1
|
||||||
* 8/06/2014 Surround crypto require in try catch. See issue #5
|
* 8/06/2014 Surround crypto require in try catch. See issue #5
|
||||||
|
|
||||||
#### 3.0.0
|
#### 3.0.0
|
||||||
* 4/06/2014 `random` simplified. Major internal changes mean the properties of a Decimal must now be considered read-only
|
* 4/06/2014 `random` simplified. Major internal changes mean the properties of a Decimal must now be considered read-only
|
||||||
|
|
||||||
#### 2.1.0
|
#### 2.1.0
|
||||||
* 4/06/2014 Amend UMD
|
* 4/06/2014 Amend UMD
|
||||||
|
|
||||||
#### 2.0.3
|
#### 2.0.3
|
||||||
* 8/05/2014 Fix NaN toNumber
|
* 8/05/2014 Fix NaN toNumber
|
||||||
|
|
||||||
#### 2.0.2
|
#### 2.0.2
|
||||||
* 30/04/2014 Correct doc links
|
* 30/04/2014 Correct doc links
|
||||||
|
|
||||||
#### 2.0.1
|
#### 2.0.1
|
||||||
* 10/04/2014 Update npmignore
|
* 10/04/2014 Update npmignore
|
||||||
|
|
||||||
#### 2.0.0
|
#### 2.0.0
|
||||||
* 10/04/2014 Add `toSignificantDigits`
|
* 10/04/2014 Add `toSignificantDigits`
|
||||||
* Remove `toInteger`
|
* Remove `toInteger`
|
||||||
* No arguments to `ceil`, `floor`, `round` and `trunc`
|
* No arguments to `ceil`, `floor`, `round` and `trunc`
|
||||||
|
|
||||||
#### 1.0.1
|
#### 1.0.1
|
||||||
* 07/04/2014 Minor documentation clean-up
|
* 07/04/2014 Minor documentation clean-up
|
||||||
|
|
||||||
#### 1.0.0
|
#### 1.0.0
|
||||||
* 02/04/2014 Initial release
|
* 02/04/2014 Initial release
|
||||||
|
|||||||
46
public/novnc/node_modules/decimal.js/LICENCE.md
generated
vendored
46
public/novnc/node_modules/decimal.js/LICENCE.md
generated
vendored
@@ -1,23 +1,23 @@
|
|||||||
The MIT Licence.
|
The MIT Licence.
|
||||||
|
|
||||||
Copyright (c) 2021 Michael Mclaughlin
|
Copyright (c) 2021 Michael Mclaughlin
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
'Software'), to deal in the Software without restriction, including
|
'Software'), to deal in the Software without restriction, including
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
distribute, sublicense, and/or sell copies of the Software, and to
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
permit persons to whom the Software is furnished to do so, subject to
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
the following conditions:
|
the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
The above copyright notice and this permission notice shall be
|
||||||
included in all copies or substantial portions of the Software.
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|||||||
492
public/novnc/node_modules/decimal.js/README.md
generated
vendored
492
public/novnc/node_modules/decimal.js/README.md
generated
vendored
@@ -1,246 +1,246 @@
|
|||||||

|

|
||||||
|
|
||||||
An arbitrary-precision Decimal type for JavaScript.
|
An arbitrary-precision Decimal type for JavaScript.
|
||||||
|
|
||||||
[](https://www.npmjs.com/package/decimal.js)
|
[](https://www.npmjs.com/package/decimal.js)
|
||||||
[](https://www.npmjs.com/package/decimal.js)
|
[](https://www.npmjs.com/package/decimal.js)
|
||||||
[](https://travis-ci.org/MikeMcl/decimal.js)
|
[](https://travis-ci.org/MikeMcl/decimal.js)
|
||||||
[](https://cdnjs.com/libraries/decimal.js)
|
[](https://cdnjs.com/libraries/decimal.js)
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Integers and floats
|
- Integers and floats
|
||||||
- Simple but full-featured API
|
- Simple but full-featured API
|
||||||
- Replicates many of the methods of JavaScript's `Number.prototype` and `Math` objects
|
- Replicates many of the methods of JavaScript's `Number.prototype` and `Math` objects
|
||||||
- Also handles hexadecimal, binary and octal values
|
- Also handles hexadecimal, binary and octal values
|
||||||
- Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal
|
- Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal
|
||||||
- No dependencies
|
- No dependencies
|
||||||
- Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only
|
- Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only
|
||||||
- Comprehensive [documentation](https://mikemcl.github.io/decimal.js/) and test set
|
- Comprehensive [documentation](https://mikemcl.github.io/decimal.js/) and test set
|
||||||
- Used under the hood by [math.js](https://github.com/josdejong/mathjs)
|
- Used under the hood by [math.js](https://github.com/josdejong/mathjs)
|
||||||
- Includes a TypeScript declaration file: *decimal.d.ts*
|
- Includes a TypeScript declaration file: *decimal.d.ts*
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The library is similar to [bignumber.js](https://github.com/MikeMcl/bignumber.js/), but here
|
The library is similar to [bignumber.js](https://github.com/MikeMcl/bignumber.js/), but here
|
||||||
precision is specified in terms of significant digits rather than decimal places, and all
|
precision is specified in terms of significant digits rather than decimal places, and all
|
||||||
calculations are rounded to the precision (similar to Python's decimal module) rather than just
|
calculations are rounded to the precision (similar to Python's decimal module) rather than just
|
||||||
those involving division.
|
those involving division.
|
||||||
|
|
||||||
This library also adds the trigonometric functions, among others, and supports non-integer powers,
|
This library also adds the trigonometric functions, among others, and supports non-integer powers,
|
||||||
which makes it a significantly larger library than *bignumber.js* and the even smaller
|
which makes it a significantly larger library than *bignumber.js* and the even smaller
|
||||||
[big.js](https://github.com/MikeMcl/big.js/).
|
[big.js](https://github.com/MikeMcl/big.js/).
|
||||||
|
|
||||||
For a lighter version of this library without the trigonometric functions see
|
For a lighter version of this library without the trigonometric functions see
|
||||||
[decimal.js-light](https://github.com/MikeMcl/decimal.js-light/).
|
[decimal.js-light](https://github.com/MikeMcl/decimal.js-light/).
|
||||||
|
|
||||||
## Load
|
## Load
|
||||||
|
|
||||||
The library is the single JavaScript file *decimal.js* or ES module *decimal.mjs*.
|
The library is the single JavaScript file *decimal.js* or ES module *decimal.mjs*.
|
||||||
|
|
||||||
Browser:
|
Browser:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src='path/to/decimal.js'></script>
|
<script src='path/to/decimal.js'></script>
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import Decimal from './path/to/decimal.mjs';
|
import Decimal from './path/to/decimal.mjs';
|
||||||
...
|
...
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
[Node.js](https://nodejs.org):
|
[Node.js](https://nodejs.org):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install decimal.js
|
npm install decimal.js
|
||||||
```
|
```
|
||||||
```js
|
```js
|
||||||
const Decimal = require('decimal.js');
|
const Decimal = require('decimal.js');
|
||||||
|
|
||||||
import Decimal from 'decimal.js';
|
import Decimal from 'decimal.js';
|
||||||
|
|
||||||
import {Decimal} from 'decimal.js';
|
import {Decimal} from 'decimal.js';
|
||||||
```
|
```
|
||||||
|
|
||||||
## Use
|
## Use
|
||||||
|
|
||||||
*In all examples below, semicolons and `toString` calls are not shown.
|
*In all examples below, semicolons and `toString` calls are not shown.
|
||||||
If a commented-out value is in quotes it means `toString` has been called on the preceding expression.*
|
If a commented-out value is in quotes it means `toString` has been called on the preceding expression.*
|
||||||
|
|
||||||
The library exports a single constructor function, `Decimal`, which expects a single argument that is a number, string or Decimal instance.
|
The library exports a single constructor function, `Decimal`, which expects a single argument that is a number, string or Decimal instance.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x = new Decimal(123.4567)
|
x = new Decimal(123.4567)
|
||||||
y = new Decimal('123456.7e-3')
|
y = new Decimal('123456.7e-3')
|
||||||
z = new Decimal(x)
|
z = new Decimal(x)
|
||||||
x.equals(y) && y.equals(z) && x.equals(z) // true
|
x.equals(y) && y.equals(z) && x.equals(z) // true
|
||||||
```
|
```
|
||||||
|
|
||||||
If using values with more than a few digits, it is recommended to pass strings rather than numbers to avoid a potential loss of precision.
|
If using values with more than a few digits, it is recommended to pass strings rather than numbers to avoid a potential loss of precision.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// Precision loss from using numeric literals with more than 15 significant digits.
|
// Precision loss from using numeric literals with more than 15 significant digits.
|
||||||
new Decimal(1.0000000000000001) // '1'
|
new Decimal(1.0000000000000001) // '1'
|
||||||
new Decimal(88259496234518.57) // '88259496234518.56'
|
new Decimal(88259496234518.57) // '88259496234518.56'
|
||||||
new Decimal(99999999999999999999) // '100000000000000000000'
|
new Decimal(99999999999999999999) // '100000000000000000000'
|
||||||
|
|
||||||
// Precision loss from using numeric literals outside the range of Number values.
|
// Precision loss from using numeric literals outside the range of Number values.
|
||||||
new Decimal(2e+308) // 'Infinity'
|
new Decimal(2e+308) // 'Infinity'
|
||||||
new Decimal(1e-324) // '0'
|
new Decimal(1e-324) // '0'
|
||||||
|
|
||||||
// Precision loss from the unexpected result of arithmetic with Number values.
|
// Precision loss from the unexpected result of arithmetic with Number values.
|
||||||
new Decimal(0.7 + 0.1) // '0.7999999999999999'
|
new Decimal(0.7 + 0.1) // '0.7999999999999999'
|
||||||
```
|
```
|
||||||
|
|
||||||
As with JavaScript numbers, strings can contain underscores as separators to improve readability.
|
As with JavaScript numbers, strings can contain underscores as separators to improve readability.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x = new Decimal('2_147_483_647')
|
x = new Decimal('2_147_483_647')
|
||||||
```
|
```
|
||||||
|
|
||||||
String values in binary, hexadecimal or octal notation are also accepted if the appropriate prefix is included.
|
String values in binary, hexadecimal or octal notation are also accepted if the appropriate prefix is included.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x = new Decimal('0xff.f') // '255.9375'
|
x = new Decimal('0xff.f') // '255.9375'
|
||||||
y = new Decimal('0b10101100') // '172'
|
y = new Decimal('0b10101100') // '172'
|
||||||
z = x.plus(y) // '427.9375'
|
z = x.plus(y) // '427.9375'
|
||||||
|
|
||||||
z.toBinary() // '0b110101011.1111'
|
z.toBinary() // '0b110101011.1111'
|
||||||
z.toBinary(13) // '0b1.101010111111p+8'
|
z.toBinary(13) // '0b1.101010111111p+8'
|
||||||
|
|
||||||
// Using binary exponential notation to create a Decimal with the value of `Number.MAX_VALUE`.
|
// Using binary exponential notation to create a Decimal with the value of `Number.MAX_VALUE`.
|
||||||
x = new Decimal('0b1.1111111111111111111111111111111111111111111111111111p+1023')
|
x = new Decimal('0b1.1111111111111111111111111111111111111111111111111111p+1023')
|
||||||
// '1.7976931348623157081e+308'
|
// '1.7976931348623157081e+308'
|
||||||
```
|
```
|
||||||
|
|
||||||
Decimal instances are immutable in the sense that they are not changed by their methods.
|
Decimal instances are immutable in the sense that they are not changed by their methods.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
0.3 - 0.1 // 0.19999999999999998
|
0.3 - 0.1 // 0.19999999999999998
|
||||||
x = new Decimal(0.3)
|
x = new Decimal(0.3)
|
||||||
x.minus(0.1) // '0.2'
|
x.minus(0.1) // '0.2'
|
||||||
x // '0.3'
|
x // '0.3'
|
||||||
```
|
```
|
||||||
|
|
||||||
The methods that return a Decimal can be chained.
|
The methods that return a Decimal can be chained.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x.dividedBy(y).plus(z).times(9).floor()
|
x.dividedBy(y).plus(z).times(9).floor()
|
||||||
x.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').ceil()
|
x.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').ceil()
|
||||||
```
|
```
|
||||||
|
|
||||||
Many method names have a shorter alias.
|
Many method names have a shorter alias.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x.squareRoot().dividedBy(y).toPower(3).equals(x.sqrt().div(y).pow(3)) // true
|
x.squareRoot().dividedBy(y).toPower(3).equals(x.sqrt().div(y).pow(3)) // true
|
||||||
x.comparedTo(y.modulo(z).negated() === x.cmp(y.mod(z).neg()) // true
|
x.comparedTo(y.modulo(z).negated() === x.cmp(y.mod(z).neg()) // true
|
||||||
```
|
```
|
||||||
|
|
||||||
Most of the methods of JavaScript's `Number.prototype` and `Math` objects are replicated.
|
Most of the methods of JavaScript's `Number.prototype` and `Math` objects are replicated.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x = new Decimal(255.5)
|
x = new Decimal(255.5)
|
||||||
x.toExponential(5) // '2.55500e+2'
|
x.toExponential(5) // '2.55500e+2'
|
||||||
x.toFixed(5) // '255.50000'
|
x.toFixed(5) // '255.50000'
|
||||||
x.toPrecision(5) // '255.50'
|
x.toPrecision(5) // '255.50'
|
||||||
|
|
||||||
Decimal.sqrt('6.98372465832e+9823') // '8.3568682281821340204e+4911'
|
Decimal.sqrt('6.98372465832e+9823') // '8.3568682281821340204e+4911'
|
||||||
Decimal.pow(2, 0.0979843) // '1.0702770511687781839'
|
Decimal.pow(2, 0.0979843) // '1.0702770511687781839'
|
||||||
|
|
||||||
// Using `toFixed()` to avoid exponential notation:
|
// Using `toFixed()` to avoid exponential notation:
|
||||||
x = new Decimal('0.0000001')
|
x = new Decimal('0.0000001')
|
||||||
x.toString() // '1e-7'
|
x.toString() // '1e-7'
|
||||||
x.toFixed() // '0.0000001'
|
x.toFixed() // '0.0000001'
|
||||||
```
|
```
|
||||||
|
|
||||||
And there are `isNaN` and `isFinite` methods, as `NaN` and `Infinity` are valid `Decimal` values.
|
And there are `isNaN` and `isFinite` methods, as `NaN` and `Infinity` are valid `Decimal` values.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x = new Decimal(NaN) // 'NaN'
|
x = new Decimal(NaN) // 'NaN'
|
||||||
y = new Decimal(Infinity) // 'Infinity'
|
y = new Decimal(Infinity) // 'Infinity'
|
||||||
x.isNaN() && !y.isNaN() && !x.isFinite() && !y.isFinite() // true
|
x.isNaN() && !y.isNaN() && !x.isFinite() && !y.isFinite() // true
|
||||||
```
|
```
|
||||||
|
|
||||||
There is also a `toFraction` method with an optional *maximum denominator* argument.
|
There is also a `toFraction` method with an optional *maximum denominator* argument.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
z = new Decimal(355)
|
z = new Decimal(355)
|
||||||
pi = z.dividedBy(113) // '3.1415929204'
|
pi = z.dividedBy(113) // '3.1415929204'
|
||||||
pi.toFraction() // [ '7853982301', '2500000000' ]
|
pi.toFraction() // [ '7853982301', '2500000000' ]
|
||||||
pi.toFraction(1000) // [ '355', '113' ]
|
pi.toFraction(1000) // [ '355', '113' ]
|
||||||
```
|
```
|
||||||
|
|
||||||
All calculations are rounded according to the number of significant digits and rounding mode specified
|
All calculations are rounded according to the number of significant digits and rounding mode specified
|
||||||
by the `precision` and `rounding` properties of the Decimal constructor.
|
by the `precision` and `rounding` properties of the Decimal constructor.
|
||||||
|
|
||||||
For advanced usage, multiple Decimal constructors can be created, each with their own independent
|
For advanced usage, multiple Decimal constructors can be created, each with their own independent
|
||||||
configuration which applies to all Decimal numbers created from it.
|
configuration which applies to all Decimal numbers created from it.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// Set the precision and rounding of the default Decimal constructor
|
// Set the precision and rounding of the default Decimal constructor
|
||||||
Decimal.set({ precision: 5, rounding: 4 })
|
Decimal.set({ precision: 5, rounding: 4 })
|
||||||
|
|
||||||
// Create another Decimal constructor, optionally passing in a configuration object
|
// Create another Decimal constructor, optionally passing in a configuration object
|
||||||
Dec = Decimal.clone({ precision: 9, rounding: 1 })
|
Dec = Decimal.clone({ precision: 9, rounding: 1 })
|
||||||
|
|
||||||
x = new Decimal(5)
|
x = new Decimal(5)
|
||||||
y = new Dec(5)
|
y = new Dec(5)
|
||||||
|
|
||||||
x.div(3) // '1.6667'
|
x.div(3) // '1.6667'
|
||||||
y.div(3) // '1.66666666'
|
y.div(3) // '1.66666666'
|
||||||
```
|
```
|
||||||
|
|
||||||
The value of a Decimal is stored in a floating point format in terms of its digits, exponent and sign, but these properties should be considered read-only.
|
The value of a Decimal is stored in a floating point format in terms of its digits, exponent and sign, but these properties should be considered read-only.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
x = new Decimal(-12345.67);
|
x = new Decimal(-12345.67);
|
||||||
x.d // [ 12345, 6700000 ] digits (base 10000000)
|
x.d // [ 12345, 6700000 ] digits (base 10000000)
|
||||||
x.e // 4 exponent (base 10)
|
x.e // 4 exponent (base 10)
|
||||||
x.s // -1 sign
|
x.s // -1 sign
|
||||||
```
|
```
|
||||||
|
|
||||||
For further information see the [API](http://mikemcl.github.io/decimal.js/) reference in the *doc* directory.
|
For further information see the [API](http://mikemcl.github.io/decimal.js/) reference in the *doc* directory.
|
||||||
|
|
||||||
## Test
|
## Test
|
||||||
|
|
||||||
To run the tests using Node.js from the root directory:
|
To run the tests using Node.js from the root directory:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm test
|
npm test
|
||||||
```
|
```
|
||||||
|
|
||||||
Each separate test module can also be executed individually, for example:
|
Each separate test module can also be executed individually, for example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
node test/modules/toFraction
|
node test/modules/toFraction
|
||||||
```
|
```
|
||||||
|
|
||||||
To run the tests in a browser, open *test/test.html*.
|
To run the tests in a browser, open *test/test.html*.
|
||||||
|
|
||||||
## Minify
|
## Minify
|
||||||
|
|
||||||
Two minification examples:
|
Two minification examples:
|
||||||
|
|
||||||
Using [uglify-js](https://github.com/mishoo/UglifyJS) to minify the *decimal.js* file:
|
Using [uglify-js](https://github.com/mishoo/UglifyJS) to minify the *decimal.js* file:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install uglify-js -g
|
npm install uglify-js -g
|
||||||
uglifyjs decimal.js --source-map url=decimal.min.js.map -c -m -o decimal.min.js
|
uglifyjs decimal.js --source-map url=decimal.min.js.map -c -m -o decimal.min.js
|
||||||
```
|
```
|
||||||
|
|
||||||
Using [terser](https://github.com/terser/terser) to minify the ES module version, *decimal.mjs*:
|
Using [terser](https://github.com/terser/terser) to minify the ES module version, *decimal.mjs*:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install terser -g
|
npm install terser -g
|
||||||
terser decimal.mjs --source-map url=decimal.min.mjs.map -c -m --toplevel -o decimal.min.mjs
|
terser decimal.mjs --source-map url=decimal.min.mjs.map -c -m --toplevel -o decimal.min.mjs
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import Decimal from './decimal.min.mjs';
|
import Decimal from './decimal.min.mjs';
|
||||||
```
|
```
|
||||||
|
|
||||||
## Licence
|
## Licence
|
||||||
|
|
||||||
[The MIT Licence (Expat).](LICENCE.md)
|
[The MIT Licence (Expat).](LICENCE.md)
|
||||||
|
|||||||
600
public/novnc/node_modules/decimal.js/decimal.d.ts
generated
vendored
600
public/novnc/node_modules/decimal.js/decimal.d.ts
generated
vendored
@@ -1,300 +1,300 @@
|
|||||||
// Type definitions for decimal.js >=7.0.0
|
// Type definitions for decimal.js >=7.0.0
|
||||||
// Project: https://github.com/MikeMcl/decimal.js
|
// Project: https://github.com/MikeMcl/decimal.js
|
||||||
// Definitions by: Michael Mclaughlin <https://github.com/MikeMcl>
|
// Definitions by: Michael Mclaughlin <https://github.com/MikeMcl>
|
||||||
// Definitions: https://github.com/MikeMcl/decimal.js
|
// Definitions: https://github.com/MikeMcl/decimal.js
|
||||||
//
|
//
|
||||||
// Documentation: http://mikemcl.github.io/decimal.js/
|
// Documentation: http://mikemcl.github.io/decimal.js/
|
||||||
//
|
//
|
||||||
// Exports:
|
// Exports:
|
||||||
//
|
//
|
||||||
// class Decimal (default export)
|
// class Decimal (default export)
|
||||||
// type Decimal.Constructor
|
// type Decimal.Constructor
|
||||||
// type Decimal.Instance
|
// type Decimal.Instance
|
||||||
// type Decimal.Modulo
|
// type Decimal.Modulo
|
||||||
// type Decimal.Rounding
|
// type Decimal.Rounding
|
||||||
// type Decimal.Value
|
// type Decimal.Value
|
||||||
// interface Decimal.Config
|
// interface Decimal.Config
|
||||||
//
|
//
|
||||||
// Example (alternative syntax commented-out):
|
// Example (alternative syntax commented-out):
|
||||||
//
|
//
|
||||||
// import {Decimal} from "decimal.js"
|
// import {Decimal} from "decimal.js"
|
||||||
// //import Decimal from "decimal.js"
|
// //import Decimal from "decimal.js"
|
||||||
//
|
//
|
||||||
// let r: Decimal.Rounding = Decimal.ROUND_UP;
|
// let r: Decimal.Rounding = Decimal.ROUND_UP;
|
||||||
// let c: Decimal.Configuration = {precision: 4, rounding: r};
|
// let c: Decimal.Configuration = {precision: 4, rounding: r};
|
||||||
// Decimal.set(c);
|
// Decimal.set(c);
|
||||||
// let v: Decimal.Value = '12345.6789';
|
// let v: Decimal.Value = '12345.6789';
|
||||||
// let d: Decimal = new Decimal(v);
|
// let d: Decimal = new Decimal(v);
|
||||||
// //let d: Decimal.Instance = new Decimal(v);
|
// //let d: Decimal.Instance = new Decimal(v);
|
||||||
//
|
//
|
||||||
// The use of compiler option `--strictNullChecks` is recommended.
|
// The use of compiler option `--strictNullChecks` is recommended.
|
||||||
|
|
||||||
export default Decimal;
|
export default Decimal;
|
||||||
|
|
||||||
export namespace Decimal {
|
export namespace Decimal {
|
||||||
export type Constructor = typeof Decimal;
|
export type Constructor = typeof Decimal;
|
||||||
export type Instance = Decimal;
|
export type Instance = Decimal;
|
||||||
export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
||||||
export type Modulo = Rounding | 9;
|
export type Modulo = Rounding | 9;
|
||||||
export type Value = string | number | Decimal;
|
export type Value = string | number | Decimal;
|
||||||
|
|
||||||
// http://mikemcl.github.io/decimal.js/#constructor-properties
|
// http://mikemcl.github.io/decimal.js/#constructor-properties
|
||||||
export interface Config {
|
export interface Config {
|
||||||
precision?: number;
|
precision?: number;
|
||||||
rounding?: Rounding;
|
rounding?: Rounding;
|
||||||
toExpNeg?: number;
|
toExpNeg?: number;
|
||||||
toExpPos?: number;
|
toExpPos?: number;
|
||||||
minE?: number;
|
minE?: number;
|
||||||
maxE?: number;
|
maxE?: number;
|
||||||
crypto?: boolean;
|
crypto?: boolean;
|
||||||
modulo?: Modulo;
|
modulo?: Modulo;
|
||||||
defaults?: boolean;
|
defaults?: boolean;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare class Decimal {
|
export declare class Decimal {
|
||||||
readonly d: number[];
|
readonly d: number[];
|
||||||
readonly e: number;
|
readonly e: number;
|
||||||
readonly s: number;
|
readonly s: number;
|
||||||
private readonly toStringTag: string;
|
private readonly toStringTag: string;
|
||||||
|
|
||||||
constructor(n: Decimal.Value);
|
constructor(n: Decimal.Value);
|
||||||
|
|
||||||
absoluteValue(): Decimal;
|
absoluteValue(): Decimal;
|
||||||
abs(): Decimal;
|
abs(): Decimal;
|
||||||
|
|
||||||
ceil(): Decimal;
|
ceil(): Decimal;
|
||||||
|
|
||||||
clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal;
|
clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal;
|
||||||
clamp(min: Decimal.Value, max: Decimal.Value): Decimal;
|
clamp(min: Decimal.Value, max: Decimal.Value): Decimal;
|
||||||
|
|
||||||
comparedTo(n: Decimal.Value): number;
|
comparedTo(n: Decimal.Value): number;
|
||||||
cmp(n: Decimal.Value): number;
|
cmp(n: Decimal.Value): number;
|
||||||
|
|
||||||
cosine(): Decimal;
|
cosine(): Decimal;
|
||||||
cos(): Decimal;
|
cos(): Decimal;
|
||||||
|
|
||||||
cubeRoot(): Decimal;
|
cubeRoot(): Decimal;
|
||||||
cbrt(): Decimal;
|
cbrt(): Decimal;
|
||||||
|
|
||||||
decimalPlaces(): number;
|
decimalPlaces(): number;
|
||||||
dp(): number;
|
dp(): number;
|
||||||
|
|
||||||
dividedBy(n: Decimal.Value): Decimal;
|
dividedBy(n: Decimal.Value): Decimal;
|
||||||
div(n: Decimal.Value): Decimal;
|
div(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
dividedToIntegerBy(n: Decimal.Value): Decimal;
|
dividedToIntegerBy(n: Decimal.Value): Decimal;
|
||||||
divToInt(n: Decimal.Value): Decimal;
|
divToInt(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
equals(n: Decimal.Value): boolean;
|
equals(n: Decimal.Value): boolean;
|
||||||
eq(n: Decimal.Value): boolean;
|
eq(n: Decimal.Value): boolean;
|
||||||
|
|
||||||
floor(): Decimal;
|
floor(): Decimal;
|
||||||
|
|
||||||
greaterThan(n: Decimal.Value): boolean;
|
greaterThan(n: Decimal.Value): boolean;
|
||||||
gt(n: Decimal.Value): boolean;
|
gt(n: Decimal.Value): boolean;
|
||||||
|
|
||||||
greaterThanOrEqualTo(n: Decimal.Value): boolean;
|
greaterThanOrEqualTo(n: Decimal.Value): boolean;
|
||||||
gte(n: Decimal.Value): boolean;
|
gte(n: Decimal.Value): boolean;
|
||||||
|
|
||||||
hyperbolicCosine(): Decimal;
|
hyperbolicCosine(): Decimal;
|
||||||
cosh(): Decimal;
|
cosh(): Decimal;
|
||||||
|
|
||||||
hyperbolicSine(): Decimal;
|
hyperbolicSine(): Decimal;
|
||||||
sinh(): Decimal;
|
sinh(): Decimal;
|
||||||
|
|
||||||
hyperbolicTangent(): Decimal;
|
hyperbolicTangent(): Decimal;
|
||||||
tanh(): Decimal;
|
tanh(): Decimal;
|
||||||
|
|
||||||
inverseCosine(): Decimal;
|
inverseCosine(): Decimal;
|
||||||
acos(): Decimal;
|
acos(): Decimal;
|
||||||
|
|
||||||
inverseHyperbolicCosine(): Decimal;
|
inverseHyperbolicCosine(): Decimal;
|
||||||
acosh(): Decimal;
|
acosh(): Decimal;
|
||||||
|
|
||||||
inverseHyperbolicSine(): Decimal;
|
inverseHyperbolicSine(): Decimal;
|
||||||
asinh(): Decimal;
|
asinh(): Decimal;
|
||||||
|
|
||||||
inverseHyperbolicTangent(): Decimal;
|
inverseHyperbolicTangent(): Decimal;
|
||||||
atanh(): Decimal;
|
atanh(): Decimal;
|
||||||
|
|
||||||
inverseSine(): Decimal;
|
inverseSine(): Decimal;
|
||||||
asin(): Decimal;
|
asin(): Decimal;
|
||||||
|
|
||||||
inverseTangent(): Decimal;
|
inverseTangent(): Decimal;
|
||||||
atan(): Decimal;
|
atan(): Decimal;
|
||||||
|
|
||||||
isFinite(): boolean;
|
isFinite(): boolean;
|
||||||
|
|
||||||
isInteger(): boolean;
|
isInteger(): boolean;
|
||||||
isInt(): boolean;
|
isInt(): boolean;
|
||||||
|
|
||||||
isNaN(): boolean;
|
isNaN(): boolean;
|
||||||
|
|
||||||
isNegative(): boolean;
|
isNegative(): boolean;
|
||||||
isNeg(): boolean;
|
isNeg(): boolean;
|
||||||
|
|
||||||
isPositive(): boolean;
|
isPositive(): boolean;
|
||||||
isPos(): boolean;
|
isPos(): boolean;
|
||||||
|
|
||||||
isZero(): boolean;
|
isZero(): boolean;
|
||||||
|
|
||||||
lessThan(n: Decimal.Value): boolean;
|
lessThan(n: Decimal.Value): boolean;
|
||||||
lt(n: Decimal.Value): boolean;
|
lt(n: Decimal.Value): boolean;
|
||||||
|
|
||||||
lessThanOrEqualTo(n: Decimal.Value): boolean;
|
lessThanOrEqualTo(n: Decimal.Value): boolean;
|
||||||
lte(n: Decimal.Value): boolean;
|
lte(n: Decimal.Value): boolean;
|
||||||
|
|
||||||
logarithm(n?: Decimal.Value): Decimal;
|
logarithm(n?: Decimal.Value): Decimal;
|
||||||
log(n?: Decimal.Value): Decimal;
|
log(n?: Decimal.Value): Decimal;
|
||||||
|
|
||||||
minus(n: Decimal.Value): Decimal;
|
minus(n: Decimal.Value): Decimal;
|
||||||
sub(n: Decimal.Value): Decimal;
|
sub(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
modulo(n: Decimal.Value): Decimal;
|
modulo(n: Decimal.Value): Decimal;
|
||||||
mod(n: Decimal.Value): Decimal;
|
mod(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
naturalExponential(): Decimal;
|
naturalExponential(): Decimal;
|
||||||
exp(): Decimal;
|
exp(): Decimal;
|
||||||
|
|
||||||
naturalLogarithm(): Decimal;
|
naturalLogarithm(): Decimal;
|
||||||
ln(): Decimal;
|
ln(): Decimal;
|
||||||
|
|
||||||
negated(): Decimal;
|
negated(): Decimal;
|
||||||
neg(): Decimal;
|
neg(): Decimal;
|
||||||
|
|
||||||
plus(n: Decimal.Value): Decimal;
|
plus(n: Decimal.Value): Decimal;
|
||||||
add(n: Decimal.Value): Decimal;
|
add(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
precision(includeZeros?: boolean): number;
|
precision(includeZeros?: boolean): number;
|
||||||
sd(includeZeros?: boolean): number;
|
sd(includeZeros?: boolean): number;
|
||||||
|
|
||||||
round(): Decimal;
|
round(): Decimal;
|
||||||
|
|
||||||
sine() : Decimal;
|
sine() : Decimal;
|
||||||
sin() : Decimal;
|
sin() : Decimal;
|
||||||
|
|
||||||
squareRoot(): Decimal;
|
squareRoot(): Decimal;
|
||||||
sqrt(): Decimal;
|
sqrt(): Decimal;
|
||||||
|
|
||||||
tangent() : Decimal;
|
tangent() : Decimal;
|
||||||
tan() : Decimal;
|
tan() : Decimal;
|
||||||
|
|
||||||
times(n: Decimal.Value): Decimal;
|
times(n: Decimal.Value): Decimal;
|
||||||
mul(n: Decimal.Value) : Decimal;
|
mul(n: Decimal.Value) : Decimal;
|
||||||
|
|
||||||
toBinary(significantDigits?: number): string;
|
toBinary(significantDigits?: number): string;
|
||||||
toBinary(significantDigits: number, rounding: Decimal.Rounding): string;
|
toBinary(significantDigits: number, rounding: Decimal.Rounding): string;
|
||||||
|
|
||||||
toDecimalPlaces(decimalPlaces?: number): Decimal;
|
toDecimalPlaces(decimalPlaces?: number): Decimal;
|
||||||
toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal;
|
toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal;
|
||||||
toDP(decimalPlaces?: number): Decimal;
|
toDP(decimalPlaces?: number): Decimal;
|
||||||
toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal;
|
toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal;
|
||||||
|
|
||||||
toExponential(decimalPlaces?: number): string;
|
toExponential(decimalPlaces?: number): string;
|
||||||
toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string;
|
toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string;
|
||||||
|
|
||||||
toFixed(decimalPlaces?: number): string;
|
toFixed(decimalPlaces?: number): string;
|
||||||
toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string;
|
toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string;
|
||||||
|
|
||||||
toFraction(max_denominator?: Decimal.Value): Decimal[];
|
toFraction(max_denominator?: Decimal.Value): Decimal[];
|
||||||
|
|
||||||
toHexadecimal(significantDigits?: number): string;
|
toHexadecimal(significantDigits?: number): string;
|
||||||
toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string;
|
toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string;
|
||||||
toHex(significantDigits?: number): string;
|
toHex(significantDigits?: number): string;
|
||||||
toHex(significantDigits: number, rounding?: Decimal.Rounding): string;
|
toHex(significantDigits: number, rounding?: Decimal.Rounding): string;
|
||||||
|
|
||||||
toJSON(): string;
|
toJSON(): string;
|
||||||
|
|
||||||
toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal;
|
toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal;
|
||||||
|
|
||||||
toNumber(): number;
|
toNumber(): number;
|
||||||
|
|
||||||
toOctal(significantDigits?: number): string;
|
toOctal(significantDigits?: number): string;
|
||||||
toOctal(significantDigits: number, rounding: Decimal.Rounding): string;
|
toOctal(significantDigits: number, rounding: Decimal.Rounding): string;
|
||||||
|
|
||||||
toPower(n: Decimal.Value): Decimal;
|
toPower(n: Decimal.Value): Decimal;
|
||||||
pow(n: Decimal.Value): Decimal;
|
pow(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
toPrecision(significantDigits?: number): string;
|
toPrecision(significantDigits?: number): string;
|
||||||
toPrecision(significantDigits: number, rounding: Decimal.Rounding): string;
|
toPrecision(significantDigits: number, rounding: Decimal.Rounding): string;
|
||||||
|
|
||||||
toSignificantDigits(significantDigits?: number): Decimal;
|
toSignificantDigits(significantDigits?: number): Decimal;
|
||||||
toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal;
|
toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal;
|
||||||
toSD(significantDigits?: number): Decimal;
|
toSD(significantDigits?: number): Decimal;
|
||||||
toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal;
|
toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal;
|
||||||
|
|
||||||
toString(): string;
|
toString(): string;
|
||||||
|
|
||||||
truncated(): Decimal;
|
truncated(): Decimal;
|
||||||
trunc(): Decimal;
|
trunc(): Decimal;
|
||||||
|
|
||||||
valueOf(): string;
|
valueOf(): string;
|
||||||
|
|
||||||
static abs(n: Decimal.Value): Decimal;
|
static abs(n: Decimal.Value): Decimal;
|
||||||
static acos(n: Decimal.Value): Decimal;
|
static acos(n: Decimal.Value): Decimal;
|
||||||
static acosh(n: Decimal.Value): Decimal;
|
static acosh(n: Decimal.Value): Decimal;
|
||||||
static add(x: Decimal.Value, y: Decimal.Value): Decimal;
|
static add(x: Decimal.Value, y: Decimal.Value): Decimal;
|
||||||
static asin(n: Decimal.Value): Decimal;
|
static asin(n: Decimal.Value): Decimal;
|
||||||
static asinh(n: Decimal.Value): Decimal;
|
static asinh(n: Decimal.Value): Decimal;
|
||||||
static atan(n: Decimal.Value): Decimal;
|
static atan(n: Decimal.Value): Decimal;
|
||||||
static atanh(n: Decimal.Value): Decimal;
|
static atanh(n: Decimal.Value): Decimal;
|
||||||
static atan2(y: Decimal.Value, x: Decimal.Value): Decimal;
|
static atan2(y: Decimal.Value, x: Decimal.Value): Decimal;
|
||||||
static cbrt(n: Decimal.Value): Decimal;
|
static cbrt(n: Decimal.Value): Decimal;
|
||||||
static ceil(n: Decimal.Value): Decimal;
|
static ceil(n: Decimal.Value): Decimal;
|
||||||
static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal;
|
static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal;
|
||||||
static clone(object?: Decimal.Config): Decimal.Constructor;
|
static clone(object?: Decimal.Config): Decimal.Constructor;
|
||||||
static config(object: Decimal.Config): Decimal.Constructor;
|
static config(object: Decimal.Config): Decimal.Constructor;
|
||||||
static cos(n: Decimal.Value): Decimal;
|
static cos(n: Decimal.Value): Decimal;
|
||||||
static cosh(n: Decimal.Value): Decimal;
|
static cosh(n: Decimal.Value): Decimal;
|
||||||
static div(x: Decimal.Value, y: Decimal.Value): Decimal;
|
static div(x: Decimal.Value, y: Decimal.Value): Decimal;
|
||||||
static exp(n: Decimal.Value): Decimal;
|
static exp(n: Decimal.Value): Decimal;
|
||||||
static floor(n: Decimal.Value): Decimal;
|
static floor(n: Decimal.Value): Decimal;
|
||||||
static hypot(...n: Decimal.Value[]): Decimal;
|
static hypot(...n: Decimal.Value[]): Decimal;
|
||||||
static isDecimal(object: any): boolean
|
static isDecimal(object: any): boolean
|
||||||
static ln(n: Decimal.Value): Decimal;
|
static ln(n: Decimal.Value): Decimal;
|
||||||
static log(n: Decimal.Value, base?: Decimal.Value): Decimal;
|
static log(n: Decimal.Value, base?: Decimal.Value): Decimal;
|
||||||
static log2(n: Decimal.Value): Decimal;
|
static log2(n: Decimal.Value): Decimal;
|
||||||
static log10(n: Decimal.Value): Decimal;
|
static log10(n: Decimal.Value): Decimal;
|
||||||
static max(...n: Decimal.Value[]): Decimal;
|
static max(...n: Decimal.Value[]): Decimal;
|
||||||
static min(...n: Decimal.Value[]): Decimal;
|
static min(...n: Decimal.Value[]): Decimal;
|
||||||
static mod(x: Decimal.Value, y: Decimal.Value): Decimal;
|
static mod(x: Decimal.Value, y: Decimal.Value): Decimal;
|
||||||
static mul(x: Decimal.Value, y: Decimal.Value): Decimal;
|
static mul(x: Decimal.Value, y: Decimal.Value): Decimal;
|
||||||
static noConflict(): Decimal.Constructor; // Browser only
|
static noConflict(): Decimal.Constructor; // Browser only
|
||||||
static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal;
|
static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal;
|
||||||
static random(significantDigits?: number): Decimal;
|
static random(significantDigits?: number): Decimal;
|
||||||
static round(n: Decimal.Value): Decimal;
|
static round(n: Decimal.Value): Decimal;
|
||||||
static set(object: Decimal.Config): Decimal.Constructor;
|
static set(object: Decimal.Config): Decimal.Constructor;
|
||||||
static sign(n: Decimal.Value): Decimal;
|
static sign(n: Decimal.Value): Decimal;
|
||||||
static sin(n: Decimal.Value): Decimal;
|
static sin(n: Decimal.Value): Decimal;
|
||||||
static sinh(n: Decimal.Value): Decimal;
|
static sinh(n: Decimal.Value): Decimal;
|
||||||
static sqrt(n: Decimal.Value): Decimal;
|
static sqrt(n: Decimal.Value): Decimal;
|
||||||
static sub(x: Decimal.Value, y: Decimal.Value): Decimal;
|
static sub(x: Decimal.Value, y: Decimal.Value): Decimal;
|
||||||
static sum(...n: Decimal.Value[]): Decimal;
|
static sum(...n: Decimal.Value[]): Decimal;
|
||||||
static tan(n: Decimal.Value): Decimal;
|
static tan(n: Decimal.Value): Decimal;
|
||||||
static tanh(n: Decimal.Value): Decimal;
|
static tanh(n: Decimal.Value): Decimal;
|
||||||
static trunc(n: Decimal.Value): Decimal;
|
static trunc(n: Decimal.Value): Decimal;
|
||||||
|
|
||||||
static readonly default?: Decimal.Constructor;
|
static readonly default?: Decimal.Constructor;
|
||||||
static readonly Decimal?: Decimal.Constructor;
|
static readonly Decimal?: Decimal.Constructor;
|
||||||
|
|
||||||
static readonly precision: number;
|
static readonly precision: number;
|
||||||
static readonly rounding: Decimal.Rounding;
|
static readonly rounding: Decimal.Rounding;
|
||||||
static readonly toExpNeg: number;
|
static readonly toExpNeg: number;
|
||||||
static readonly toExpPos: number;
|
static readonly toExpPos: number;
|
||||||
static readonly minE: number;
|
static readonly minE: number;
|
||||||
static readonly maxE: number;
|
static readonly maxE: number;
|
||||||
static readonly crypto: boolean;
|
static readonly crypto: boolean;
|
||||||
static readonly modulo: Decimal.Modulo;
|
static readonly modulo: Decimal.Modulo;
|
||||||
|
|
||||||
static readonly ROUND_UP: 0;
|
static readonly ROUND_UP: 0;
|
||||||
static readonly ROUND_DOWN: 1;
|
static readonly ROUND_DOWN: 1;
|
||||||
static readonly ROUND_CEIL: 2;
|
static readonly ROUND_CEIL: 2;
|
||||||
static readonly ROUND_FLOOR: 3;
|
static readonly ROUND_FLOOR: 3;
|
||||||
static readonly ROUND_HALF_UP: 4;
|
static readonly ROUND_HALF_UP: 4;
|
||||||
static readonly ROUND_HALF_DOWN: 5;
|
static readonly ROUND_HALF_DOWN: 5;
|
||||||
static readonly ROUND_HALF_EVEN: 6;
|
static readonly ROUND_HALF_EVEN: 6;
|
||||||
static readonly ROUND_HALF_CEIL: 7;
|
static readonly ROUND_HALF_CEIL: 7;
|
||||||
static readonly ROUND_HALF_FLOOR: 8;
|
static readonly ROUND_HALF_FLOOR: 8;
|
||||||
static readonly EUCLID: 9;
|
static readonly EUCLID: 9;
|
||||||
}
|
}
|
||||||
|
|||||||
9868
public/novnc/node_modules/decimal.js/decimal.js
generated
vendored
9868
public/novnc/node_modules/decimal.js/decimal.js
generated
vendored
File diff suppressed because it is too large
Load Diff
9796
public/novnc/node_modules/decimal.js/decimal.mjs
generated
vendored
9796
public/novnc/node_modules/decimal.js/decimal.mjs
generated
vendored
File diff suppressed because it is too large
Load Diff
80
public/novnc/node_modules/decimal.js/package.json
generated
vendored
80
public/novnc/node_modules/decimal.js/package.json
generated
vendored
@@ -1,40 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "decimal.js",
|
"name": "decimal.js",
|
||||||
"description": "An arbitrary-precision Decimal type for JavaScript.",
|
"description": "An arbitrary-precision Decimal type for JavaScript.",
|
||||||
"version": "10.3.1",
|
"version": "10.3.1",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"arbitrary",
|
"arbitrary",
|
||||||
"precision",
|
"precision",
|
||||||
"arithmetic",
|
"arithmetic",
|
||||||
"big",
|
"big",
|
||||||
"number",
|
"number",
|
||||||
"decimal",
|
"decimal",
|
||||||
"float",
|
"float",
|
||||||
"biginteger",
|
"biginteger",
|
||||||
"bigdecimal",
|
"bigdecimal",
|
||||||
"bignumber",
|
"bignumber",
|
||||||
"bigint",
|
"bigint",
|
||||||
"bignum"
|
"bignum"
|
||||||
],
|
],
|
||||||
"repository" : {
|
"repository" : {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/MikeMcl/decimal.js.git"
|
"url": "https://github.com/MikeMcl/decimal.js.git"
|
||||||
},
|
},
|
||||||
"main": "decimal",
|
"main": "decimal",
|
||||||
"module": "decimal.mjs",
|
"module": "decimal.mjs",
|
||||||
"browser": "decimal.js",
|
"browser": "decimal.js",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Michael Mclaughlin",
|
"name": "Michael Mclaughlin",
|
||||||
"email": "M8ch88l@gmail.com"
|
"email": "M8ch88l@gmail.com"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "node ./test/test.js"
|
"test": "node ./test/test.js"
|
||||||
},
|
},
|
||||||
"types": "decimal.d.ts",
|
"types": "decimal.d.ts",
|
||||||
"files": [
|
"files": [
|
||||||
"decimal.js",
|
"decimal.js",
|
||||||
"decimal.mjs",
|
"decimal.mjs",
|
||||||
"decimal.d.ts"
|
"decimal.d.ts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
4
public/novnc/node_modules/es-module-loader/.babelrc
generated
vendored
4
public/novnc/node_modules/es-module-loader/.babelrc
generated
vendored
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["transform-async-to-generator"]
|
"plugins": ["transform-async-to-generator"]
|
||||||
}
|
}
|
||||||
24
public/novnc/node_modules/es-module-loader/.jshintrc
generated
vendored
24
public/novnc/node_modules/es-module-loader/.jshintrc
generated
vendored
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"curly": true,
|
"curly": true,
|
||||||
"eqeqeq": true,
|
"eqeqeq": true,
|
||||||
"immed": true,
|
"immed": true,
|
||||||
"latedef": true,
|
"latedef": true,
|
||||||
"newcap": true,
|
"newcap": true,
|
||||||
"noarg": true,
|
"noarg": true,
|
||||||
"sub": true,
|
"sub": true,
|
||||||
"undef": true,
|
"undef": true,
|
||||||
"boss": true,
|
"boss": true,
|
||||||
"eqnull": true
|
"eqnull": true
|
||||||
}
|
}
|
||||||
|
|||||||
24
public/novnc/node_modules/es-module-loader/.travis.yml
generated
vendored
24
public/novnc/node_modules/es-module-loader/.travis.yml
generated
vendored
@@ -1,12 +1,12 @@
|
|||||||
git:
|
git:
|
||||||
depth: 1
|
depth: 1
|
||||||
language: node_js
|
language: node_js
|
||||||
node_js:
|
node_js:
|
||||||
- '4'
|
- '4'
|
||||||
- '6'
|
- '6'
|
||||||
- '7'
|
- '7'
|
||||||
before_install:
|
before_install:
|
||||||
- npm install
|
- npm install
|
||||||
script:
|
script:
|
||||||
- npm run make-test
|
- npm run make-test
|
||||||
- npm run test
|
- npm run test
|
||||||
|
|||||||
44
public/novnc/node_modules/es-module-loader/LICENSE-MIT
generated
vendored
44
public/novnc/node_modules/es-module-loader/LICENSE-MIT
generated
vendored
@@ -1,22 +1,22 @@
|
|||||||
Copyright (c) 2013-2016 Guy Bedford, Peter Uithoven, Luke Hoban, Addy Osmani
|
Copyright (c) 2013-2016 Guy Bedford, Peter Uithoven, Luke Hoban, Addy Osmani
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation
|
obtaining a copy of this software and associated documentation
|
||||||
files (the "Software"), to deal in the Software without
|
files (the "Software"), to deal in the Software without
|
||||||
restriction, including without limitation the rights to use,
|
restriction, including without limitation the rights to use,
|
||||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
copies of the Software, and to permit persons to whom the
|
copies of the Software, and to permit persons to whom the
|
||||||
Software is furnished to do so, subject to the following
|
Software is furnished to do so, subject to the following
|
||||||
conditions:
|
conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
The above copyright notice and this permission notice shall be
|
||||||
included in all copies or substantial portions of the Software.
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
OTHER DEALINGS IN THE SOFTWARE.
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|||||||
552
public/novnc/node_modules/es-module-loader/README.md
generated
vendored
552
public/novnc/node_modules/es-module-loader/README.md
generated
vendored
@@ -1,276 +1,276 @@
|
|||||||
# ES Module Loader Polyfill [![Build Status][travis-image]][travis-url]
|
# ES Module Loader Polyfill [![Build Status][travis-image]][travis-url]
|
||||||
|
|
||||||
Provides [low-level hooks](#registerloader-hooks) for creating ES module loaders, roughly based on the API of the [WhatWG loader spec](https://github.com/whatwg/loader),
|
Provides [low-level hooks](#registerloader-hooks) for creating ES module loaders, roughly based on the API of the [WhatWG loader spec](https://github.com/whatwg/loader),
|
||||||
but with [adjustments](#spec-differences) to match the current proposals for the HTML modules specification, [unspecified WhatWG changes](https://github.com/whatwg/loader/issues/147), and [NodeJS ES module adoption](https://github.com/nodejs/node/issues/8866).
|
but with [adjustments](#spec-differences) to match the current proposals for the HTML modules specification, [unspecified WhatWG changes](https://github.com/whatwg/loader/issues/147), and [NodeJS ES module adoption](https://github.com/nodejs/node/issues/8866).
|
||||||
|
|
||||||
Supports the [loader import and registry API](#base-loader-polyfill-api) with the [System.register](docs/system-register.md) module format to provide exact module loading semantics for ES modules in environments today. In addition, support for the [System.registerDynamic](docs/system-register-dynamic.md) is provided to allow the linking
|
Supports the [loader import and registry API](#base-loader-polyfill-api) with the [System.register](docs/system-register.md) module format to provide exact module loading semantics for ES modules in environments today. In addition, support for the [System.registerDynamic](docs/system-register-dynamic.md) is provided to allow the linking
|
||||||
of module graphs consisting of inter-dependent ES modules and CommonJS modules with their respective semantics retained.
|
of module graphs consisting of inter-dependent ES modules and CommonJS modules with their respective semantics retained.
|
||||||
|
|
||||||
This project aims to provide a fast, minimal, unopinionated loader API on top of which custom loaders can easily be built.
|
This project aims to provide a fast, minimal, unopinionated loader API on top of which custom loaders can easily be built.
|
||||||
|
|
||||||
See the [spec differences](#spec-differences) section for a detailed description of some of the specification decisions made.
|
See the [spec differences](#spec-differences) section for a detailed description of some of the specification decisions made.
|
||||||
|
|
||||||
ES6 Module Loader Polyfill, the previous version of this project was built to the [outdated ES6 loader specification](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and can still be found at the [0.17 branch](https://github.com/ModuleLoader/es-module-loader/tree/0.17).
|
ES6 Module Loader Polyfill, the previous version of this project was built to the [outdated ES6 loader specification](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and can still be found at the [0.17 branch](https://github.com/ModuleLoader/es-module-loader/tree/0.17).
|
||||||
|
|
||||||
### Module Loader Examples
|
### Module Loader Examples
|
||||||
|
|
||||||
Some examples of common use case module loaders built with this project are provided below:
|
Some examples of common use case module loaders built with this project are provided below:
|
||||||
|
|
||||||
- [Browser ES Module Loader](https://github.com/ModuleLoader/browser-es-module-loader):
|
- [Browser ES Module Loader](https://github.com/ModuleLoader/browser-es-module-loader):
|
||||||
A demonstration-only loader to load ES modules in the browser including support for the `<script type="module">` tag as specified in HTML.
|
A demonstration-only loader to load ES modules in the browser including support for the `<script type="module">` tag as specified in HTML.
|
||||||
|
|
||||||
- [Node ES Module Loader](https://github.com/ModuleLoader/node-es-module-loader)
|
- [Node ES Module Loader](https://github.com/ModuleLoader/node-es-module-loader)
|
||||||
Allows loading ES modules with CommonJS interop in Node via `node-esml module/path.js` in line with the current Node
|
Allows loading ES modules with CommonJS interop in Node via `node-esml module/path.js` in line with the current Node
|
||||||
plans for implementing ES modules. Used to run the tests and benchmarks in this project.
|
plans for implementing ES modules. Used to run the tests and benchmarks in this project.
|
||||||
|
|
||||||
- [System Register Loader](https://github.com/ModuleLoader/system-register-loader):
|
- [System Register Loader](https://github.com/ModuleLoader/system-register-loader):
|
||||||
A fast optimized production loader that only loads `System.register` modules, recreating ES module semantics with CSP support.
|
A fast optimized production loader that only loads `System.register` modules, recreating ES module semantics with CSP support.
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
npm install es-module-loader --save-dev
|
npm install es-module-loader --save-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
### Creating a Loader
|
### Creating a Loader
|
||||||
|
|
||||||
This project exposes a public API of ES modules in the `core` folder.
|
This project exposes a public API of ES modules in the `core` folder.
|
||||||
|
|
||||||
The minimal [polyfill loader API](#base-loader-polyfill-api) is provided in `core/loader-polyfill.js`. On top of this main API file is
|
The minimal [polyfill loader API](#base-loader-polyfill-api) is provided in `core/loader-polyfill.js`. On top of this main API file is
|
||||||
`core/register-loader.js` which provides a base loader class with the non-spec `System.register` and `System.registerDynamic` support to enable the exact
|
`core/register-loader.js` which provides a base loader class with the non-spec `System.register` and `System.registerDynamic` support to enable the exact
|
||||||
linking semantics.
|
linking semantics.
|
||||||
|
|
||||||
Helper functions are available in `core/resolve.js` and `core/common.js`. Everything that is exported can be considered
|
Helper functions are available in `core/resolve.js` and `core/common.js`. Everything that is exported can be considered
|
||||||
part of the publicly versioned API of this project.
|
part of the publicly versioned API of this project.
|
||||||
|
|
||||||
Any tool can be used to build the loader distribution file from these core modules - [Rollup](http://rollupjs.org) is used to do these builds in the example loaders above, provided by the `rollup.config.js` file in the example loader repos listed above.
|
Any tool can be used to build the loader distribution file from these core modules - [Rollup](http://rollupjs.org) is used to do these builds in the example loaders above, provided by the `rollup.config.js` file in the example loader repos listed above.
|
||||||
|
|
||||||
### Base Loader Polyfill API
|
### Base Loader Polyfill API
|
||||||
|
|
||||||
The `Loader` and `ModuleNamespace` classes in `core/loader-polyfill.js` provide the basic spec API method shells for a loader instance `loader`:
|
The `Loader` and `ModuleNamespace` classes in `core/loader-polyfill.js` provide the basic spec API method shells for a loader instance `loader`:
|
||||||
|
|
||||||
- *`new Loader()`*: Instantiate a new `loader` instance.
|
- *`new Loader()`*: Instantiate a new `loader` instance.
|
||||||
Defaults to environment baseURI detection in NodeJS and browsers.
|
Defaults to environment baseURI detection in NodeJS and browsers.
|
||||||
- *`loader.import(key [, parentKey])`*: Promise for importing and executing a given module, returning its module instance.
|
- *`loader.import(key [, parentKey])`*: Promise for importing and executing a given module, returning its module instance.
|
||||||
- *`loader.resolve(key [, parentKey])`*: Promise for resolving the idempotent fully-normalized string key for a module.
|
- *`loader.resolve(key [, parentKey])`*: Promise for resolving the idempotent fully-normalized string key for a module.
|
||||||
- *`new ModuleNamespace(bindings)`*: Creates a new module namespace object instance for the given bindings object. The iterable properties
|
- *`new ModuleNamespace(bindings)`*: Creates a new module namespace object instance for the given bindings object. The iterable properties
|
||||||
of the bindings object are created as getters returning the corresponding values from the bindings object.
|
of the bindings object are created as getters returning the corresponding values from the bindings object.
|
||||||
- *`loader.registry.set(resolvedKey, namespace)`*: Set a module namespace into the registry.
|
- *`loader.registry.set(resolvedKey, namespace)`*: Set a module namespace into the registry.
|
||||||
- *`loader.registry.get(resolvedKey)`*: Get a module namespace (if any) from the registry.
|
- *`loader.registry.get(resolvedKey)`*: Get a module namespace (if any) from the registry.
|
||||||
- *`loader.registry.has(resolvedKey)`*: Boolean indicating whether the given key is present in the registry.
|
- *`loader.registry.has(resolvedKey)`*: Boolean indicating whether the given key is present in the registry.
|
||||||
- *`loader.registry.delete(resolvedKey)`*: Removes the given module from the registry (if any), returning true or false.
|
- *`loader.registry.delete(resolvedKey)`*: Removes the given module from the registry (if any), returning true or false.
|
||||||
- *`loader.registry.keys()`*: Function returning the keys iterator for the registry.
|
- *`loader.registry.keys()`*: Function returning the keys iterator for the registry.
|
||||||
- *`loader.registry.values()`*: Function returning the values iterator for the registry.
|
- *`loader.registry.values()`*: Function returning the values iterator for the registry.
|
||||||
- *`loader.registry.entries()`*: Function returning the entries iterator for the registry (keys and values).
|
- *`loader.registry.entries()`*: Function returning the entries iterator for the registry (keys and values).
|
||||||
- *`loader.registry[Symbol.iterator]`*: In supported environments, provides registry entries iteration.
|
- *`loader.registry[Symbol.iterator]`*: In supported environments, provides registry entries iteration.
|
||||||
|
|
||||||
Example of using the base loader API:
|
Example of using the base loader API:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import { Loader, ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
|
import { Loader, ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
|
||||||
|
|
||||||
let loader = new Loader();
|
let loader = new Loader();
|
||||||
|
|
||||||
// override the resolve hook
|
// override the resolve hook
|
||||||
loader[Loader.resolve] = function (key, parent) {
|
loader[Loader.resolve] = function (key, parent) {
|
||||||
// intercept the load of "x"
|
// intercept the load of "x"
|
||||||
if (key === 'x') {
|
if (key === 'x') {
|
||||||
this.registry.set('x', new ModuleNamespace({ some: 'exports' }));
|
this.registry.set('x', new ModuleNamespace({ some: 'exports' }));
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
return Loader.prototype[Loader.resolve](key, parent);
|
return Loader.prototype[Loader.resolve](key, parent);
|
||||||
};
|
};
|
||||||
|
|
||||||
loader.import('x').then(function (m) {
|
loader.import('x').then(function (m) {
|
||||||
console.log(m.some);
|
console.log(m.some);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
### RegisterLoader Hooks
|
### RegisterLoader Hooks
|
||||||
|
|
||||||
Instead of just hooking modules within the resolve hook, the `RegisterLoader` base class provides an instantiate hook
|
Instead of just hooking modules within the resolve hook, the `RegisterLoader` base class provides an instantiate hook
|
||||||
to separate execution from resolution and enable spec linking semantics.
|
to separate execution from resolution and enable spec linking semantics.
|
||||||
|
|
||||||
Implementing a loader on top of the `RegisterLoader` base class involves extending that class and providing these
|
Implementing a loader on top of the `RegisterLoader` base class involves extending that class and providing these
|
||||||
`resolve` and `instantiate` prototype hook methods:
|
`resolve` and `instantiate` prototype hook methods:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import RegisterLoader from 'es-module-loader/core/register-loader.js';
|
import RegisterLoader from 'es-module-loader/core/register-loader.js';
|
||||||
import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
|
import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
|
||||||
|
|
||||||
class MyCustomLoader extends RegisterLoader {
|
class MyCustomLoader extends RegisterLoader {
|
||||||
/*
|
/*
|
||||||
* Constructor
|
* Constructor
|
||||||
* Purely for completeness in this example
|
* Purely for completeness in this example
|
||||||
*/
|
*/
|
||||||
constructor (baseKey) {
|
constructor (baseKey) {
|
||||||
super(baseKey);
|
super(baseKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default resolve hook
|
* Default resolve hook
|
||||||
*
|
*
|
||||||
* The default parent resolution matches the HTML spec module resolution
|
* The default parent resolution matches the HTML spec module resolution
|
||||||
* So super[RegisterLoader.resolve](key, parentKey) will return:
|
* So super[RegisterLoader.resolve](key, parentKey) will return:
|
||||||
* - undefined if "key" is a plain names (eg 'lodash')
|
* - undefined if "key" is a plain names (eg 'lodash')
|
||||||
* - URL resolution if "key" is a relative URL (eg './x' will resolve to parentKey as a URL, or the baseURI)
|
* - URL resolution if "key" is a relative URL (eg './x' will resolve to parentKey as a URL, or the baseURI)
|
||||||
*
|
*
|
||||||
* So relativeResolved becomes either a fully normalized URL or a plain name (|| key) in this example
|
* So relativeResolved becomes either a fully normalized URL or a plain name (|| key) in this example
|
||||||
*/
|
*/
|
||||||
[RegisterLoader.resolve] (key, parentKey) {
|
[RegisterLoader.resolve] (key, parentKey) {
|
||||||
var relativeResolved = super[RegisterLoader.resolve](key, parentKey, metadata) || key;
|
var relativeResolved = super[RegisterLoader.resolve](key, parentKey, metadata) || key;
|
||||||
return relativeResolved;
|
return relativeResolved;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default instantiate hook
|
* Default instantiate hook
|
||||||
*
|
*
|
||||||
* This is one form of instantiate which is to return a ModuleNamespace directly
|
* This is one form of instantiate which is to return a ModuleNamespace directly
|
||||||
* This will result in every module supporting:
|
* This will result in every module supporting:
|
||||||
*
|
*
|
||||||
* import { moduleName } from 'my-module-name';
|
* import { moduleName } from 'my-module-name';
|
||||||
* assert(moduleName === 'my-module-name');
|
* assert(moduleName === 'my-module-name');
|
||||||
*/
|
*/
|
||||||
[RegisterLoader.instantiate] (key) {
|
[RegisterLoader.instantiate] (key) {
|
||||||
return new ModuleNamespace({ moduleName: key });
|
return new ModuleNamespace({ moduleName: key });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The return value of `resolve` is the final key that is set in the registry.
|
The return value of `resolve` is the final key that is set in the registry.
|
||||||
|
|
||||||
The default normalization provided (`super[RegisterLoader.resolve]` above) follows the same approach as the HTML specification for module resolution, whereby _plain module names_ that are not valid URLs, and not starting with `./`, `../` or `/` return `undefined`.
|
The default normalization provided (`super[RegisterLoader.resolve]` above) follows the same approach as the HTML specification for module resolution, whereby _plain module names_ that are not valid URLs, and not starting with `./`, `../` or `/` return `undefined`.
|
||||||
|
|
||||||
So for example `lodash` will return `undefined`, while `./x` will resolve to `[baseURI]/x`. In NodeJS a `file:///` URL is used for the baseURI.
|
So for example `lodash` will return `undefined`, while `./x` will resolve to `[baseURI]/x`. In NodeJS a `file:///` URL is used for the baseURI.
|
||||||
|
|
||||||
#### Instantiate Hook
|
#### Instantiate Hook
|
||||||
|
|
||||||
Using these three types of return values for the `RegisterLoader` instantiate hook,
|
Using these three types of return values for the `RegisterLoader` instantiate hook,
|
||||||
we can recreate ES module semantics interacting with legacy module formats:
|
we can recreate ES module semantics interacting with legacy module formats:
|
||||||
|
|
||||||
##### 1. Instantiating Dynamic Modules via ModuleNamespace
|
##### 1. Instantiating Dynamic Modules via ModuleNamespace
|
||||||
|
|
||||||
If the exact module definition is already known, or loaded through another method (like calling out fully to the Node require in the node-es-module-loader),
|
If the exact module definition is already known, or loaded through another method (like calling out fully to the Node require in the node-es-module-loader),
|
||||||
then the direct module namespace value can be returned from instantiate:
|
then the direct module namespace value can be returned from instantiate:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
|
||||||
import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
|
import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
instantiate (key) {
|
instantiate (key) {
|
||||||
var module = customModuleLoad(key);
|
var module = customModuleLoad(key);
|
||||||
|
|
||||||
return new ModuleNamespace({
|
return new ModuleNamespace({
|
||||||
default: module,
|
default: module,
|
||||||
customExport: 'value'
|
customExport: 'value'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 2. Instantiating ES Modules via System.register
|
##### 2. Instantiating ES Modules via System.register
|
||||||
|
|
||||||
When instantiate returns `undefined`, it is assumed that the module key has already been registered through a
|
When instantiate returns `undefined`, it is assumed that the module key has already been registered through a
|
||||||
`loader.register(key, deps, declare)` call, following the System.register module format.
|
`loader.register(key, deps, declare)` call, following the System.register module format.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
[RegisterLoader.instantate] (key) {
|
[RegisterLoader.instantate] (key) {
|
||||||
// System.register
|
// System.register
|
||||||
this.register(key, ['./dep'], function (_export) {
|
this.register(key, ['./dep'], function (_export) {
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
When using the anonymous form of System.register - `loader.register(deps, declare)`, in order to know
|
When using the anonymous form of System.register - `loader.register(deps, declare)`, in order to know
|
||||||
the context in which it was called, it is necessary to call the `processAnonRegister` method passed to instantiate:
|
the context in which it was called, it is necessary to call the `processAnonRegister` method passed to instantiate:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
[RegisterLoader.instantiate] (key, processAnonRegister) {
|
[RegisterLoader.instantiate] (key, processAnonRegister) {
|
||||||
// System.register
|
// System.register
|
||||||
this.register(deps, declare);
|
this.register(deps, declare);
|
||||||
|
|
||||||
processAnonRegister();
|
processAnonRegister();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The loader can then match the anonymous `System.register` call to correct module in the registry. This is used to support `<script>` loading.
|
The loader can then match the anonymous `System.register` call to correct module in the registry. This is used to support `<script>` loading.
|
||||||
|
|
||||||
> System.register is not designed to be a handwritten module format, and would usually generated from a Babel or TypeScript conversion into the "system"
|
> System.register is not designed to be a handwritten module format, and would usually generated from a Babel or TypeScript conversion into the "system"
|
||||||
module format.
|
module format.
|
||||||
|
|
||||||
##### 3. Instantiating Legacy Modules via System.registerDynamic
|
##### 3. Instantiating Legacy Modules via System.registerDynamic
|
||||||
|
|
||||||
This is identical to the `System.register` process above, only running `loader.registerDynamic` instead of `loader.register`:
|
This is identical to the `System.register` process above, only running `loader.registerDynamic` instead of `loader.register`:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
[RegisterLoader.instantiate] (key, processAnonRegister) {
|
[RegisterLoader.instantiate] (key, processAnonRegister) {
|
||||||
|
|
||||||
// System.registerDynamic CommonJS wrapper format
|
// System.registerDynamic CommonJS wrapper format
|
||||||
this.registerDynamic(['dep'], true, function (require, exports, module) {
|
this.registerDynamic(['dep'], true, function (require, exports, module) {
|
||||||
module.exports = require('dep').y;
|
module.exports = require('dep').y;
|
||||||
});
|
});
|
||||||
|
|
||||||
processAnonRegister();
|
processAnonRegister();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
For more information on the `System.registerDynamic` format [see the format explanation](docs/system-register-dynamic.md).
|
For more information on the `System.registerDynamic` format [see the format explanation](docs/system-register-dynamic.md).
|
||||||
|
|
||||||
### Performance
|
### Performance
|
||||||
|
|
||||||
Some simple benchmarks loading System.register modules are provided in the `bench` folder:
|
Some simple benchmarks loading System.register modules are provided in the `bench` folder:
|
||||||
|
|
||||||
Each test operation includes a new loader class instantiation, `System.register` declarations, binding setup for ES module trees, loading and execution.
|
Each test operation includes a new loader class instantiation, `System.register` declarations, binding setup for ES module trees, loading and execution.
|
||||||
|
|
||||||
Sample results:
|
Sample results:
|
||||||
|
|
||||||
| Test | ES Module Loader 1.3 |
|
| Test | ES Module Loader 1.3 |
|
||||||
| ----------------------------------------- |:--------------------:|
|
| ----------------------------------------- |:--------------------:|
|
||||||
| Importing multiple trees at the same time | 654 ops/sec |
|
| Importing multiple trees at the same time | 654 ops/sec |
|
||||||
| Importing a deep tree of modules | 4,162 ops/sec |
|
| Importing a deep tree of modules | 4,162 ops/sec |
|
||||||
| Importing a single module with deps | 8,817 ops/sec |
|
| Importing a single module with deps | 8,817 ops/sec |
|
||||||
| Importing a single module without deps | 16,536 ops/sec |
|
| Importing a single module without deps | 16,536 ops/sec |
|
||||||
|
|
||||||
### Tracing API
|
### Tracing API
|
||||||
|
|
||||||
When `loader.trace = true` is set, `loader.loads` provides a simple tracing API.
|
When `loader.trace = true` is set, `loader.loads` provides a simple tracing API.
|
||||||
|
|
||||||
Also not in the spec, this allows useful tooling to build on top of the loader.
|
Also not in the spec, this allows useful tooling to build on top of the loader.
|
||||||
|
|
||||||
`loader.loads` is keyed by the module ID, with each record of the form:
|
`loader.loads` is keyed by the module ID, with each record of the form:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
{
|
{
|
||||||
key, // String, key
|
key, // String, key
|
||||||
deps, // Array, unnormalized dependencies
|
deps, // Array, unnormalized dependencies
|
||||||
depMap, // Object, mapping unnormalized dependencies to normalized dependencies
|
depMap, // Object, mapping unnormalized dependencies to normalized dependencies
|
||||||
metadata // Object, exactly as from normalize and instantiate hooks
|
metadata // Object, exactly as from normalize and instantiate hooks
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Spec Differences
|
### Spec Differences
|
||||||
|
|
||||||
The loader API in `core/loader-polyfill.js` matches the API of the current [WhatWG loader](https://whatwg.github.io/loader/) specification as closely as possible, while
|
The loader API in `core/loader-polyfill.js` matches the API of the current [WhatWG loader](https://whatwg.github.io/loader/) specification as closely as possible, while
|
||||||
making a best-effort implementation of the upcoming loader simplification changes as descibred in https://github.com/whatwg/loader/issues/147.
|
making a best-effort implementation of the upcoming loader simplification changes as descibred in https://github.com/whatwg/loader/issues/147.
|
||||||
|
|
||||||
- Default normalization and error handling is implemented as in the HTML specification for module loading. Default normalization follows the HTML specification treatment of module keys as URLs, with plain names ignored by default (effectively erroring unless altering this behaviour through the hooks). Errors are cached in the registry, until the `delete` API method is called for the module that has errored. Resolve and fetch errors throw during the tree instantiation phase, while evaluation errors throw during the evaluation phase, and this is true for cached errors as well in line with the spec - https://github.com/whatwg/html/pull/2595.
|
- Default normalization and error handling is implemented as in the HTML specification for module loading. Default normalization follows the HTML specification treatment of module keys as URLs, with plain names ignored by default (effectively erroring unless altering this behaviour through the hooks). Errors are cached in the registry, until the `delete` API method is called for the module that has errored. Resolve and fetch errors throw during the tree instantiation phase, while evaluation errors throw during the evaluation phase, and this is true for cached errors as well in line with the spec - https://github.com/whatwg/html/pull/2595.
|
||||||
- A direct `ModuleNamespace` constructor is provided over the `Module` mutator proposal in the WhatWG specification.
|
- A direct `ModuleNamespace` constructor is provided over the `Module` mutator proposal in the WhatWG specification.
|
||||||
Instead of storing a registry of `Module.Status` objects, we then store a registry of Module Namespace objects. The reason for this is that asynchronous rejection of registry entries as a source of truth leads to partial inconsistent rejection states
|
Instead of storing a registry of `Module.Status` objects, we then store a registry of Module Namespace objects. The reason for this is that asynchronous rejection of registry entries as a source of truth leads to partial inconsistent rejection states
|
||||||
(it is possible for the tick between the rejection of one load and its parent to have to deal with an overlapping in-progress tree),
|
(it is possible for the tick between the rejection of one load and its parent to have to deal with an overlapping in-progress tree),
|
||||||
so in order to have a predictable load error rejection process, loads are only stored in the registry as fully-linked Namespace objects
|
so in order to have a predictable load error rejection process, loads are only stored in the registry as fully-linked Namespace objects
|
||||||
and not ModuleStatus objects as promises for Namespace objects. The custom private `ModuleNamespace` constructor is used over the `Module.Status` proposal to ensure a stable API instead of tracking in-progress specification work.
|
and not ModuleStatus objects as promises for Namespace objects. The custom private `ModuleNamespace` constructor is used over the `Module.Status` proposal to ensure a stable API instead of tracking in-progress specification work.
|
||||||
- Linking between module formats does not use [zebra striping anymore](https://github.com/ModuleLoader/es6-module-loader/blob/v0.17.0/docs/circular-references-bindings.md#zebra-striping), but rather relies on linking the whole graph in deterministic order for each module format down the tree as is planned for NodeJS. This is made possible by the [dynamic modules TC39 proposal](https://github.com/caridy/proposal-dynamic-modules) which allows the export named bindings to only be determined at evaluation time for CommonJS modules. We do not currently provide tracking of circular references across module format boundaries so these will hang indefinitely like writing an infinite loop.
|
- Linking between module formats does not use [zebra striping anymore](https://github.com/ModuleLoader/es6-module-loader/blob/v0.17.0/docs/circular-references-bindings.md#zebra-striping), but rather relies on linking the whole graph in deterministic order for each module format down the tree as is planned for NodeJS. This is made possible by the [dynamic modules TC39 proposal](https://github.com/caridy/proposal-dynamic-modules) which allows the export named bindings to only be determined at evaluation time for CommonJS modules. We do not currently provide tracking of circular references across module format boundaries so these will hang indefinitely like writing an infinite loop.
|
||||||
- `Loader` is available as a named export from `core/loader-polyfill.js` but is not by default exported to the `global.Reflect` object.
|
- `Loader` is available as a named export from `core/loader-polyfill.js` but is not by default exported to the `global.Reflect` object.
|
||||||
This is to allow individual loader implementations to determine their own impact on the environment.
|
This is to allow individual loader implementations to determine their own impact on the environment.
|
||||||
- A constructor argument is added to the loader that takes the environment `baseKey` to be used as the default normalization parent.
|
- A constructor argument is added to the loader that takes the environment `baseKey` to be used as the default normalization parent.
|
||||||
- The `RegisterLoader` splits up the `resolve` hook into `resolve` and `instantiate`. The [WhatWG reduced specification proposal](https://github.com/whatwg/loader/issues/147) to remove the loader hooks implies having a single `resolve` hook by having the module set into the registry using the `registry.set` API as a side-effect of resolution to allow custom interception as in the first loader example above. As discussed in https://github.com/whatwg/loader/issues/147#issuecomment-230407764, this may cause unwanted execution of modules when only resolution is needed via `loader.resolve` calls, so the approach taken in the `RegisterLoader` is to implement separate `resolve` and `instantiate` hooks.
|
- The `RegisterLoader` splits up the `resolve` hook into `resolve` and `instantiate`. The [WhatWG reduced specification proposal](https://github.com/whatwg/loader/issues/147) to remove the loader hooks implies having a single `resolve` hook by having the module set into the registry using the `registry.set` API as a side-effect of resolution to allow custom interception as in the first loader example above. As discussed in https://github.com/whatwg/loader/issues/147#issuecomment-230407764, this may cause unwanted execution of modules when only resolution is needed via `loader.resolve` calls, so the approach taken in the `RegisterLoader` is to implement separate `resolve` and `instantiate` hooks.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Licensed under the MIT license.
|
Licensed under the MIT license.
|
||||||
|
|
||||||
[travis-url]: https://travis-ci.org/ModuleLoader/es-module-loader
|
[travis-url]: https://travis-ci.org/ModuleLoader/es-module-loader
|
||||||
[travis-image]: https://travis-ci.org/ModuleLoader/es-module-loader.svg?branch=master
|
[travis-image]: https://travis-ci.org/ModuleLoader/es-module-loader.svg?branch=master
|
||||||
|
|||||||
1546
public/novnc/node_modules/es-module-loader/bench/1-register-loading.js
generated
vendored
1546
public/novnc/node_modules/es-module-loader/bench/1-register-loading.js
generated
vendored
File diff suppressed because it is too large
Load Diff
42
public/novnc/node_modules/es-module-loader/bench/2-url-resolution.js
generated
vendored
42
public/novnc/node_modules/es-module-loader/bench/2-url-resolution.js
generated
vendored
@@ -1,21 +1,21 @@
|
|||||||
import { resolveIfNotPlain } from '../core/resolve.js';
|
import { resolveIfNotPlain } from '../core/resolve.js';
|
||||||
|
|
||||||
var cases = [
|
var cases = [
|
||||||
['./x', 'https://www.google.com'],
|
['./x', 'https://www.google.com'],
|
||||||
['./x', 'https://www.google.com/asdf'],
|
['./x', 'https://www.google.com/asdf'],
|
||||||
['./x', 'file:///asdf'],
|
['./x', 'file:///asdf'],
|
||||||
['./x', 'https://www.google.com'],
|
['./x', 'https://www.google.com'],
|
||||||
['./x', 'https://www.google.com'],
|
['./x', 'https://www.google.com'],
|
||||||
['..\\..\\', 'file:///C:/some/path'],
|
['..\\..\\', 'file:///C:/some/path'],
|
||||||
['../../asdf', 'data://asdf/asdf/asdf/asdf/asdf/asdf'],
|
['../../asdf', 'data://asdf/asdf/asdf/asdf/asdf/asdf'],
|
||||||
['//asdf/asdf', 'file://asdf/asdf/asdf'],
|
['//asdf/asdf', 'file://asdf/asdf/asdf'],
|
||||||
['/asdfasd', 'https://www.google.com/rterasdf/asdf/as/dfa/sdf/asdf/asdfadf'],
|
['/asdfasd', 'https://www.google.com/rterasdf/asdf/as/dfa/sdf/asdf/asdfadf'],
|
||||||
['a:b', 'b:c'],
|
['a:b', 'b:c'],
|
||||||
['//asdfasdf', 'b:c']
|
['//asdfasdf', 'b:c']
|
||||||
];
|
];
|
||||||
|
|
||||||
var results = [];
|
var results = [];
|
||||||
suite.add('Resolve', function() {
|
suite.add('Resolve', function() {
|
||||||
for (var i = 0; i < cases.length; i++)
|
for (var i = 0; i < cases.length; i++)
|
||||||
results.push(resolveIfNotPlain(cases[i][0], cases[i][1]));
|
results.push(resolveIfNotPlain(cases[i][0], cases[i][1]));
|
||||||
});
|
});
|
||||||
|
|||||||
94
public/novnc/node_modules/es-module-loader/bench/runner.js
generated
vendored
94
public/novnc/node_modules/es-module-loader/bench/runner.js
generated
vendored
@@ -1,47 +1,47 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import Benchmark from 'benchmark';
|
import Benchmark from 'benchmark';
|
||||||
|
|
||||||
var benchmarks = fs.readdirSync('bench').filter(function(testName) {
|
var benchmarks = fs.readdirSync('bench').filter(function(testName) {
|
||||||
return testName != 'runner.js' && testName.endsWith('.js')
|
return testName != 'runner.js' && testName.endsWith('.js')
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('unhandledRejection', function (e) {
|
process.on('unhandledRejection', function (e) {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
throw e;
|
throw e;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function runNextBenchmark() {
|
function runNextBenchmark() {
|
||||||
var nextBenchmark = benchmarks.shift();
|
var nextBenchmark = benchmarks.shift();
|
||||||
|
|
||||||
if (!nextBenchmark)
|
if (!nextBenchmark)
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
|
||||||
global.suite = new Benchmark.Suite;
|
global.suite = new Benchmark.Suite;
|
||||||
|
|
||||||
console.log('--- ' + nextBenchmark.substr(0, nextBenchmark.length - 3) + ' ---');
|
console.log('--- ' + nextBenchmark.substr(0, nextBenchmark.length - 3) + ' ---');
|
||||||
|
|
||||||
return loader.import(path.resolve('bench/' + nextBenchmark))
|
return loader.import(path.resolve('bench/' + nextBenchmark))
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
suite.on('cycle', function(event) {
|
suite.on('cycle', function(event) {
|
||||||
console.log(event.target.error ? event.target.error : String(event.target));
|
console.log(event.target.error ? event.target.error : String(event.target));
|
||||||
});
|
});
|
||||||
|
|
||||||
suite.on('complete', function(event) {
|
suite.on('complete', function(event) {
|
||||||
console.log('Fastest is ' + this.filter('fastest').map('name') + '\n');
|
console.log('Fastest is ' + this.filter('fastest').map('name') + '\n');
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
|
|
||||||
suite.on('error', reject);
|
suite.on('error', reject);
|
||||||
|
|
||||||
suite.run({ defer: true });
|
suite.run({ defer: true });
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return runNextBenchmark();
|
return runNextBenchmark();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
runNextBenchmark();
|
runNextBenchmark();
|
||||||
|
|||||||
204
public/novnc/node_modules/es-module-loader/core/common.js
generated
vendored
204
public/novnc/node_modules/es-module-loader/core/common.js
generated
vendored
@@ -1,102 +1,102 @@
|
|||||||
/*
|
/*
|
||||||
* Environment
|
* Environment
|
||||||
*/
|
*/
|
||||||
export var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
|
export var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
|
||||||
export var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
|
export var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
|
||||||
export var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);
|
export var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);
|
||||||
|
|
||||||
var envGlobal = typeof self !== 'undefined' ? self : global;
|
var envGlobal = typeof self !== 'undefined' ? self : global;
|
||||||
export { envGlobal as global }
|
export { envGlobal as global }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Simple Symbol() shim
|
* Simple Symbol() shim
|
||||||
*/
|
*/
|
||||||
var hasSymbol = typeof Symbol !== 'undefined';
|
var hasSymbol = typeof Symbol !== 'undefined';
|
||||||
export function createSymbol (name) {
|
export function createSymbol (name) {
|
||||||
return hasSymbol ? Symbol() : '@@' + name;
|
return hasSymbol ? Symbol() : '@@' + name;
|
||||||
}
|
}
|
||||||
|
|
||||||
export var toStringTag = hasSymbol && Symbol.toStringTag;
|
export var toStringTag = hasSymbol && Symbol.toStringTag;
|
||||||
|
|
||||||
export function pathToFileUrl (filePath) {
|
export function pathToFileUrl (filePath) {
|
||||||
return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\/g, '/') : filePath);
|
return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\/g, '/') : filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fileUrlToPath (fileUrl) {
|
export function fileUrlToPath (fileUrl) {
|
||||||
if (fileUrl.substr(0, 7) !== 'file://')
|
if (fileUrl.substr(0, 7) !== 'file://')
|
||||||
throw new RangeError(fileUrl + ' is not a valid file url');
|
throw new RangeError(fileUrl + ' is not a valid file url');
|
||||||
if (isWindows)
|
if (isWindows)
|
||||||
return fileUrl.substr(8).replace(/\\/g, '/');
|
return fileUrl.substr(8).replace(/\\/g, '/');
|
||||||
else
|
else
|
||||||
return fileUrl.substr(7);
|
return fileUrl.substr(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Environment baseURI
|
* Environment baseURI
|
||||||
*/
|
*/
|
||||||
export var baseURI;
|
export var baseURI;
|
||||||
|
|
||||||
// environent baseURI detection
|
// environent baseURI detection
|
||||||
if (typeof document != 'undefined' && document.getElementsByTagName) {
|
if (typeof document != 'undefined' && document.getElementsByTagName) {
|
||||||
baseURI = document.baseURI;
|
baseURI = document.baseURI;
|
||||||
|
|
||||||
if (!baseURI) {
|
if (!baseURI) {
|
||||||
var bases = document.getElementsByTagName('base');
|
var bases = document.getElementsByTagName('base');
|
||||||
baseURI = bases[0] && bases[0].href || window.location.href;
|
baseURI = bases[0] && bases[0].href || window.location.href;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (typeof location != 'undefined') {
|
else if (typeof location != 'undefined') {
|
||||||
baseURI = location.href;
|
baseURI = location.href;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sanitize out the hash and querystring
|
// sanitize out the hash and querystring
|
||||||
if (baseURI) {
|
if (baseURI) {
|
||||||
baseURI = baseURI.split('#')[0].split('?')[0];
|
baseURI = baseURI.split('#')[0].split('?')[0];
|
||||||
var slashIndex = baseURI.lastIndexOf('/');
|
var slashIndex = baseURI.lastIndexOf('/');
|
||||||
if (slashIndex !== -1)
|
if (slashIndex !== -1)
|
||||||
baseURI = baseURI.substr(0, slashIndex + 1);
|
baseURI = baseURI.substr(0, slashIndex + 1);
|
||||||
}
|
}
|
||||||
else if (typeof process !== 'undefined' && process.cwd) {
|
else if (typeof process !== 'undefined' && process.cwd) {
|
||||||
baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();
|
baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();
|
||||||
if (isWindows)
|
if (isWindows)
|
||||||
baseURI = baseURI.replace(/\\/g, '/');
|
baseURI = baseURI.replace(/\\/g, '/');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new TypeError('No environment baseURI');
|
throw new TypeError('No environment baseURI');
|
||||||
}
|
}
|
||||||
|
|
||||||
// ensure baseURI has trailing "/"
|
// ensure baseURI has trailing "/"
|
||||||
if (baseURI[baseURI.length - 1] !== '/')
|
if (baseURI[baseURI.length - 1] !== '/')
|
||||||
baseURI += '/';
|
baseURI += '/';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LoaderError with chaining for loader stacks
|
* LoaderError with chaining for loader stacks
|
||||||
*/
|
*/
|
||||||
var errArgs = new Error(0, '_').fileName == '_';
|
var errArgs = new Error(0, '_').fileName == '_';
|
||||||
function LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {
|
function LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {
|
||||||
// Convert file:/// URLs to paths in Node
|
// Convert file:/// URLs to paths in Node
|
||||||
if (!isBrowser)
|
if (!isBrowser)
|
||||||
newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
|
newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
|
||||||
|
|
||||||
var message = (childErr.message || childErr) + '\n ' + newMessage;
|
var message = (childErr.message || childErr) + '\n ' + newMessage;
|
||||||
|
|
||||||
var err;
|
var err;
|
||||||
if (errArgs && childErr.fileName)
|
if (errArgs && childErr.fileName)
|
||||||
err = new Error(message, childErr.fileName, childErr.lineNumber);
|
err = new Error(message, childErr.fileName, childErr.lineNumber);
|
||||||
else
|
else
|
||||||
err = new Error(message);
|
err = new Error(message);
|
||||||
|
|
||||||
|
|
||||||
var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;
|
var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;
|
||||||
|
|
||||||
if (isNode)
|
if (isNode)
|
||||||
// node doesn't show the message otherwise
|
// node doesn't show the message otherwise
|
||||||
err.stack = message + '\n ' + stack;
|
err.stack = message + '\n ' + stack;
|
||||||
else
|
else
|
||||||
err.stack = stack;
|
err.stack = stack;
|
||||||
|
|
||||||
err.originalErr = childErr.originalErr || childErr;
|
err.originalErr = childErr.originalErr || childErr;
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
export { LoaderError__Check_error_message_for_loader_stack as addToError }
|
export { LoaderError__Check_error_message_for_loader_stack as addToError }
|
||||||
|
|||||||
544
public/novnc/node_modules/es-module-loader/core/loader-polyfill.js
generated
vendored
544
public/novnc/node_modules/es-module-loader/core/loader-polyfill.js
generated
vendored
@@ -1,272 +1,272 @@
|
|||||||
import { addToError, createSymbol, toStringTag } from './common.js';
|
import { addToError, createSymbol, toStringTag } from './common.js';
|
||||||
|
|
||||||
export { Loader, ModuleNamespace, REGISTRY }
|
export { Loader, ModuleNamespace, REGISTRY }
|
||||||
|
|
||||||
var resolvedPromise = Promise.resolve();
|
var resolvedPromise = Promise.resolve();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Simple Array values shim
|
* Simple Array values shim
|
||||||
*/
|
*/
|
||||||
function arrayValues (arr) {
|
function arrayValues (arr) {
|
||||||
if (arr.values)
|
if (arr.values)
|
||||||
return arr.values();
|
return arr.values();
|
||||||
|
|
||||||
if (typeof Symbol === 'undefined' || !Symbol.iterator)
|
if (typeof Symbol === 'undefined' || !Symbol.iterator)
|
||||||
throw new Error('Symbol.iterator not supported in this browser');
|
throw new Error('Symbol.iterator not supported in this browser');
|
||||||
|
|
||||||
var iterable = {};
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function () {
|
iterable[Symbol.iterator] = function () {
|
||||||
var keys = Object.keys(arr);
|
var keys = Object.keys(arr);
|
||||||
var keyIndex = 0;
|
var keyIndex = 0;
|
||||||
return {
|
return {
|
||||||
next: function () {
|
next: function () {
|
||||||
if (keyIndex < keys.length)
|
if (keyIndex < keys.length)
|
||||||
return {
|
return {
|
||||||
value: arr[keys[keyIndex++]],
|
value: arr[keys[keyIndex++]],
|
||||||
done: false
|
done: false
|
||||||
};
|
};
|
||||||
else
|
else
|
||||||
return {
|
return {
|
||||||
value: undefined,
|
value: undefined,
|
||||||
done: true
|
done: true
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
return iterable;
|
return iterable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 3. Reflect.Loader
|
* 3. Reflect.Loader
|
||||||
*
|
*
|
||||||
* We skip the entire native internal pipeline, just providing the bare API
|
* We skip the entire native internal pipeline, just providing the bare API
|
||||||
*/
|
*/
|
||||||
// 3.1.1
|
// 3.1.1
|
||||||
function Loader () {
|
function Loader () {
|
||||||
this.registry = new Registry();
|
this.registry = new Registry();
|
||||||
}
|
}
|
||||||
// 3.3.1
|
// 3.3.1
|
||||||
Loader.prototype.constructor = Loader;
|
Loader.prototype.constructor = Loader;
|
||||||
|
|
||||||
function ensureInstantiated (module) {
|
function ensureInstantiated (module) {
|
||||||
if (module === undefined)
|
if (module === undefined)
|
||||||
return;
|
return;
|
||||||
if (module instanceof ModuleNamespace === false && module[toStringTag] !== 'module')
|
if (module instanceof ModuleNamespace === false && module[toStringTag] !== 'module')
|
||||||
throw new TypeError('Module instantiation did not return a valid namespace object.');
|
throw new TypeError('Module instantiation did not return a valid namespace object.');
|
||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3.3.2
|
// 3.3.2
|
||||||
Loader.prototype.import = function (key, parent) {
|
Loader.prototype.import = function (key, parent) {
|
||||||
if (typeof key !== 'string')
|
if (typeof key !== 'string')
|
||||||
throw new TypeError('Loader import method must be passed a module key string');
|
throw new TypeError('Loader import method must be passed a module key string');
|
||||||
// custom resolveInstantiate combined hook for better perf
|
// custom resolveInstantiate combined hook for better perf
|
||||||
var loader = this;
|
var loader = this;
|
||||||
return resolvedPromise
|
return resolvedPromise
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return loader[RESOLVE_INSTANTIATE](key, parent);
|
return loader[RESOLVE_INSTANTIATE](key, parent);
|
||||||
})
|
})
|
||||||
.then(ensureInstantiated)
|
.then(ensureInstantiated)
|
||||||
//.then(Module.evaluate)
|
//.then(Module.evaluate)
|
||||||
.catch(function (err) {
|
.catch(function (err) {
|
||||||
throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
// 3.3.3
|
// 3.3.3
|
||||||
var RESOLVE = Loader.resolve = createSymbol('resolve');
|
var RESOLVE = Loader.resolve = createSymbol('resolve');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Combined resolve / instantiate hook
|
* Combined resolve / instantiate hook
|
||||||
*
|
*
|
||||||
* Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described
|
* Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described
|
||||||
* in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.
|
* in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.
|
||||||
*
|
*
|
||||||
* We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid
|
* We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid
|
||||||
* the need for double registry lookups as a performance optimization.
|
* the need for double registry lookups as a performance optimization.
|
||||||
*/
|
*/
|
||||||
var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');
|
var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');
|
||||||
|
|
||||||
// default resolveInstantiate is just to call resolve and then get from the registry
|
// default resolveInstantiate is just to call resolve and then get from the registry
|
||||||
// this provides compatibility for the resolveInstantiate optimization
|
// this provides compatibility for the resolveInstantiate optimization
|
||||||
Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {
|
Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {
|
||||||
var loader = this;
|
var loader = this;
|
||||||
return loader.resolve(key, parent)
|
return loader.resolve(key, parent)
|
||||||
.then(function (resolved) {
|
.then(function (resolved) {
|
||||||
return loader.registry.get(resolved);
|
return loader.registry.get(resolved);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function ensureResolution (resolvedKey) {
|
function ensureResolution (resolvedKey) {
|
||||||
if (resolvedKey === undefined)
|
if (resolvedKey === undefined)
|
||||||
throw new RangeError('No resolution found.');
|
throw new RangeError('No resolution found.');
|
||||||
return resolvedKey;
|
return resolvedKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader.prototype.resolve = function (key, parent) {
|
Loader.prototype.resolve = function (key, parent) {
|
||||||
var loader = this;
|
var loader = this;
|
||||||
return resolvedPromise
|
return resolvedPromise
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return loader[RESOLVE](key, parent);
|
return loader[RESOLVE](key, parent);
|
||||||
})
|
})
|
||||||
.then(ensureResolution)
|
.then(ensureResolution)
|
||||||
.catch(function (err) {
|
.catch(function (err) {
|
||||||
throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));
|
throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 3.3.4 (import without evaluate)
|
// 3.3.4 (import without evaluate)
|
||||||
// this is not documented because the use of deferred evaluation as in Module.evaluate is not
|
// this is not documented because the use of deferred evaluation as in Module.evaluate is not
|
||||||
// documented, as it is not considered a stable feature to be encouraged
|
// documented, as it is not considered a stable feature to be encouraged
|
||||||
// Loader.prototype.load may well be deprecated if this stays disabled
|
// Loader.prototype.load may well be deprecated if this stays disabled
|
||||||
/* Loader.prototype.load = function (key, parent) {
|
/* Loader.prototype.load = function (key, parent) {
|
||||||
return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))
|
return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))
|
||||||
.catch(function (err) {
|
.catch(function (err) {
|
||||||
throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
||||||
});
|
});
|
||||||
}; */
|
}; */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 4. Registry
|
* 4. Registry
|
||||||
*
|
*
|
||||||
* Instead of structuring through a Map, just use a dictionary object
|
* Instead of structuring through a Map, just use a dictionary object
|
||||||
* We throw for construction attempts so this doesn't affect the public API
|
* We throw for construction attempts so this doesn't affect the public API
|
||||||
*
|
*
|
||||||
* Registry has been adjusted to use Namespace objects over ModuleStatus objects
|
* Registry has been adjusted to use Namespace objects over ModuleStatus objects
|
||||||
* as part of simplifying loader API implementation
|
* as part of simplifying loader API implementation
|
||||||
*/
|
*/
|
||||||
var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;
|
var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;
|
||||||
var REGISTRY = createSymbol('registry');
|
var REGISTRY = createSymbol('registry');
|
||||||
function Registry() {
|
function Registry() {
|
||||||
this[REGISTRY] = {};
|
this[REGISTRY] = {};
|
||||||
}
|
}
|
||||||
// 4.4.1
|
// 4.4.1
|
||||||
if (iteratorSupport) {
|
if (iteratorSupport) {
|
||||||
// 4.4.2
|
// 4.4.2
|
||||||
Registry.prototype[Symbol.iterator] = function () {
|
Registry.prototype[Symbol.iterator] = function () {
|
||||||
return this.entries()[Symbol.iterator]();
|
return this.entries()[Symbol.iterator]();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 4.4.3
|
// 4.4.3
|
||||||
Registry.prototype.entries = function () {
|
Registry.prototype.entries = function () {
|
||||||
var registry = this[REGISTRY];
|
var registry = this[REGISTRY];
|
||||||
return arrayValues(Object.keys(registry).map(function (key) {
|
return arrayValues(Object.keys(registry).map(function (key) {
|
||||||
return [key, registry[key]];
|
return [key, registry[key]];
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4.4.4
|
// 4.4.4
|
||||||
Registry.prototype.keys = function () {
|
Registry.prototype.keys = function () {
|
||||||
return arrayValues(Object.keys(this[REGISTRY]));
|
return arrayValues(Object.keys(this[REGISTRY]));
|
||||||
};
|
};
|
||||||
// 4.4.5
|
// 4.4.5
|
||||||
Registry.prototype.values = function () {
|
Registry.prototype.values = function () {
|
||||||
var registry = this[REGISTRY];
|
var registry = this[REGISTRY];
|
||||||
return arrayValues(Object.keys(registry).map(function (key) {
|
return arrayValues(Object.keys(registry).map(function (key) {
|
||||||
return registry[key];
|
return registry[key];
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
// 4.4.6
|
// 4.4.6
|
||||||
Registry.prototype.get = function (key) {
|
Registry.prototype.get = function (key) {
|
||||||
return this[REGISTRY][key];
|
return this[REGISTRY][key];
|
||||||
};
|
};
|
||||||
// 4.4.7
|
// 4.4.7
|
||||||
Registry.prototype.set = function (key, namespace) {
|
Registry.prototype.set = function (key, namespace) {
|
||||||
if (!(namespace instanceof ModuleNamespace || namespace[toStringTag] === 'module'))
|
if (!(namespace instanceof ModuleNamespace || namespace[toStringTag] === 'module'))
|
||||||
throw new Error('Registry must be set with an instance of Module Namespace');
|
throw new Error('Registry must be set with an instance of Module Namespace');
|
||||||
this[REGISTRY][key] = namespace;
|
this[REGISTRY][key] = namespace;
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
// 4.4.8
|
// 4.4.8
|
||||||
Registry.prototype.has = function (key) {
|
Registry.prototype.has = function (key) {
|
||||||
return Object.hasOwnProperty.call(this[REGISTRY], key);
|
return Object.hasOwnProperty.call(this[REGISTRY], key);
|
||||||
};
|
};
|
||||||
// 4.4.9
|
// 4.4.9
|
||||||
Registry.prototype.delete = function (key) {
|
Registry.prototype.delete = function (key) {
|
||||||
if (Object.hasOwnProperty.call(this[REGISTRY], key)) {
|
if (Object.hasOwnProperty.call(this[REGISTRY], key)) {
|
||||||
delete this[REGISTRY][key];
|
delete this[REGISTRY][key];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Simple ModuleNamespace Exotic object based on a baseObject
|
* Simple ModuleNamespace Exotic object based on a baseObject
|
||||||
* We export this for allowing a fast-path for module namespace creation over Module descriptors
|
* We export this for allowing a fast-path for module namespace creation over Module descriptors
|
||||||
*/
|
*/
|
||||||
// var EVALUATE = createSymbol('evaluate');
|
// var EVALUATE = createSymbol('evaluate');
|
||||||
var BASE_OBJECT = createSymbol('baseObject');
|
var BASE_OBJECT = createSymbol('baseObject');
|
||||||
|
|
||||||
// 8.3.1 Reflect.Module
|
// 8.3.1 Reflect.Module
|
||||||
/*
|
/*
|
||||||
* Best-effort simplified non-spec implementation based on
|
* Best-effort simplified non-spec implementation based on
|
||||||
* a baseObject referenced via getters.
|
* a baseObject referenced via getters.
|
||||||
*
|
*
|
||||||
* Allows:
|
* Allows:
|
||||||
*
|
*
|
||||||
* loader.registry.set('x', new Module({ default: 'x' }));
|
* loader.registry.set('x', new Module({ default: 'x' }));
|
||||||
*
|
*
|
||||||
* Optional evaluation function provides experimental Module.evaluate
|
* Optional evaluation function provides experimental Module.evaluate
|
||||||
* support for non-executed modules in registry.
|
* support for non-executed modules in registry.
|
||||||
*/
|
*/
|
||||||
function ModuleNamespace (baseObject/*, evaluate*/) {
|
function ModuleNamespace (baseObject/*, evaluate*/) {
|
||||||
Object.defineProperty(this, BASE_OBJECT, {
|
Object.defineProperty(this, BASE_OBJECT, {
|
||||||
value: baseObject
|
value: baseObject
|
||||||
});
|
});
|
||||||
|
|
||||||
// evaluate defers namespace population
|
// evaluate defers namespace population
|
||||||
/* if (evaluate) {
|
/* if (evaluate) {
|
||||||
Object.defineProperty(this, EVALUATE, {
|
Object.defineProperty(this, EVALUATE, {
|
||||||
value: evaluate,
|
value: evaluate,
|
||||||
configurable: true,
|
configurable: true,
|
||||||
writable: true
|
writable: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else { */
|
else { */
|
||||||
Object.keys(baseObject).forEach(extendNamespace, this);
|
Object.keys(baseObject).forEach(extendNamespace, this);
|
||||||
//}
|
//}
|
||||||
};
|
};
|
||||||
// 8.4.2
|
// 8.4.2
|
||||||
ModuleNamespace.prototype = Object.create(null);
|
ModuleNamespace.prototype = Object.create(null);
|
||||||
|
|
||||||
if (toStringTag)
|
if (toStringTag)
|
||||||
Object.defineProperty(ModuleNamespace.prototype, toStringTag, {
|
Object.defineProperty(ModuleNamespace.prototype, toStringTag, {
|
||||||
value: 'Module'
|
value: 'Module'
|
||||||
});
|
});
|
||||||
|
|
||||||
function extendNamespace (key) {
|
function extendNamespace (key) {
|
||||||
Object.defineProperty(this, key, {
|
Object.defineProperty(this, key, {
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: function () {
|
get: function () {
|
||||||
return this[BASE_OBJECT][key];
|
return this[BASE_OBJECT][key];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/* function doEvaluate (evaluate, context) {
|
/* function doEvaluate (evaluate, context) {
|
||||||
try {
|
try {
|
||||||
evaluate.call(context);
|
evaluate.call(context);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable
|
// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable
|
||||||
Module.evaluate = function (ns) {
|
Module.evaluate = function (ns) {
|
||||||
var evaluate = ns[EVALUATE];
|
var evaluate = ns[EVALUATE];
|
||||||
if (evaluate) {
|
if (evaluate) {
|
||||||
ns[EVALUATE] = undefined;
|
ns[EVALUATE] = undefined;
|
||||||
var err = doEvaluate(evaluate);
|
var err = doEvaluate(evaluate);
|
||||||
if (err) {
|
if (err) {
|
||||||
// cache the error
|
// cache the error
|
||||||
ns[EVALUATE] = function () {
|
ns[EVALUATE] = function () {
|
||||||
throw err;
|
throw err;
|
||||||
};
|
};
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);
|
Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);
|
||||||
}
|
}
|
||||||
// make chainable
|
// make chainable
|
||||||
return ns;
|
return ns;
|
||||||
}; */
|
}; */
|
||||||
|
|||||||
1446
public/novnc/node_modules/es-module-loader/core/register-loader.js
generated
vendored
1446
public/novnc/node_modules/es-module-loader/core/register-loader.js
generated
vendored
File diff suppressed because it is too large
Load Diff
256
public/novnc/node_modules/es-module-loader/core/resolve.js
generated
vendored
256
public/novnc/node_modules/es-module-loader/core/resolve.js
generated
vendored
@@ -1,128 +1,128 @@
|
|||||||
import { isNode } from './common.js';
|
import { isNode } from './common.js';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Optimized URL normalization assuming a syntax-valid URL parent
|
* Optimized URL normalization assuming a syntax-valid URL parent
|
||||||
*/
|
*/
|
||||||
function throwResolveError (relUrl, parentUrl) {
|
function throwResolveError (relUrl, parentUrl) {
|
||||||
throw new RangeError('Unable to resolve "' + relUrl + '" to ' + parentUrl);
|
throw new RangeError('Unable to resolve "' + relUrl + '" to ' + parentUrl);
|
||||||
}
|
}
|
||||||
var backslashRegEx = /\\/g;
|
var backslashRegEx = /\\/g;
|
||||||
export function resolveIfNotPlain (relUrl, parentUrl) {
|
export function resolveIfNotPlain (relUrl, parentUrl) {
|
||||||
if (relUrl[0] === ' ' || relUrl[relUrl.length - 1] === ' ')
|
if (relUrl[0] === ' ' || relUrl[relUrl.length - 1] === ' ')
|
||||||
relUrl = relUrl.trim();
|
relUrl = relUrl.trim();
|
||||||
var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);
|
var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);
|
||||||
|
|
||||||
var firstChar = relUrl[0];
|
var firstChar = relUrl[0];
|
||||||
var secondChar = relUrl[1];
|
var secondChar = relUrl[1];
|
||||||
|
|
||||||
// protocol-relative
|
// protocol-relative
|
||||||
if (firstChar === '/' && secondChar === '/') {
|
if (firstChar === '/' && secondChar === '/') {
|
||||||
if (!parentProtocol)
|
if (!parentProtocol)
|
||||||
throwResolveError(relUrl, parentUrl);
|
throwResolveError(relUrl, parentUrl);
|
||||||
if (relUrl.indexOf('\\') !== -1)
|
if (relUrl.indexOf('\\') !== -1)
|
||||||
relUrl = relUrl.replace(backslashRegEx, '/');
|
relUrl = relUrl.replace(backslashRegEx, '/');
|
||||||
return parentProtocol + relUrl;
|
return parentProtocol + relUrl;
|
||||||
}
|
}
|
||||||
// relative-url
|
// relative-url
|
||||||
else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
|
else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
|
||||||
relUrl.length === 1 && (relUrl += '/')) ||
|
relUrl.length === 1 && (relUrl += '/')) ||
|
||||||
firstChar === '/') {
|
firstChar === '/') {
|
||||||
if (relUrl.indexOf('\\') !== -1)
|
if (relUrl.indexOf('\\') !== -1)
|
||||||
relUrl = relUrl.replace(backslashRegEx, '/');
|
relUrl = relUrl.replace(backslashRegEx, '/');
|
||||||
var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';
|
var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';
|
||||||
|
|
||||||
// read pathname from parent if a URL
|
// read pathname from parent if a URL
|
||||||
// pathname taken to be part after leading "/"
|
// pathname taken to be part after leading "/"
|
||||||
var pathname;
|
var pathname;
|
||||||
if (parentIsPlain) {
|
if (parentIsPlain) {
|
||||||
// resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname
|
// resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname
|
||||||
if (parentUrl === undefined)
|
if (parentUrl === undefined)
|
||||||
throwResolveError(relUrl, parentUrl);
|
throwResolveError(relUrl, parentUrl);
|
||||||
pathname = parentUrl;
|
pathname = parentUrl;
|
||||||
}
|
}
|
||||||
else if (parentUrl[parentProtocol.length + 1] === '/') {
|
else if (parentUrl[parentProtocol.length + 1] === '/') {
|
||||||
// resolving to a :// so we need to read out the auth and host
|
// resolving to a :// so we need to read out the auth and host
|
||||||
if (parentProtocol !== 'file:') {
|
if (parentProtocol !== 'file:') {
|
||||||
pathname = parentUrl.substr(parentProtocol.length + 2);
|
pathname = parentUrl.substr(parentProtocol.length + 2);
|
||||||
pathname = pathname.substr(pathname.indexOf('/') + 1);
|
pathname = pathname.substr(pathname.indexOf('/') + 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pathname = parentUrl.substr(8);
|
pathname = parentUrl.substr(8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// resolving to :/ so pathname is the /... part
|
// resolving to :/ so pathname is the /... part
|
||||||
pathname = parentUrl.substr(parentProtocol.length + 1);
|
pathname = parentUrl.substr(parentProtocol.length + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firstChar === '/') {
|
if (firstChar === '/') {
|
||||||
if (parentIsPlain)
|
if (parentIsPlain)
|
||||||
throwResolveError(relUrl, parentUrl);
|
throwResolveError(relUrl, parentUrl);
|
||||||
else
|
else
|
||||||
return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;
|
return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// join together and split for removal of .. and . segments
|
// join together and split for removal of .. and . segments
|
||||||
// looping the string instead of anything fancy for perf reasons
|
// looping the string instead of anything fancy for perf reasons
|
||||||
// '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain
|
// '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain
|
||||||
var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;
|
var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;
|
||||||
|
|
||||||
var output = [];
|
var output = [];
|
||||||
var segmentIndex = -1;
|
var segmentIndex = -1;
|
||||||
|
|
||||||
for (var i = 0; i < segmented.length; i++) {
|
for (var i = 0; i < segmented.length; i++) {
|
||||||
// busy reading a segment - only terminate on '/'
|
// busy reading a segment - only terminate on '/'
|
||||||
if (segmentIndex !== -1) {
|
if (segmentIndex !== -1) {
|
||||||
if (segmented[i] === '/') {
|
if (segmented[i] === '/') {
|
||||||
output.push(segmented.substring(segmentIndex, i + 1));
|
output.push(segmented.substring(segmentIndex, i + 1));
|
||||||
segmentIndex = -1;
|
segmentIndex = -1;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// new segment - check if it is relative
|
// new segment - check if it is relative
|
||||||
if (segmented[i] === '.') {
|
if (segmented[i] === '.') {
|
||||||
// ../ segment
|
// ../ segment
|
||||||
if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
|
if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
|
||||||
output.pop();
|
output.pop();
|
||||||
i += 2;
|
i += 2;
|
||||||
}
|
}
|
||||||
// ./ segment
|
// ./ segment
|
||||||
else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
|
else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// the start of a new segment as below
|
// the start of a new segment as below
|
||||||
segmentIndex = i;
|
segmentIndex = i;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is the plain URI backtracking error (../, package:x -> error)
|
// this is the plain URI backtracking error (../, package:x -> error)
|
||||||
if (parentIsPlain && output.length === 0)
|
if (parentIsPlain && output.length === 0)
|
||||||
throwResolveError(relUrl, parentUrl);
|
throwResolveError(relUrl, parentUrl);
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// it is the start of a new segment
|
// it is the start of a new segment
|
||||||
segmentIndex = i;
|
segmentIndex = i;
|
||||||
}
|
}
|
||||||
// finish reading out the last segment
|
// finish reading out the last segment
|
||||||
if (segmentIndex !== -1)
|
if (segmentIndex !== -1)
|
||||||
output.push(segmented.substr(segmentIndex));
|
output.push(segmented.substr(segmentIndex));
|
||||||
|
|
||||||
return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');
|
return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
// sanitizes and verifies (by returning undefined if not a valid URL-like form)
|
// sanitizes and verifies (by returning undefined if not a valid URL-like form)
|
||||||
// Windows filepath compatibility is an added convenience here
|
// Windows filepath compatibility is an added convenience here
|
||||||
var protocolIndex = relUrl.indexOf(':');
|
var protocolIndex = relUrl.indexOf(':');
|
||||||
if (protocolIndex !== -1) {
|
if (protocolIndex !== -1) {
|
||||||
if (isNode) {
|
if (isNode) {
|
||||||
// C:\x becomes file:///c:/x (we don't support C|\x)
|
// C:\x becomes file:///c:/x (we don't support C|\x)
|
||||||
if (relUrl[1] === ':' && relUrl[2] === '\\' && relUrl[0].match(/[a-z]/i))
|
if (relUrl[1] === ':' && relUrl[2] === '\\' && relUrl[0].match(/[a-z]/i))
|
||||||
return 'file:///' + relUrl.replace(backslashRegEx, '/');
|
return 'file:///' + relUrl.replace(backslashRegEx, '/');
|
||||||
}
|
}
|
||||||
return relUrl;
|
return relUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
80
public/novnc/node_modules/es-module-loader/docs/system-register-dynamic.md
generated
vendored
80
public/novnc/node_modules/es-module-loader/docs/system-register-dynamic.md
generated
vendored
@@ -1,40 +1,40 @@
|
|||||||
### System.registerDynamic
|
### System.registerDynamic
|
||||||
|
|
||||||
Like [System.register](system-register.md), `System.registerDynamic` is a wrapper format to ensure the exact linking
|
Like [System.register](system-register.md), `System.registerDynamic` is a wrapper format to ensure the exact linking
|
||||||
semantics of modules in all environments, such that it can wrap CommonJS, AMD and global modules.
|
semantics of modules in all environments, such that it can wrap CommonJS, AMD and global modules.
|
||||||
|
|
||||||
Babel transforms can be used to convert these formats into `System.registerDynamic`. Currently the existing
|
Babel transforms can be used to convert these formats into `System.registerDynamic`. Currently the existing
|
||||||
transforms are still coupled to SystemJS as they rely on special helper functions and modules in SystemJS,
|
transforms are still coupled to SystemJS as they rely on special helper functions and modules in SystemJS,
|
||||||
but the goal is to make these fully independent transformers in future:
|
but the goal is to make these fully independent transformers in future:
|
||||||
|
|
||||||
* CommonJS: [babel-plugin-transform-cjs-system-wrapper](https://github.com/systemjs/babel-plugin-transform-cjs-system-wrapper)
|
* CommonJS: [babel-plugin-transform-cjs-system-wrapper](https://github.com/systemjs/babel-plugin-transform-cjs-system-wrapper)
|
||||||
* AMD: [babel-plugin-transform-amd-system-wrapper](https://github.com/jrauschenbusch/babel-plugin-transform-amd-system-wrapper)
|
* AMD: [babel-plugin-transform-amd-system-wrapper](https://github.com/jrauschenbusch/babel-plugin-transform-amd-system-wrapper)
|
||||||
* Global: [babel-plugin-transform-global-system-wrapper](https://github.com/systemjs/babel-plugin-transform-global-system-wrapper)
|
* Global: [babel-plugin-transform-global-system-wrapper](https://github.com/systemjs/babel-plugin-transform-global-system-wrapper)
|
||||||
|
|
||||||
Like `System.register`, `System.registerDynamic` has both an anonymous and named form, by making the first string key argument
|
Like `System.register`, `System.registerDynamic` has both an anonymous and named form, by making the first string key argument
|
||||||
optional. This allows it to work as both a bundle transport format and a wrapper.
|
optional. This allows it to work as both a bundle transport format and a wrapper.
|
||||||
|
|
||||||
The format of `System.registerDynamic` is designed to closely match CommonJS:
|
The format of `System.registerDynamic` is designed to closely match CommonJS:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
System.registerDynamic('optional-name', ['unnormalized-dependency'], true, function (require, exports, module) {
|
System.registerDynamic('optional-name', ['unnormalized-dependency'], true, function (require, exports, module) {
|
||||||
// require is executing - the dependency is only executed when we hit this require
|
// require is executing - the dependency is only executed when we hit this require
|
||||||
// Note that we can only require modules that have already been declared through the dependencies
|
// Note that we can only require modules that have already been declared through the dependencies
|
||||||
// array above. This is because synchronous module instantiation is not supported in the loader.
|
// array above. This is because synchronous module instantiation is not supported in the loader.
|
||||||
var dep = require('unnormalized-dependency');
|
var dep = require('unnormalized-dependency');
|
||||||
|
|
||||||
// named exports
|
// named exports
|
||||||
exports.someExport = 'export';
|
exports.someExport = 'export';
|
||||||
// Like CommonJS, "this" is the module.exports
|
// Like CommonJS, "this" is the module.exports
|
||||||
this.export = 'another';
|
this.export = 'another';
|
||||||
|
|
||||||
// module.id can be read as a string (but it is a file:/// URL)
|
// module.id can be read as a string (but it is a file:/// URL)
|
||||||
var thisModuleKey = module.id;
|
var thisModuleKey = module.id;
|
||||||
|
|
||||||
// module exports object can even be set directly
|
// module exports object can even be set directly
|
||||||
module.exports = 'can even assign module exports';
|
module.exports = 'can even assign module exports';
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
The resultant `ModuleNamespace` object is taken to be the object with the `default` export equal to the `module.exports` value
|
The resultant `ModuleNamespace` object is taken to be the object with the `default` export equal to the `module.exports` value
|
||||||
from the CommonJS module, with this property set to the exports object from the beginning of the linking phase.
|
from the CommonJS module, with this property set to the exports object from the beginning of the linking phase.
|
||||||
|
|||||||
302
public/novnc/node_modules/es-module-loader/docs/system-register.md
generated
vendored
302
public/novnc/node_modules/es-module-loader/docs/system-register.md
generated
vendored
@@ -1,152 +1,152 @@
|
|||||||
### What it is
|
### What it is
|
||||||
|
|
||||||
System.register can be considered as a new module format designed to support the exact semantics of ES6 modules within ES5.
|
System.register can be considered as a new module format designed to support the exact semantics of ES6 modules within ES5.
|
||||||
It is a format that was developed out of collaboration and is supported as a module output in Traceur (as _instantiate_),
|
It is a format that was developed out of collaboration and is supported as a module output in Traceur (as _instantiate_),
|
||||||
Babel and TypeScript (as _system_). All dynamic binding and circular reference behaviors supported by ES6 modules are supported
|
Babel and TypeScript (as _system_). All dynamic binding and circular reference behaviors supported by ES6 modules are supported
|
||||||
by this format. In this way it acts as a safe and comprehensive target format for the polyfill path into ES6 modules.
|
by this format. In this way it acts as a safe and comprehensive target format for the polyfill path into ES6 modules.
|
||||||
|
|
||||||
To run the format, a suitable loader implementation needs to be used that understands how to execute it. Currently these include
|
To run the format, a suitable loader implementation needs to be used that understands how to execute it. Currently these include
|
||||||
[SystemJS](https://github.com/systemjs/systemjs), [SystemJS Self-Executing Bundles](https://github.com/systemjs/builder#sfx-bundles)
|
[SystemJS](https://github.com/systemjs/systemjs), [SystemJS Self-Executing Bundles](https://github.com/systemjs/builder#sfx-bundles)
|
||||||
and [ES6 Micro Loader](https://github.com/caridy/es6-micro-loader). The ES6 Module Loader polyfill also uses this format
|
and [ES6 Micro Loader](https://github.com/caridy/es6-micro-loader). The ES6 Module Loader polyfill also uses this format
|
||||||
internally when transpiling and executing ES6.
|
internally when transpiling and executing ES6.
|
||||||
|
|
||||||
#### Bundled vs On-Demand
|
#### Bundled vs On-Demand
|
||||||
|
|
||||||
Just like AMD define, System.register can be both named and anonymous.
|
Just like AMD define, System.register can be both named and anonymous.
|
||||||
|
|
||||||
When a module name string is provided as the first argument in the `System.register` call, the format is suitable for
|
When a module name string is provided as the first argument in the `System.register` call, the format is suitable for
|
||||||
naming multiple modules in the same JS file creating a bundle format.
|
naming multiple modules in the same JS file creating a bundle format.
|
||||||
|
|
||||||
When files are separately compiled, with only one `System.register` call per module, the name should not be set.
|
When files are separately compiled, with only one `System.register` call per module, the name should not be set.
|
||||||
This allows the importing environment to name the module into whatever namespace it likes without imposing a specific
|
This allows the importing environment to name the module into whatever namespace it likes without imposing a specific
|
||||||
schema for maximum portability.
|
schema for maximum portability.
|
||||||
|
|
||||||
### How it works
|
### How it works
|
||||||
|
|
||||||
When compiling ES6 modules to ES5, the Traceur `instantiate` output and Babel `system` output generates something like the following:
|
When compiling ES6 modules to ES5, the Traceur `instantiate` output and Babel `system` output generates something like the following:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import { p as q } from './dep';
|
import { p as q } from './dep';
|
||||||
|
|
||||||
var s = 'local';
|
var s = 'local';
|
||||||
|
|
||||||
export function func() {
|
export function func() {
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class C {
|
export class C {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
->
|
->
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
System.register(['./dep'], function($__export, $__moduleContext) {
|
System.register(['./dep'], function($__export, $__moduleContext) {
|
||||||
var s, C, q;
|
var s, C, q;
|
||||||
function func() {
|
function func() {
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
$__export('func', func);
|
$__export('func', func);
|
||||||
return {
|
return {
|
||||||
setters: [
|
setters: [
|
||||||
// every time a dependency updates an export,
|
// every time a dependency updates an export,
|
||||||
// this function is called to update the local binding
|
// this function is called to update the local binding
|
||||||
// the setter array matches up with the dependency array above
|
// the setter array matches up with the dependency array above
|
||||||
function(m) {
|
function(m) {
|
||||||
q = m.p;
|
q = m.p;
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
execute: function() {
|
execute: function() {
|
||||||
// use the export function to update the exports of this module
|
// use the export function to update the exports of this module
|
||||||
s = 'local';
|
s = 'local';
|
||||||
$__export('C', C = $traceurRuntime.createClass(...));
|
$__export('C', C = $traceurRuntime.createClass(...));
|
||||||
var moduleName = $__moduleContext.id;
|
var moduleName = $__moduleContext.id;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
Initial exports and changes to exports are pushed through the setter function, `$__export`. Values of dependencies and
|
Initial exports and changes to exports are pushed through the setter function, `$__export`. Values of dependencies and
|
||||||
changes to dependency bindings are set through the dependency setters, `setters`, corresponding to the `$__export` calls of dependencies.
|
changes to dependency bindings are set through the dependency setters, `setters`, corresponding to the `$__export` calls of dependencies.
|
||||||
|
|
||||||
Functions and variables get hoisted into the declaration scope. This outer function sets up all the bindings,
|
Functions and variables get hoisted into the declaration scope. This outer function sets up all the bindings,
|
||||||
and the execution is entirely separated from this process. Hoisted functions are immediately exported.
|
and the execution is entirely separated from this process. Hoisted functions are immediately exported.
|
||||||
All of the modules in the tree first run this first function setting up all the bindings.
|
All of the modules in the tree first run this first function setting up all the bindings.
|
||||||
Then we separately run all the execution functions left to right from the bottom of the tree ending at circular references.
|
Then we separately run all the execution functions left to right from the bottom of the tree ending at circular references.
|
||||||
|
|
||||||
In this way we get the live binding and circular reference support exactly as expected by the spec,
|
In this way we get the live binding and circular reference support exactly as expected by the spec,
|
||||||
while supporting ES3 environments for the module syntax conversion.
|
while supporting ES3 environments for the module syntax conversion.
|
||||||
|
|
||||||
#### Why the System.register name
|
#### Why the System.register name
|
||||||
|
|
||||||
Since `System` is the loader name, `System.register` is a function that allows us to _define_ a module directly into the loader instance.
|
Since `System` is the loader name, `System.register` is a function that allows us to _define_ a module directly into the loader instance.
|
||||||
|
|
||||||
Note that the loader name is not fixed and can be changed here. For example to `SystemJS.register` in the case of bundling for SystemJS.
|
Note that the loader name is not fixed and can be changed here. For example to `SystemJS.register` in the case of bundling for SystemJS.
|
||||||
|
|
||||||
When code is executed, we only need to assume that `System` is in the scope of execution.
|
When code is executed, we only need to assume that `System` is in the scope of execution.
|
||||||
|
|
||||||
This then has the same advantages of the AMD `define` function in that it is a CSP-compatible output mechanism, allowing support
|
This then has the same advantages of the AMD `define` function in that it is a CSP-compatible output mechanism, allowing support
|
||||||
in environments where _eval_ is not supported, which would be necessary for other types of plain script outputs.
|
in environments where _eval_ is not supported, which would be necessary for other types of plain script outputs.
|
||||||
|
|
||||||
#### Why deferred execution
|
#### Why deferred execution
|
||||||
|
|
||||||
The use of `return { setters: ..., execute: ... }` is done instead of direct execution to allow bindings to be fully propogated
|
The use of `return { setters: ..., execute: ... }` is done instead of direct execution to allow bindings to be fully propogated
|
||||||
through the module tree before running execution functions. This separation of setting up bindings, and then running execution
|
through the module tree before running execution functions. This separation of setting up bindings, and then running execution
|
||||||
allows us to match the exact ES module execution semantics.
|
allows us to match the exact ES module execution semantics.
|
||||||
|
|
||||||
This enables supporting the edge cases of for example:
|
This enables supporting the edge cases of for example:
|
||||||
|
|
||||||
a.js
|
a.js
|
||||||
```javascript
|
```javascript
|
||||||
import {b} from './b.js';
|
import {b} from './b.js';
|
||||||
export function a() {
|
export function a() {
|
||||||
b();
|
b();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
b.js
|
b.js
|
||||||
```javascript
|
```javascript
|
||||||
import {a} from './a.js';
|
import {a} from './a.js';
|
||||||
export function b() {
|
export function b() {
|
||||||
console.log('b');
|
console.log('b');
|
||||||
}
|
}
|
||||||
a();
|
a();
|
||||||
```
|
```
|
||||||
|
|
||||||
If a.js is imported first, then b.js will execute first. In ES module execution, b.js will successfully call the function export
|
If a.js is imported first, then b.js will execute first. In ES module execution, b.js will successfully call the function export
|
||||||
from a.js before a.js has even executed since function bindings are setup before execution. This is supported fully by
|
from a.js before a.js has even executed since function bindings are setup before execution. This is supported fully by
|
||||||
the deferred loading step in this System.register approach.
|
the deferred loading step in this System.register approach.
|
||||||
|
|
||||||
It can be argued that this full support of ES module circular references is unnecessary. There is minimal additional performance
|
It can be argued that this full support of ES module circular references is unnecessary. There is minimal additional performance
|
||||||
cost to this extra return statement though and it ensures that during the transition period where ES modules and traditional
|
cost to this extra return statement though and it ensures that during the transition period where ES modules and traditional
|
||||||
environments are running side-by-side, that the best parity is provided between the systems.
|
environments are running side-by-side, that the best parity is provided between the systems.
|
||||||
|
|
||||||
#### Bulk exports
|
#### Bulk exports
|
||||||
|
|
||||||
The `$__export` function above can also be used to export multiple exports at the same time:
|
The `$__export` function above can also be used to export multiple exports at the same time:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
$__export({ key: 'value', another: 'value' });
|
$__export({ key: 'value', another: 'value' });
|
||||||
```
|
```
|
||||||
|
|
||||||
This is useful for performance of deep re-exports where unnecessary setter operations can be avoided, otherwise setter performance
|
This is useful for performance of deep re-exports where unnecessary setter operations can be avoided, otherwise setter performance
|
||||||
grows quadratically with the `export *` tree depth, and can cause noticable slowdowns on large trees.
|
grows quadratically with the `export *` tree depth, and can cause noticable slowdowns on large trees.
|
||||||
|
|
||||||
#### Metadata
|
#### Metadata
|
||||||
|
|
||||||
The next iteration of this format will include support for ES6 module meta information through a new
|
The next iteration of this format will include support for ES6 module meta information through a new
|
||||||
System.register argument as soon as the specification for this is proposed.
|
System.register argument as soon as the specification for this is proposed.
|
||||||
|
|
||||||
### Limitations
|
### Limitations
|
||||||
|
|
||||||
The main limitation with authoring in this format and transitioning to ES6 is if unresolved exports exist such as:
|
The main limitation with authoring in this format and transitioning to ES6 is if unresolved exports exist such as:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import {p} from 'q';
|
import {p} from 'q';
|
||||||
```
|
```
|
||||||
|
|
||||||
Where module `q` does not export a `p` at all.
|
Where module `q` does not export a `p` at all.
|
||||||
|
|
||||||
This code will run in the System.register output but not in ES6 environments.
|
This code will run in the System.register output but not in ES6 environments.
|
||||||
|
|
||||||
While this format can be adjusted to handle the SyntaxErrors that get thrown when an imported name does not exist, for performance and code-size constraints this is not provided. Ideally static checking via tooling should catch these issues rather.
|
While this format can be adjusted to handle the SyntaxErrors that get thrown when an imported name does not exist, for performance and code-size constraints this is not provided. Ideally static checking via tooling should catch these issues rather.
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user