make network, authkey menu; begining to work in bhyve, sources and bases
870
php/clonos.php
@@ -5,7 +5,6 @@ class Config
|
||||
public $languages=array(
|
||||
'en'=>'English',
|
||||
'ru'=>'Russian',
|
||||
'de'=>'Deutch',
|
||||
);
|
||||
|
||||
/* Меню проекта */
|
||||
@@ -14,76 +13,165 @@ class Config
|
||||
'overview'=>array(
|
||||
'name'=>'Overview',
|
||||
'title'=>'Summary Overview', // заголовки лучше делать более полными, чем просто повторение пункта меню
|
||||
'icon'=>'icon-chart-bar',
|
||||
),
|
||||
'jailscontainers'=>array(
|
||||
'name'=>'Jails containers',
|
||||
'title'=>'Jails containers control panel',
|
||||
'icon'=>'icon-server',
|
||||
),
|
||||
|
||||
'instance_jail'=>array(
|
||||
'name'=>'Template for jail',
|
||||
'title'=>'Helpers and wizard for containers',
|
||||
'icon'=>'icon-cubes',
|
||||
),
|
||||
|
||||
'bhyvevms'=>array(
|
||||
'name'=>'Bhyve VMs',
|
||||
'title'=>'Virtual machine control panel',
|
||||
'icon'=>'icon-th-list',
|
||||
),
|
||||
|
||||
'nodes'=>array(
|
||||
'name'=>'Nodes',
|
||||
'title'=>'Nodes control panel',
|
||||
'icon'=>'icon-buffer',
|
||||
),
|
||||
|
||||
'vpnet'=>array(
|
||||
'name'=>'Virtual Private Network',
|
||||
'title'=>'Manage for virtual private networks',
|
||||
'icon'=>'icon-plug',
|
||||
),
|
||||
|
||||
'authkey'=>array(
|
||||
'name'=>'Authkey',
|
||||
'name'=>'Authkeys',
|
||||
'title'=>'Manage for SSH auth key',
|
||||
'icon'=>'icon-key',
|
||||
),
|
||||
|
||||
'media'=>array(
|
||||
'name'=>'Storage Media',
|
||||
'title'=>'Virtual Media Manager',
|
||||
'icon'=>'icon-inbox',
|
||||
),
|
||||
|
||||
'repo'=>array(
|
||||
'name'=>'Repository',
|
||||
'title'=>'Remote repository',
|
||||
'icon'=>'icon-globe',
|
||||
),
|
||||
|
||||
'bases'=>array(
|
||||
'name'=>'FreeBSD Bases',
|
||||
'title'=>'FreeBSD bases manager',
|
||||
'icon'=>'icon-database',
|
||||
),
|
||||
|
||||
'sources'=>array(
|
||||
'name'=>'FreeBSD Sources',
|
||||
'title'=>'FreeBSD sources manager',
|
||||
'icon'=>'icon-edit',
|
||||
),
|
||||
|
||||
'jail_marketplace'=>array(
|
||||
'name'=>'Jail Marketplace',
|
||||
'title'=>'Public remote containers marketplace',
|
||||
'icon'=>'icon-flag',
|
||||
),
|
||||
|
||||
'bhyve_marketplace'=>array(
|
||||
'name'=>'Bhyve Marketplace',
|
||||
'title'=>'Public remote virtual machine marketplace',
|
||||
'icon'=>'icon-flag-checkered',
|
||||
),
|
||||
|
||||
'tasklog'=>array(
|
||||
'name'=>'TaskLog',
|
||||
'title'=>'System task log',
|
||||
'icon'=>'icon-list-alt',
|
||||
),
|
||||
|
||||
'sqlite'=>array(
|
||||
'name'=>'SQLite admin',
|
||||
'title'=>'SQLite admin interface',
|
||||
'icon'=>'icon-wpforms',
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
public $os_types=array(
|
||||
array(
|
||||
'os'=>'FreeBSD',
|
||||
'items'=>array(
|
||||
array('name'=>'FreeBSD 11.0-RELEASE','type'=>'freebsd',
|
||||
'profile'=>'FreeBSD-x64-11.0','obtain'=>true),
|
||||
array('name'=>'FreeBSD pfSense 2.4.0-DEVELOP','type'=>'freebsd',
|
||||
'profile'=>'pfSense-2-LATEST-amd64','obtain'=>false),
|
||||
array('name'=>'FreeBSD OPNsense-16.7','type'=>'freebsd',
|
||||
'profile'=>'OPNsense-16-RELEASE-amd64','obtain'=>false),
|
||||
),
|
||||
),
|
||||
array(
|
||||
'os'=>'Linux',
|
||||
'items'=>array(
|
||||
array('name'=>'Linux Arch 2016','type'=>'linux',
|
||||
'profile'=>'ArchLinux-x86-2016','obtain'=>false),
|
||||
array('name'=>'Linux CentOS 7','type'=>'linux',
|
||||
'profile'=>'CentOS-7-x86_64','obtain'=>false),
|
||||
array('name'=>'Linux Debian 7','type'=>'linux',
|
||||
'profile'=>'Debian-x86-7','obtain'=>false),
|
||||
array('name'=>'Linux Debian 8','type'=>'linux',
|
||||
'profile'=>'Debian-x86-8','obtain'=>false),
|
||||
array('name'=>'Linux Open Suse 42','type'=>'linux',
|
||||
'profile'=>'opensuse-x86-42','obtain'=>false),
|
||||
array('name'=>'Linux Ubuntu 16.04','type'=>'linux',
|
||||
'profile'=>'ubuntuserver-x86-16.04','obtain'=>true),
|
||||
),
|
||||
),
|
||||
array(
|
||||
'os'=>'Windows',
|
||||
'items'=>array(
|
||||
array('name'=>'Windows 10','type'=>'windows',
|
||||
'profile'=>'10_86x_64x','obtain'=>false),
|
||||
),
|
||||
)
|
||||
);
|
||||
function os_types_create($obtain='new')
|
||||
{
|
||||
$obtain=($obtain=='obtain');
|
||||
|
||||
$html='';
|
||||
foreach($this->os_types as $num1=>$os)
|
||||
{
|
||||
$obtain_count=0;
|
||||
$html_tmp=' <optgroup label="'.$os['os'].'">'.PHP_EOL;
|
||||
$items=$os['items'];
|
||||
foreach($items as $num2=>$item)
|
||||
{
|
||||
if(!$obtain || $item['obtain'])
|
||||
$html_tmp.=' <option value="'.$num1.'.'.$num2.'">'.$item['name'].'</option>'.PHP_EOL;
|
||||
if($item['obtain']) $obtain_count++;
|
||||
}
|
||||
$html_tmp.=' </optgroup>'.PHP_EOL;
|
||||
|
||||
if(!$obtain || $obtain_count>0) $html.=$html_tmp;
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
|
||||
|
||||
function authkeys_list()
|
||||
{
|
||||
$db=new Db('base','authkey');
|
||||
$res=$db->select('SELECT idx,name FROM authkey;');
|
||||
|
||||
$html='';
|
||||
if(!empty($res))foreach($res as $item)
|
||||
{
|
||||
$html.=' <option value="'.$item['idx'].'">'.$item['name'].'</option>'.PHP_EOL;
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
16
php/menu.php
@@ -33,7 +33,7 @@ class Menu
|
||||
public $path='';
|
||||
public $first_key=array();
|
||||
|
||||
function __construct($menu_config=array())
|
||||
function __construct($menu_config=array(),$parent)
|
||||
{
|
||||
if(!empty($menu_config))
|
||||
{
|
||||
@@ -47,8 +47,8 @@ class Menu
|
||||
$this->path=$qstr; //$_MENU_PATH
|
||||
if(!empty($menu_config))foreach($menu_config as $key=>$val)
|
||||
{
|
||||
$mname=get_translate($val['name']);
|
||||
$mtitle=get_translate($val['title']);
|
||||
$mname=$parent->translate($val['name']);
|
||||
$mtitle=$parent->translate($val['title']);
|
||||
|
||||
$link=$key;
|
||||
$sel='';
|
||||
@@ -57,14 +57,18 @@ class Menu
|
||||
$this->title=$mtitle; //$_TITLE
|
||||
$this->name=$mname; //$_MENU_NAME
|
||||
}
|
||||
$this->html.=' <li><a href="/'.$link.'/" title="'.$mtitle.'"'.$sel.'>'.$mname.'</a>';
|
||||
|
||||
$icon='empty';
|
||||
if(isset($val['icon']) && !empty($val['icon'])) $icon=$val['icon'];
|
||||
$span='<span class="'.$icon.'"></span>';
|
||||
$this->html.=' <li><a href="/'.$link.'/" title="'.$mtitle.'"'.$sel.'>'.$span.'<span class="mtxt">'.$mname.'</span></a>';
|
||||
if(!empty($val['submenu']))
|
||||
{
|
||||
$this->html.= PHP_EOL.' <ul class="submenu">'.PHP_EOL;
|
||||
foreach($val['submenu'] as $k=>$s)
|
||||
{
|
||||
$sname=get_translate($s['name']);
|
||||
$stitle=get_translate($s['title']);
|
||||
$sname=$parent->translate($s['name']);
|
||||
$stitle=$parent->translate($s['title']);
|
||||
|
||||
$slink=$link.'/'.$k;
|
||||
$sl=$link.'_'.$k;
|
||||
|
||||
680
public/css/styles-old.css
Normal file
@@ -0,0 +1,680 @@
|
||||
html {
|
||||
background:#ddd;
|
||||
margin:0;
|
||||
height:100%;
|
||||
width:100%;
|
||||
overflow:hidden;
|
||||
}
|
||||
body {
|
||||
border:1px solid #222;
|
||||
border-width:0 1px;
|
||||
background:white;
|
||||
margin:0 20px;
|
||||
height:100%;
|
||||
-webkit-box-shadow: 0px 0px 20px 5px rgba(0,0,0,0.65);
|
||||
-moz-box-shadow: 0px 0px 20px 5px rgba(0,0,0,0.65);
|
||||
box-shadow: 0px 0px 20px 5px rgba(0,0,0,0.65);
|
||||
/*overflow:hidden;*/
|
||||
}
|
||||
|
||||
main {
|
||||
box-sizing:border-box;
|
||||
padding:100px 0 0 0;
|
||||
}
|
||||
#content {
|
||||
padding:10px 20px;
|
||||
}
|
||||
|
||||
ul {margin:0;padding:0;}
|
||||
#nav {
|
||||
background-image: url(/images/main-menu-bg.png);
|
||||
background-repeat: repeat-x;
|
||||
height: 52px;
|
||||
border-bottom: 5px solid #0F83A0;
|
||||
padding-left: 10px;
|
||||
}
|
||||
#nav ul {
|
||||
height: 52px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 11px;
|
||||
line-height: normal;
|
||||
font-family: Verdana, Geneva, sans-serif;
|
||||
overflow:hidden;
|
||||
}
|
||||
#nav li {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: 1px solid #222;
|
||||
border-width: 0 0 0 1px;
|
||||
height: 47px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
#nav li.mhome {
|
||||
border: 0;
|
||||
margin-top: 0;
|
||||
height: 52px;
|
||||
width: 55px;
|
||||
}
|
||||
#nav li.mhome a {
|
||||
height: 52px;
|
||||
border-left: 0 none;
|
||||
text-indent: -9999px;
|
||||
background-color: #0F83A0;
|
||||
background-image: url(/images/home.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 9px;
|
||||
}
|
||||
#nav li a {
|
||||
display: block;
|
||||
line-height: 45px;
|
||||
height: 45px;
|
||||
text-decoration: none;
|
||||
color: #D5D5D5;
|
||||
padding: 0 15px;
|
||||
text-shadow: 0 1px 1px black;
|
||||
border-left: 1px solid #383838;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
#nav #title {
|
||||
float:right;
|
||||
color:white;
|
||||
margin:18px 18px 0 0;
|
||||
font-size:120%;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
ul.menu {
|
||||
list-style-type:none;
|
||||
margin:10px;
|
||||
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
font-size:90%;
|
||||
}
|
||||
ul.menu li {
|
||||
padding:5px 10px;
|
||||
}
|
||||
ul.menu a {
|
||||
color: #337ab7;
|
||||
text-decoration: none;
|
||||
}
|
||||
ul.menu a.sel {
|
||||
color:black;
|
||||
}
|
||||
|
||||
#content a {
|
||||
color:#337ab7;
|
||||
text-decoration:underline;
|
||||
}
|
||||
#content a:hover {
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
div#menu {
|
||||
position:relative;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 250px; /* Width of navigation frame */
|
||||
height: 100%;
|
||||
overflow: hidden; /* Disables scrollbars on the navigation frame. To enable scrollbars, change "hidden" to "scroll" */
|
||||
background: #eee;
|
||||
margin-bottom:-100px;
|
||||
}
|
||||
|
||||
div#content {
|
||||
position: absolute;
|
||||
top: 74px;
|
||||
left: 270px; /* Set this to the width of the navigation frame */
|
||||
right: 23px;
|
||||
bottom: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.log {
|
||||
position:absolute;
|
||||
left:102%;
|
||||
top:10%;
|
||||
width:20%;
|
||||
height:500px;
|
||||
background:rgba(200,200,200,.8);
|
||||
font-size:x-small;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Таблицы: http://html5book.ru/examples/demo-tables.html */
|
||||
|
||||
table {
|
||||
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
|
||||
font-size: 14px;
|
||||
border-collapse: collapse;
|
||||
text-align: center;
|
||||
margin:4px 0;
|
||||
}
|
||||
table.error tbody {
|
||||
display:none;
|
||||
}
|
||||
table.error tbody.error {
|
||||
display:table-row-group !important;
|
||||
}
|
||||
table.error tbody.error td {
|
||||
color:black;
|
||||
background-color:#ffe9e9 !important;
|
||||
text-align:center;
|
||||
}
|
||||
table tbody.error {
|
||||
display:none;
|
||||
}
|
||||
.tfill thead td, .tfill td:first-child {
|
||||
background:#337ab7;
|
||||
color:white;
|
||||
padding:10px 20px;
|
||||
}
|
||||
thead td {
|
||||
font-weight:bold;
|
||||
}
|
||||
.tfill thead td, td {
|
||||
border-style: solid;
|
||||
border-width: 0 1px 1px 0;
|
||||
border-color: white;
|
||||
}
|
||||
.tfill td {
|
||||
background: #D8E6F3;
|
||||
}
|
||||
thead td:first-child, td:first-child {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.tsimple {
|
||||
table-layout:fixed;
|
||||
border-collapse:collapse;
|
||||
width:100%;
|
||||
}
|
||||
.tsimple thead th,
|
||||
.tsimple thead td {
|
||||
border-bottom:3px solid #337ab7;
|
||||
padding:10px;
|
||||
text-align:left;
|
||||
}
|
||||
.tsimple tbody td {
|
||||
padding:10px;
|
||||
border-bottom:1px solid #f0f0f0;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
}
|
||||
.tsimple tbody tr:nth-child(2n){
|
||||
background-color: #fafafa;
|
||||
}
|
||||
.tsimple td.txtleft {
|
||||
text-align:left;
|
||||
}
|
||||
.tsimple td.txtright {
|
||||
text-align:right;
|
||||
}
|
||||
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
||||
border-top:2px solid #d1e7f3; /* #aad1e8; */ /* #79b8cf; */
|
||||
}
|
||||
.tsimple tr.sel td {
|
||||
background-color:#fefec0;
|
||||
}
|
||||
.wordwreck {
|
||||
word-wrap:break-word;
|
||||
}
|
||||
.wdt-30 {
|
||||
width:30px;
|
||||
}
|
||||
.wdt-40 {
|
||||
width:40px;
|
||||
}
|
||||
.wdt-80 {
|
||||
width:80px;
|
||||
}
|
||||
.wdt-100 {
|
||||
width:100px;
|
||||
}
|
||||
.wdt-120 {
|
||||
width:120px;
|
||||
}
|
||||
.wdt-200 {
|
||||
width:200px;
|
||||
}
|
||||
.wdt-200.elastic
|
||||
{
|
||||
min-width:200px;
|
||||
width:20%;
|
||||
}
|
||||
.wdt-250 {
|
||||
width:250px;
|
||||
}
|
||||
|
||||
/* .tsimple [class^="icon-"] */
|
||||
td.ops span.icon-cnt,
|
||||
.icon-cancel,
|
||||
.icon-cog,
|
||||
.icon-arrows-cw {
|
||||
color:gray;
|
||||
position:relative;
|
||||
text-align:center;
|
||||
text-shadow:2px 2px 2px rgba(0,0,0,0.2);
|
||||
}
|
||||
.wdt5 {
|
||||
width:50px;
|
||||
}
|
||||
span.icon-cnt:hover .icon-play,
|
||||
span.icon-cnt:hover .icon-stop,
|
||||
.icon-cancel:hover,
|
||||
.icon-cog:hover,
|
||||
.icon-arrows-cw:hover {
|
||||
color:black;
|
||||
cursor:pointer;
|
||||
}
|
||||
span.icon-desktop {
|
||||
color:gray;
|
||||
text-shadow:2px 2px 2px rgba(0,0,0,0.2);
|
||||
}
|
||||
span.icon-desktop:hover {
|
||||
color:black;
|
||||
cursor:pointer;
|
||||
}
|
||||
span.icon-spin6 {
|
||||
margin:-1px 0 0 -1px;
|
||||
text-shadow:none;
|
||||
color:black;
|
||||
}
|
||||
tr.busy .op-settings span, /*.icon-cog*/
|
||||
tr.busy .op-reboot span, /*.icon-cancel,*/
|
||||
tr.busy .op-del span, /*.icon-desktop,*/
|
||||
tr.busy .op-vnc span { /*.icon-arrows-cw {*/
|
||||
display:none;
|
||||
}
|
||||
td.jstatus {
|
||||
font-size:small;
|
||||
}
|
||||
tr.busy .jstatus {
|
||||
background-color:Lavender !important;
|
||||
}
|
||||
tr.s-off span.icon-desktop,
|
||||
tr.s-off span.icon-arrows-cw {
|
||||
display:none;
|
||||
}
|
||||
tr.s-on td.jstatus {
|
||||
background-color:Honeydew;
|
||||
}
|
||||
tr.s-off td.jstatus {
|
||||
background-color:Seashell;
|
||||
}
|
||||
|
||||
tr.maintenance .ops span,
|
||||
tr.maintenance .op-settings span,
|
||||
tr.maintenance .op-reboot span,
|
||||
tr.maintenance .op-vnc span {
|
||||
display:none;
|
||||
}
|
||||
tr.maintenance td {
|
||||
color:gray;
|
||||
}
|
||||
tr.maintenance td.jstatus {
|
||||
background-color:#f0f0f0;
|
||||
}
|
||||
|
||||
tr.busy.maintenance .ops span {
|
||||
display:inline-block !important;
|
||||
}
|
||||
|
||||
.tsimple .icon-lock {
|
||||
color:silver;
|
||||
cursor:default;
|
||||
}
|
||||
|
||||
/* td.ops span.icon-play:before {
|
||||
margin-left:.2em;
|
||||
}
|
||||
*/
|
||||
|
||||
#content p {
|
||||
margin:16px 0;
|
||||
}
|
||||
|
||||
#content ul {
|
||||
margin:10px 0 10px 20px;
|
||||
list-style-type:disc;
|
||||
}
|
||||
#content ul li {
|
||||
padding:4px 0;
|
||||
}
|
||||
|
||||
#content h1 {
|
||||
font-size:120%;
|
||||
color:#337ab7;
|
||||
margin:10px 0 20px 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
dialog {
|
||||
display:none;
|
||||
/*
|
||||
width:800px;
|
||||
height:630px;
|
||||
*/
|
||||
padding:0;
|
||||
border:1px solid rgba(0,0,0,.3);
|
||||
border-radius:2px;
|
||||
box-shadow:0 5px 20px black;
|
||||
/*top:20%;*/
|
||||
background-color:#f0f0f0;
|
||||
}
|
||||
dialog::backdrop,
|
||||
#backdrop {
|
||||
position:fixed;
|
||||
top:0;
|
||||
left:0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
width:100%;
|
||||
height:100%;
|
||||
background: rgba(0,0,0,.5);
|
||||
-webkit-backdrop-filter:blur(5px);
|
||||
}
|
||||
dialog {
|
||||
/*text-align:center;*/
|
||||
font-family: 'trebuchet ms', 'lucida grande', 'lucida sans unicode', arial, helvetica, sans-serif;
|
||||
font-size:90%;
|
||||
}
|
||||
.dialog-close:before {
|
||||
font-family:"clonos";
|
||||
content:'\e820';
|
||||
speak: none;
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
line-height: 1em;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
margin:2px 6px;
|
||||
}
|
||||
dialog .panel {
|
||||
background-color:white;
|
||||
}
|
||||
dialog:not(input),
|
||||
dialog:not(textarea) {
|
||||
user-select:none;
|
||||
}
|
||||
|
||||
.window-box {
|
||||
/*padding:0 30px 30px 30px;*/
|
||||
border:1px solid #337ab7;
|
||||
border-width:1px 1px 1px 6px;
|
||||
}
|
||||
.window-box .close-but {
|
||||
position:absolute;
|
||||
left:100%;
|
||||
height:30px;
|
||||
width:32px;
|
||||
margin-left:-32px;
|
||||
font-size:30px;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
background-color:#f3f3f3;
|
||||
text-align:center;
|
||||
line-height:30px;
|
||||
}
|
||||
.window-box .window-content {
|
||||
min-height:300px;
|
||||
max-height:600px;
|
||||
padding:10px 30px;
|
||||
}
|
||||
.window-box .window-content p {
|
||||
margin-bottom:10px;
|
||||
}
|
||||
.window-box .buttons {
|
||||
background-color:#e0e0e0;
|
||||
border-top:1px solid silver;
|
||||
margin-top:4px;
|
||||
height:60px;
|
||||
padding:0 10px;
|
||||
text-align:center;
|
||||
}
|
||||
.buttons .button {
|
||||
font-weight:bold;
|
||||
padding:10px 18px;
|
||||
color:white;
|
||||
background-color:#337ab7;
|
||||
border:0;
|
||||
margin-left:10px;
|
||||
margin-top:10px;
|
||||
text-shadow:1px 1px 2px black;
|
||||
cursor:pointer;
|
||||
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
||||
text-transform:uppercase;
|
||||
font-family:Helvetica,Impact,fantasy;
|
||||
font-size:90%;
|
||||
}
|
||||
.buttons .button:hover {
|
||||
opacity:.9;
|
||||
}
|
||||
.buttons .button.red {
|
||||
background-color:coral;
|
||||
text-shadow:1px 1px 2px black;
|
||||
}
|
||||
|
||||
.window-box h1 {
|
||||
color:gray;
|
||||
text-transform:uppercase;
|
||||
font-size:90%;
|
||||
padding:0 30px;
|
||||
margin: 10px 0 0 0;
|
||||
font-family: serif;
|
||||
}
|
||||
.window-box h2 {
|
||||
color:gray;
|
||||
padding:0 30px;
|
||||
margin:0;
|
||||
font-size:220%;
|
||||
font-weight:normal;
|
||||
}
|
||||
.window-box h3 {
|
||||
border-bottom:3px solid #387db6;
|
||||
font-weight:bold;
|
||||
font-size:120%;
|
||||
margin:10px 0;
|
||||
}
|
||||
.window-box h3 small {
|
||||
color:gray;
|
||||
font-size:80%;
|
||||
}
|
||||
.window-box .mrow {
|
||||
margin:2px 0 2px 10px;
|
||||
border-bottom:1px dotted silver;
|
||||
}
|
||||
.window-box .mrow small {
|
||||
color:gray;
|
||||
font-size:80%;
|
||||
}
|
||||
.window-box .mrow .size {
|
||||
float:right;
|
||||
font-size:80%;
|
||||
}
|
||||
.window-box .scrolled {
|
||||
overflow-y:auto;
|
||||
max-height:500px;
|
||||
}
|
||||
.window-box .mrow.installed,
|
||||
.window-box .mrow.installed small {
|
||||
color:silver;
|
||||
}
|
||||
form.win .field-name {
|
||||
display:block;
|
||||
text-transform:uppercase;
|
||||
color:gray;
|
||||
font-size:90%;
|
||||
font-weight:bold;
|
||||
margin-bottom:2px;
|
||||
}
|
||||
form.win input[type='text'],
|
||||
form.win textarea,
|
||||
form.win select {
|
||||
width:400px;
|
||||
}
|
||||
form.win fieldset {
|
||||
border: 1px solid gray;
|
||||
padding: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
form.win legend {
|
||||
padding:0 10px;
|
||||
}
|
||||
form.win input[type="text"]:required,
|
||||
form.win input[type="password"]:required {
|
||||
background-color:#fef7f7;
|
||||
border:1px solid #d7a0a0;
|
||||
}
|
||||
form.win input[type="text"]:valid,
|
||||
form.win input[type="password"]:valid {
|
||||
border:1px solid green;
|
||||
background-color:Honeydew;
|
||||
}
|
||||
|
||||
|
||||
input[type=checkbox]:checked + label,
|
||||
input[type=radio]:checked + label {
|
||||
color:#337ab7;
|
||||
}
|
||||
input.inline + label {
|
||||
margin-right:30px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
input[type=checkbox] {
|
||||
display: none;
|
||||
}
|
||||
.checkbox label:before {
|
||||
border-radius: 3px;
|
||||
}
|
||||
input[type=checkbox]:checked + label:before {
|
||||
content: "\2713";
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
|
||||
font-size: 15px;
|
||||
color: #f3f3f3;
|
||||
text-align: center;
|
||||
line-height: 15px;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-left: 25px;
|
||||
margin-right: 15px;
|
||||
line-height:normal;
|
||||
}
|
||||
input[type=radio] {
|
||||
display: none;
|
||||
}
|
||||
label:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
|
||||
margin-right: 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 1px;
|
||||
background-color:#e0e0e0;
|
||||
box-shadow: inset 0px 2px 2px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8);
|
||||
}
|
||||
.radio label:before {
|
||||
border-radius: 8px;
|
||||
}
|
||||
input[type=radio]:checked + label:before {
|
||||
content: "\2022";
|
||||
color: #f3f3f3;
|
||||
font-size: 30px;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
good radio button and checkbox
|
||||
http://dimox.name/custom-checkboxes-and-radio-buttons-using-css-only/
|
||||
*/
|
||||
|
||||
#config-menu {
|
||||
position:absolute;
|
||||
display:inline-block;
|
||||
}
|
||||
#config-menu ul
|
||||
{
|
||||
list-style-type:none !important;
|
||||
margin:0;
|
||||
padding:0;
|
||||
border:1px solid gray;
|
||||
box-shadow:2px 2px 5px rgba(0,0,0,.4);
|
||||
border-radius:0 4px 4px 4px;
|
||||
overflow:hidden;
|
||||
/* width:80px; */
|
||||
z-index:99;
|
||||
border-left-width:3px;
|
||||
background-color:white;
|
||||
}
|
||||
#config-menu li {
|
||||
padding:6px !important;
|
||||
line-height:110%;
|
||||
}
|
||||
#config-menu li:hover {
|
||||
background:#f0f0f0;
|
||||
cursor:pointer;
|
||||
}
|
||||
#config-menu .menu-cog {
|
||||
display:inline-block;
|
||||
color:#337ab7;
|
||||
padding:4px;
|
||||
border:1px solid gray;
|
||||
border-left-width:3px;
|
||||
border-bottom:none;
|
||||
margin-bottom:-1px;
|
||||
z-index:100;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
|
||||
span.top-button {
|
||||
font-weight: bold;
|
||||
padding: 10px 18px;
|
||||
color: white;
|
||||
background-color: #337ab7;
|
||||
border: 0;
|
||||
text-shadow: 1px 1px 2px black;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 8px rgba(0,0,0,.3);
|
||||
text-transform: uppercase;
|
||||
font-family: Helvetica,Impact,fantasy;
|
||||
font-size: 70%;
|
||||
margin-right: 12px;
|
||||
}
|
||||
span.top-button:hover {
|
||||
opacity:.9;
|
||||
}
|
||||
span.top-button::before {
|
||||
font-size:180%;
|
||||
display:inline-block;
|
||||
top:3px;
|
||||
position:relative;
|
||||
left:-8px;
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.noty_bar {
|
||||
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
||||
}
|
||||
@@ -1,10 +1,207 @@
|
||||
/* http://www.drivermarket.net/2015/12/nokia-lumia-640-lte-usb-driver-for.html */
|
||||
html {
|
||||
background:#ddd;
|
||||
margin:0;
|
||||
height:100%;
|
||||
width:100%;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
div.menu {
|
||||
box-sizing:border-box;
|
||||
top:0;
|
||||
left:20px;
|
||||
width:250px;
|
||||
height:100%;
|
||||
padding:72px 0 0 0;
|
||||
position:fixed;
|
||||
box-shadow:-7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||
border-left:1px solid #222;
|
||||
background-color:#eee;
|
||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
font-size: 90%;
|
||||
}
|
||||
div.menu li {
|
||||
padding:10px 0 10px 5px; /* 5px 0 5px 10px; */
|
||||
}
|
||||
ul.menu li a {
|
||||
color:#337ab7;
|
||||
text-decoration:none;
|
||||
display:inline-block;
|
||||
margin-left:10px;
|
||||
}
|
||||
ul.menu li a:hover span {
|
||||
color:gray;
|
||||
}
|
||||
ul.menu a.sel span {
|
||||
color:black;
|
||||
}
|
||||
ul.menu a:active span {
|
||||
color:red !important;
|
||||
/*transition: width 2s, height 2s, color 2s, transform 2s;*/
|
||||
}
|
||||
ul.menu li span[class*="icon-"] {
|
||||
display:inline-block;
|
||||
font-size:120%;
|
||||
margin-left:-10px;
|
||||
vertical-align:middle;
|
||||
}
|
||||
ul.menu li span.empty:before {
|
||||
content:' ';
|
||||
font-size:120%;
|
||||
}
|
||||
ul.menu li span.empty {
|
||||
display:inline-block;
|
||||
margin-right:14px;
|
||||
}
|
||||
ul.menu li span.mtxt {
|
||||
margin-left:15px;
|
||||
display:inline-block;
|
||||
width:150px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#menu {
|
||||
height:100%;
|
||||
overflow-y:auto;
|
||||
}
|
||||
main {
|
||||
box-sizing:border-box;
|
||||
top:0;
|
||||
right:20px;
|
||||
left:10px;
|
||||
height:100%;
|
||||
padding:72px 0 0 0;
|
||||
margin-left:270px;
|
||||
position:absolute;
|
||||
background-color:white;
|
||||
box-shadow:7px 0px 10px 1px rgba(0,0,0,0.65);
|
||||
border-right:1px solid #222;
|
||||
}
|
||||
.closer {
|
||||
height:100%;
|
||||
position:absolute;
|
||||
width:10px;
|
||||
right:-11px;
|
||||
top:0;
|
||||
line-height:100%;
|
||||
text-align:center;
|
||||
font-weight:bold;
|
||||
border:1px solid silver;
|
||||
border-width:0 1px;
|
||||
background:#eaeaea url(data:image/gif;base64,R0lGODlhFAAJAJEAAAAAAP///////wAAACH5BAEAAAIALAAAAAAUAAkAAAIdlC+Ain3ADHQNxjQpztJSy23h45HjEpYahq7L6xQAOw==) no-repeat -1px 50%;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
header {
|
||||
position:absolute;
|
||||
width:100%;
|
||||
top:0;
|
||||
height:72px;
|
||||
overflow:hidden;
|
||||
}
|
||||
.header {
|
||||
border-bottom: 5px solid #0F83A0;
|
||||
background-color:white;
|
||||
margin:0 21px 0;
|
||||
padding-top: 15px;
|
||||
height:52px;
|
||||
background-image: url(/images/main-menu-bg.png);
|
||||
background-repeat: repeat-x;
|
||||
background-position-y: 15px;
|
||||
}
|
||||
.header ul {
|
||||
height: 52px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 11px;
|
||||
line-height: normal;
|
||||
font-family: Verdana, Geneva, sans-serif;
|
||||
overflow: hidden;
|
||||
}
|
||||
.header li {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border-right:1px solid #222;
|
||||
height: 47px;
|
||||
margin-top:5px;
|
||||
}
|
||||
.header li.mhome {
|
||||
border: 0;
|
||||
margin-top: 0;
|
||||
height: 52px;
|
||||
width: 55px;
|
||||
}
|
||||
.header li.mhome a {
|
||||
height: 52px;
|
||||
border-left: 0 none;
|
||||
text-indent: -9999px;
|
||||
background-color: #0F83A0;
|
||||
background-image: url(/images/home.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 9px;
|
||||
margin-top:0 !important;
|
||||
margin-left:10px;
|
||||
}
|
||||
.header li a {
|
||||
display: block;
|
||||
line-height: 45px;
|
||||
height: 45px;
|
||||
text-decoration: none;
|
||||
color: #D5D5D5;
|
||||
padding: 0 15px;
|
||||
text-shadow: 0 1px 1px black;
|
||||
border-left: 1px solid #383838;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.header #title {
|
||||
right:10px;
|
||||
position:absolute;
|
||||
color: white;
|
||||
margin: 18px 18px 0 0;
|
||||
font-size: 120%;
|
||||
font-style: italic;
|
||||
}
|
||||
.header li:last-child {
|
||||
border-right:none;
|
||||
}
|
||||
|
||||
.main {
|
||||
height:100%;
|
||||
overflow:auto;
|
||||
}
|
||||
#content {
|
||||
padding:20px;
|
||||
}
|
||||
|
||||
.gadget .menu {
|
||||
width:82px; /* 12px; */
|
||||
}
|
||||
.gadget .menu ul {
|
||||
/*display:none;*/
|
||||
}
|
||||
.gadget main {
|
||||
margin-left:92px;
|
||||
}
|
||||
.gadget .closer {
|
||||
/* border-left:1px solid #222; */
|
||||
right:0;
|
||||
background-position:-9px 50%;
|
||||
}
|
||||
.gadget ul.menu span.mtxt {
|
||||
display:none;
|
||||
}
|
||||
.gadget #menu {
|
||||
width:70px;
|
||||
overflow-x:hidden;
|
||||
}
|
||||
#menu ul {
|
||||
padding:10px;
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
/*
|
||||
body {
|
||||
border:1px solid #222;
|
||||
border-width:0 1px;
|
||||
@@ -14,64 +211,72 @@ body {
|
||||
-webkit-box-shadow: 0px 0px 20px 5px rgba(0,0,0,0.65);
|
||||
-moz-box-shadow: 0px 0px 20px 5px rgba(0,0,0,0.65);
|
||||
box-shadow: 0px 0px 20px 5px rgba(0,0,0,0.65);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
main {
|
||||
box-sizing:border-box;
|
||||
padding:100px 0 0 0;
|
||||
}
|
||||
#content {
|
||||
padding:10px 20px;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
ul {margin:0;padding:0;}
|
||||
#nav {
|
||||
background-image: url(/images/main-menu-bg.png);
|
||||
background-repeat: repeat-x;
|
||||
height: 52px;
|
||||
border-bottom: 5px solid #0F83A0;
|
||||
padding-left: 10px;
|
||||
background-image: url(/images/main-menu-bg.png);
|
||||
background-repeat: repeat-x;
|
||||
height: 52px;
|
||||
border-bottom: 5px solid #0F83A0;
|
||||
padding-left: 10px;
|
||||
}
|
||||
#nav ul {
|
||||
height: 52px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 52px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 11px;
|
||||
line-height: normal;
|
||||
font-family: Verdana, Geneva, sans-serif;
|
||||
overflow:hidden;
|
||||
}
|
||||
#nav li {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: 1px solid #222;
|
||||
border-width: 0 0 0 1px;
|
||||
height: 47px;
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: 1px solid #222;
|
||||
border-width: 0 0 0 1px;
|
||||
height: 47px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
#nav li.mhome {
|
||||
border: 0;
|
||||
margin-top: 0;
|
||||
height: 52px;
|
||||
border: 0;
|
||||
margin-top: 0;
|
||||
height: 52px;
|
||||
width: 55px;
|
||||
}
|
||||
#nav li.mhome a {
|
||||
height: 52px;
|
||||
border-left: 0 none;
|
||||
text-indent: -9999px;
|
||||
background-color: #0F83A0;
|
||||
background-image: url(/images/home.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 9px;
|
||||
height: 52px;
|
||||
border-left: 0 none;
|
||||
text-indent: -9999px;
|
||||
background-color: #0F83A0;
|
||||
background-image: url(/images/home.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 9px;
|
||||
}
|
||||
#nav li a {
|
||||
display: block;
|
||||
line-height: 45px;
|
||||
height: 45px;
|
||||
text-decoration: none;
|
||||
color: #D5D5D5;
|
||||
padding: 0 15px;
|
||||
text-shadow: 0 1px 1px black;
|
||||
border-left: 1px solid #383838;
|
||||
display: block;
|
||||
line-height: 45px;
|
||||
height: 45px;
|
||||
text-decoration: none;
|
||||
color: #D5D5D5;
|
||||
padding: 0 15px;
|
||||
text-shadow: 0 1px 1px black;
|
||||
border-left: 1px solid #383838;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
#nav #title {
|
||||
@@ -98,7 +303,9 @@ ul.menu a {
|
||||
ul.menu a.sel {
|
||||
color:black;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
#content a {
|
||||
color:#337ab7;
|
||||
text-decoration:underline;
|
||||
@@ -108,13 +315,13 @@ ul.menu a.sel {
|
||||
}
|
||||
|
||||
div#menu {
|
||||
position: relative;
|
||||
position:relative;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 250px; /* Width of navigation frame */
|
||||
width: 250px;
|
||||
height: 100%;
|
||||
overflow: hidden; /* Disables scrollbars on the navigation frame. To enable scrollbars, change "hidden" to "scroll" */
|
||||
overflow: hidden;
|
||||
background: #eee;
|
||||
margin-bottom:-100px;
|
||||
}
|
||||
@@ -122,12 +329,12 @@ div#menu {
|
||||
div#content {
|
||||
position: absolute;
|
||||
top: 74px;
|
||||
left: 270px; /* Set this to the width of the navigation frame */
|
||||
left: 270px;
|
||||
right: 23px;
|
||||
bottom: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
.log {
|
||||
@@ -170,7 +377,7 @@ table tbody.error {
|
||||
color:white;
|
||||
padding:10px 20px;
|
||||
}
|
||||
thead td {
|
||||
thead td, thead th {
|
||||
font-weight:bold;
|
||||
}
|
||||
.tfill thead td, td {
|
||||
@@ -185,13 +392,22 @@ thead td:first-child, td:first-child {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.tsimple {
|
||||
table-layout:fixed;
|
||||
border-collapse:collapse;
|
||||
width:100%;
|
||||
}
|
||||
.tsimple thead th,
|
||||
.tsimple thead td {
|
||||
border-bottom:3px solid #337ab7;
|
||||
padding:10px 20px;
|
||||
padding:10px;
|
||||
text-align:left;
|
||||
}
|
||||
.tsimple tbody td {
|
||||
padding:10px 20px;
|
||||
padding:10px;
|
||||
border-bottom:1px solid #f0f0f0;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
}
|
||||
.tsimple tbody tr:nth-child(2n){
|
||||
background-color: #fafafa;
|
||||
@@ -202,30 +418,147 @@ thead td:first-child, td:first-child {
|
||||
.tsimple td.txtright {
|
||||
text-align:right;
|
||||
}
|
||||
.tsimple td input[type="button"] {
|
||||
font-size:86%;
|
||||
padding:2px 4px;
|
||||
}
|
||||
.tsimple .nth0 + .nth1 td, .tsimple .nth1 + .nth0 td {
|
||||
border-top:2px solid #e0e0e0;
|
||||
border-top:2px solid #d1e7f3; /* #aad1e8; */ /* #79b8cf; */
|
||||
}
|
||||
.tsimple tr.sel td {
|
||||
background-color:#fefec0;
|
||||
}
|
||||
.wordwreck {
|
||||
word-wrap:break-word;
|
||||
}
|
||||
.wdt-30 {
|
||||
width:30px;
|
||||
}
|
||||
.wdt-40 {
|
||||
width:40px;
|
||||
}
|
||||
.wdt-50 {
|
||||
width:50px;
|
||||
}
|
||||
.wdt-70 {
|
||||
width:70px;
|
||||
}
|
||||
.wdt-80 {
|
||||
width:80px;
|
||||
}
|
||||
.wdt-100 {
|
||||
width:100px;
|
||||
}
|
||||
.wdt-120 {
|
||||
width:120px;
|
||||
}
|
||||
.wdt-130 {
|
||||
width:130px;
|
||||
}
|
||||
.wdt-140 {
|
||||
width:140px;
|
||||
}
|
||||
.wdt-150 {
|
||||
width:150px;
|
||||
}
|
||||
.wdt-200 {
|
||||
width:200px;
|
||||
}
|
||||
.wdt-200.elastic
|
||||
{
|
||||
min-width:200px;
|
||||
width:20%;
|
||||
}
|
||||
.wdt-250 {
|
||||
width:250px;
|
||||
}
|
||||
|
||||
|
||||
td.ops span.icon-cnt {
|
||||
/* .tsimple [class^="icon-"] */
|
||||
td.ops span.icon-cnt,
|
||||
.icon-cancel,
|
||||
.icon-cog,
|
||||
.icon-arrows-cw,
|
||||
.icon-download {
|
||||
color:gray;
|
||||
position:relative;
|
||||
text-align:center;
|
||||
text-shadow:2px 2px 2px rgba(0,0,0,0.2);
|
||||
|
||||
/* display:inline-block;
|
||||
background-color:#f7f7f7;
|
||||
background-image:linear-gradient(top, #f7f7f7, #e7e7e7);
|
||||
width:32px;
|
||||
height:32px;
|
||||
line-height:32px;
|
||||
border-radius:50%;
|
||||
box-shadow:0px 3px 8px #aaa, inset 0px 2px 3px #fff;
|
||||
*/}
|
||||
td.ops span.icon-cnt:hover .icon-play {
|
||||
}
|
||||
.wdt5 {
|
||||
width:50px;
|
||||
}
|
||||
span.icon-cnt:hover .icon-play,
|
||||
span.icon-cnt:hover .icon-stop,
|
||||
.icon-cancel:hover,
|
||||
.icon-cog:hover,
|
||||
.icon-arrows-cw:hover,
|
||||
.icon-download:hover {
|
||||
color:black;
|
||||
cursor:pointer;
|
||||
}
|
||||
span.icon-desktop {
|
||||
color:gray;
|
||||
text-shadow:2px 2px 2px rgba(0,0,0,0.2);
|
||||
}
|
||||
span.icon-desktop:hover {
|
||||
color:black;
|
||||
cursor:pointer;
|
||||
}
|
||||
span.icon-spin6 {
|
||||
margin:-1px 0 0 -1px;
|
||||
text-shadow:none;
|
||||
color:black;
|
||||
}
|
||||
tr.busy .op-settings span, /*.icon-cog*/
|
||||
tr.busy .op-reboot span, /*.icon-cancel,*/
|
||||
tr.busy .op-del span, /*.icon-desktop,*/
|
||||
tr.busy .op-update span, /*.icon-desktop,*/
|
||||
tr.busy .op-vnc span { /*.icon-arrows-cw {*/
|
||||
display:none;
|
||||
}
|
||||
td.jstatus,
|
||||
td.small {
|
||||
font-size:small;
|
||||
}
|
||||
tr.busy .jstatus {
|
||||
background-color:Lavender !important;
|
||||
}
|
||||
tr.s-off span.icon-desktop,
|
||||
tr.s-off span.icon-arrows-cw {
|
||||
display:none;
|
||||
}
|
||||
tr.s-on td.jstatus {
|
||||
background-color:Honeydew;
|
||||
}
|
||||
tr.s-off td.jstatus {
|
||||
background-color:Seashell;
|
||||
}
|
||||
|
||||
tr.maintenance .ops span,
|
||||
tr.maintenance .op-settings span,
|
||||
tr.maintenance .op-reboot span,
|
||||
tr.maintenance .op-vnc span {
|
||||
display:none;
|
||||
}
|
||||
tr.maintenance td {
|
||||
color:gray;
|
||||
}
|
||||
tr.maintenance td.jstatus {
|
||||
background-color:#f0f0f0;
|
||||
}
|
||||
|
||||
tr.busy.maintenance .ops span {
|
||||
display:inline-block !important;
|
||||
}
|
||||
|
||||
.tsimple .icon-lock {
|
||||
color:silver;
|
||||
cursor:default;
|
||||
}
|
||||
|
||||
.nowrap {
|
||||
white-space:nowrap;
|
||||
}
|
||||
|
||||
/* td.ops span.icon-play:before {
|
||||
margin-left:.2em;
|
||||
@@ -233,7 +566,7 @@ td.ops span.icon-cnt:hover .icon-play {
|
||||
*/
|
||||
|
||||
#content p {
|
||||
margin:20px 0;
|
||||
margin:16px 0;
|
||||
}
|
||||
|
||||
#content ul {
|
||||
@@ -249,3 +582,370 @@ td.ops span.icon-cnt:hover .icon-play {
|
||||
color:#337ab7;
|
||||
margin:10px 0 20px 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
dialog {
|
||||
display:none;
|
||||
/*
|
||||
width:800px;
|
||||
height:630px;
|
||||
*/
|
||||
padding:0;
|
||||
border:1px solid rgba(0,0,0,.3);
|
||||
border-radius:2px;
|
||||
box-shadow:0 5px 20px black;
|
||||
/*top:20%;*/
|
||||
background-color:#f0f0f0;
|
||||
}
|
||||
dialog::backdrop,
|
||||
#backdrop {
|
||||
position:fixed;
|
||||
top:0;
|
||||
left:0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
width:100%;
|
||||
height:100%;
|
||||
background: rgba(0,0,0,.5);
|
||||
-webkit-backdrop-filter:blur(5px);
|
||||
z-index:1000;
|
||||
}
|
||||
dialog {
|
||||
/*text-align:center;*/
|
||||
font-family: 'trebuchet ms', 'lucida grande', 'lucida sans unicode', arial, helvetica, sans-serif;
|
||||
font-size:90%;
|
||||
}
|
||||
.dialog-close:before {
|
||||
font-family:"clonos";
|
||||
content:'\e820';
|
||||
speak: none;
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
line-height: 1em;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
margin:2px 6px;
|
||||
}
|
||||
dialog .panel {
|
||||
background-color:white;
|
||||
}
|
||||
dialog:not(input),
|
||||
dialog:not(textarea) {
|
||||
user-select:none;
|
||||
}
|
||||
|
||||
.window-box {
|
||||
/*padding:0 30px 30px 30px;*/
|
||||
border:1px solid #337ab7;
|
||||
border-width:1px 1px 1px 6px;
|
||||
}
|
||||
.window-box .close-but {
|
||||
position:absolute;
|
||||
left:100%;
|
||||
height:30px;
|
||||
width:32px;
|
||||
margin-left:-32px;
|
||||
font-size:30px;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
background-color:#f3f3f3;
|
||||
text-align:center;
|
||||
line-height:30px;
|
||||
}
|
||||
.window-box .window-content {
|
||||
min-height:300px;
|
||||
max-height:600px;
|
||||
padding:10px 30px;
|
||||
}
|
||||
.window-box .window-content p {
|
||||
margin-bottom:10px;
|
||||
}
|
||||
.window-box .buttons {
|
||||
background-color:#e0e0e0;
|
||||
border-top:1px solid silver;
|
||||
margin-top:4px;
|
||||
height:60px;
|
||||
padding:0 10px;
|
||||
text-align:center;
|
||||
}
|
||||
.buttons .button {
|
||||
font-weight:bold;
|
||||
padding:10px 18px;
|
||||
color:white;
|
||||
background-color:#337ab7;
|
||||
border:0;
|
||||
margin-left:10px;
|
||||
margin-top:10px;
|
||||
text-shadow:1px 1px 2px black;
|
||||
cursor:pointer;
|
||||
box-shadow:0 4px 8px rgba(0,0,0,.3);
|
||||
text-transform:uppercase;
|
||||
font-family:Helvetica,Impact,fantasy;
|
||||
font-size:90%;
|
||||
}
|
||||
.buttons .button:hover {
|
||||
opacity:.9;
|
||||
}
|
||||
.buttons .button.red {
|
||||
background-color:coral;
|
||||
text-shadow:1px 1px 2px black;
|
||||
}
|
||||
|
||||
.window-box h1 {
|
||||
color:gray;
|
||||
text-transform:uppercase;
|
||||
font-size:90%;
|
||||
padding:0 30px;
|
||||
margin: 10px 0 0 0;
|
||||
font-family: serif;
|
||||
}
|
||||
.window-box h2 {
|
||||
color:gray;
|
||||
padding:0 30px;
|
||||
margin:0;
|
||||
font-size:220%;
|
||||
font-weight:normal;
|
||||
}
|
||||
.window-box h3 {
|
||||
border-bottom:3px solid #387db6;
|
||||
font-weight:bold;
|
||||
font-size:120%;
|
||||
margin:10px 0;
|
||||
}
|
||||
.window-box h3 small {
|
||||
color:gray;
|
||||
font-size:80%;
|
||||
}
|
||||
.window-box .mrow {
|
||||
margin:2px 0 2px 10px;
|
||||
border-bottom:1px dotted silver;
|
||||
}
|
||||
.window-box .mrow small {
|
||||
color:gray;
|
||||
font-size:80%;
|
||||
}
|
||||
.window-box .mrow .size {
|
||||
float:right;
|
||||
font-size:80%;
|
||||
}
|
||||
.window-box .scrolled {
|
||||
overflow-y:auto;
|
||||
max-height:500px;
|
||||
}
|
||||
.window-box .mrow.installed,
|
||||
.window-box .mrow.installed small {
|
||||
color:silver;
|
||||
}
|
||||
form.win .field-name {
|
||||
display:block;
|
||||
text-transform:uppercase;
|
||||
color:gray;
|
||||
font-size:90%;
|
||||
font-weight:bold;
|
||||
margin-bottom:2px;
|
||||
}
|
||||
form.win input[type='text'],
|
||||
form.win textarea,
|
||||
form.win select {
|
||||
width:400px;
|
||||
}
|
||||
form.win fieldset {
|
||||
border: 1px solid gray;
|
||||
padding: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
form.win legend {
|
||||
padding:0 10px;
|
||||
}
|
||||
form.win input[type="text"]:required,
|
||||
form.win input[type="password"]:required {
|
||||
background-color:#fef7f7;
|
||||
border:1px solid #d7a0a0;
|
||||
}
|
||||
form.win input[type="text"]:valid,
|
||||
form.win input[type="password"]:valid {
|
||||
border:1px solid green;
|
||||
background-color:Honeydew;
|
||||
}
|
||||
|
||||
|
||||
input[type=checkbox]:checked + label,
|
||||
input[type=radio]:checked + label {
|
||||
color:#337ab7;
|
||||
}
|
||||
input.inline + label {
|
||||
margin-right:30px;
|
||||
}
|
||||
|
||||
|
||||
.cbsd-str {
|
||||
color:gray;
|
||||
font-size:90%;
|
||||
}
|
||||
.cbsd-cmd {
|
||||
color:darkred;
|
||||
font-size:120%;
|
||||
}
|
||||
.cbsd-lnch {
|
||||
color:#337ab7;
|
||||
font-size:90%;
|
||||
}
|
||||
|
||||
.link {
|
||||
color:#337ab7;
|
||||
text-decoration:underline;
|
||||
}
|
||||
.link:hover {
|
||||
text-decoration:none;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
td.progress {
|
||||
background-color:LemonChiffon;
|
||||
}
|
||||
td.ok {
|
||||
background-color:Honeydew;
|
||||
}
|
||||
td.error {
|
||||
background-color:Seashell;
|
||||
}
|
||||
|
||||
.tasklog {
|
||||
width:60%;
|
||||
max-width:60%;
|
||||
margin-left:-30% !important;
|
||||
left:50%;
|
||||
}
|
||||
.tasklog .window-content {
|
||||
user-select:auto;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
input[type=checkbox] {
|
||||
display: none;
|
||||
}
|
||||
.checkbox label:before {
|
||||
border-radius: 3px;
|
||||
}
|
||||
input[type=checkbox]:checked + label:before {
|
||||
content: "\2713";
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
|
||||
font-size: 15px;
|
||||
color: #f3f3f3;
|
||||
text-align: center;
|
||||
line-height: 15px;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-left: 25px;
|
||||
margin-right: 15px;
|
||||
line-height:normal;
|
||||
}
|
||||
input[type=radio] {
|
||||
display: none;
|
||||
}
|
||||
label:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
|
||||
margin-right: 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 1px;
|
||||
background-color:#e0e0e0;
|
||||
box-shadow: inset 0px 2px 2px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8);
|
||||
}
|
||||
.radio label:before {
|
||||
border-radius: 8px;
|
||||
}
|
||||
input[type=radio]:checked + label:before {
|
||||
content: "\2022";
|
||||
color: #f3f3f3;
|
||||
font-size: 30px;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
good radio button and checkbox
|
||||
http://dimox.name/custom-checkboxes-and-radio-buttons-using-css-only/
|
||||
*/
|
||||
|
||||
#config-menu {
|
||||
position:absolute;
|
||||
display:inline-block;
|
||||
}
|
||||
#config-menu ul
|
||||
{
|
||||
list-style-type:none !important;
|
||||
margin:0;
|
||||
padding:0;
|
||||
border:1px solid gray;
|
||||
box-shadow:2px 2px 5px rgba(0,0,0,.4);
|
||||
border-radius:0 4px 4px 4px;
|
||||
overflow:hidden;
|
||||
/* width:80px; */
|
||||
z-index:99;
|
||||
border-left-width:3px;
|
||||
background-color:white;
|
||||
}
|
||||
#config-menu li {
|
||||
padding:6px !important;
|
||||
line-height:110%;
|
||||
}
|
||||
#config-menu li:hover {
|
||||
background:#f0f0f0;
|
||||
cursor:pointer;
|
||||
}
|
||||
#config-menu .menu-cog {
|
||||
display:inline-block;
|
||||
color:#337ab7;
|
||||
padding:4px;
|
||||
border:1px solid gray;
|
||||
border-left-width:3px;
|
||||
border-bottom:none;
|
||||
margin-bottom:-1px;
|
||||
z-index:100;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
|
||||
span.top-button {
|
||||
font-weight: bold;
|
||||
padding: 10px 18px;
|
||||
color: white;
|
||||
background-color: #337ab7;
|
||||
border: 0;
|
||||
text-shadow: 1px 1px 2px black;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 8px rgba(0,0,0,.3);
|
||||
text-transform: uppercase;
|
||||
font-family: Helvetica,Impact,fantasy;
|
||||
font-size: 70%;
|
||||
margin-right: 12px;
|
||||
}
|
||||
span.top-button:hover {
|
||||
opacity:.9;
|
||||
}
|
||||
span.top-button::before {
|
||||
font-size:180%;
|
||||
display:inline-block;
|
||||
top:3px;
|
||||
position:relative;
|
||||
left:-8px;
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.noty_bar {
|
||||
box-shadow:3px 3px 3px rgba(0,0,0,.5);
|
||||
}
|
||||
25
public/dialogs/authkey.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<script type="text/javascript">
|
||||
err_messages={
|
||||
'keyname':'<?php echo $this->translate("Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%");?>',
|
||||
};
|
||||
</script>
|
||||
<dialog id="authkey" class="window-box">
|
||||
<h1><?php echo $this->translate('Create Authkey');?></h1>
|
||||
<h2><?php echo $this->translate('Settings');?></h2>
|
||||
<form class="win" method="post" id="authkeySettings">
|
||||
<div class="window-content">
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('Authkey');?>:</span>
|
||||
<textarea name="keysrc" rows="10"></textarea>
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
<div class="buttons">
|
||||
<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" />
|
||||
</div>
|
||||
</dialog>
|
||||
57
public/dialogs/bhyve-new.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<script type="text/javascript">
|
||||
err_messages={
|
||||
'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_ram':'You need type «g» char after numbers',
|
||||
};
|
||||
</script>
|
||||
<dialog id="bhyve-new" class="window-box">
|
||||
<h1><?php echo $this->translate('Create Virtual Machine');?></h1>
|
||||
<h2><?php echo $this->translate('Virtual Machine Settings');?></h2>
|
||||
<form class="win" method="post" id="bhyveSettings">
|
||||
<div class="window-content">
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM OS profile');?>:</span>
|
||||
<select name="vm_os_profile">
|
||||
<?php echo $this->config->os_types_create(); ?>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM Image size');?>:</span>
|
||||
<input type="text" name="vm_size" value="" pattern="^[0-9]+g$" placeholder="10g" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM CPUs');?>:</span>
|
||||
<input type="text" name="vm_cpus" value="" pattern="[0-9]+" placeholder="1" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM RAM');?>:</span>
|
||||
<input type="text" name="vm_ram" value="" pattern="^[0-9]+g$" placeholder="1g" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VNC PORT');?>:</span>
|
||||
<input type="text" name="vnc_port" value="" placeholder="0" />
|
||||
</p>
|
||||
<!-- <p>
|
||||
<span class="field-name"><?php echo $this->translate('CD-ROM ISO');?>:</span>
|
||||
<select name="cd-rom">
|
||||
<option value="profile">profile</option>
|
||||
</select>
|
||||
</p>
|
||||
--> <p>
|
||||
<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="lo0" id="rint2" class="inline"><label for="rint2">lo0</label></radio>
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
<div class="buttons">
|
||||
<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" />
|
||||
</div>
|
||||
</dialog>
|
||||
<?php
|
||||
57
public/dialogs/bhyve-obtain.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<dialog id="bhyve-obtain" class="window-box">
|
||||
<h1><?php echo $this->translate('Create Virtual Machine from Library');?></h1>
|
||||
<h2><?php echo $this->translate('Virtual Machine Settings');?></h2>
|
||||
<form class="win" method="post" id="bhyveObtSettings">
|
||||
<div class="window-content">
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM OS profile');?>:</span>
|
||||
<select name="vm_os_profile">
|
||||
<?php echo $this->config->os_types_create('obtain'); ?>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM Image size');?>:</span>
|
||||
<input type="text" name="vm_size" value="" pattern="^[0-9]+g$" placeholder="10g" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM CPUs');?>:</span>
|
||||
<input type="text" name="vm_cpus" value="" pattern="[0-9]+" placeholder="1" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('VM RAM');?>:</span>
|
||||
<input type="text" name="vm_ram" value="" pattern="^[0-9]+g$" placeholder="1g" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<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>
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('Authkey');?>:</span>
|
||||
<select name="vm_authkey">
|
||||
<?php echo $this->config->authkeys_list(); ?>
|
||||
</select>
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
<div class="buttons">
|
||||
<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" />
|
||||
</div>
|
||||
</dialog>
|
||||
<?php
|
||||
9
public/dialogs/jail-settings-config-menu.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<div id="config-menu" style="display:none;">
|
||||
<span class="icon-cog menu-cog"></span>
|
||||
<ul>
|
||||
<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-gift" id="jddm-export"> <?php echo $this->translate('export');?></li>
|
||||
<li class="icon-cubes" id="jddm-helpers"> <?php echo $this->translate('helpers');?></li>
|
||||
</ul>
|
||||
</div>
|
||||
71
public/dialogs/jail-settings.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<script type="text/javascript">
|
||||
err_messages={
|
||||
'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");?>',
|
||||
'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");?>',
|
||||
'rootpass1':'<?php echo $this->translate("Please retype password correctly");?>',
|
||||
};
|
||||
</script>
|
||||
<dialog id="jail-settings" class="window-box">
|
||||
<h1><?php echo $this->translate('Create jail');?></h1>
|
||||
<h2><?php echo $this->translate('Jail Settings');?></h2>
|
||||
<form class="win" method="post" id="jailSettings">
|
||||
<div class="window-content">
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('Hostname');?> (FQDN):</span>
|
||||
<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>
|
||||
-->
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('IP address');?>:</span>
|
||||
<input type="text" name="ip4_addr" value="DHCP" pattern="^DHCP$|^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/[\d]{1,3})?$" required="required" />
|
||||
</p>
|
||||
<p>
|
||||
<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>
|
||||
</p>
|
||||
<p>
|
||||
<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>
|
||||
</p>
|
||||
<p>
|
||||
<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="lo0" id="rint2" class="inline"><label for="rint2">lo0</label></radio>
|
||||
</p>
|
||||
<p>
|
||||
<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>
|
||||
<br />
|
||||
<input type="checkbox" name="mount_ports" id="mount-id" /><label for="mount-id"> <?php echo $this->translate('Mount');?> /usr/ports?</label>
|
||||
<br />
|
||||
<input type="checkbox" name="astart" id="astart-id" /><label for="astart-id"> <?php echo $this->translate('Autostart jail at system startup');?></label>
|
||||
<br />
|
||||
<input type="checkbox" name="vnet" id="vnet-id" /><label for="vnet-id"> <?php echo $this->translate('Virtual network stack (VIMAGE)');?></label>
|
||||
</p>
|
||||
<p>
|
||||
<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-sshd" value="sshd" id="esrv1" class="inline"><label for="esrv1">sshd</label></checkbox>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<div class="buttons">
|
||||
<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" />
|
||||
</div>
|
||||
</dialog>
|
||||
<?php
|
||||
|
||||
/*
|
||||
сложное правило для пароля: цифры, буквы маленькие и заглавные, плюс спецсимволы
|
||||
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$
|
||||
*/
|
||||
26
public/dialogs/media.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<script type="text/javascript">
|
||||
err_messages={
|
||||
'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");?>',
|
||||
};
|
||||
</script>
|
||||
<dialog id="media" class="window-box">
|
||||
<h1><?php echo $this->translate('Add Storage Media');?></h1>
|
||||
<h2><?php echo $this->translate('Settings');?></h2>
|
||||
<form class="win" method="post" id="mediaSettings">
|
||||
<div class="window-content">
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<span class="field-name"><?php echo $this->translate('Path');?>:</span>
|
||||
<input type="text" name="mediapath" value="" pattern=".+" required="required" />
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
<div class="buttons">
|
||||
<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" />
|
||||
</div>
|
||||
</dialog>
|
||||
9
public/dialogs/tasklog.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<dialog id="tasklog" class="window-box tasklog">
|
||||
<h1><?php echo $this->translate('Task log');?></h1>
|
||||
<div class="window-content">
|
||||
Task log here…
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<input type="button" value="<?php echo $this->translate('Close');?>" class="button red cancel-but" />
|
||||
</div>
|
||||
</dialog>
|
||||
8
public/dialogs/vnc-bhyve.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<dialog id="vnc">
|
||||
<div class="panel" style="text-align:right;">
|
||||
<span onclick="clonos.dialogClose();" style="font-size:150%;font-weight:bold;cursor:pointer;">
|
||||
<span class="dialog-close"></span>
|
||||
</span>
|
||||
</div>
|
||||
<iframe src="about:blank" id="vnc-iframe" border="0" width="1024" height="800"></iframe>
|
||||
</dialog>
|
||||
8
public/dialogs/vnc.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<dialog id="vnc">
|
||||
<div class="panel" style="text-align:right;">
|
||||
<span onclick="clonos.dialogClose();" style="font-size:150%;font-weight:bold;cursor:pointer;">
|
||||
<span class="dialog-close"></span>
|
||||
</span>
|
||||
</div>
|
||||
<iframe src="about:blank" id="vnc-iframe" border="0" width="800" height="600"></iframe> <!-- 760 436 -->
|
||||
</dialog>
|
||||
26
public/dialogs/vpnet.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<script type="text/javascript">
|
||||
err_messages={
|
||||
'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");?>',
|
||||
};
|
||||
</script>
|
||||
<dialog id="vpnet" class="window-box">
|
||||
<h1><?php echo $this->translate('Create Network');?></h1>
|
||||
<h2><?php echo $this->translate('Settings');?></h2>
|
||||
<form class="win" method="post" id="vpnetSettings">
|
||||
<div class="window-content">
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
<p>
|
||||
<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" />
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
<div class="buttons">
|
||||
<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" />
|
||||
</div>
|
||||
</dialog>
|
||||
85
public/font-old/animation.css
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
Animation example, for spinners
|
||||
*/
|
||||
.animate-spin {
|
||||
-moz-animation: spin 2s infinite linear;
|
||||
-o-animation: spin 2s infinite linear;
|
||||
-webkit-animation: spin 2s infinite linear;
|
||||
animation: spin 2s infinite linear;
|
||||
display: inline-block;
|
||||
}
|
||||
@-moz-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-o-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-ms-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotate(359deg);
|
||||
-o-transform: rotate(359deg);
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
59
public/font-old/clonos-codes.css
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
.icon-plus:before { content: '\e800'; } /* '' */
|
||||
.icon-help-circled:before { content: '\e801'; } /* '' */
|
||||
.icon-info-circled:before { content: '\e802'; } /* '' */
|
||||
.icon-lock:before { content: '\e803'; } /* '' */
|
||||
.icon-lock-open:before { content: '\e804'; } /* '' */
|
||||
.icon-ok:before { content: '\e805'; } /* '' */
|
||||
.icon-forward:before { content: '\e806'; } /* '' */
|
||||
.icon-download:before { content: '\e807'; } /* '' */
|
||||
.icon-upload:before { content: '\e808'; } /* '' */
|
||||
.icon-comment:before { content: '\e809'; } /* '' */
|
||||
.icon-chat:before { content: '\e80a'; } /* '' */
|
||||
.icon-attention:before { content: '\e80b'; } /* '' */
|
||||
.icon-attention-circled:before { content: '\e80c'; } /* '' */
|
||||
.icon-location:before { content: '\e80d'; } /* '' */
|
||||
.icon-cog:before { content: '\e80e'; } /* '' */
|
||||
.icon-emo-cry:before { content: '\e80f'; } /* '' */
|
||||
.icon-cog-alt:before { content: '\e810'; } /* '' */
|
||||
.icon-wrench:before { content: '\e811'; } /* '' */
|
||||
.icon-play:before { content: '\e812'; } /* '' */
|
||||
.icon-pause:before { content: '\e813'; } /* '' */
|
||||
.icon-stop:before { content: '\e814'; } /* '' */
|
||||
.icon-home:before { content: '\e815'; } /* '' */
|
||||
.icon-off:before { content: '\e816'; } /* '' */
|
||||
.icon-user:before { content: '\e817'; } /* '' */
|
||||
.icon-users:before { content: '\e818'; } /* '' */
|
||||
.icon-pencil:before { content: '\e819'; } /* '' */
|
||||
.icon-floppy:before { content: '\e81a'; } /* '' */
|
||||
.icon-arrows-cw:before { content: '\e81b'; } /* '' */
|
||||
.icon-camera-alt:before { content: '\e81c'; } /* '' */
|
||||
.icon-gift:before { content: '\e81d'; } /* '' */
|
||||
.icon-retweet:before { content: '\e81e'; } /* '' */
|
||||
.icon-edit:before { content: '\e81f'; } /* '' */
|
||||
.icon-cancel:before { content: '\e820'; } /* '' */
|
||||
.icon-minus:before { content: '\e821'; } /* '' */
|
||||
.icon-export:before { content: '\e822'; } /* '' */
|
||||
.icon-spin4:before { content: '\e834'; } /* '' */
|
||||
.icon-spin6:before { content: '\e839'; } /* '' */
|
||||
.icon-docs:before { content: '\f0c5'; } /* '' */
|
||||
.icon-download-cloud:before { content: '\f0ed'; } /* '' */
|
||||
.icon-upload-cloud:before { content: '\f0ee'; } /* '' */
|
||||
.icon-desktop:before { content: '\f108'; } /* '' */
|
||||
.icon-spinner:before { content: '\f110'; } /* '' */
|
||||
.icon-reply:before { content: '\f112'; } /* '' */
|
||||
.icon-reply-all:before { content: '\f122'; } /* '' */
|
||||
.icon-info:before { content: '\f129'; } /* '' */
|
||||
.icon-pencil-squared:before { content: '\f14b'; } /* '' */
|
||||
.icon-export-alt:before { content: '\f14d'; } /* '' */
|
||||
.icon-youtube:before { content: '\f167'; } /* '' */
|
||||
.icon-dropbox:before { content: '\f16b'; } /* '' */
|
||||
.icon-cubes:before { content: '\f1b3'; } /* '' */
|
||||
.icon-database:before { content: '\f1c0'; } /* '' */
|
||||
.icon-trash:before { content: '\f1f8'; } /* '' */
|
||||
.icon-user-plus:before { content: '\f234'; } /* '' */
|
||||
.icon-user-times:before { content: '\f235'; } /* '' */
|
||||
.icon-expeditedssl:before { content: '\f23e'; } /* '' */
|
||||
.icon-shopping-basket:before { content: '\f291'; } /* '' */
|
||||
.icon-user-circle-o:before { content: '\f2be'; } /* '' */
|
||||
.icon-id-card-o:before { content: '\f2c3'; } /* '' */
|
||||
112
public/font-old/clonos-embedded.css
Normal file
59
public/font-old/clonos-ie7-codes.css
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chat { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attention-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-emo-cry { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-users { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-camera-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-gift { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spinner { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply-all { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pencil-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-dropbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cubes { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-times { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-expeditedssl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-shopping-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-circle-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-id-card-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
70
public/font-old/clonos-ie7.css
Normal file
@@ -0,0 +1,70 @@
|
||||
[class^="icon-"], [class*=" icon-"] {
|
||||
font-family: 'clonos';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
|
||||
/* fix buttons height */
|
||||
line-height: 1em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
}
|
||||
|
||||
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chat { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attention-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-emo-cry { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-users { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-camera-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-gift { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spinner { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply-all { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pencil-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-dropbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cubes { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-times { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-expeditedssl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-shopping-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-circle-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-id-card-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
115
public/font-old/clonos.css
Normal file
@@ -0,0 +1,115 @@
|
||||
@font-face {
|
||||
font-family: 'clonos';
|
||||
src: url('../font/clonos.eot?6865181');
|
||||
src: url('../font/clonos.eot?6865181#iefix') format('embedded-opentype'),
|
||||
url('../font/clonos.woff2?6865181') format('woff2'),
|
||||
url('../font/clonos.woff?6865181') format('woff'),
|
||||
url('../font/clonos.ttf?6865181') format('truetype'),
|
||||
url('../font/clonos.svg?6865181#clonos') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||
/*
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'clonos';
|
||||
src: url('../font/clonos.svg?6865181#clonos') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
font-family: "clonos";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: none;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
|
||||
.icon-plus:before { content: '\e800'; } /* '' */
|
||||
.icon-help-circled:before { content: '\e801'; } /* '' */
|
||||
.icon-info-circled:before { content: '\e802'; } /* '' */
|
||||
.icon-lock:before { content: '\e803'; } /* '' */
|
||||
.icon-lock-open:before { content: '\e804'; } /* '' */
|
||||
.icon-ok:before { content: '\e805'; } /* '' */
|
||||
.icon-forward:before { content: '\e806'; } /* '' */
|
||||
.icon-download:before { content: '\e807'; } /* '' */
|
||||
.icon-upload:before { content: '\e808'; } /* '' */
|
||||
.icon-comment:before { content: '\e809'; } /* '' */
|
||||
.icon-chat:before { content: '\e80a'; } /* '' */
|
||||
.icon-attention:before { content: '\e80b'; } /* '' */
|
||||
.icon-attention-circled:before { content: '\e80c'; } /* '' */
|
||||
.icon-location:before { content: '\e80d'; } /* '' */
|
||||
.icon-cog:before { content: '\e80e'; } /* '' */
|
||||
.icon-emo-cry:before { content: '\e80f'; } /* '' */
|
||||
.icon-cog-alt:before { content: '\e810'; } /* '' */
|
||||
.icon-wrench:before { content: '\e811'; } /* '' */
|
||||
.icon-play:before { content: '\e812'; } /* '' */
|
||||
.icon-pause:before { content: '\e813'; } /* '' */
|
||||
.icon-stop:before { content: '\e814'; } /* '' */
|
||||
.icon-home:before { content: '\e815'; } /* '' */
|
||||
.icon-off:before { content: '\e816'; } /* '' */
|
||||
.icon-user:before { content: '\e817'; } /* '' */
|
||||
.icon-users:before { content: '\e818'; } /* '' */
|
||||
.icon-pencil:before { content: '\e819'; } /* '' */
|
||||
.icon-floppy:before { content: '\e81a'; } /* '' */
|
||||
.icon-arrows-cw:before { content: '\e81b'; } /* '' */
|
||||
.icon-camera-alt:before { content: '\e81c'; } /* '' */
|
||||
.icon-gift:before { content: '\e81d'; } /* '' */
|
||||
.icon-retweet:before { content: '\e81e'; } /* '' */
|
||||
.icon-edit:before { content: '\e81f'; } /* '' */
|
||||
.icon-cancel:before { content: '\e820'; } /* '' */
|
||||
.icon-minus:before { content: '\e821'; } /* '' */
|
||||
.icon-export:before { content: '\e822'; } /* '' */
|
||||
.icon-spin4:before { content: '\e834'; } /* '' */
|
||||
.icon-spin6:before { content: '\e839'; } /* '' */
|
||||
.icon-docs:before { content: '\f0c5'; } /* '' */
|
||||
.icon-download-cloud:before { content: '\f0ed'; } /* '' */
|
||||
.icon-upload-cloud:before { content: '\f0ee'; } /* '' */
|
||||
.icon-desktop:before { content: '\f108'; } /* '' */
|
||||
.icon-spinner:before { content: '\f110'; } /* '' */
|
||||
.icon-reply:before { content: '\f112'; } /* '' */
|
||||
.icon-reply-all:before { content: '\f122'; } /* '' */
|
||||
.icon-info:before { content: '\f129'; } /* '' */
|
||||
.icon-pencil-squared:before { content: '\f14b'; } /* '' */
|
||||
.icon-export-alt:before { content: '\f14d'; } /* '' */
|
||||
.icon-youtube:before { content: '\f167'; } /* '' */
|
||||
.icon-dropbox:before { content: '\f16b'; } /* '' */
|
||||
.icon-cubes:before { content: '\f1b3'; } /* '' */
|
||||
.icon-database:before { content: '\f1c0'; } /* '' */
|
||||
.icon-trash:before { content: '\f1f8'; } /* '' */
|
||||
.icon-user-plus:before { content: '\f234'; } /* '' */
|
||||
.icon-user-times:before { content: '\f235'; } /* '' */
|
||||
.icon-expeditedssl:before { content: '\f23e'; } /* '' */
|
||||
.icon-shopping-basket:before { content: '\f291'; } /* '' */
|
||||
.icon-user-circle-o:before { content: '\f2be'; } /* '' */
|
||||
.icon-id-card-o:before { content: '\f2c3'; } /* '' */
|
||||
BIN
public/font-old/clonos.eot
Normal file
126
public/font-old/clonos.svg
Normal file
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="clonos" horiz-adv-x="1000" >
|
||||
<font-face font-family="clonos" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
<missing-glyph horiz-adv-x="1000" />
|
||||
<glyph glyph-name="plus" unicode="" d="M786 439v-107q0-22-16-38t-38-15h-232v-233q0-22-16-37t-38-16h-107q-22 0-38 16t-15 37v233h-232q-23 0-38 15t-16 38v107q0 23 16 38t38 16h232v232q0 22 15 38t38 16h107q23 0 38-16t16-38v-232h232q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="help-circled" unicode="" d="M500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-13 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-15-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="info-circled" unicode="" d="M571 82v89q0 8-5 13t-12 5h-54v286q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h53v-179h-53q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h250q7 0 12 5t5 13z m-71 500v89q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h107q8 0 13 5t5 13z m357-232q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="lock" unicode="" d="M179 421h285v108q0 59-42 101t-101 41-101-41-41-101v-108z m464-53v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h17v108q0 102 74 176t176 74 177-74 73-176v-108h18q23 0 38-15t16-38z" horiz-adv-x="642.9" />
|
||||
|
||||
<glyph glyph-name="lock-open" unicode="" d="M929 529v-143q0-15-11-25t-25-11h-36q-14 0-25 11t-11 25v143q0 59-41 101t-101 41-101-41-42-101v-108h53q23 0 38-15t16-38v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h375v108q0 103 73 176t177 74 176-74 74-176z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="ok" unicode="" d="M933 534q0-22-16-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q16-15 16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="forward" unicode="" d="M1000 493q0-15-11-25l-285-286q-11-11-25-11t-25 11-11 25v143h-125q-55 0-98-3t-86-12-74-24-59-39-45-56-27-77-10-101q0-31 3-69 0-4 2-13t1-15q0-8-5-14t-13-6q-9 0-15 10-4 5-8 12t-7 17-6 13q-71 159-71 252 0 111 30 186 90 225 488 225h125v143q0 14 11 25t25 10 25-10l285-286q11-11 11-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="download" unicode="" d="M714 100q0 15-10 25t-25 11-25-11-11-25 11-25 25-11 25 11 10 25z m143 0q0 15-10 25t-26 11-25-11-10-25 10-25 25-11 26 11 10 25z m72 125v-179q0-22-16-37t-38-16h-821q-23 0-38 16t-16 37v179q0 22 16 38t38 16h259l75-76q33-32 76-32t76 32l76 76h259q22 0 38-16t16-38z m-182 318q10-23-8-39l-250-250q-10-11-25-11t-25 11l-250 250q-17 16-8 39 10 21 33 21h143v250q0 15 11 25t25 11h143q14 0 25-11t10-25v-250h143q24 0 33-21z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="upload" unicode="" d="M714 29q0 14-10 25t-25 10-25-10-11-25 11-25 25-11 25 11 10 25z m143 0q0 14-10 25t-26 10-25-10-10-25 10-25 25-11 26 11 10 25z m72 125v-179q0-22-16-38t-38-16h-821q-23 0-38 16t-16 38v179q0 22 16 38t38 15h238q12-31 39-51t62-20h143q34 0 61 20t40 51h238q22 0 38-15t16-38z m-182 361q-9-22-33-22h-143v-250q0-15-10-25t-25-11h-143q-15 0-25 11t-11 25v250h-143q-23 0-33 22-9 22 8 39l250 250q10 10 25 10t25-10l250-250q18-17 8-39z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="comment" unicode="" d="M1000 350q0-97-67-179t-182-130-251-48q-39 0-81 4-110-97-257-135-27-8-63-12-10-1-17 5t-10 16v1q-2 2 0 6t1 6 2 5l4 5t4 5 4 5q4 5 17 19t20 22 17 22 18 28 15 33 15 42q-88 50-138 123t-51 157q0 73 40 139t106 114 160 76 194 28q136 0 251-48t182-130 67-179z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="chat" unicode="" d="M786 421q0-77-53-143t-143-104-197-38q-48 0-98 9-70-49-155-72-21-5-48-9h-2q-6 0-12 5t-6 12q-1 1-1 3t1 4 1 3l1 3t2 3 2 3 3 3 2 2q3 3 13 14t15 16 12 17 14 21 11 25q-69 40-108 98t-40 125q0 78 53 144t143 104 197 38 197-38 143-104 53-144z m214-142q0-67-40-126t-108-98q5-14 11-25t14-21 13-16 14-17 13-14q0 0 2-2t3-3 2-3 2-3l1-3t1-3 1-4-1-3q-2-8-7-13t-12-4q-28 4-48 9-86 23-156 72-50-9-98-9-151 0-263 74 32-3 49-3 90 0 172 25t148 72q69 52 107 119t37 141q0 43-13 85 72-39 114-99t42-128z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="attention" unicode="" d="M571 83v106q0 8-5 13t-12 5h-108q-7 0-12-5t-5-13v-106q0-8 5-13t12-6h108q7 0 12 6t5 13z m-1 208l10 257q0 6-5 10-7 6-14 6h-122q-6 0-14-6-5-4-5-12l9-255q0-5 6-9t13-3h103q8 0 14 3t5 9z m-7 522l428-786q20-35-1-70-9-17-26-26t-35-10h-858q-18 0-35 10t-26 26q-21 35-1 70l429 786q9 17 26 27t36 10 36-10 27-27z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="attention-circled" unicode="" d="M429 779q116 0 215-58t156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58z m71-696v106q0 8-5 13t-12 5h-107q-8 0-13-5t-6-13v-106q0-8 6-13t13-6h107q7 0 12 6t5 13z m-1 192l10 346q0 7-6 10-5 5-13 5h-123q-8 0-13-5-6-3-6-10l10-346q0-6 5-10t14-4h103q8 0 13 4t6 10z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="location" unicode="" d="M429 493q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m142 0q0-61-18-100l-203-432q-9-18-27-29t-37-11-38 11-26 29l-204 432q-18 39-18 100 0 118 84 202t202 84 202-84 83-202z" horiz-adv-x="571.4" />
|
||||
|
||||
<glyph glyph-name="cog" unicode="" d="M571 350q0 59-41 101t-101 42-101-42-42-101 42-101 101-42 101 42 41 101z m286 61v-124q0-7-4-13t-11-7l-104-16q-10-30-21-51 19-27 59-77 6-6 6-13t-5-13q-15-21-55-61t-53-39q-7 0-14 5l-77 60q-25-13-51-21-9-76-16-104-4-16-20-16h-124q-8 0-14 5t-6 12l-16 103q-27 9-50 21l-79-60q-6-5-14-5-8 0-14 6-70 64-92 94-4 5-4 13 0 6 5 12 8 12 28 37t30 40q-15 28-23 55l-102 15q-7 1-11 7t-5 13v124q0 7 5 13t10 7l104 16q8 25 22 51-23 32-60 77-6 7-6 14 0 5 5 12 15 20 55 60t53 40q7 0 15-5l77-60q24 13 50 21 9 76 17 104 3 16 20 16h124q7 0 13-5t7-12l15-103q28-9 51-20l79 59q5 5 13 5 7 0 14-5 72-67 92-95 4-5 4-12 0-7-4-13-9-12-29-37t-30-40q15-28 23-54l102-16q7-1 12-7t4-13z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="emo-cry" unicode="" d="M278 787c-7 0-15-2-23-5l-128-62-80-38c-2-1-4-2-6-3-1-5-1-11-1-16l0 0 0-1 0 0c0-69 40-162 122-162l0 0 0 0 0 0c34 0 65 18 87 49 26 35 37 82 34 128l18 9c27 12 38 44 25 71-9 19-28 30-48 30z m212 0c-20 0-39-11-48-30-13-27-1-59 25-71l18-9c-3-46 9-93 34-128 22-31 53-49 87-49l0 0 1 0 0 0c82 0 121 93 122 162l0 0 0 1 0 0c0 5-1 11-1 16-2 1-5 2-7 3l-80 38-128 62c-7 3-15 5-23 5z m279-302c-7 0-15-5-21-16-42-72-96-259 27-259 123 1 73 182 16 261-6 8-14 13-22 14z m-512-138c-57 0-112-9-166-26-10-4-20-7-30-11-11-5-21-9-30-13l0 0-1-1 0 0c-26-12-37-44-25-70 13-26 44-38 70-25l0-1c9 5 17 8 24 11 9 3 17 6 25 9 43 14 88 21 133 21 51 0 101-9 148-27 19-7 37-15 55-24 91-49 163-130 200-232 10-27 40-41 68-31 27 10 42 40 32 67-46 127-137 228-250 289-22 12-45 22-69 31-57 21-120 33-184 33z" horiz-adv-x="851" />
|
||||
|
||||
<glyph glyph-name="cog-alt" unicode="" d="M500 350q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m429-286q0 29-22 51t-50 21-50-21-21-51q0-29 21-50t50-21 51 21 21 50z m0 572q0 29-22 50t-50 21-50-21-21-50q0-30 21-51t50-21 51 21 21 51z m-215-235v-103q0-6-4-11t-8-6l-87-14q-6-19-18-42 19-27 50-64 4-6 4-11 0-7-4-11-12-17-46-50t-43-33q-7 0-12 4l-64 50q-21-11-43-17-6-60-13-87-4-13-17-13h-104q-6 0-11 4t-5 10l-13 85q-19 6-42 18l-66-50q-4-4-11-4-6 0-12 4-80 75-80 90 0 5 4 10 5 8 23 30t26 34q-13 24-20 46l-85 13q-5 1-9 5t-4 11v104q0 5 4 10t9 6l86 14q7 19 18 42-19 27-50 64-4 6-4 11 0 7 4 12 12 16 46 49t44 33q6 0 12-4l64-50q19 10 43 18 6 60 13 86 3 13 16 13h104q6 0 11-4t6-10l13-85q19-6 42-17l65 49q5 4 12 4 6 0 11-4 81-75 81-90 0-4-4-10-7-9-24-30t-25-34q13-27 19-46l85-12q6-2 9-6t4-11z m357-298v-78q0-9-83-17-6-15-16-29 28-63 28-77 0-2-2-4-68-40-69-40-5 0-26 27t-29 37q-11-1-17-1t-17 1q-7-11-29-37t-25-27q-1 0-69 40-3 2-3 4 0 14 29 77-10 14-17 29-83 8-83 17v78q0 9 83 18 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 1 17 1t17-1q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-9 83-18z m0 572v-78q0-9-83-18-6-15-16-29 28-63 28-77 0-2-2-4-68-39-69-39-5 0-26 26t-29 38q-11-1-17-1t-17 1q-7-12-29-38t-25-26q-1 0-69 39-3 2-3 4 0 14 29 77-10 14-17 29-83 9-83 18v78q0 9 83 17 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-37q12 1 17 1t17-1q28 39 51 62l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-8 83-17z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="wrench" unicode="" d="M214 29q0 14-10 25t-25 10-25-10-11-25 11-25 25-11 25 11 10 25z m360 234l-381-381q-21-20-50-20-29 0-51 20l-59 61q-21 20-21 50 0 29 21 51l380 380q22-55 64-97t97-64z m354 243q0-22-13-59-27-75-92-122t-144-46q-104 0-177 73t-73 177 73 176 177 74q32 0 67-10t60-26q9-6 9-15t-9-16l-163-94v-125l108-60q2 2 44 27t75 45 40 20q8 0 13-5t5-14z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="play" unicode="" d="M772 333l-741-412q-13-7-22-2t-9 20v822q0 14 9 20t22-2l741-412q13-7 13-17t-13-17z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="pause" unicode="" d="M857 743v-786q0-14-10-25t-26-11h-285q-15 0-25 11t-11 25v786q0 14 11 25t25 11h285q15 0 26-11t10-25z m-500 0v-786q0-14-10-25t-26-11h-285q-15 0-25 11t-11 25v786q0 14 11 25t25 11h285q15 0 26-11t10-25z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="stop" unicode="" d="M857 743v-786q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v786q0 14 11 25t25 11h785q15 0 26-11t10-25z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="home" unicode="" d="M786 296v-267q0-15-11-25t-25-11h-214v214h-143v-214h-214q-15 0-25 11t-11 25v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-3-7 1-12 6l-35 41q-4 6-3 13t6 12l401 334q18 15 42 15t43-15l136-113v108q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q6-4 6-12t-4-13z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="off" unicode="" d="M857 350q0-87-34-166t-91-137-137-92-166-34-167 34-136 92-92 137-34 166q0 102 45 191t126 151q24 18 54 14t46-28q18-23 14-53t-28-47q-54-41-84-101t-30-127q0-58 23-111t61-91 91-61 111-23 110 23 92 61 61 91 22 111q0 68-30 127t-84 101q-23 18-28 47t14 53q17 24 47 28t53-14q81-61 126-151t45-191z m-357 429v-358q0-29-21-50t-50-21-51 21-21 50v358q0 29 21 50t51 21 50-21 21-50z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="user" unicode="" d="M714 69q0-60-35-104t-84-44h-476q-49 0-84 44t-35 104q0 48 5 90t17 85 33 73 52 50 76 19q73-72 174-72t175 72q42 0 75-19t52-50 33-73 18-85 4-90z m-143 495q0-88-62-151t-152-63-151 63-63 151 63 152 151 63 152-63 62-152z" horiz-adv-x="714.3" />
|
||||
|
||||
<glyph glyph-name="users" unicode="" d="M331 350q-90-3-148-71h-75q-45 0-77 22t-31 66q0 197 69 197 4 0 25-11t54-24 66-12q38 0 75 13-3-21-3-37 0-78 45-143z m598-356q0-66-41-105t-108-39h-488q-68 0-108 39t-41 105q0 30 2 58t8 61 14 61 24 54 35 45 48 30 62 11q6 0 24-12t41-26 59-27 76-12 75 12 60 27 41 26 24 12q34 0 62-11t47-30 35-45 24-54 15-61 8-61 2-58z m-572 713q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m393-214q0-89-63-152t-151-62-152 62-63 152 63 151 152 63 151-63 63-151z m321-126q0-43-31-66t-77-22h-75q-57 68-147 71 45 65 45 143 0 16-3 37 37-13 74-13 33 0 67 12t54 24 24 11q69 0 69-197z m-71 340q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="pencil" unicode="" d="M203-7l50 51-131 131-51-51v-60h72v-71h60z m291 518q0 12-12 12-5 0-9-4l-303-302q-4-4-4-10 0-12 13-12 5 0 9 4l303 302q3 4 3 10z m-30 107l232-232-464-465h-232v233z m381-54q0-29-20-50l-93-93-232 233 93 92q20 21 50 21 29 0 51-21l131-131q20-22 20-51z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="floppy" unicode="" d="M214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-7 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="arrows-cw" unicode="" d="M843 261q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-36 90-57t105-20q74 0 139 37t104 99q6 10 30 66 4 13 16 13h107q8 0 13-6t5-12z m14 446v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="camera-alt" unicode="" d="M518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-7 5-12t13-6 12 6 5 12q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 63-151-63-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="gift" unicode="" d="M518 93v400h-179v-400q0-14 10-21t26-8h107q16 0 26 8t10 21z m-255 471h109l-70 90q-15 17-39 17-22 0-38-15t-15-38 15-38 38-16z m384 54q0 22-15 38t-38 15q-24 0-39-17l-69-90h108q22 0 38 16t15 38z m210-143v-179q0-7-5-12t-13-5h-53v-233q0-22-16-37t-38-16h-607q-22 0-38 16t-16 37v233h-53q-8 0-13 5t-5 12v179q0 8 5 13t13 5h245q-51 0-88 36t-37 89 37 88 88 37q60 0 94-43l72-92 71 92q34 43 94 43 52 0 88-37t37-88-37-89-88-36h245q8 0 13-5t5-13z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="retweet" unicode="" d="M714 11q0-7-5-13t-13-5h-535q-5 0-8 1t-5 4-3 4-2 7 0 6v335h-107q-15 0-25 11t-11 25q0 13 8 23l179 214q11 12 27 12t28-12l178-214q9-10 9-23 0-15-11-25t-25-11h-107v-214h321q9 0 14-6l89-108q4-5 4-11z m357 232q0-13-8-23l-178-214q-12-13-28-13t-27 13l-179 214q-8 10-8 23 0 14 11 25t25 11h107v214h-322q-9 0-14 7l-89 107q-4 5-4 11 0 7 5 12t13 6h536q4 0 7-1t5-4 3-5 2-6 1-7v-334h107q14 0 25-11t10-25z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="edit" unicode="" d="M496 189l64 65-85 85-64-65v-31h53v-54h32z m245 402q-9 9-18 0l-196-196q-9-9 0-18t18 0l196 196q9 9 0 18z m45-331v-106q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-8-8-18-4-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v70q0 7 5 12l36 36q8 8 20 4t11-16z m-54 411l161-160-375-375h-161v160z m248-73l-51-52-161 161 51 52q16 15 38 15t38-15l85-85q16-16 16-38t-16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="cancel" unicode="" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="minus" unicode="" d="M786 439v-107q0-22-16-38t-38-15h-678q-23 0-38 15t-16 38v107q0 23 16 38t38 16h678q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="export" unicode="" d="M786 298v-144q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h142q7 0 13-6t5-12q0-15-15-18-43-15-74-34-5-2-9-2h-62q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v119q0 11 10 16 16 7 31 21 8 9 19 4 12-5 12-16z m132 277l-214-214q-10-11-25-11-7 0-14 3-22 9-22 33v107h-89q-181 0-245-73-66-77-41-264 2-13-11-19-5-1-7-1-9 0-14 7-6 8-12 17t-22 39-28 55-21 64-10 68q0 27 2 51t8 50 15 49 27 45 38 42 52 34 70 27 89 17 110 6h89v107q0 24 22 33 7 3 14 3 14 0 25-11l214-214q11-10 11-25t-11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="spin4" unicode="" d="M498 850c-114 0-228-39-320-116l0 0c173 140 428 130 588-31 134-134 164-332 89-495-10-29-5-50 12-68 21-20 61-23 84 0 3 3 12 15 15 24 71 180 33 393-112 539-99 98-228 147-356 147z m-409-274c-14 0-29-5-39-16-3-3-13-15-15-24-71-180-34-393 112-539 185-185 479-195 676-31l0 0c-173-140-428-130-589 31-134 134-163 333-89 495 11 29 6 50-12 68-11 11-27 17-44 16z" horiz-adv-x="1001" />
|
||||
|
||||
<glyph glyph-name="spin6" unicode="" d="M855 9c-189-190-520-172-705 13-190 190-200 494-28 695 11 13 21 26 35 34 36 23 85 18 117-13 30-31 35-76 16-112-5-9-9-15-16-22-140-151-145-379-8-516 153-153 407-121 542 34 106 122 142 297 77 451-83 198-305 291-510 222l0 1c236 82 492-24 588-252 71-167 37-355-72-493-11-15-23-29-36-42z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="docs" unicode="" d="M946 636q23 0 38-16t16-38v-678q0-23-16-38t-38-16h-535q-23 0-38 16t-16 38v160h-303q-23 0-38 16t-16 38v375q0 22 11 49t27 42l228 228q15 16 42 27t49 11h232q23 0 38-16t16-38v-183q38 23 71 23h232z m-303-119l-167-167h167v167z m-357 214l-167-167h167v167z m109-361l176 176v233h-214v-233q0-22-15-37t-38-16h-233v-357h286v143q0 22 11 49t27 42z m534-449v643h-215v-232q0-22-15-38t-38-15h-232v-358h500z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="download-cloud" unicode="" d="M714 332q0 8-5 13t-13 5h-125v196q0 8-5 13t-12 5h-108q-7 0-12-5t-5-13v-196h-125q-8 0-13-5t-5-13q0-8 5-13l196-196q5-5 13-5t13 5l196 196q5 6 5 13z m357-125q0-89-62-151t-152-63h-607q-103 0-177 73t-73 177q0 72 39 134t105 92q-1 17-1 24 0 118 84 202t202 84q87 0 159-49t105-129q40 35 93 35 59 0 101-42t42-101q0-43-23-77 72-17 119-76t46-133z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="upload-cloud" unicode="" d="M714 368q0 8-5 13l-196 196q-5 5-13 5t-13-5l-196-196q-5-6-5-13 0-8 5-13t13-5h125v-196q0-8 5-13t12-5h108q7 0 12 5t5 13v196h125q8 0 13 5t5 13z m357-161q0-89-62-151t-152-63h-607q-103 0-177 73t-73 177q0 72 39 134t105 92q-1 17-1 24 0 118 84 202t202 84q87 0 159-49t105-129q40 35 93 35 59 0 101-42t42-101q0-43-23-77 72-17 119-76t46-133z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="desktop" unicode="" d="M1000 296v465q0 7-5 12t-13 6h-893q-7 0-12-6t-6-12v-465q0-7 6-12t12-5h893q7 0 13 5t5 12z m71 465v-607q0-37-26-63t-63-27h-303q0-20 9-43t17-40 9-24q0-14-10-25t-25-11h-286q-15 0-25 11t-11 25q0 8 9 25t18 39 9 43h-304q-36 0-63 27t-26 63v607q0 37 26 63t63 26h893q37 0 63-26t26-63z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="spinner" unicode="" d="M294 72q0-29-21-50t-51-21q-29 0-50 21t-21 50q0 30 21 51t50 21 51-21 21-51z m277-115q0-29-20-50t-51-21-50 21-21 50 21 51 50 21 51-21 20-51z m-392 393q0-30-21-50t-51-21-50 21-21 50 21 51 50 20 51-20 21-51z m670-278q0-29-21-50t-50-21q-30 0-51 21t-20 50 20 51 51 21 50-21 21-51z m-538 556q0-37-26-63t-63-26-63 26-26 63 26 63 63 26 63-26 26-63z m653-278q0-30-21-50t-50-21-51 21-21 50 21 51 51 20 50-20 21-51z m-357 393q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m296-115q0-52-37-88t-88-37q-52 0-88 37t-37 88q0 51 37 88t88 37q51 0 88-37t37-88z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="reply" unicode="" d="M1000 225q0-93-71-252-1-4-6-13t-7-17-7-12q-7-10-16-10-8 0-13 6t-5 14q0 5 1 15t2 13q3 38 3 69 0 56-10 101t-27 77-45 56-59 39-74 24-86 12-98 3h-125v-143q0-14-10-25t-26-11-25 11l-285 286q-11 10-11 25t11 25l285 286q11 10 25 10t26-10 10-25v-143h125q398 0 488-225 30-75 30-186z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="reply-all" unicode="" d="M357 246v-39q0-23-22-33-7-3-14-3-15 0-25 11l-285 286q-11 10-11 25t11 25l285 286q17 17 39 8 22-10 22-33v-39l-221-222q-11-11-11-25t11-25z m643-21q0-32-9-74t-22-77-27-70-22-51l-11-22q-5-10-16-10-3 0-5 1-14 4-13 19 24 223-59 315-36 40-95 62t-150 29v-140q0-23-21-33-8-3-14-3-15 0-25 11l-286 286q-11 10-11 25t11 25l286 286q16 17 39 8 21-10 21-33v-147q230-15 335-123 94-96 94-284z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="info" unicode="" d="M357 100v-71q0-15-10-25t-26-11h-285q-15 0-25 11t-11 25v71q0 15 11 25t25 11h35v214h-35q-15 0-25 11t-11 25v71q0 15 11 25t25 11h214q15 0 25-11t11-25v-321h35q15 0 26-11t10-25z m-71 643v-107q0-15-11-25t-25-11h-143q-14 0-25 11t-11 25v107q0 14 11 25t25 11h143q15 0 25-11t11-25z" horiz-adv-x="357.1" />
|
||||
|
||||
<glyph glyph-name="pencil-squared" unicode="" d="M225 232l85-85-29-29h-31v53h-54v32z m232 217q7-7-2-16l-163-163q-9-9-16-1-8 7 1 16l163 163q9 9 17 1z m-153-385l303 304-161 161-303-304v-161h161z m339 340l51 51q16 16 16 38t-16 38l-85 85q-15 15-38 15t-37-15l-52-52z m214 214v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="export-alt" unicode="" d="M561 236l196 196q11 11 11 25t-11 25l-196 197q-17 17-39 8-22-10-22-33v-90q-66 0-120-11t-91-28-64-44-42-53-25-61-12-62-3-62q0-101 93-226 6-6 14-6 4 0 7 1 13 5 11 19-25 197 35 264 25 29 72 42t125 13v-89q0-24 22-33 7-3 14-3 14 0 25 11z m296 382v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="youtube" unicode="" d="M542 156v-118q0-37-22-37-13 0-25 12v168q12 12 25 12 22 0 22-37z m189-1v-25h-51v25q0 38 25 38t26-38z m-540 122h60v52h-174v-52h59v-318h55v318z m161-318h50v276h-50v-211q-17-23-32-23-10 0-11 11-1 2-1 20v203h-50v-218q0-28 5-41 7-21 32-21 27 0 57 34v-30z m240 83v110q0 41-5 55-10 31-40 31-28 0-52-30v121h-50v-370h50v27q25-31 52-31 30 0 40 31 5 15 5 56z m188 6v7h-51q0-29-1-34-4-20-22-20-26 0-26 38v49h100v57q0 44-15 65-22 28-59 28-38 0-60-28-15-21-15-65v-96q0-44 16-65 22-29 60-29 40 0 60 30 10 15 12 30 1 5 1 33z m-339 509v117q0 39-24 39t-24-39v-117q0-39 24-39t24 39z m401-419q0-131-14-195-8-33-33-56t-57-25q-102-12-309-12t-310 12q-32 3-57 25t-32 56q-15 62-15 195 0 131 15 195 7 33 32 56t57 26q103 11 310 11t309-11q33-4 58-26t32-56q14-62 14-195z m-557 712h57l-67-223v-151h-56v151q-8 42-34 119-21 57-37 104h60l39-147z m207-186v-97q0-46-16-66-21-29-59-29-37 0-59 29-15 21-15 66v97q0 45 15 66 22 28 59 28 38 0 59-28 16-21 16-66z m187 91v-279h-51v31q-30-35-58-35-25 0-33 21-4 13-4 42v220h51v-205q0-19 0-20 2-12 12-12 15 0 32 24v213h51z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="dropbox" unicode="" d="M224 456l276-171-191-159-273 178z m551-310v-60l-274-164v-1l0 1-1-1v1l-273 164v60l82-54 191 159v1l1-1 0 1v-1l192-159z m-466 638l191-159-276-169-188 150z m467-328l188-152-273-178-191 159z m-85 328l273-178-188-150-276 169z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="cubes" unicode="" d="M357-61l214 107v176l-214-92v-191z m-36 254l226 96-226 97-225-97z m608-254l214 107v176l-214-92v-191z m-36 254l225 96-225 97-226-97z m-250 163l214 92v149l-214-92v-149z m-36 212l246 105-246 106-246-106z m607-289v-233q0-20-10-37t-29-26l-250-125q-14-8-32-8t-32 8l-250 125q-2 1-4 2-1-1-4-2l-250-125q-14-8-32-8t-31 8l-250 125q-19 9-29 26t-11 37v233q0 21 12 39t32 26l242 104v223q0 22 12 40t31 26l250 107q13 6 28 6t28-6l250-107q20-9 32-26t12-40v-223l242-104q20-8 32-26t11-39z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="database" unicode="" d="M429 421q132 0 247 24t181 71v-95q0-38-57-71t-157-52-214-19-215 19-156 52-58 71v95q66-47 181-71t248-24z m0-428q132 0 247 24t181 71v-95q0-39-57-72t-157-52-214-19-215 19-156 52-58 72v95q66-47 181-71t248-24z m0 214q132 0 247 24t181 71v-95q0-38-57-71t-157-52-214-20-215 20-156 52-58 71v95q66-47 181-71t248-24z m0 643q116 0 214-19t157-52 57-72v-71q0-39-57-72t-157-52-214-19-215 19-156 52-58 72v71q0 39 58 72t156 52 215 19z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="trash" unicode="" d="M286 82v393q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q8 0 13 5t5 13z m143 0v393q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q8 0 13 5t5 13z m142 0v393q0 8-5 13t-12 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q7 0 12 5t5 13z m-303 554h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q23 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="user-plus" unicode="" d="M393 350q-89 0-152 63t-62 151 62 152 152 63 151-63 63-152-63-151-151-63z m536-71h196q7 0 13-6t5-12v-107q0-8-5-13t-13-5h-196v-197q0-7-6-12t-12-6h-107q-8 0-13 6t-5 12v197h-197q-7 0-12 5t-6 13v107q0 7 6 12t12 6h197v196q0 7 5 13t13 5h107q7 0 12-5t6-13v-196z m-411-125q0-29 21-51t50-21h143v-133q-38-28-95-28h-488q-67 0-108 39t-41 106q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q11 0 22-10 44-34 86-51t92-17 92 17 86 51q11 10 22 10 73 0 121-54h-125q-29 0-50-21t-21-50v-107z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="user-times" unicode="" d="M393 350q-89 0-152 63t-62 151 62 152 152 63 151-63 63-152-63-151-151-63z m601-179l139-138q5-5 5-13 0-8-5-13l-76-76q-5-5-12-5-8 0-13 5l-139 139-139-139q-5-5-13-5-7 0-12 5l-76 76q-5 5-5 13 0 8 5 13l139 138-139 139q-5 5-5 13 0 8 5 13l76 75q5 5 12 5 8 0 13-5l139-139 139 139q5 5 13 5 7 0 12-5l76-75q5-5 5-13 0-8-5-13z m-278 0l-101-101q-21-20-21-50 0-30 21-51l46-46q-11-2-24-2h-488q-67 0-108 39t-41 106q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q11 0 22-10 86-68 178-68t178 68q11 10 22 10 15 0 31-4-15-15-22-27t-8-32q0-30 21-51z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="expeditedssl" unicode="" d="M500 814q-94 0-180-36t-148-100-99-148-37-180 37-180 99-148 148-100 180-36 180 36 148 100 100 148 36 180-36 180-100 148-148 100-180 36z m0 36q102 0 194-40t160-106 106-160 40-194-40-194-106-160-160-106-194-40-194 40-160 106-106 160-40 194 40 194 106 160 160 106 194 40z m-223-464q9 0 9-9v-268q0-9-9-9h-18q-9 0-9 9v268q0 9 9 9h18z m223-36q30 0 51-21t20-50q0-20-9-36t-26-26v-63q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v63q-16 10-26 26t-9 36q0 29 21 50t50 21z m0 429q117 0 215-58t156-156 58-215-58-215-156-156-215-58-215 58-156 156-58 215 58 215 156 156 215 58z m-196-268v-54q0-8 5-13t12-5h36q8 0 13 5t5 13v54q0 52 37 88t88 37 88-37 37-88v-54q0-8 5-13t13-5h36q7 0 12 5t5 13v54q0 81-57 139t-139 57-139-57-57-139z m482-411v286q0 14-11 25t-25 10h-500q-14 0-25-10t-11-25v-286q0-14 11-25t25-11h500q15 0 25 11t11 25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="shopping-basket" unicode="" d="M1071 421q30 0 51-20t21-51-21-50-51-21h-8l-64-370q-5-26-25-42t-45-17h-715q-25 0-45 17t-25 42l-64 370h-9q-29 0-50 21t-21 50 21 51 50 20h1000z m-800-446q14 1 24 13t9 26l-18 232q-1 14-13 24t-26 9-24-13-9-26l18-232q1-14 12-24t24-9h3z m229 36v232q0 14-11 25t-25 11-25-11-10-25v-232q0-15 10-25t25-11 25 11 11 25z m214 0v232q0 14-10 25t-25 11-25-11-11-25v-232q0-15 11-25t25-11 25 11 10 25z m197-3l18 232q1 15-9 26t-24 13-26-9-13-24l-18-232q-1-15 9-26t24-13h3q14 0 24 9t12 24z m-645 679l-52-230h-74l56 246q11 49 50 80t89 31h94q0 15 10 25t25 11h215q14 0 25-11t10-25h94q50 0 89-31t49-80l57-246h-74l-52 230q-6 25-25 40t-44 16h-94q0-15-10-25t-25-11h-215q-14 0-25 11t-10 25h-94q-25 0-44-16t-25-40z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="user-circle-o" unicode="" d="M500 850q102 0 194-40t160-106 106-160 40-194q0-101-39-194t-107-159-159-107-195-40-195 40-159 106-106 160-40 194 40 194 106 160 160 106 194 40z m345-754q84 115 84 254 0 87-34 166t-92 137-137 92-166 34-166-34-137-92-91-137-35-166q0-139 84-254 36 183 170 183 73-72 175-72t175 72q134 0 170-183z m-131 361q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="id-card-o" unicode="" d="M500 174q0-31-18-52t-42-22h-237q-25 0-43 22t-17 52q0 30 4 56t14 50 28 38 45 14q36-36 87-36t88 36q26 0 45-14t28-38 14-50 4-56z m-71 247q0-44-32-75t-76-32-75 32-32 75 32 76 75 32 76-32 32-76z m571-232v-35q0-8-5-13t-13-5h-393q-7 0-12 5t-6 13v35q0 8 6 13t12 5h393q8 0 13-5t5-13z m-214 143v-36q0-7-5-12t-13-5h-179q-7 0-12 5t-6 12v36q0 8 6 13t12 5h179q8 0 13-5t5-13z m214 0v-36q0-7-5-12t-13-5h-107q-8 0-13 5t-5 12v36q0 8 5 13t13 5h107q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-6h-393q-7 0-12 6t-6 12v36q0 8 6 13t12 5h393q8 0 13-5t5-13z m71-464v625h-1000v-625q0-7 6-13t12-5h965q7 0 12 5t5 13z m72 678v-678q0-37-26-63t-63-27h-965q-36 0-63 27t-26 63v678q0 37 26 63t63 27h965q36 0 63-27t26-63z" horiz-adv-x="1142.9" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 27 KiB |
BIN
public/font-old/clonos.ttf
Normal file
BIN
public/font-old/clonos.woff
Normal file
BIN
public/font-old/clonos.woff2
Normal file
@@ -34,25 +34,126 @@
|
||||
.icon-cancel:before { content: '\e820'; } /* '' */
|
||||
.icon-minus:before { content: '\e821'; } /* '' */
|
||||
.icon-export:before { content: '\e822'; } /* '' */
|
||||
.icon-heart:before { content: '\e823'; } /* '' */
|
||||
.icon-star:before { content: '\e824'; } /* '' */
|
||||
.icon-th-list:before { content: '\e825'; } /* '' */
|
||||
.icon-th-large:before { content: '\e826'; } /* '' */
|
||||
.icon-th:before { content: '\e827'; } /* '' */
|
||||
.icon-mail:before { content: '\e828'; } /* '' */
|
||||
.icon-picture:before { content: '\e829'; } /* '' */
|
||||
.icon-link:before { content: '\e82a'; } /* '' */
|
||||
.icon-attach:before { content: '\e82b'; } /* '' */
|
||||
.icon-eye:before { content: '\e82c'; } /* '' */
|
||||
.icon-eye-off:before { content: '\e82d'; } /* '' */
|
||||
.icon-tag:before { content: '\e82e'; } /* '' */
|
||||
.icon-tags:before { content: '\e82f'; } /* '' */
|
||||
.icon-flag:before { content: '\e830'; } /* '' */
|
||||
.icon-thumbs-up:before { content: '\e831'; } /* '' */
|
||||
.icon-thumbs-down:before { content: '\e832'; } /* '' */
|
||||
.icon-print:before { content: '\e833'; } /* '' */
|
||||
.icon-spin4:before { content: '\e834'; } /* '' */
|
||||
.icon-trash-empty:before { content: '\e835'; } /* '' */
|
||||
.icon-doc:before { content: '\e836'; } /* '' */
|
||||
.icon-calendar:before { content: '\e837'; } /* '' */
|
||||
.icon-chart-bar:before { content: '\e838'; } /* '' */
|
||||
.icon-spin6:before { content: '\e839'; } /* '' */
|
||||
.icon-list-alt:before { content: '\e83a'; } /* '' */
|
||||
.icon-basket:before { content: '\e83b'; } /* '' */
|
||||
.icon-globe:before { content: '\e83c'; } /* '' */
|
||||
.icon-inbox:before { content: '\e83d'; } /* '' */
|
||||
.icon-cloud:before { content: '\e83e'; } /* '' */
|
||||
.icon-umbrella:before { content: '\e83f'; } /* '' */
|
||||
.icon-flash:before { content: '\e840'; } /* '' */
|
||||
.icon-briefcase:before { content: '\e841'; } /* '' */
|
||||
.icon-key:before { content: '\e842'; } /* '' */
|
||||
.icon-credit-card:before { content: '\e843'; } /* '' */
|
||||
.icon-road:before { content: '\e844'; } /* '' */
|
||||
.icon-calendar-1:before { content: '\e845'; } /* '' */
|
||||
.icon-database-1:before { content: '\e846'; } /* '' */
|
||||
.icon-clipboard:before { content: '\e847'; } /* '' */
|
||||
.icon-clipboard-1:before { content: '\e848'; } /* '' */
|
||||
.icon-buffer:before { content: '\e849'; } /* '' */
|
||||
.icon-link-ext:before { content: '\f08e'; } /* '' */
|
||||
.icon-hdd:before { content: '\f0a0'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-resize-full-alt:before { content: '\f0b2'; } /* '' */
|
||||
.icon-docs:before { content: '\f0c5'; } /* '' */
|
||||
.icon-money:before { content: '\f0d6'; } /* '' */
|
||||
.icon-mail-alt:before { content: '\f0e0'; } /* '' */
|
||||
.icon-gauge:before { content: '\f0e4'; } /* '' */
|
||||
.icon-chat-empty:before { content: '\f0e6'; } /* '' */
|
||||
.icon-sitemap:before { content: '\f0e8'; } /* '' */
|
||||
.icon-lightbulb:before { content: '\f0eb'; } /* '' */
|
||||
.icon-download-cloud:before { content: '\f0ed'; } /* '' */
|
||||
.icon-upload-cloud:before { content: '\f0ee'; } /* '' */
|
||||
.icon-user-md:before { content: '\f0f0'; } /* '' */
|
||||
.icon-doc-text:before { content: '\f0f6'; } /* '' */
|
||||
.icon-building:before { content: '\f0f7'; } /* '' */
|
||||
.icon-desktop:before { content: '\f108'; } /* '' */
|
||||
.icon-laptop:before { content: '\f109'; } /* '' */
|
||||
.icon-tablet:before { content: '\f10a'; } /* '' */
|
||||
.icon-mobile:before { content: '\f10b'; } /* '' */
|
||||
.icon-spinner:before { content: '\f110'; } /* '' */
|
||||
.icon-reply:before { content: '\f112'; } /* '' */
|
||||
.icon-folder-empty:before { content: '\f114'; } /* '' */
|
||||
.icon-folder-open-empty:before { content: '\f115'; } /* '' */
|
||||
.icon-flag-checkered:before { content: '\f11e'; } /* '' */
|
||||
.icon-reply-all:before { content: '\f122'; } /* '' */
|
||||
.icon-fork:before { content: '\f126'; } /* '' */
|
||||
.icon-unlink:before { content: '\f127'; } /* '' */
|
||||
.icon-info:before { content: '\f129'; } /* '' */
|
||||
.icon-puzzle:before { content: '\f12e'; } /* '' */
|
||||
.icon-calendar-empty:before { content: '\f133'; } /* '' */
|
||||
.icon-anchor:before { content: '\f13d'; } /* '' */
|
||||
.icon-ok-squared:before { content: '\f14a'; } /* '' */
|
||||
.icon-pencil-squared:before { content: '\f14b'; } /* '' */
|
||||
.icon-export-alt:before { content: '\f14d'; } /* '' */
|
||||
.icon-thumbs-up-alt:before { content: '\f164'; } /* '' */
|
||||
.icon-thumbs-down-alt:before { content: '\f165'; } /* '' */
|
||||
.icon-youtube:before { content: '\f167'; } /* '' */
|
||||
.icon-dropbox:before { content: '\f16b'; } /* '' */
|
||||
.icon-apple:before { content: '\f179'; } /* '' */
|
||||
.icon-android:before { content: '\f17b'; } /* '' */
|
||||
.icon-sun:before { content: '\f185'; } /* '' */
|
||||
.icon-box:before { content: '\f187'; } /* '' */
|
||||
.icon-fax:before { content: '\f1ac'; } /* '' */
|
||||
.icon-cube:before { content: '\f1b2'; } /* '' */
|
||||
.icon-cubes:before { content: '\f1b3'; } /* '' */
|
||||
.icon-recycle:before { content: '\f1b8'; } /* '' */
|
||||
.icon-database:before { content: '\f1c0'; } /* '' */
|
||||
.icon-codeopen:before { content: '\f1cb'; } /* '' */
|
||||
.icon-sliders:before { content: '\f1de'; } /* '' */
|
||||
.icon-bomb:before { content: '\f1e2'; } /* '' */
|
||||
.icon-plug:before { content: '\f1e6'; } /* '' */
|
||||
.icon-newspaper:before { content: '\f1ea'; } /* '' */
|
||||
.icon-cc-visa:before { content: '\f1f0'; } /* '' */
|
||||
.icon-cc-mastercard:before { content: '\f1f1'; } /* '' */
|
||||
.icon-cc-paypal:before { content: '\f1f4'; } /* '' */
|
||||
.icon-trash:before { content: '\f1f8'; } /* '' */
|
||||
.icon-chart-area:before { content: '\f1fe'; } /* '' */
|
||||
.icon-chart-pie:before { content: '\f200'; } /* '' */
|
||||
.icon-chart-line:before { content: '\f201'; } /* '' */
|
||||
.icon-toggle-off:before { content: '\f204'; } /* '' */
|
||||
.icon-toggle-on:before { content: '\f205'; } /* '' */
|
||||
.icon-cc:before { content: '\f20a'; } /* '' */
|
||||
.icon-diamond:before { content: '\f219'; } /* '' */
|
||||
.icon-user-secret:before { content: '\f21b'; } /* '' */
|
||||
.icon-server:before { content: '\f233'; } /* '' */
|
||||
.icon-user-plus:before { content: '\f234'; } /* '' */
|
||||
.icon-user-times:before { content: '\f235'; } /* '' */
|
||||
.icon-expeditedssl:before { content: '\f23e'; } /* '' */
|
||||
.icon-object-group:before { content: '\f247'; } /* '' */
|
||||
.icon-object-ungroup:before { content: '\f248'; } /* '' */
|
||||
.icon-sticky-note:before { content: '\f249'; } /* '' */
|
||||
.icon-clone:before { content: '\f24d'; } /* '' */
|
||||
.icon-television:before { content: '\f26c'; } /* '' */
|
||||
.icon-map-signs:before { content: '\f277'; } /* '' */
|
||||
.icon-shopping-basket:before { content: '\f291'; } /* '' */
|
||||
.icon-wpforms:before { content: '\f298'; } /* '' */
|
||||
.icon-handshake-o:before { content: '\f2b5'; } /* '' */
|
||||
.icon-envelope-open:before { content: '\f2b6'; } /* '' */
|
||||
.icon-envelope-open-o:before { content: '\f2b7'; } /* '' */
|
||||
.icon-address-card-o:before { content: '\f2bc'; } /* '' */
|
||||
.icon-user-circle-o:before { content: '\f2be'; } /* '' */
|
||||
.icon-id-badge:before { content: '\f2c1'; } /* '' */
|
||||
.icon-id-card-o:before { content: '\f2c3'; } /* '' */
|
||||
@@ -34,25 +34,126 @@
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-link { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-print { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-list-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-umbrella { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-briefcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-credit-card { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-road { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-database-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-clipboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-clipboard-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-buffer { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chat-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-md { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-building { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tablet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spinner { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-folder-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-folder-open-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flag-checkered { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply-all { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-fork { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-unlink { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-puzzle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-anchor { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pencil-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-up-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-down-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-dropbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-apple { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-android { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-box { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-fax { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cubes { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-recycle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-codeopen { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sliders { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-bomb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-plug { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-newspaper { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc-visa { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc-mastercard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc-paypal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-area { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-pie { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-line { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-toggle-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-toggle-on { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-diamond { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-secret { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-server { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-times { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-expeditedssl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-object-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-object-ungroup { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sticky-note { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-clone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-map-signs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-shopping-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-wpforms { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-handshake-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-envelope-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-envelope-open-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-address-card-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-circle-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-id-badge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-id-card-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
@@ -45,25 +45,126 @@
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-link { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-print { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-list-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-umbrella { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-briefcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-credit-card { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-road { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-database-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-clipboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-clipboard-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-buffer { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chat-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-md { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-building { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tablet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-spinner { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-folder-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-folder-open-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-flag-checkered { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-reply-all { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-fork { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-unlink { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-puzzle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-calendar-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-anchor { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-pencil-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-export-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-up-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-thumbs-down-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-dropbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-apple { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-android { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-box { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-fax { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cubes { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-recycle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-codeopen { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sliders { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-bomb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-plug { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-newspaper { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc-visa { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc-mastercard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc-paypal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-area { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-pie { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-chart-line { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-toggle-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-toggle-on { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-diamond { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-secret { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-server { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-times { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-expeditedssl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-object-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-object-ungroup { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-sticky-note { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-clone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-map-signs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-shopping-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-wpforms { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-handshake-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-envelope-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-envelope-open-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-address-card-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-user-circle-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-id-badge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-id-card-o { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
@@ -1,11 +1,11 @@
|
||||
@font-face {
|
||||
font-family: 'clonos';
|
||||
src: url('/font/clonos.eot?85054221');
|
||||
src: url('/font/clonos.eot?85054221#iefix') format('embedded-opentype'),
|
||||
url('/font/clonos.woff2?85054221') format('woff2'),
|
||||
url('/font/clonos.woff?85054221') format('woff'),
|
||||
url('/font/clonos.ttf?85054221') format('truetype'),
|
||||
url('/font/clonos.svg?85054221#clonos') format('svg');
|
||||
src: url('../font/clonos.eot?73410056');
|
||||
src: url('../font/clonos.eot?73410056#iefix') format('embedded-opentype'),
|
||||
url('../font/clonos.woff2?73410056') format('woff2'),
|
||||
url('../font/clonos.woff?73410056') format('woff'),
|
||||
url('../font/clonos.ttf?73410056') format('truetype'),
|
||||
url('../font/clonos.svg?73410056#clonos') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'clonos';
|
||||
src: url('../font/clonos.svg?85054221#clonos') format('svg');
|
||||
src: url('../font/clonos.svg?73410056#clonos') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -90,25 +90,126 @@
|
||||
.icon-cancel:before { content: '\e820'; } /* '' */
|
||||
.icon-minus:before { content: '\e821'; } /* '' */
|
||||
.icon-export:before { content: '\e822'; } /* '' */
|
||||
.icon-heart:before { content: '\e823'; } /* '' */
|
||||
.icon-star:before { content: '\e824'; } /* '' */
|
||||
.icon-th-list:before { content: '\e825'; } /* '' */
|
||||
.icon-th-large:before { content: '\e826'; } /* '' */
|
||||
.icon-th:before { content: '\e827'; } /* '' */
|
||||
.icon-mail:before { content: '\e828'; } /* '' */
|
||||
.icon-picture:before { content: '\e829'; } /* '' */
|
||||
.icon-link:before { content: '\e82a'; } /* '' */
|
||||
.icon-attach:before { content: '\e82b'; } /* '' */
|
||||
.icon-eye:before { content: '\e82c'; } /* '' */
|
||||
.icon-eye-off:before { content: '\e82d'; } /* '' */
|
||||
.icon-tag:before { content: '\e82e'; } /* '' */
|
||||
.icon-tags:before { content: '\e82f'; } /* '' */
|
||||
.icon-flag:before { content: '\e830'; } /* '' */
|
||||
.icon-thumbs-up:before { content: '\e831'; } /* '' */
|
||||
.icon-thumbs-down:before { content: '\e832'; } /* '' */
|
||||
.icon-print:before { content: '\e833'; } /* '' */
|
||||
.icon-spin4:before { content: '\e834'; } /* '' */
|
||||
.icon-trash-empty:before { content: '\e835'; } /* '' */
|
||||
.icon-doc:before { content: '\e836'; } /* '' */
|
||||
.icon-calendar:before { content: '\e837'; } /* '' */
|
||||
.icon-chart-bar:before { content: '\e838'; } /* '' */
|
||||
.icon-spin6:before { content: '\e839'; } /* '' */
|
||||
.icon-list-alt:before { content: '\e83a'; } /* '' */
|
||||
.icon-basket:before { content: '\e83b'; } /* '' */
|
||||
.icon-globe:before { content: '\e83c'; } /* '' */
|
||||
.icon-inbox:before { content: '\e83d'; } /* '' */
|
||||
.icon-cloud:before { content: '\e83e'; } /* '' */
|
||||
.icon-umbrella:before { content: '\e83f'; } /* '' */
|
||||
.icon-flash:before { content: '\e840'; } /* '' */
|
||||
.icon-briefcase:before { content: '\e841'; } /* '' */
|
||||
.icon-key:before { content: '\e842'; } /* '' */
|
||||
.icon-credit-card:before { content: '\e843'; } /* '' */
|
||||
.icon-road:before { content: '\e844'; } /* '' */
|
||||
.icon-calendar-1:before { content: '\e845'; } /* '' */
|
||||
.icon-database-1:before { content: '\e846'; } /* '' */
|
||||
.icon-clipboard:before { content: '\e847'; } /* '' */
|
||||
.icon-clipboard-1:before { content: '\e848'; } /* '' */
|
||||
.icon-buffer:before { content: '\e849'; } /* '' */
|
||||
.icon-link-ext:before { content: '\f08e'; } /* '' */
|
||||
.icon-hdd:before { content: '\f0a0'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
.icon-resize-full-alt:before { content: '\f0b2'; } /* '' */
|
||||
.icon-docs:before { content: '\f0c5'; } /* '' */
|
||||
.icon-money:before { content: '\f0d6'; } /* '' */
|
||||
.icon-mail-alt:before { content: '\f0e0'; } /* '' */
|
||||
.icon-gauge:before { content: '\f0e4'; } /* '' */
|
||||
.icon-chat-empty:before { content: '\f0e6'; } /* '' */
|
||||
.icon-sitemap:before { content: '\f0e8'; } /* '' */
|
||||
.icon-lightbulb:before { content: '\f0eb'; } /* '' */
|
||||
.icon-download-cloud:before { content: '\f0ed'; } /* '' */
|
||||
.icon-upload-cloud:before { content: '\f0ee'; } /* '' */
|
||||
.icon-user-md:before { content: '\f0f0'; } /* '' */
|
||||
.icon-doc-text:before { content: '\f0f6'; } /* '' */
|
||||
.icon-building:before { content: '\f0f7'; } /* '' */
|
||||
.icon-desktop:before { content: '\f108'; } /* '' */
|
||||
.icon-laptop:before { content: '\f109'; } /* '' */
|
||||
.icon-tablet:before { content: '\f10a'; } /* '' */
|
||||
.icon-mobile:before { content: '\f10b'; } /* '' */
|
||||
.icon-spinner:before { content: '\f110'; } /* '' */
|
||||
.icon-reply:before { content: '\f112'; } /* '' */
|
||||
.icon-folder-empty:before { content: '\f114'; } /* '' */
|
||||
.icon-folder-open-empty:before { content: '\f115'; } /* '' */
|
||||
.icon-flag-checkered:before { content: '\f11e'; } /* '' */
|
||||
.icon-reply-all:before { content: '\f122'; } /* '' */
|
||||
.icon-fork:before { content: '\f126'; } /* '' */
|
||||
.icon-unlink:before { content: '\f127'; } /* '' */
|
||||
.icon-info:before { content: '\f129'; } /* '' */
|
||||
.icon-puzzle:before { content: '\f12e'; } /* '' */
|
||||
.icon-calendar-empty:before { content: '\f133'; } /* '' */
|
||||
.icon-anchor:before { content: '\f13d'; } /* '' */
|
||||
.icon-ok-squared:before { content: '\f14a'; } /* '' */
|
||||
.icon-pencil-squared:before { content: '\f14b'; } /* '' */
|
||||
.icon-export-alt:before { content: '\f14d'; } /* '' */
|
||||
.icon-thumbs-up-alt:before { content: '\f164'; } /* '' */
|
||||
.icon-thumbs-down-alt:before { content: '\f165'; } /* '' */
|
||||
.icon-youtube:before { content: '\f167'; } /* '' */
|
||||
.icon-dropbox:before { content: '\f16b'; } /* '' */
|
||||
.icon-apple:before { content: '\f179'; } /* '' */
|
||||
.icon-android:before { content: '\f17b'; } /* '' */
|
||||
.icon-sun:before { content: '\f185'; } /* '' */
|
||||
.icon-box:before { content: '\f187'; } /* '' */
|
||||
.icon-fax:before { content: '\f1ac'; } /* '' */
|
||||
.icon-cube:before { content: '\f1b2'; } /* '' */
|
||||
.icon-cubes:before { content: '\f1b3'; } /* '' */
|
||||
.icon-recycle:before { content: '\f1b8'; } /* '' */
|
||||
.icon-database:before { content: '\f1c0'; } /* '' */
|
||||
.icon-codeopen:before { content: '\f1cb'; } /* '' */
|
||||
.icon-sliders:before { content: '\f1de'; } /* '' */
|
||||
.icon-bomb:before { content: '\f1e2'; } /* '' */
|
||||
.icon-plug:before { content: '\f1e6'; } /* '' */
|
||||
.icon-newspaper:before { content: '\f1ea'; } /* '' */
|
||||
.icon-cc-visa:before { content: '\f1f0'; } /* '' */
|
||||
.icon-cc-mastercard:before { content: '\f1f1'; } /* '' */
|
||||
.icon-cc-paypal:before { content: '\f1f4'; } /* '' */
|
||||
.icon-trash:before { content: '\f1f8'; } /* '' */
|
||||
.icon-chart-area:before { content: '\f1fe'; } /* '' */
|
||||
.icon-chart-pie:before { content: '\f200'; } /* '' */
|
||||
.icon-chart-line:before { content: '\f201'; } /* '' */
|
||||
.icon-toggle-off:before { content: '\f204'; } /* '' */
|
||||
.icon-toggle-on:before { content: '\f205'; } /* '' */
|
||||
.icon-cc:before { content: '\f20a'; } /* '' */
|
||||
.icon-diamond:before { content: '\f219'; } /* '' */
|
||||
.icon-user-secret:before { content: '\f21b'; } /* '' */
|
||||
.icon-server:before { content: '\f233'; } /* '' */
|
||||
.icon-user-plus:before { content: '\f234'; } /* '' */
|
||||
.icon-user-times:before { content: '\f235'; } /* '' */
|
||||
.icon-expeditedssl:before { content: '\f23e'; } /* '' */
|
||||
.icon-object-group:before { content: '\f247'; } /* '' */
|
||||
.icon-object-ungroup:before { content: '\f248'; } /* '' */
|
||||
.icon-sticky-note:before { content: '\f249'; } /* '' */
|
||||
.icon-clone:before { content: '\f24d'; } /* '' */
|
||||
.icon-television:before { content: '\f26c'; } /* '' */
|
||||
.icon-map-signs:before { content: '\f277'; } /* '' */
|
||||
.icon-shopping-basket:before { content: '\f291'; } /* '' */
|
||||
.icon-wpforms:before { content: '\f298'; } /* '' */
|
||||
.icon-handshake-o:before { content: '\f2b5'; } /* '' */
|
||||
.icon-envelope-open:before { content: '\f2b6'; } /* '' */
|
||||
.icon-envelope-open-o:before { content: '\f2b7'; } /* '' */
|
||||
.icon-address-card-o:before { content: '\f2bc'; } /* '' */
|
||||
.icon-user-circle-o:before { content: '\f2be'; } /* '' */
|
||||
.icon-id-badge:before { content: '\f2c1'; } /* '' */
|
||||
.icon-id-card-o:before { content: '\f2c3'; } /* '' */
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
|
||||
<metadata>Copyright (C) 2017 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="clonos" horiz-adv-x="1000" >
|
||||
<font-face font-family="clonos" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
@@ -76,48 +76,250 @@
|
||||
|
||||
<glyph glyph-name="export" unicode="" d="M786 298v-144q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h142q7 0 13-6t5-12q0-15-15-18-43-15-74-34-5-2-9-2h-62q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v119q0 11 10 16 16 7 31 21 8 9 19 4 12-5 12-16z m132 277l-214-214q-10-11-25-11-7 0-14 3-22 9-22 33v107h-89q-181 0-245-73-66-77-41-264 2-13-11-19-5-1-7-1-9 0-14 7-6 8-12 17t-22 39-28 55-21 64-10 68q0 27 2 51t8 50 15 49 27 45 38 42 52 34 70 27 89 17 110 6h89v107q0 24 22 33 7 3 14 3 14 0 25-11l214-214q11-10 11-25t-11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="heart" unicode="" d="M500-79q-14 0-25 10l-348 336q-5 5-15 15t-31 37-38 54-30 67-13 77q0 123 71 192t196 70q34 0 70-12t67-33 54-38 42-38q20 20 42 38t54 38 67 33 70 12q125 0 196-70t71-192q0-123-128-251l-347-335q-10-10-25-10z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="star" unicode="" d="M929 489q0-12-15-27l-202-197 48-279q0-4 0-12 0-11-6-19t-17-9q-10 0-22 7l-251 132-250-132q-12-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="th-list" unicode="" d="M286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m714-285v-108q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v108q0 22 16 38t38 15h535q23 0 38-15t16-38z m-714 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m714-286v-107q0-22-16-38t-38-15h-535q-23 0-38 15t-16 38v107q0 23 16 38t38 16h535q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-535q-23 0-38 16t-16 38v107q0 22 16 38t38 16h535q23 0 38-16t16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="th-large" unicode="" d="M429 279v-215q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v215q0 29 21 50t50 21h286q29 0 50-21t22-50z m0 428v-214q0-29-22-50t-50-22h-286q-29 0-50 22t-21 50v214q0 29 21 50t50 22h286q29 0 50-22t22-50z m500-428v-215q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v215q0 29 21 50t50 21h286q29 0 50-21t22-50z m0 428v-214q0-29-22-50t-50-22h-286q-29 0-50 22t-21 50v214q0 29 21 50t50 22h286q29 0 50-22t22-50z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="th" unicode="" d="M286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-22 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-22 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="mail" unicode="" d="M929 11v428q-18-20-39-36-149-115-238-189-28-24-46-37t-48-28-57-13h-2q-26 0-57 13t-48 28-46 37q-88 74-238 189-21 16-39 36v-428q0-7 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12q0-94 83-159 107-84 223-176 4-3 20-17t25-21 25-17 28-16 24-5h2q11 0 24 5t28 16 25 17 25 21 20 17q116 92 224 176 30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="picture" unicode="" d="M357 529q0-45-31-76t-76-32-76 32-31 76 31 76 76 31 76-31 31-76z m572-215v-250h-786v107l178 179 90-89 285 285z m53 393h-893q-7 0-12-5t-6-13v-678q0-7 6-13t12-5h893q7 0 13 5t5 13v678q0 8-5 13t-13 5z m89-18v-678q0-37-26-63t-63-27h-893q-36 0-63 27t-26 63v678q0 37 26 63t63 27h893q37 0 63-27t26-63z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="link" unicode="" d="M813 171q0 23-16 38l-116 116q-16 16-38 16-24 0-40-18 1-1 10-10t12-12 9-11 7-14 2-15q0-23-16-38t-38-16q-8 0-15 2t-14 7-11 9-12 12-10 10q-19-17-19-40 0-23 16-38l115-116q15-15 38-15 22 0 38 15l82 81q16 16 16 37z m-393 394q0 22-15 38l-115 115q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37 0-22 16-38l116-116q15-15 38-15 23 0 40 17-2 2-11 11t-12 12-8 10-7 14-2 16q0 22 15 38t38 15q9 0 16-2t14-7 11-8 12-12 10-11q18 17 18 41z m500-394q0-66-48-113l-82-81q-46-47-113-47-68 0-114 48l-115 115q-46 47-46 114 0 68 49 116l-49 49q-48-49-116-49-67 0-114 47l-116 116q-47 47-47 114t47 113l82 82q47 46 114 46 67 0 114-47l115-116q46-46 46-113 0-69-49-117l49-49q48 49 116 49 67 0 114-47l116-116q47-47 47-114z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="attach" unicode="" d="M784 77q0-65-45-109t-109-44q-75 0-131 55l-434 434q-63 64-63 151 0 89 62 150t150 62q88 0 152-63l338-338q5-5 5-12 0-9-17-26t-26-17q-7 0-12 5l-339 339q-44 43-101 43-59 0-100-42t-40-101q0-58 42-101l433-433q35-36 81-36 36 0 59 24t24 59q0 46-35 81l-325 324q-14 14-33 14-16 0-27-11t-11-27q0-18 14-33l229-228q6-6 6-13 0-9-18-26t-26-17q-6 0-12 5l-229 229q-35 34-35 83 0 46 32 78t77 32q49 0 84-35l324-325q56-54 56-131z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="eye" unicode="" d="M929 314q-85 132-213 197 34-58 34-125 0-103-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 243 68 186 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="eye-off" unicode="" d="M310 105l43 79q-48 35-76 88t-27 114q0 67 34 125-128-65-213-197 94-144 239-209z m217 424q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m202 106q0-4 0-5-59-105-176-316t-176-316l-28-50q-5-9-15-9-7 0-75 39-9 6-9 16 0 7 25 49-80 36-147 96t-117 137q-11 17-11 38t11 39q86 131 212 207t277 76q50 0 100-10l31 54q5 9 15 9 3 0 10-3t18-9 18-10 18-10 10-7q9-5 9-15z m21-249q0-78-44-142t-117-91l157 280q4-25 4-47z m250-72q0-19-11-38-22-36-61-81-84-96-194-149t-234-53l41 74q119 10 219 76t169 171q-65 100-158 164l35 63q53-36 102-85t81-103q11-19 11-39z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="tag" unicode="" d="M250 600q0 30-21 51t-50 20-51-20-21-51 21-50 51-21 50 21 21 50z m595-321q0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="tags" unicode="" d="M250 600q0 30-21 51t-50 20-51-20-21-51 21-50 51-21 50 21 21 50z m595-321q0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50z m215 0q0-30-21-51l-274-274q-22-21-51-21-20 0-33 8t-29 25l262 262q21 21 21 51 0 29-21 50l-399 399q-21 21-57 36t-65 15h125q29 0 65-15t57-36l399-399q21-21 21-50z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="flag" unicode="" d="M179 707q0-40-36-61v-707q0-7-5-12t-13-6h-36q-7 0-12 6t-6 12v707q-35 21-35 61 0 30 21 51t50 21 51-21 21-51z m821-36v-425q0-14-7-22t-22-15q-120-65-206-65-34 0-69 12t-60 27-65 27-79 12q-107 0-259-81-10-5-19-5-14 0-25 10t-10 25v415q0 17 17 30 12 8 44 24 132 67 235 67 60 0 112-16t122-49q21-11 49-11 30 0 65 12t62 26 49 26 30 12q15 0 25-10t11-26z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="thumbs-up" unicode="" d="M143 100q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m643 321q0 29-22 50t-50 22h-196q0 32 27 89t26 89q0 55-17 81t-72 27q-14-15-21-48t-17-70-33-61q-13-13-43-51-2-3-13-16t-18-23-19-24-22-25-22-19-22-15-20-6h-18v-357h18q7 0 18-1t18-4 21-6 20-7 20-6 16-6q118-41 191-41h67q107 0 107 93 0 15-2 31 16 9 26 30t10 41-10 38q29 28 29 67 0 14-5 31t-14 26q18 1 30 26t12 45z m71 1q0-50-27-91 5-18 5-38 0-43-21-81 1-12 1-24 0-56-33-99 0-78-48-123t-126-45h-72q-54 0-106 13t-121 36q-65 23-77 23h-161q-29 0-50 21t-21 50v357q0 30 21 51t50 21h153q20 13 77 86 32 42 60 72 13 14 19 48t17 70 35 60q22 21 50 21 47 0 84-18t57-57 20-104q0-51-27-107h98q58 0 101-42t42-100z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="thumbs-down" unicode="" d="M143 600q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m643-321q0 19-12 45t-30 26q8 10 14 27t5 31q0 38-29 66 10 17 10 38 0 21-10 41t-26 30q2 16 2 31 0 47-27 70t-76 23h-71q-73 0-191-41-3-1-16-5t-20-7-20-7-21-6-18-4-18-1h-18v-357h18q9 0 20-5t22-15 22-20 22-25 19-24 18-22 13-17q30-38 43-51 23-24 33-61t17-70 21-48q54 0 72 27t17 81q0 33-26 89t-27 89h196q28 0 50 22t22 50z m71-1q0-57-42-100t-101-42h-98q27-55 27-107 0-66-20-104-19-39-57-57t-84-18q-28 0-50 21-19 18-30 45t-14 51-10 47-17 36q-27 28-60 71-57 73-77 86h-153q-29 0-50 21t-21 51v357q0 29 21 50t50 21h161q12 0 77 23 72 24 125 36t111 13h63q78 0 126-44t48-121v-3q33-43 33-99 0-12-1-24 21-38 21-80 0-21-5-39 27-41 27-91z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="print" unicode="" d="M214-7h500v143h-500v-143z m0 357h500v214h-89q-22 0-38 16t-16 38v89h-357v-357z m643-36q0 15-10 25t-26 11-25-11-10-25 10-25 25-10 26 10 10 25z m72 0v-232q0-7-6-12t-12-6h-125v-89q0-22-16-38t-38-16h-536q-22 0-37 16t-16 38v89h-125q-7 0-13 6t-5 12v232q0 44 32 76t75 31h36v304q0 22 16 38t37 16h375q23 0 50-12t42-26l85-85q15-16 27-43t11-49v-143h35q45 0 76-31t32-76z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="spin4" unicode="" d="M498 850c-114 0-228-39-320-116l0 0c173 140 428 130 588-31 134-134 164-332 89-495-10-29-5-50 12-68 21-20 61-23 84 0 3 3 12 15 15 24 71 180 33 393-112 539-99 98-228 147-356 147z m-409-274c-14 0-29-5-39-16-3-3-13-15-15-24-71-180-34-393 112-539 185-185 479-195 676-31l0 0c-173-140-428-130-589 31-134 134-163 333-89 495 11 29 6 50-12 68-11 11-27 17-44 16z" horiz-adv-x="1001" />
|
||||
|
||||
<glyph glyph-name="trash-empty" unicode="" d="M286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q23 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="doc" unicode="" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="calendar" unicode="" d="M71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-7 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 37 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 37 27 63t63 26h35q37 0 64-26t26-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="chart-bar" unicode="" d="M357 350v-286h-143v286h143z m214 286v-572h-142v572h142z m572-643v-72h-1143v858h71v-786h1072z m-357 500v-429h-143v429h143z m214 214v-643h-143v643h143z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="spin6" unicode="" d="M855 9c-189-190-520-172-705 13-190 190-200 494-28 695 11 13 21 26 35 34 36 23 85 18 117-13 30-31 35-76 16-112-5-9-9-15-16-22-140-151-145-379-8-516 153-153 407-121 542 34 106 122 142 297 77 451-83 198-305 291-510 222l0 1c236 82 492-24 588-252 71-167 37-355-72-493-11-15-23-29-36-42z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="list-alt" unicode="" d="M214 189v-35q0-8-5-13t-13-5h-35q-7 0-13 5t-5 13v35q0 8 5 13t13 5h35q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-5h-35q-7 0-13 5t-5 12v36q0 7 5 13t13 5h35q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-6h-35q-7 0-13 6t-5 12v36q0 7 5 13t13 5h35q8 0 13-5t5-13z m643-286v-35q0-8-5-13t-13-5h-535q-8 0-13 5t-5 13v35q0 8 5 13t13 5h535q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-5h-535q-8 0-13 5t-5 12v36q0 7 5 13t13 5h535q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-6h-535q-8 0-13 6t-5 12v36q0 7 5 13t13 5h535q8 0 13-5t5-13z m72-393v464q0 8-6 13t-12 5h-822q-7 0-12-5t-6-13v-464q0-7 6-12t12-6h822q7 0 12 6t6 12z m71 607v-607q0-37-26-63t-63-26h-822q-36 0-63 26t-26 63v607q0 37 26 63t63 27h822q37 0 63-27t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="basket" unicode="" d="M357-7q0-29-21-50t-50-22-50 22-22 50 22 50 50 21 50-21 21-50z m500 0q0-29-21-50t-50-22-50 22-22 50 22 50 50 21 50-21 21-50z m72 607v-286q0-13-10-23t-22-12l-583-68q7-34 7-40 0-8-13-35h513q15 0 26-11t10-25-10-25-26-11h-571q-14 0-25 11t-11 25q0 6 5 18t9 20 12 22 8 17l-98 459h-114q-15 0-25 10t-11 25 11 26 25 10h143q9 0 16-3t10-9 8-14 4-14 3-17 3-14h670q14 0 25-11t11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="globe" unicode="" d="M429 779q116 0 215-58t156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58z m153-291q-2-1-6-5t-7-6q1 0 2 3t3 6 2 4q3 4 12 8 8 4 29 7 19 5 29-6-1 1 5 7t8 7q2 1 8 3t9 4l1 12q-7-1-10 4t-3 12q0-2-4-5 0 4-2 5t-7-1-5-1q-5 2-8 5t-5 9-2 8q-1 3-5 6t-5 6q-1 1-2 3t-1 4-3 3-3 1-4-3-4-5-2-3q-2 1-4 1t-2-1-3-1-3-2q-1-2-4-2t-5-1q8 3-1 6-5 2-9 2 6 2 5 6t-5 8h3q-1 2-5 5t-10 5-7 3q-5 3-19 5t-18 1q-3-4-3-6t2-8 2-7q1-3-3-7t-3-7q0-4 7-9t6-12q-2-4-9-9t-9-6q-3-5-1-11t6-9q1-1 1-2t-2-3-3-2-4-2l-1-1q-7-3-12 3t-7 15q-4 14-9 17-13 4-16-1-3 7-23 15-14 5-33 2 4 0 0 8-4 9-10 7 1 3 2 10t0 7q2 8 7 13 1 1 4 5t5 7 1 4q19-3 28 6 2 3 6 9t6 10q5 3 8 3t8-3 8-3q8-1 8 6t-4 11q7 0 2 10-2 4-5 5-6 2-15-3-4-2 2-4-1 0-6-6t-9-10-9 3q0 0-3 7t-5 8q-5 0-9-9 1 5-6 9t-14 4q11 7-4 15-4 3-12 3t-11-2q-2-4-3-7t3-4 6-3 6-2 5-2q8-6 5-8-1 0-5-2t-6-2-4-2q-1-3 0-8t-1-8q-3 3-5 10t-4 9q4-5-14-3l-5 0q-3 0-9-1t-12-1-7 5q-3 4 0 11 0 2 2 1-2 2-6 5t-6 5q-25-8-52-23 3 0 6 1 3 1 8 4t5 3q19 7 24 4l3 2q7-9 11-14-4 3-17 1-11-3-12-7 4-6 2-10-2 2-6 6t-8 6-8 3q-9 0-13-1-81-45-131-124 4-4 7-4 2-1 3-5t1-6 6 1q5-4 2-10 1 0 25-15 10-10 11-12 2-6-5-10-1 1-5 5t-5 2q-2-3 0-10t6-7q-4 0-5-9t-2-20 0-13l1-1q-2-6 3-19t12-11q-7-1 11-24 3-4 4-5 2-1 7-4t9-6 5-5q2-3 6-13t8-13q-2-3 5-11t6-13q-1 0-2-1t-1 0q2-4 9-8t8-7q1-2 1-6t2-6 4-1q2 11-13 35-8 13-9 16-2 2-4 8t-2 8q1 0 3 0t5-2 4-3 1-1q-1-4 1-10t7-10 10-11 6-7q4-4 8-11t0-8q5 0 11-5t10-11q3-5 4-15t3-13q1-4 5-8t7-5l9-5t7-3q3-2 10-6t12-7q6-2 9-2t8 1 8 2q8 1 16-8t12-12q20-10 30-6-1 0 1-4t4-9 5-8 3-5q3-3 10-8t10-8q4 2 4 5-1-5 4-11t10-6q8 2 8 18-17-8-27 10 0 0-2 3t-2 5-1 4 0 5 2 1q5 0 6 2t-1 7-2 8q-1 4-6 11t-7 8q-3-5-9-4t-9 5q0-1-1-3t-1-4q-7 0-8 0 1 2 1 10t2 13q1 2 3 6t5 9 2 7-3 5-9 1q-11 0-15-11-1-2-2-6t-2-6-5-4q-4-2-14-1t-13 3q-8 4-13 16t-5 20q0 6 1 15t2 14-3 14q2 1 5 5t5 6q2 1 3 1t3 0 2 1 1 3q0 1-2 2-1 1-2 1 4-1 16 1t15-1q9-6 12 1 0 1-1 6t0 7q3-15 16-5 2-1 9-3t9-2q2-1 4-3t3-3 3 0 5 4q5-8 7-13 6-23 10-25 4-2 6-1t3 5 0 8-1 7l-1 5v10l0 4q-8 2-10 7t0 10 9 10q0 1 4 2t9 4 7 4q12 11 8 20 4 0 6 5 0 0-2 2t-5 2-2 2q5 2 1 8 3 2 4 7t4 5q5-6 12-1 5 5 1 9 2 4 11 6t10 5q4-1 5 1t0 7 2 7q2 2 9 5t7 2l9 7q2 2 0 2 10-1 18 6 5 6-4 11 2 4-1 5t-9 4q2 0 7 0t5 1q9 5-3 9-10 2-24-7z m-91-490q115 21 195 106-1 2-7 2t-7 2q-10 4-13 5 1 4-1 7t-5 5-7 5-6 4q-1 1-4 3t-4 3-4 2-5 2-5-1l-2-1q-2 0-3-1t-3-2-2-1 0-2q-12 10-20 13-3 0-6 3t-6 4-6 0-6-3q-3-3-4-9t-1-7q-4 3 0 10t1 10q-1 3-6 2t-6-2-7-5-5-3-4-3-5-5q-2-2-4-6t-2-6q-1 2-7 3t-5 3q1-5 2-19t3-22q4-17-7-26-15-14-16-23-2-12 7-14 0-4-5-12t-4-12q0-3 2-9z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="inbox" unicode="" d="M571 314h176q0 2-1 5t-2 4l-118 277h-395l-118-277q-1-1-2-4t-1-5h176l53-107h179z m286-16v-269q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v269q0 34 14 68l133 308q5 14 20 24t29 9h465q14 0 29-9t20-24l133-308q14-34 14-68z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="cloud" unicode="" d="M1071 207q0-89-62-151t-152-63h-607q-103 0-177 73t-73 177q0 74 40 135t104 91q-1 16-1 24 0 118 84 202t202 84q88 0 159-49t105-129q39 35 93 35 59 0 101-42t42-101q0-42-23-77 72-17 119-75t46-134z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="umbrella" unicode="" d="M500 388v-324q0-58-42-100t-101-43-100 43-43 100q0 15 11 25t25 11 25-11 11-25q0-28 22-49t49-22 50 22 22 49v324q18 6 35 6t36-6z m429-15q0-7-6-13t-12-5q-6 0-13 6-27 25-52 38t-57 13q-38 0-71-21t-58-54q-4-5-10-15t-8-14q-6-9-15-9-10 0-16 9-3 4-9 14t-9 15q-24 34-58 54t-71 21-71-21-57-54q-4-5-10-15t-8-14q-6-9-16-9-10 0-16 9-2 4-8 14t-10 15q-24 34-57 54t-71 21q-33 0-57-13t-52-38q-7-6-13-6-7 0-13 5t-5 13q0 3 1 4 25 102 96 178t166 114 201 38q78 0 154-22t137-63 109-105 64-140q1-1 1-4z m-429 406v-55q-23 1-36 1t-35-1v55q0 14 10 25t25 10 25-10 11-25z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="flash" unicode="" d="M494 534q10-11 4-24l-302-646q-7-14-23-14-2 0-8 1-9 3-14 11t-3 16l110 451-226-56q-2-1-7-1-10 0-17 7-10 8-7 21l112 461q2 8 9 13t15 5h183q11 0 18-7t7-17q0-4-2-10l-96-258 221 54q5 2 7 2 11 0 19-9z" horiz-adv-x="500" />
|
||||
|
||||
<glyph glyph-name="briefcase" unicode="" d="M357 707h286v72h-286v-72z m643-357v-268q0-37-26-63t-63-26h-822q-36 0-63 26t-26 63v268h375v-89q0-15 11-25t25-11h178q15 0 25 11t11 25v89h375z m-429 0v-71h-142v71h142z m429 268v-214h-1000v214q0 37 26 63t63 26h197v89q0 23 15 38t38 16h322q22 0 38-16t15-38v-89h197q37 0 63-26t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="key" unicode="" d="M464 564q0 45-31 76t-76 31-76-31-31-76q0-23 11-46-23 11-47 11-44 0-76-32t-31-76 31-75 76-32 76 32 31 75q0 24-10 47 23-11 46-11 45 0 76 31t31 76z m475-393q0-9-27-36t-37-28q-5 0-16 9t-20 19-22 22-13 14l-54-53 123-123q15-16 15-38 0-23-21-45t-46-22q-22 0-37 16l-375 374q-98-73-204-73-91 0-148 57t-57 149q0 89 53 174t138 139 175 53q91 0 148-58t57-148q0-105-73-203l198-199 54 54q-2 2-14 14t-23 21-18 21-9 15q0 10 27 37t37 28q7 0 13-6 3-3 26-25t45-44 49-48 40-44 16-23z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="credit-card" unicode="" d="M982 779q37 0 63-27t26-63v-678q0-37-26-63t-63-27h-893q-36 0-63 27t-26 63v678q0 37 26 63t63 27h893z m-893-72q-7 0-12-5t-6-13v-125h929v125q0 8-5 13t-13 5h-893z m893-714q7 0 13 5t5 13v339h-929v-339q0-7 6-13t12-5h893z m-839 71v72h143v-72h-143z m214 0v72h214v-72h-214z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="road" unicode="" d="M620 294v2l-13 179q-1 7-7 13t-12 5h-104q-7 0-13-5t-6-13l-13-179v-2q-1-6 4-11t12-4h136q7 0 12 4t4 11z m424-260q0-41-26-41h-393q7 0 12 5t5 13l-11 143q-1 7-7 12t-12 5h-152q-7 0-13-5t-6-12l-11-143q-1-7 4-13t12-5h-392q-26 0-26 41 0 30 14 64l233 583q5 11 15 18t21 8h189q-7 0-13-5t-6-13l-8-107q-1-8 4-13t12-5h93q7 0 12 5t5 13l-9 107q0 8-6 13t-13 5h190q11 0 21-8t14-18l233-583q15-34 15-64z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="calendar-1" unicode="" d="M0-150l0 649 893 0 0-649-893 0z m0 705l0 221 109 0 0-141 200 0 0 141 275 0 0-141 199 0 0 141 110 0 0-221-893 0z m168 139l0 156 82 0 0-156-82 0z m59-619q0-112 123-112 47 0 84 32 39 31 39 80 0 68-78 90 48 15 64 48 12 28-2 73-27 62-107 62-51 0-86-26t-37-77l72 0q0 45 49 46 43 0 45-52 0-49-84-47l0-57q48 0 68-8 23-11 23-46 0-57-54-61-43 0-47 55l-72 0z m281 146q49 14 88 47l0-297 70 0 0 371-64 0q-38-37-94-58l0-63z m135 473l0 156 82 0 0-156-82 0z" horiz-adv-x="893" />
|
||||
|
||||
<glyph glyph-name="database-1" unicode="" d="M0 53l0 594q0 98 131 150t307 53 306-53 131-150l0-594q0-98-131-150t-306-53-307 53-131 150z m63 0q0-59 109-100t266-41 265 41 109 100l0 117q-46-48-150-75t-224-26-225 26-150 75l0-117z m0 188q0-59 109-100t266-41 265 41 109 100l0 117q-46-49-150-75t-224-27-225 27-150 75l0-117z m0 187q0-58 109-99t266-41 265 41 109 99l0 108q-58-45-160-69t-214-23-215 23-160 69l0-108z m0 219q0-59 109-100t266-41 265 41 109 100-109 99-265 41-266-41-109-99z m625-609q0 13 8 22t23 9 22-9 9-22-9-23-22-9-23 9-8 23z m0 187q0 14 8 22t23 9 22-9 9-22-9-22-22-9-23 9-8 22z m0 188q0 13 8 22t23 9 22-9 9-22-9-23-22-9-23 9-8 23z" horiz-adv-x="875" />
|
||||
|
||||
<glyph glyph-name="clipboard" unicode="" d="M630 750q28 0 49-21t21-49l0-760q0-30-21-50t-49-20l-560 0q-28 0-49 20t-21 50l0 760q0 28 21 49t49 21l60-150 440 0z m-100-100l-360 0-44 100 108 0 36 100 160 0 36-100 110 0z" horiz-adv-x="700" />
|
||||
|
||||
<glyph glyph-name="clipboard-1" unicode="" d="M0-150l0 904 225 0 0-64-161 0 0-774 579 0 0 774-161 0 0 64 225 0 0-904-707 0z m129 129l0 31 31 0 0-31-31 0z m0 121l0 31 31 0 0-31-31 0z m0 121l0 31 31 0 0-31-31 0z m0 121l0 32 31 0 0-32-31 0z m0 121l0 32 31 0 0-32-31 0z m0 96l0 94 129 0 0 97q0 41 27 71t69 29 69-30 28-70q0-56-2-97l129 0 0-94-449 0z m96-582l0 33 353 0 0-33-353 0z m0 121l0 33 353 0 0-33-353 0z m0 121l0 33 353 0 0-33-353 0z m0 121l0 34 353 0 0-34-353 0z m0 121l0 34 353 0 0-34-353 0z m97 260q0-14 9-22t23-9 22 9 9 22-9 24-22 9-23-9-9-24z" horiz-adv-x="707" />
|
||||
|
||||
<glyph glyph-name="buffer" unicode="" d="M0 88q11 15 32 26t49 20 40 15q19 0 34-4t33-15 25-13q47-21 260-119 19-4 36 0t39 18 24 14q20 9 77 35t87 39q4 2 42 21t60 24q13 2 28-1t23-7 23-13 18-11 16-6 18-8 11-11q3-4 4-14-10-13-31-24t-51-22-40-16q-43-20-128-62t-129-61q-7-3-21-12t-23-13-26-11-27-7-30 2l-264 123q-6 3-32 14t-51 22-54 24-46 24-22 16q-4 4-4 13z m0 268q11 15 32 25t50 20 41 15q19 0 34-4t35-15 25-14q42-19 127-58t127-59q19-5 37 0t39 17 25 14q68 32 160 72 11 5 32 17t38 19 36 11q16 3 32-1t37-17 23-13q5-3 16-6t18-8 11-11q3-5 4-14-10-14-31-25t-53-23-41-16q-48-23-135-65t-123-59q-7-3-26-14t-29-15-32-10-36 0q-214 101-260 122-6 3-44 19t-69 30-62 30-34 22q-4 4-4 14z m0 267q10 15 32 27t52 22 41 16l348 162q30 0 54-7t56-26 40-22q39-18 117-54t117-55q4-2 37-15t54-24 27-20q3-4 4-13-9-13-26-22t-43-19-35-14q-47-22-140-66t-139-67q-6-3-20-11t-23-12-25-11-27-6-28 1q-245 114-256 119-4 2-63 28t-102 46-48 30q-4 4-4 13z" horiz-adv-x="979" />
|
||||
|
||||
<glyph glyph-name="link-ext" unicode="" d="M786 332v-178q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h393q7 0 12-5t5-13v-36q0-8-5-13t-12-5h-393q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v178q0 8 5 13t13 5h36q8 0 13-5t5-13z m214 482v-285q0-15-11-25t-25-11-25 11l-98 98-364-364q-5-6-13-6t-12 6l-64 64q-6 5-6 12t6 13l364 364-98 98q-11 11-11 25t11 25 25 11h285q15 0 25-11t11-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="hdd" unicode="" d="M580 171q0-18-13-31t-31-13-32 13-13 31 13 32 32 13 31-13 13-32z m143 0q0-18-13-31t-31-13-32 13-13 31 13 32 32 13 31-13 13-32z m63-89v179q0 7-6 12t-12 6h-679q-7 0-12-6t-6-12v-179q0-7 6-12t12-6h679q7 0 12 6t6 12z m-687 268h659l-88 269q-2 7-9 12t-14 5h-437q-7 0-14-5t-9-12z m758-89v-179q0-37-26-63t-63-26h-679q-36 0-63 26t-26 63v179q0 14 9 42l110 338q9 29 35 48t56 18h437q31 0 56-18t35-48l110-338q9-28 9-42z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="tasks" unicode="" d="M571 64h358v72h-358v-72z m-214 286h572v71h-572v-71z m357 286h215v71h-215v-71z m286-465v-142q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v142q0 15 11 26t25 10h928q15 0 25-10t11-26z m0 286v-143q0-14-11-25t-25-10h-928q-15 0-25 10t-11 25v143q0 15 11 25t25 11h928q15 0 25-11t11-25z m0 286v-143q0-14-11-25t-25-11h-928q-15 0-25 11t-11 25v143q0 14 11 25t25 11h928q15 0 25-11t11-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="resize-full-alt" unicode="" d="M716 548l-198-198 198-198 80 80q17 18 39 8 22-9 22-33v-250q0-14-10-25t-26-11h-250q-23 0-32 23-10 21 7 38l81 81-198 198-198-198 80-81q17-17 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l80-80 198 198-198 198-80-80q-11-11-25-11-7 0-14 3-22 9-22 33v250q0 14 11 25t25 11h250q23 0 33-23 9-21-8-38l-80-81 198-198 198 198-81 81q-17 17-7 38 9 23 32 23h250q15 0 26-11t10-25v-250q0-24-22-33-7-3-14-3-14 0-25 11z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="docs" unicode="" d="M946 636q23 0 38-16t16-38v-678q0-23-16-38t-38-16h-535q-23 0-38 16t-16 38v160h-303q-23 0-38 16t-16 38v375q0 22 11 49t27 42l228 228q15 16 42 27t49 11h232q23 0 38-16t16-38v-183q38 23 71 23h232z m-303-119l-167-167h167v167z m-357 214l-167-167h167v167z m109-361l176 176v233h-214v-233q0-22-15-37t-38-16h-233v-357h286v143q0 22 11 49t27 42z m534-449v643h-215v-232q0-22-15-38t-38-15h-232v-358h500z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="money" unicode="" d="M429 207h214v54h-72v250h-63l-83-77 43-44q24 20 31 31h1v-160h-71v-54z m285 143q0-39-11-79t-34-75-56-56-77-22-77 22-57 56-33 75-12 79 12 79 33 75 57 56 77 22 77-22 56-56 34-75 11-79z m286-143v286q-59 0-101 42t-42 101h-643q0-59-42-101t-101-42v-286q60 0 101-42t42-101h643q0 59 42 101t101 42z m71 464v-642q0-15-10-25t-25-11h-1000q-15 0-25 11t-11 25v642q0 15 11 26t25 10h1000q14 0 25-10t10-26z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="mail-alt" unicode="" d="M1000 454v-443q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v443q25-27 56-49 202-137 278-192 32-24 51-37t53-27 61-13h2q28 0 61 13t53 27 51 37q95 68 278 192 32 22 56 49z m0 164q0-44-27-84t-68-69q-210-146-262-181-5-4-23-17t-30-22-29-18-32-15-28-5h-2q-12 0-27 5t-32 15-30 18-30 22-23 17q-51 35-147 101t-114 80q-35 23-65 64t-31 77q0 43 23 72t66 29h822q36 0 63-26t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="gauge" unicode="" d="M214 207q0 30-21 51t-50 21-51-21-21-51 21-50 51-21 50 21 21 50z m107 250q0 30-20 51t-51 21-50-21-21-51 21-50 50-21 51 21 20 50z m239-268l57 213q3 14-5 27t-21 16-27-3-17-22l-56-213q-33-3-60-25t-35-55q-11-43 11-81t66-50 81 11 50 66q9 33-4 65t-40 51z m369 18q0 30-21 51t-51 21-50-21-21-51 21-50 50-21 51 21 21 50z m-358 357q0 30-20 51t-51 21-50-21-21-51 21-50 50-21 51 21 20 50z m250-107q0 30-20 51t-51 21-50-21-21-51 21-50 50-21 51 21 20 50z m179-250q0-145-79-269-10-17-30-17h-782q-20 0-30 17-79 123-79 269 0 102 40 194t106 160 160 107 194 39 194-39 160-107 106-160 40-194z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="chat-empty" unicode="" d="M393 636q-85 0-160-29t-118-79-44-107q0-45 30-88t83-73l54-32-19-46q19 11 34 21l25 18 30-6q43-8 85-8 85 0 160 29t118 79 43 106-43 107-118 79-160 29z m0 71q106 0 197-38t143-104 53-144-53-143-143-104-197-38q-48 0-98 9-70-49-155-72-21-5-48-9h-2q-6 0-12 5t-6 12q-1 1-1 3t1 4 1 3l1 3t2 3 2 3 3 3 2 2q3 3 13 14t15 16 12 17 14 21 11 25q-69 40-108 98t-40 125q0 78 53 144t143 104 197 38z m459-652q5-14 11-25t14-21 13-16 14-17 13-14q0 0 2-2t3-3 2-3 2-3l1-3t1-3 1-4-1-3q-2-8-7-13t-12-4q-28 4-48 9-86 23-156 72-50-9-98-9-151 0-263 74 32-3 49-3 90 0 172 25t148 72q69 52 107 119t37 141q0 43-13 85 72-39 114-99t42-128q0-67-40-126t-108-98z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="sitemap" unicode="" d="M1000 154v-179q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107q0 29 21 51t51 21h285v107h-53q-23 0-38 16t-16 37v179q0 22 16 38t38 16h178q23 0 38-16t16-38v-179q0-22-16-37t-38-16h-53v-107h285q29 0 51-21t21-51v-107h53q23 0 38-15t16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="lightbulb" unicode="" d="M411 529q0-8-6-13t-12-5-13 5-5 13q0 25-30 39t-59 14q-7 0-13 5t-5 13 5 13 13 5q28 0 55-9t49-30 21-50z m89 0q0 40-19 74t-50 57-69 35-76 12-76-12-69-35-50-57-20-74q0-57 38-101 6-6 17-18t17-19q72-85 79-166h127q8 81 79 166 6 6 17 19t17 18q38 44 38 101z m71 0q0-87-57-150-25-27-42-48t-33-54-19-60q26-15 26-46 0-20-13-35 13-15 13-36 0-29-25-45 8-13 8-26 0-26-18-40t-43-14q-11-25-34-39t-48-15-49 15-33 39q-26 0-44 14t-17 40q0 13 7 26-25 16-25 45 0 21 14 36-14 15-14 35 0 31 26 46-2 28-19 60t-33 54-41 48q-58 63-58 150 0 55 25 103t65 79 92 49 104 19 104-19 91-49 66-79 24-103z" horiz-adv-x="571.4" />
|
||||
|
||||
<glyph glyph-name="download-cloud" unicode="" d="M714 332q0 8-5 13t-13 5h-125v196q0 8-5 13t-12 5h-108q-7 0-12-5t-5-13v-196h-125q-8 0-13-5t-5-13q0-8 5-13l196-196q5-5 13-5t13 5l196 196q5 6 5 13z m357-125q0-89-62-151t-152-63h-607q-103 0-177 73t-73 177q0 72 39 134t105 92q-1 17-1 24 0 118 84 202t202 84q87 0 159-49t105-129q40 35 93 35 59 0 101-42t42-101q0-43-23-77 72-17 119-76t46-133z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="upload-cloud" unicode="" d="M714 368q0 8-5 13l-196 196q-5 5-13 5t-13-5l-196-196q-5-6-5-13 0-8 5-13t13-5h125v-196q0-8 5-13t12-5h108q7 0 12 5t5 13v196h125q8 0 13 5t5 13z m357-161q0-89-62-151t-152-63h-607q-103 0-177 73t-73 177q0 72 39 134t105 92q-1 17-1 24 0 118 84 202t202 84q87 0 159-49t105-129q40 35 93 35 59 0 101-42t42-101q0-43-23-77 72-17 119-76t46-133z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="user-md" unicode="" d="M214 100q0-14-10-25t-25-11-25 11-11 25 11 25 25 11 25-11 10-25z m572-34q0-68-41-106t-108-39h-488q-67 0-108 39t-41 106q0 38 3 73t14 77 26 74 45 58 67 33q-12-29-12-67v-113q-32-11-52-39t-20-62q0-45 32-76t76-31 76 31 31 76q0 34-20 62t-52 39v113q0 35 14 52 74-58 165-58t165 58q13-17 13-52v-35q-59 0-101-42t-41-101v-50q-18-16-18-40 0-22 15-37t38-16 38 16 16 37q0 24-18 40v50q0 29 21 50t50 21 51-21 21-50v-50q-18-16-18-40 0-22 16-37t38-16 38 16 15 37q0 24-18 40v50q0 38-19 71t-52 52q0 6 0 24t0 27-1 23-4 26-7 22q38-8 67-33t45-58 26-74 14-77 3-73z m-179 498q0-88-63-151t-151-63-152 63-62 151 62 152 152 63 151-63 63-152z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="doc-text" unicode="" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-572 483q0 7 5 12t13 5h393q8 0 13-5t5-12v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36z m411-125q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z m0-143q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="building" unicode="" d="M214 118v-36q0-7-5-12t-13-6h-35q-7 0-13 6t-5 12v36q0 7 5 12t13 6h35q8 0 13-6t5-12z m0 143v-36q0-7-5-13t-13-5h-35q-7 0-13 5t-5 13v36q0 7 5 12t13 6h35q8 0 13-6t5-12z m143 0v-36q0-7-5-13t-13-5h-35q-8 0-13 5t-5 13v36q0 7 5 12t13 6h35q8 0 13-6t5-12z m-143 143v-36q0-7-5-13t-13-5h-35q-7 0-13 5t-5 13v36q0 7 5 12t13 5h35q8 0 13-5t5-12z m429-286v-36q0-7-5-12t-13-6h-36q-7 0-12 6t-6 12v36q0 7 6 12t12 6h36q7 0 13-6t5-12z m-143 143v-36q0-7-5-13t-13-5h-36q-7 0-12 5t-5 13v36q0 7 5 12t12 6h36q7 0 13-6t5-12z m-143 143v-36q0-7-5-13t-13-5h-35q-8 0-13 5t-5 13v36q0 7 5 12t13 5h35q8 0 13-5t5-12z m-143 142v-35q0-7-5-13t-13-5h-35q-7 0-13 5t-5 13v35q0 8 5 13t13 5h35q8 0 13-5t5-13z m429-285v-36q0-7-5-13t-13-5h-36q-7 0-12 5t-6 13v36q0 7 6 12t12 6h36q7 0 13-6t5-12z m-143 143v-36q0-7-5-13t-13-5h-36q-7 0-12 5t-5 13v36q0 7 5 12t12 5h36q7 0 13-5t5-12z m-143 142v-35q0-7-5-13t-13-5h-35q-8 0-13 5t-5 13v35q0 8 5 13t13 5h35q8 0 13-5t5-13z m-143 143v-35q0-8-5-13t-13-5h-35q-7 0-13 5t-5 13v35q0 8 5 13t13 5h35q8 0 13-5t5-13z m429-285v-36q0-7-5-13t-13-5h-36q-7 0-12 5t-6 13v36q0 7 6 12t12 5h36q7 0 13-5t5-12z m-143 142v-35q0-7-5-13t-13-5h-36q-7 0-12 5t-5 13v35q0 8 5 13t12 5h36q7 0 13-5t5-13z m-143 143v-35q0-8-5-13t-13-5h-35q-8 0-13 5t-5 13v35q0 8 5 13t13 5h35q8 0 13-5t5-13z m286-143v-35q0-7-5-13t-13-5h-36q-7 0-12 5t-6 13v35q0 8 6 13t12 5h36q7 0 13-5t5-13z m-143 143v-35q0-8-5-13t-13-5h-36q-7 0-12 5t-5 13v35q0 8 5 13t12 5h36q7 0 13-5t5-13z m143 0v-35q0-8-5-13t-13-5h-36q-7 0-12 5t-6 13v35q0 8 6 13t12 5h36q7 0 13-5t5-13z m-143-768h214v858h-643v-858h215v125q0 8 5 13t13 5h178q7 0 13-5t5-13v-125z m286 893v-928q0-15-11-25t-25-11h-714q-15 0-25 11t-11 25v928q0 15 11 25t25 11h714q15 0 25-11t11-25z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="desktop" unicode="" d="M1000 296v465q0 7-5 12t-13 6h-893q-7 0-12-6t-6-12v-465q0-7 6-12t12-5h893q7 0 13 5t5 12z m71 465v-607q0-37-26-63t-63-27h-303q0-20 9-43t17-40 9-24q0-14-10-25t-25-11h-286q-15 0-25 11t-11 25q0 8 9 25t18 39 9 43h-304q-36 0-63 27t-26 63v607q0 37 26 63t63 26h893q37 0 63-26t26-63z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="laptop" unicode="" d="M232 136q-37 0-63 26t-26 63v393q0 37 26 63t63 26h607q37 0 63-26t27-63v-393q0-37-27-63t-63-26h-607z m-18 482v-393q0-7 6-13t12-5h607q8 0 13 5t5 13v393q0 7-5 12t-13 6h-607q-7 0-12-6t-6-12z m768-518h89v-54q0-22-26-37t-63-16h-893q-36 0-63 16t-26 37v54h982z m-402-54q9 0 9 9t-9 9h-89q-9 0-9-9t9-9h89z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="tablet" unicode="" d="M357 64q0 15-10 25t-26 11-25-11-10-25 10-25 25-10 26 10 10 25z m214 90v535q0 8-5 13t-12 5h-465q-7 0-12-5t-6-13v-535q0-8 6-13t12-5h465q7 0 12 5t5 13z m72 535v-607q0-37-26-63t-63-26h-465q-36 0-63 26t-26 63v607q0 37 26 63t63 27h465q36 0 63-27t26-63z" horiz-adv-x="642.9" />
|
||||
|
||||
<glyph glyph-name="mobile" unicode="" d="M259 64q0 19-13 32t-32 13-31-13-13-32 13-31 31-13 32 13 13 31z m116 90v392q0 8-5 13t-13 5h-286q-7 0-12-5t-5-13v-392q0-8 5-13t12-5h286q7 0 13 5t5 13z m-107 473q0 9-9 9h-89q-9 0-9-9t9-9h89q9 0 9 9z m161 9v-572q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v572q0 29 21 50t50 21h286q29 0 50-21t22-50z" horiz-adv-x="428.6" />
|
||||
|
||||
<glyph glyph-name="spinner" unicode="" d="M294 72q0-29-21-50t-51-21q-29 0-50 21t-21 50q0 30 21 51t50 21 51-21 21-51z m277-115q0-29-20-50t-51-21-50 21-21 50 21 51 50 21 51-21 20-51z m-392 393q0-30-21-50t-51-21-50 21-21 50 21 51 50 20 51-20 21-51z m670-278q0-29-21-50t-50-21q-30 0-51 21t-20 50 20 51 51 21 50-21 21-51z m-538 556q0-37-26-63t-63-26-63 26-26 63 26 63 63 26 63-26 26-63z m653-278q0-30-21-50t-50-21-51 21-21 50 21 51 51 20 50-20 21-51z m-357 393q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m296-115q0-52-37-88t-88-37q-52 0-88 37t-37 88q0 51 37 88t88 37q51 0 88-37t37-88z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="reply" unicode="" d="M1000 225q0-93-71-252-1-4-6-13t-7-17-7-12q-7-10-16-10-8 0-13 6t-5 14q0 5 1 15t2 13q3 38 3 69 0 56-10 101t-27 77-45 56-59 39-74 24-86 12-98 3h-125v-143q0-14-10-25t-26-11-25 11l-285 286q-11 10-11 25t11 25l285 286q11 10 25 10t26-10 10-25v-143h125q398 0 488-225 30-75 30-186z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="folder-empty" unicode="" d="M857 118v393q0 22-15 38t-38 15h-393q-23 0-38 16t-16 38v36q0 22-15 38t-38 15h-179q-22 0-38-15t-16-38v-536q0-22 16-38t38-16h679q22 0 38 16t15 38z m72 393v-393q0-51-37-88t-88-37h-679q-51 0-88 37t-37 88v536q0 51 37 88t88 37h179q51 0 88-37t37-88v-18h375q51 0 88-37t37-88z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="folder-open-empty" unicode="" d="M994 331q0 19-30 19h-607q-22 0-48-12t-39-29l-164-203q-11-13-11-22 0-20 30-20h607q23 0 48 13t40 29l164 203q10 12 10 22z m-637 90h429v90q0 22-16 38t-38 15h-321q-23 0-38 16t-16 38v36q0 22-15 38t-38 15h-179q-22 0-38-15t-16-38v-476l143 175q25 30 65 49t78 19z m708-90q0-35-25-67l-165-203q-24-30-65-49t-78-19h-607q-51 0-88 37t-37 88v536q0 51 37 88t88 37h179q51 0 88-37t37-88v-18h303q52 0 88-37t37-88v-90h107q30 0 56-13t37-40q8-17 8-37z" horiz-adv-x="1071.4" />
|
||||
|
||||
<glyph glyph-name="flag-checkered" unicode="" d="M464 292v107q-101-9-214-65v-103q114 53 214 61z m0 233v110q-96-4-214-70v-106q120 62 214 66z m465-258v103q-132-65-215-40v125q-11 3-21 8-3 2-19 10t-19 9-18 9-19 8-18 8-20 7-20 4-22 4-22 3-24 1q-13 0-28-2v-124h11q57 0 107-16t111-46q10-5 21-8v-105q24-9 51-9 67 0 164 51z m0 238v106q-95-51-171-51-25 0-44 4v-109q83-23 215 50z m-750 202q0-19-10-36t-26-25v-707q0-8-5-13t-13-5h-36q-7 0-12 5t-6 13v707q-16 9-25 25t-10 36q0 30 21 51t50 21 51-21 21-51z m821-36v-425q0-22-19-32-6-3-10-5-122-65-206-65-49 0-88 20l-16 7q-35 19-55 27t-51 16-63 8q-57 0-132-24t-127-57q-9-5-19-5-9 0-18 4-17 11-17 31v415q0 19 17 30 19 12 44 24t63 29 85 28 87 10q62 0 117-17t116-48q21-11 50-11 68 0 173 63 12 6 17 9 17 9 35-1 17-11 17-31z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="reply-all" unicode="" d="M357 246v-39q0-23-22-33-7-3-14-3-15 0-25 11l-285 286q-11 10-11 25t11 25l285 286q17 17 39 8 22-10 22-33v-39l-221-222q-11-11-11-25t11-25z m643-21q0-32-9-74t-22-77-27-70-22-51l-11-22q-5-10-16-10-3 0-5 1-14 4-13 19 24 223-59 315-36 40-95 62t-150 29v-140q0-23-21-33-8-3-14-3-15 0-25 11l-286 286q-11 10-11 25t11 25l286 286q16 17 39 8 21-10 21-33v-147q230-15 335-123 94-96 94-284z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="fork" unicode="" d="M161 29q0 22-16 38t-38 15-38-15-15-38 15-38 38-16 38 16 16 38z m0 642q0 23-16 38t-38 16-38-16-15-38 15-37 38-16 38 16 16 37z m357-71q0 22-16 38t-38 16-38-16-15-38 15-38 38-16 38 16 16 38z m53 0q0-29-14-54t-39-39q-1-160-126-231-38-21-113-45-72-22-95-39t-23-56v-15q24-14 39-39t14-53q0-45-31-76t-76-32-76 32-31 76q0 29 15 53t39 39v458q-25 14-39 39t-15 53q0 45 31 76t76 32 76-32 31-76q0-29-14-53t-39-39v-277q30 14 86 31 30 10 49 17t39 17 33 22 22 29 16 38 5 51q-25 14-39 39t-15 54q0 45 31 76t76 31 76-31 31-76z" horiz-adv-x="571.4" />
|
||||
|
||||
<glyph glyph-name="unlink" unicode="" d="M245 141l-143-143q-6-5-13-5t-12 5q-6 6-6 13t6 13l142 142q6 5 13 5t13-5q5-5 5-12t-5-13z m94-23v-179q0-8-5-13t-13-5-12 5-5 13v179q0 8 5 13t12 5 13-5 5-13z m-125 125q0-8-5-13t-13-5h-178q-8 0-13 5t-5 13 5 13 13 5h178q8 0 13-5t5-13z m706-72q0-66-48-113l-82-81q-46-47-113-47-68 0-114 48l-186 187q-12 12-24 31l134 10 152-153q15-15 38-15t38 15l82 81q16 16 16 37 0 23-16 38l-153 154 10 133q20-11 31-23l188-188q47-48 47-114z m-345 404l-133-10-152 153q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37 0-22 16-38l153-153-10-134q-20 12-32 24l-187 187q-47 48-47 114 0 67 47 113l82 82q47 46 114 46 67 0 114-47l186-187q12-12 23-32z m354-46q0-8-5-13t-13-5h-179q-8 0-13 5t-5 13 5 12 13 5h179q8 0 13-5t5-12z m-304 303v-178q0-8-5-13t-13-5-13 5-5 13v178q0 8 5 13t13 5 13-5 5-13z m227-84l-143-143q-6-5-13-5t-12 5q-5 6-5 13t5 13l143 143q5 5 12 5t13-5q5-6 5-13t-5-13z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="info" unicode="" d="M357 100v-71q0-15-10-25t-26-11h-285q-15 0-25 11t-11 25v71q0 15 11 25t25 11h35v214h-35q-15 0-25 11t-11 25v71q0 15 11 25t25 11h214q15 0 25-11t11-25v-321h35q15 0 26-11t10-25z m-71 643v-107q0-15-11-25t-25-11h-143q-14 0-25 11t-11 25v107q0 14 11 25t25 11h143q15 0 25-11t11-25z" horiz-adv-x="357.1" />
|
||||
|
||||
<glyph glyph-name="puzzle" unicode="" d="M929 237q0-45-25-75t-69-30q-23 0-43 10t-33 21-32 21-39 10q-62 0-62-69 0-22 9-65t8-64v-3q-12 0-18 0-19-2-54-7t-65-7-54-3q-35 0-58 15t-23 47q0 20 9 39t22 32 21 33 10 43q0 44-31 69t-75 25q-47 0-80-26t-33-71q0-24 9-46t18-36 19-30 8-28q0-25-25-50-21-19-65-19-54 0-137 13-5 1-16 2t-15 3l-7 1q-1 0-2 0-1 0-1 1v571q1 0 10-2t19-2 12-2q83-14 137-14 44 0 65 20 25 24 25 49 0 13-8 29t-19 29-18 36-9 47q0 45 33 71t81 25q44 0 74-25t31-69q0-23-10-43t-21-33-22-31-9-40q0-32 23-47t58-14q35 0 100 8t91 9v-1q-1-1-2-9t-3-19-2-12q-13-84-13-137 0-45 19-65 25-26 50-26 12 0 28 8t30 19 36 19 46 8q46 0 71-33t26-80z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="calendar-empty" unicode="" d="M71-79h786v572h-786v-572z m215 679v161q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-161q0-8 5-13t13-5h36q8 0 13 5t5 13z m428 0v161q0 8-5 13t-13 5h-35q-8 0-13-5t-5-13v-161q0-8 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 37 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 37 27 63t63 26h35q37 0 64-26t26-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="anchor" unicode="" d="M536 707q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m464-518v-196q0-12-11-17-5-1-7-1-7 0-13 5l-52 52q-66-80-177-127t-240-46-240 46-177 127l-52-52q-5-5-13-5-2 0-7 1-11 5-11 17v196q0 8 5 13t13 5h196q13 0 17-11 5-11-4-19l-56-56q38-51 106-86t152-46v361h-108q-14 0-25 11t-10 25v71q0 15 10 25t25 11h108v91q-33 19-52 51t-20 72q0 59 42 101t101 42 101-42 42-101q0-39-20-72t-52-51v-91h108q14 0 25-11t10-25v-71q0-15-10-25t-25-11h-108v-361q84 11 152 46t106 86l-56 56q-8 8-4 19 4 11 17 11h196q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="ok-squared" unicode="" d="M382 125l343 343q11 10 11 25t-11 25l-57 57q-11 11-25 11t-25-11l-261-261-118 118q-10 11-25 11t-25-11l-57-57q-10-10-10-25t10-25l200-200q11-10 25-10t25 10z m475 493v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="pencil-squared" unicode="" d="M225 232l85-85-29-29h-31v53h-54v32z m232 217q7-7-2-16l-163-163q-9-9-16-1-8 7 1 16l163 163q9 9 17 1z m-153-385l303 304-161 161-303-304v-161h161z m339 340l51 51q16 16 16 38t-16 38l-85 85q-15 15-38 15t-37-15l-52-52z m214 214v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="export-alt" unicode="" d="M561 236l196 196q11 11 11 25t-11 25l-196 197q-17 17-39 8-22-10-22-33v-90q-66 0-120-11t-91-28-64-44-42-53-25-61-12-62-3-62q0-101 93-226 6-6 14-6 4 0 7 1 13 5 11 19-25 197 35 264 25 29 72 42t125 13v-89q0-24 22-33 7-3 14-3 14 0 25 11z m296 382v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="thumbs-up-alt" unicode="" d="M143 100q0 15-11 25t-25 11q-15 0-25-11t-11-25q0-15 11-25t25-11q15 0 25 11t11 25z m89 286v-357q0-15-10-25t-26-11h-160q-15 0-25 11t-11 25v357q0 14 11 25t25 10h160q15 0 26-10t10-25z m661 0q0-48-31-83 9-25 9-43 1-42-24-76 9-31 0-66-9-31-31-52 5-62-27-101-36-43-110-44h-72q-37 0-80 9t-68 16-67 22q-69 24-88 25-15 0-25 11t-11 25v357q0 14 10 25t24 11q13 1 42 33t57 67q38 49 56 67 10 10 17 27t10 27 8 34q4 22 7 34t11 29 19 28q10 11 25 11 25 0 46-6t33-15 22-22 14-25 7-28 2-25 1-22q0-21-6-43t-10-33-16-31q-1-4-5-10t-6-13-5-13h155q43 0 75-32t32-75z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="thumbs-down-alt" unicode="" d="M143 529q0-15-11-25t-25-11q-15 0-25 11t-11 25q0 15 11 25t25 10q15 0 25-10t11-25z m89-286v357q0 15-10 25t-26 11h-160q-15 0-25-11t-11-25v-357q0-15 11-25t25-11h160q15 0 26 11t10 25z m630 83q31-34 31-83-1-44-32-75t-75-32h-155q2-8 5-14t6-12 5-10q10-21 15-32t11-32 6-43q0-14-1-22t-2-25-7-28-14-25-22-23-33-14-46-6q-15 0-25 11-12 11-19 27t-11 29-7 35q-5 23-8 33t-10 27-17 27q-18 19-56 67-28 36-57 68t-42 33q-14 1-24 11t-10 24v358q0 15 11 25t25 11q19 0 88 24 43 15 67 22t68 17 80 8h72q74-1 110-43 32-39 27-101 22-21 31-53 9-34 0-65 25-34 24-77 0-17-9-42z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="youtube" unicode="" d="M542 156v-118q0-37-22-37-13 0-25 12v168q12 12 25 12 22 0 22-37z m189-1v-25h-51v25q0 38 25 38t26-38z m-540 122h60v52h-174v-52h59v-318h55v318z m161-318h50v276h-50v-211q-17-23-32-23-10 0-11 11-1 2-1 20v203h-50v-218q0-28 5-41 7-21 32-21 27 0 57 34v-30z m240 83v110q0 41-5 55-10 31-40 31-28 0-52-30v121h-50v-370h50v27q25-31 52-31 30 0 40 31 5 15 5 56z m188 6v7h-51q0-29-1-34-4-20-22-20-26 0-26 38v49h100v57q0 44-15 65-22 28-59 28-38 0-60-28-15-21-15-65v-96q0-44 16-65 22-29 60-29 40 0 60 30 10 15 12 30 1 5 1 33z m-339 509v117q0 39-24 39t-24-39v-117q0-39 24-39t24 39z m401-419q0-131-14-195-8-33-33-56t-57-25q-102-12-309-12t-310 12q-32 3-57 25t-32 56q-15 62-15 195 0 131 15 195 7 33 32 56t57 26q103 11 310 11t309-11q33-4 58-26t32-56q14-62 14-195z m-557 712h57l-67-223v-151h-56v151q-8 42-34 119-21 57-37 104h60l39-147z m207-186v-97q0-46-16-66-21-29-59-29-37 0-59 29-15 21-15 66v97q0 45 15 66 22 28 59 28 38 0 59-28 16-21 16-66z m187 91v-279h-51v31q-30-35-58-35-25 0-33 21-4 13-4 42v220h51v-205q0-19 0-20 2-12 12-12 15 0 32 24v213h51z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="dropbox" unicode="" d="M224 456l276-171-191-159-273 178z m551-310v-60l-274-164v-1l0 1-1-1v1l-273 164v60l82-54 191 159v1l1-1 0 1v-1l192-159z m-466 638l191-159-276-169-188 150z m467-328l188-152-273-178-191 159z m-85 328l273-178-188-150-276 169z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="apple" unicode="" d="M777 172q-21-70-68-139-72-110-144-110-27 0-78 18-48 18-84 18-34 0-79-19-45-19-74-19-85 0-168 145-82 146-82 281 0 127 63 208 63 81 159 81 40 0 98-17 58-17 77-17 25 0 80 19 57 19 97 19 66 0 119-36 29-20 58-56-44-37-64-66-36-52-36-115 0-69 38-125t88-70z m-209 655q0-34-17-76-16-42-52-77-30-30-60-40-20-7-58-10 2 83 44 143 41 60 139 83 1-2 2-6t1-6q0-2 0-6t1-5z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="android" unicode="" d="M275 581q9 0 16 6t6 15-6 16-16 6-15-6-6-16 6-15 15-6z m236 0q9 0 15 6t6 15-6 16-15 6-16-6-6-16 6-15 16-6z m-453-103q23 0 40-17t16-40v-240q0-24-16-41t-40-17-41 17-17 41v240q0 23 17 40t41 17z m591-11v-371q0-26-18-44t-43-18h-42v-127q0-24-16-40t-41-17-41 17-17 40v127h-77v-127q0-24-16-40t-41-17q-24 0-40 17t-17 40l-1 127h-41q-26 0-43 18t-18 44v371h512z m-129 226q59-30 95-85t36-121h-516q0 66 35 121t96 85l-39 73q-4 8 2 12 8 3 12-4l40-74q53 24 112 24t112-24l40 74q4 7 11 4 7-4 3-12z m266-272v-240q0-24-17-41t-41-17q-23 0-40 17t-17 41v240q0 24 17 40t40 17q24 0 41-17t17-40z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="sun" unicode="" d="M821 350q0 65-25 125t-69 102-102 69-125 25-125-25-102-69-69-102-25-125 25-125 69-102 102-69 125-25 125 25 102 69 69 102 25 125z m154-155q-2-8-11-11l-163-53v-171q0-9-7-15-8-5-16-2l-163 53-100-139q-6-7-15-7t-14 7l-101 139-163-53q-8-3-16 2-7 6-7 15v171l-163 53q-9 3-11 11-3 10 2 17l100 138-100 138q-5 8-2 17 2 8 11 11l163 53v171q0 9 7 15 8 5 16 2l163-53 101 139q5 6 14 6t15-6l100-139 163 53q8 3 16-2 7-6 7-15v-171l163-53q9-3 11-11 3-9-2-17l-100-138 100-138q5-7 2-17z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="box" unicode="" d="M607 386q0 14-10 25t-26 10h-142q-15 0-25-10t-11-25 11-25 25-11h142q15 0 26 11t10 25z m322 107v-536q0-14-11-25t-25-11h-786q-14 0-25 11t-11 25v536q0 14 11 25t25 11h786q14 0 25-11t11-25z m35 250v-143q0-14-10-25t-25-11h-858q-14 0-25 11t-10 25v143q0 14 10 25t25 11h858q14 0 25-11t10-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="fax" unicode="" d="M161 636q37 0 63-26t26-64v-607q0-37-26-63t-63-26h-72q-36 0-63 26t-26 63v607q0 37 26 64t63 26h72z m768-91q32-19 52-52t19-72v-428q0-59-42-101t-101-42h-482q-37 0-63 26t-26 63v857q0 23 15 38t38 16h375q23 0 49-11t43-27l85-85q15-15 26-42t12-49v-91z m-411-552v71q0 8-5 13t-13 5h-71q-8 0-13-5t-5-13v-71q0-8 5-13t13-5h71q8 0 13 5t5 13z m0 143v71q0 8-5 13t-13 5h-71q-8 0-13-5t-5-13v-71q0-8 5-13t13-5h71q8 0 13 5t5 13z m0 143v71q0 8-5 13t-13 5h-71q-8 0-13-5t-5-13v-71q0-8 5-13t13-5h71q8 0 13 5t5 13z m143-286v71q0 8-5 13t-13 5h-72q-7 0-12-5t-5-13v-71q0-8 5-13t12-5h72q8 0 13 5t5 13z m0 143v71q0 8-5 13t-13 5h-72q-7 0-12-5t-5-13v-71q0-8 5-13t12-5h72q8 0 13 5t5 13z m0 143v71q0 8-5 13t-13 5h-72q-7 0-12-5t-5-13v-71q0-8 5-13t12-5h72q8 0 13 5t5 13z m143-286v71q0 8-5 13t-13 5h-72q-7 0-12-5t-6-13v-71q0-8 6-13t12-5h72q8 0 13 5t5 13z m0 143v71q0 8-5 13t-13 5h-72q-7 0-12-5t-6-13v-71q0-8 6-13t12-5h72q8 0 13 5t5 13z m0 143v71q0 8-5 13t-13 5h-72q-7 0-12-5t-6-13v-71q0-8 6-13t12-5h72q8 0 13 5t5 13z m53 214v143h-89q-22 0-38 15t-16 38v90h-357v-286h500z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="cube" unicode="" d="M500-59l357 195v355l-357-130v-420z m-36 483l390 141-390 142-389-142z m465 140v-428q0-20-10-37t-28-26l-393-214q-15-9-34-9t-34 9l-393 214q-17 10-27 26t-10 37v428q0 23 13 41t34 26l393 143q12 5 24 5t25-5l393-143q21-8 34-26t13-41z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="cubes" unicode="" d="M357-61l214 107v176l-214-92v-191z m-36 254l226 96-226 97-225-97z m608-254l214 107v176l-214-92v-191z m-36 254l225 96-225 97-226-97z m-250 163l214 92v149l-214-92v-149z m-36 212l246 105-246 106-246-106z m607-289v-233q0-20-10-37t-29-26l-250-125q-14-8-32-8t-32 8l-250 125q-2 1-4 2-1-1-4-2l-250-125q-14-8-32-8t-31 8l-250 125q-19 9-29 26t-11 37v233q0 21 12 39t32 26l242 104v223q0 22 12 40t31 26l250 107q13 6 28 6t28-6l250-107q20-9 32-26t12-40v-223l242-104q20-8 32-26t11-39z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="recycle" unicode="" d="M467 198l-9-206-1-12-234 16q-20 2-38 18t-26 36q-6 15-8 31t2 36 7 31 12 36 11 29q43-6 284-15z m-216 327l100-212-82 52q-35-41-62-81t-41-70-22-53-10-35l-2-11-106 199q-10 14-10 31t3 26l4 10q20 35 64 105l-78 48z m687-289l-105-200q-7-16-21-26t-24-12l-10-2q-40-4-122-7l4-91-128 205 118 202 4-97q94-9 157-2t95 18z m-439 516q-26-35-147-243l-177 104-11 7 126 199q11 17 33 25t45 5q13-1 27-6t23-12 23-18 21-20 20-22 17-19z m366-171l118-203q10-21 7-42t-15-42q-7-11-18-20t-22-16-27-12-26-9-29-8-25-7q-19 40-148 244l174 108z m-80 126l79 46-122-208-234 11 84 48q-19 50-42 93t-42 69-36 44-26 26l-10 7 226 0q18 1 33-6t22-16l6-8q21-34 62-106z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="database" unicode="" d="M429 421q132 0 247 24t181 71v-95q0-38-57-71t-157-52-214-19-215 19-156 52-58 71v95q66-47 181-71t248-24z m0-428q132 0 247 24t181 71v-95q0-39-57-72t-157-52-214-19-215 19-156 52-58 72v95q66-47 181-71t248-24z m0 214q132 0 247 24t181 71v-95q0-38-57-71t-157-52-214-20-215 20-156 52-58 71v95q66-47 181-71t248-24z m0 643q116 0 214-19t157-52 57-72v-71q0-39-57-72t-157-52-214-19-215 19-156 52-58 72v71q0 39 58 72t156 52 215 19z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="codeopen" unicode="" d="M121 198l336-225v201l-186 124z m-35 80l108 72-108 72v-144z m457-305l337 225-151 100-186-124v-201z m-43 275l152 102-152 102-152-102z m-229 154l186 124v201l-336-225z m535-52l108-72v144z m-77 52l151 100-337 225v-201z m271 100v-304q0-23-19-36l-457-305q-12-7-24-7t-24 7l-457 305q-19 13-19 36v304q0 23 19 36l457 305q12 7 24 7t24-7l457-305q19-13 19-36z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="sliders" unicode="" d="M196 64v-71h-196v71h196z m197 72q14 0 25-11t11-25v-143q0-14-11-25t-25-11h-143q-14 0-25 11t-11 25v143q0 15 11 25t25 11h143z m89 214v-71h-482v71h482z m-357 286v-72h-125v72h125z m732-572v-71h-411v71h411z m-536 643q15 0 26-10t10-26v-142q0-15-10-25t-26-11h-142q-15 0-25 11t-11 25v142q0 15 11 26t25 10h142z m358-286q14 0 25-10t10-25v-143q0-15-10-25t-25-11h-143q-15 0-25 11t-11 25v143q0 14 11 25t25 10h143z m178-71v-71h-125v71h125z m0 286v-72h-482v72h482z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="bomb" unicode="" d="M319 521q-6 14-19 20t-28 0q-60-25-106-71t-71-107q-6-14 0-27t19-19q8-3 14-3 23 0 33 23 19 47 55 83t83 54q14 7 20 20t0 27z m525 199l26-26-136-135 38-38q10-11 10-26t-10-25l-36-36q50-90 50-191 0-80-31-153t-84-125-125-84-153-31-153 31-125 84-84 125-31 153 31 153 84 125 125 84 153 31q101 0 191-50l36 36q11 10 25 10t26-10l38-38z m5 31q-6-5-12-5-8 0-13 5l-51 51q-5 5-5 12t5 13q6 5 13 5t13-5l50-51q5-5 5-12t-5-13z m128-128q-6-5-13-5t-12 5l-51 51q-5 5-5 12t5 13q5 5 13 5t12-5l51-50q5-6 5-13t-5-13z m23 102q0-8-5-13t-13-5h-53q-8 0-13 5t-5 13 5 13 13 5h53q8 0 13-5t5-13z m-107 107v-53q0-8-5-13t-13-5-13 5-5 13v53q0 8 5 13t13 5 13-5 5-13z m84-30l-51-51q-5-5-12-5-7 0-13 5-5 5-5 13t5 12l51 51q5 5 12 5t13-5q5-5 5-13t-5-12z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="plug" unicode="" d="M979 597q21-21 21-50t-21-51l-223-223 83-84-89-89q-91-91-217-104t-230 56l-202-202h-101v101l202 202q-69 103-56 230t104 217l89 89 84-83 223 223q21 21 51 21t50-21 21-50-21-51l-223-223 131-131 223 223q22 21 51 21t50-21z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="newspaper" unicode="" d="M571 564h-214v-214h214v214z m72-357v-71h-357v71h357z m0 429v-357h-357v357h357z m357-429v-71h-286v71h286z m0 143v-71h-286v71h286z m0 143v-72h-286v72h286z m0 143v-72h-286v72h286z m-857-536v536h-72v-536q0-14 11-25t25-11 25 11 11 25z m928 0v607h-857v-607q0-18-6-36h828q14 0 25 11t10 25z m72 679v-679q0-45-31-76t-76-31h-929q-44 0-76 31t-31 76v607h143v72h1000z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="cc-visa" unicode="" d="M1102 298h-77q8 20 37 99l2 6q2 5 5 14t5 15l7-31z m-806 36l-32 164q-6 31-42 31h-149l-2-8q174-44 225-187z m100 195l-90-245-10 50q-14 39-47 72t-73 50l75-285h98l145 358h-98z m78-359h92l58 359h-92z m428 350q-38 15-83 15-68 0-112-33t-44-86q-1-56 81-97 27-12 37-23t11-21q0-17-17-26t-38-9q-48 0-87 19l-13 6-13-81q42-19 104-19 72 0 116 33t45 90q0 59-78 97-27 14-40 23t-12 21q0 13 14 22t39 9q39 1 69-13l9-5z m238 9h-72q-36 0-48-31l-138-328h97l20 54h118q3-12 11-54h86z m146 178v-714q0-29-21-50t-51-22h-1143q-29 0-50 22t-21 50v714q0 29 21 50t50 22h1143q29 0 51-22t21-50z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="cc-mastercard" unicode="" d="M624 660q-71 47-156 47-58 0-111-22t-90-61-61-90-22-110q0-58 22-111t61-90 90-61 111-22q85 0 156 47-73 60-99 148t0 177 99 148z m19-14q-70-55-96-139t0-168 96-139q71 56 96 139t0 168-96 139z m18 14q73-60 99-148t1-177-100-148q72-47 157-47 58 0 111 22t90 61 61 90 22 111q0 57-22 110t-61 90-91 61-110 22q-85 0-157-47z m414-403h4v2h-10v-2h4v-10h2v10z m16-10h2v12h-3l-3-8-3 8h-3v-12h2v9l3-8h2l3 8v-9z m-4-245v-1h-3v1h3v0z m0-5h1l-2 3h1l1 0q0 1 0 2t0 2l-1 0h-5v-7h2v3h0z m-705 38q0 10 6 17t17 7q10 0 16-7t7-17q0-11-7-18t-16-6q-10 0-17 6t-6 18z m264 24q17 0 20-18h-39q3 18 19 18z m199-24q0 10 6 17t16 7 17-7 6-17q0-11-6-18t-17-6q-10 0-16 6t-6 18z m152 0q0 10 6 17t17 7 16-7 6-17q0-11-6-18t-16-6-17 7-6 17z m88-41q-1 0-2 1-1 0-2 1t-1 2q-1 1-1 2 0 2 1 2 0 2 1 3l1 0q1 0 1 1 1 0 2 0 2 0 2 0l2-1 1-3v0q1-1 1-2l-1 0v-2t0-1l-1-1q-1-1-2-1 0-1-2-1z m-751 3h17v47q0 14-8 22t-22 8q-18 0-26-13-8 13-25 13-14 0-22-11v9h-17v-75h17v42q0 20 18 20 17 0 17-20v-42h16v42q0 20 19 20 16 0 16-20v-42z m93 0h16v75h-16v-9q-10 11-24 11-16 0-27-11t-10-28 10-29 27-11q16 0 24 11v-9z m99 23q0 19-26 22l-8 1q-13 2-13 8 0 8 14 8 13 0 24-6l7 14q-12 7-31 7-14 0-23-6t-8-18q0-19 26-22l8-1q13-2 13-8 0-9-17-9-14 0-25 7l-8-12q14-10 33-10 16 0 25 7t9 18z m73-19l-5 14q-7-4-14-4-11 0-11 12v34h27v15h-27v23h-16v-23h-16v-15h16v-34q0-28 26-28 11 0 20 6z m48 73q-16 0-27-11t-11-28q0-18 11-29t28-11q18 0 31 11l-8 12q-10-8-22-8-19 0-23 18h57v7q0 18-11 28t-25 11z m89 0q-13 0-20-11v9h-17v-75h17v42q0 20 16 20 6 0 10-2l5 15q-5 2-11 2z m16-39q0-18 11-29t29-11q17 0 27 9l-8 13q-10-7-19-6-10 0-17 6t-6 18 6 17 17 7q11 0 19-7l8 13q-11 9-27 9-18 0-29-11t-11-28z m137-38h17v75h-17v-9q-8 11-23 11-17 0-28-11t-10-28 10-29 28-11q15 0 23 11v-9z m74 77q-13 0-19-11v9h-16v-75h16v42q0 20 16 20 5 0 10-2l5 15q-5 2-12 2z m78-77h17v106h-17v-40q-8 11-24 11t-26-11-11-28 11-28 26-12q17 0 24 11v-9z m44 11l-1-1h-2q-1 0-2-1-2-1-2-2 0-2 0-4 0-2 0-3 0-1 2-2 1-1 2-2t3 0q2 0 3 0 0 1 1 1l1 1q1 1 2 2 1 1 1 3 0 2-1 4 0 0-2 2 0 0-1 1l-1 0q0 0-1 1t-2 0z m201 699v-714q0-29-21-50t-51-22h-1143q-29 0-50 22t-21 50v714q0 29 21 50t50 22h1143q29 0 51-22t21-50z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="cc-paypal" unicode="" d="M416 344q0-20-14-34t-35-14q-17 0-26 9t-10 25q0 21 14 35t35 14q15 0 25-9t11-26z m438 84q0-24-12-32t-37-9l-18 0 9 60q1 6 8 6h10q12 0 19-1t14-7 7-17z m196-84q0-20-15-34t-34-14q-16 0-26 9t-10 25q0 21 14 35t34 14q16 0 26-9t11-26z m-764 96q0 33-21 48t-56 14h-90q-10 0-11-10l-37-228q0-3 2-6t6-3h42q11 0 12 11l10 61q1 5 4 7t9 4 9 1 11-1 8 0q48 0 75 27t27 75z m173-174l23 145q0 4-2 7t-6 2h-42q-8 0-10-18-15 22-53 22-40 0-68-30t-28-71q0-33 19-52t52-20q15 0 32 7t27 18q-2-7-2-12 0-9 7-9h38q11 0 13 11z m249 147q0 2-2 5t-5 2h-43q-6 0-10-5l-59-87-25 83q-3 9-12 9h-42q-3 0-5-2t-2-5q0-2 11-33t23-69 13-39q-45-63-45-67 0-7 7-7h43q6 0 10 5l142 206q1 1 1 4z m212 27q0 33-21 48t-56 14h-89q-11 0-12-10l-37-228q0-3 2-6t6-3h45q7 0 9 7l10 65q1 5 4 7t9 4 9 1 11-1 8 0q48 0 75 27t27 75z m173-174l23 145q0 4-2 7t-6 2h-42q-8 0-10-18-14 22-53 22-40 0-68-30t-28-71q0-33 19-52t52-20q16 0 33 7t26 18q0-1-1-5t-1-7q0-9 7-9h38q11 0 13 11z m121 228v1q0 7-7 7h-41q-6 0-7-6l-37-232 0-1q0-3 2-5t6-3h36q11 0 12 11z m-995-75q-3-19-15-25t-33-7l-19 0 10 60q1 6 7 6h11q22 0 32-7t7-27z m1067 288v-714q0-29-21-50t-51-22h-1143q-29 0-50 22t-21 50v714q0 29 21 50t50 22h1143q29 0 51-22t21-50z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="trash" unicode="" d="M286 82v393q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q8 0 13 5t5 13z m143 0v393q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q8 0 13 5t5 13z m142 0v393q0 8-5 13t-12 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q7 0 12 5t5 13z m-303 554h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q23 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="chart-area" unicode="" d="M1143-7v-72h-1143v858h71v-786h1072z m-214 571l142-500h-928v322l250 321 321-321z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="chart-pie" unicode="" d="M429 353l304-304q-59-61-138-94t-166-34q-117 0-216 58t-155 156-58 215 58 215 155 156 216 58v-426z m104-3h431q0-88-33-167t-94-138z m396 71h-429v429q117 0 215-57t156-156 58-216z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="chart-line" unicode="" d="M1143-7v-72h-1143v858h71v-786h1072z m-72 696v-242q0-12-10-17t-20 4l-68 68-353-353q-6-6-13-6t-13 6l-130 130-232-233-107 108 327 326q5 6 12 6t13-6l130-130 259 259-67 68q-9 8-5 19t17 11h243q7 0 12-5t5-13z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="toggle-off" unicode="" d="M643 350q0 58-23 111t-61 91-91 61-111 23-111-23-91-61-61-91-23-111 23-111 61-91 91-61 111-23 111 23 91 61 61 91 23 111z m428 0q0 58-22 111t-61 91-91 61-111 23h-216q67-50 106-125t38-161-38-161-106-125h216q58 0 111 23t91 61 61 91 22 111z m72 0q0-72-29-139t-76-113-114-77-138-28h-429q-72 0-138 28t-114 77-76 113-29 139 29 139 76 114 114 76 138 28h429q72 0 138-28t114-76 76-114 29-139z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="toggle-on" unicode="" d="M0 350q0 73 29 139t76 114 114 76 138 28h429q72 0 138-28t114-76 76-114 29-139-29-139-76-113-114-77-138-28h-429q-72 0-138 28t-114 77-76 113-29 139z m786-286q58 0 111 23t91 61 61 91 22 111-22 111-61 91-91 61-111 23-111-23-91-61-61-91-23-111 23-111 61-91 91-61 111-23z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="cc" unicode="" d="M438 288h116q-8-89-55-139t-120-51q-90 0-142 65t-52 176q0 109 52 174t130 66q83 0 130-49t54-138h-113q-3 36-20 56t-46 19q-32 0-49-34t-18-99q0-26 3-46t10-39 22-29 37-10q53 0 61 78z m397 0h115q-7-89-54-139t-120-51q-90 0-142 65t-51 176q0 109 52 174t130 66q82 0 129-49t54-138h-114q-2 36-19 56t-45 19q-32 0-50-34t-17-99q0-26 2-46t10-39 22-29 37-10q27 0 43 21t18 57z m201 66q0 115-9 171t-34 90q-3 5-7 8t-12 8-9 6q-48 36-389 36-349 0-396-36-3-2-10-6t-12-8-8-8q-25-33-33-89t-9-172q0-116 9-172t33-89q4-5 9-9t11-7 10-7q24-18 133-27t263-9q340 0 389 36 3 2 9 6t12 8 7 9q26 33 34 89t9 172z m107 425v-858h-1143v858h1143z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="diamond" unicode="" d="M118 421l348-371-167 371h-181z m453-430l195 430h-389z m-271 502l114 214h-146l-161-214h193z m377-443l348 371h-181z m-296 443h381l-114 214h-153z m462 0h193l-161 214h-146z m78 271l215-286q7-10 7-23t-10-22l-535-572q-10-11-27-11t-26 11l-535 572q-9 9-10 22t7 23l215 286q10 15 28 15h643q18 0 28-15z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="user-secret" unicode="" d="M321-7l54 250-54 71-71 36z m143 0l72 357-72-36-53-71z m90 564q-1 2-3 3-5 4-53 4-39 0-93-10-4-1-12-1t-12 1q-54 10-93 10-48 0-54-4-1-1-2-3 1-11 2-16 2-1 5-3t4-6q1-2 4-11t4-12 4-9 5-10 5-8 7-7 7-6 10-4 12-2 13-1q20 0 33 7t18 16 8 20 7 16 10 7h6q6 0 10-7t6-16 9-20 18-16 33-7q7 0 13 1t12 2 9 4 8 6 7 7 5 8 5 10 4 9 4 12 4 11q1 4 4 6t4 3q2 5 3 16z m232-491q0-68-41-106t-108-39h-488q-67 0-108 39t-41 106q0 34 3 66t10 70 21 69 36 58 52 41l-51 123h120q-12 36-12 71 0 7 1 18-109 23-109 54 0 32 118 55 9 35 28 75t40 63q18 21 42 21 17 0 47-17t47-18 47 18 47 17q24 0 42-21 20-23 39-63t29-75q117-23 117-55 0-31-108-54 4-45-11-89h119l-45-126q35-18 60-54t36-80 16-84 5-83z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="server" unicode="" d="M71 64h572v72h-572v-72z m0 286h572v71h-572v-71z m875-250q0 22-15 38t-38 16-38-16-16-38 16-38 38-16 38 16 15 38z m-875 536h572v71h-572v-71z m875-250q0 22-15 38t-38 15-38-15-16-38 16-38 38-16 38 16 15 38z m0 285q0 23-15 38t-38 16-38-16-16-38 16-37 38-16 38 16 15 37z m54-464v-214h-1000v214h1000z m0 286v-214h-1000v214h1000z m0 286v-215h-1000v215h1000z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="user-plus" unicode="" d="M393 350q-89 0-152 63t-62 151 62 152 152 63 151-63 63-152-63-151-151-63z m536-71h196q7 0 13-6t5-12v-107q0-8-5-13t-13-5h-196v-197q0-7-6-12t-12-6h-107q-8 0-13 6t-5 12v197h-197q-7 0-12 5t-6 13v107q0 7 6 12t12 6h197v196q0 7 5 13t13 5h107q7 0 12-5t6-13v-196z m-411-125q0-29 21-51t50-21h143v-133q-38-28-95-28h-488q-67 0-108 39t-41 106q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q11 0 22-10 44-34 86-51t92-17 92 17 86 51q11 10 22 10 73 0 121-54h-125q-29 0-50-21t-21-50v-107z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="user-times" unicode="" d="M393 350q-89 0-152 63t-62 151 62 152 152 63 151-63 63-152-63-151-151-63z m601-179l139-138q5-5 5-13 0-8-5-13l-76-76q-5-5-12-5-8 0-13 5l-139 139-139-139q-5-5-13-5-7 0-12 5l-76 76q-5 5-5 13 0 8 5 13l139 138-139 139q-5 5-5 13 0 8 5 13l76 75q5 5 12 5 8 0 13-5l139-139 139 139q5 5 13 5 7 0 12-5l76-75q5-5 5-13 0-8-5-13z m-278 0l-101-101q-21-20-21-50 0-30 21-51l46-46q-11-2-24-2h-488q-67 0-108 39t-41 106q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q11 0 22-10 86-68 178-68t178 68q11 10 22 10 15 0 31-4-15-15-22-27t-8-32q0-30 21-51z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="expeditedssl" unicode="" d="M500 814q-94 0-180-36t-148-100-99-148-37-180 37-180 99-148 148-100 180-36 180 36 148 100 100 148 36 180-36 180-100 148-148 100-180 36z m0 36q102 0 194-40t160-106 106-160 40-194-40-194-106-160-160-106-194-40-194 40-160 106-106 160-40 194 40 194 106 160 160 106 194 40z m-223-464q9 0 9-9v-268q0-9-9-9h-18q-9 0-9 9v268q0 9 9 9h18z m223-36q30 0 51-21t20-50q0-20-9-36t-26-26v-63q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v63q-16 10-26 26t-9 36q0 29 21 50t50 21z m0 429q117 0 215-58t156-156 58-215-58-215-156-156-215-58-215 58-156 156-58 215 58 215 156 156 215 58z m-196-268v-54q0-8 5-13t12-5h36q8 0 13 5t5 13v54q0 52 37 88t88 37 88-37 37-88v-54q0-8 5-13t13-5h36q7 0 12 5t5 13v54q0 81-57 139t-139 57-139-57-57-139z m482-411v286q0 14-11 25t-25 10h-500q-14 0-25-10t-11-25v-286q0-14 11-25t25-11h500q15 0 25 11t11 25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="object-group" unicode="" d="M1143 636h-72v-572h72v-214h-214v71h-715v-71h-214v214h71v572h-71v214h214v-71h715v71h214v-214z m-143 143v-72h71v72h-71z m-929 0v-72h72v72h-72z m72-858v72h-72v-72h72z m786 72v71h71v572h-71v71h-715v-71h-71v-572h71v-71h715z m142-72v72h-71v-72h71z m-357 572h215v-429h-500v143h-215v429h500v-143z m-428-214h357v285h-357v-285z m571-143v285h-143v-214h-214v-71h357z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="object-ungroup" unicode="" d="M1286 421h-72v-357h72v-214h-215v71h-500v-71h-214v214h72v72h-215v-72h-214v215h71v357h-71v214h214v-71h500v71h215v-214h-72v-72h214v72h215v-215z m-143 143v-71h71v71h-71z m-357 215v-72h71v72h-71z m-715 0v-72h72v72h-72z m72-643v71h-72v-71h72z m714 71h-71v-71h71v71z m-643 0h500v72h72v357h-72v71h-500v-71h-71v-357h71v-72z m286-286v72h-71v-72h71z m714 0v72h-71v-72h71z m-71 143v357h-72v72h-214v-214h72v-215h-215v72h-214v-72h71v-71h500v71h72z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="sticky-note" unicode="" d="M571 154v-233h-517q-23 0-38 16t-16 38v750q0 22 16 38t38 16h750q22 0 38-16t15-38v-518h-232q-22 0-38-15t-16-38z m72-18h213q-9-46-37-74l-102-103q-28-28-74-36v213z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="clone" unicode="" d="M929-61v607q0 8-6 13t-12 5h-607q-8 0-13-5t-5-13v-607q0-7 5-12t13-6h607q7 0 12 6t6 12z m71 607v-607q0-37-26-63t-63-26h-607q-37 0-63 26t-27 63v607q0 37 27 64t63 26h607q37 0 63-26t26-64z m-214 215v-90h-72v90q0 7-5 12t-13 6h-607q-7 0-12-6t-6-12v-607q0-8 6-13t12-5h90v-72h-90q-36 0-63 27t-26 63v607q0 37 26 63t63 26h607q37 0 64-26t26-63z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="television" unicode="" d="M1000 154v535q0 8-5 13t-13 5h-893q-7 0-12-5t-6-13v-535q0-8 6-13t12-5h893q7 0 13 5t5 13z m71 535v-535q0-37-26-63t-63-27h-411v-71h197q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-464q-8 0-13 5t-5 13v36q0 8 5 13t13 5h196v71h-411q-36 0-63 27t-26 63v535q0 37 26 63t63 27h893q37 0 63-27t26-63z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="map-signs" unicode="" d="M974 684q5-5 5-13t-5-12l-79-79q-15-16-38-16h-750q-14 0-25 11t-11 25v143q0 14 11 25t25 11h322v35q0 15 10 25t25 11h72q14 0 25-11t10-25v-35h286q23 0 38-16z m-545-513h142v-285q0-15-10-25t-25-11h-72q-14 0-25 11t-10 25v285z m464 250q14 0 25-10t11-25v-143q0-15-11-25t-25-11h-750q-22 0-38 16l-79 79q-5 5-5 12t5 13l79 79q16 15 38 15h286v108h142v-108h322z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="shopping-basket" unicode="" d="M1071 421q30 0 51-20t21-51-21-50-51-21h-8l-64-370q-5-26-25-42t-45-17h-715q-25 0-45 17t-25 42l-64 370h-9q-29 0-50 21t-21 50 21 51 50 20h1000z m-800-446q14 1 24 13t9 26l-18 232q-1 14-13 24t-26 9-24-13-9-26l18-232q1-14 12-24t24-9h3z m229 36v232q0 14-11 25t-25 11-25-11-10-25v-232q0-15 10-25t25-11 25 11 11 25z m214 0v232q0 14-10 25t-25 11-25-11-11-25v-232q0-15 11-25t25-11 25 11 10 25z m197-3l18 232q1 15-9 26t-24 13-26-9-13-24l-18-232q-1-15 9-26t24-13h3q14 0 24 9t12 24z m-645 679l-52-230h-74l56 246q11 49 50 80t89 31h94q0 15 10 25t25 11h215q14 0 25-11t10-25h94q50 0 89-31t49-80l57-246h-74l-52 230q-6 25-25 40t-44 16h-94q0-15-10-25t-25-11h-215q-14 0-25 11t-10 25h-94q-25 0-44-16t-25-40z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="wpforms" unicode="" d="M287 342v-72h-140v72h140z m0 142v-71h-140v71h140z m423-285v-72h-190v72h190z m0 143v-72h-375v72h375z m0 142v-71h-375v71h375z m76-480v692q0 4-4 8t-7 3h-18l-211-143-117 96-118-96-211 143h-17q-5 0-8-3t-4-8v-692q0-4 4-8t8-3h692q4 0 7 3t4 8z m-477 619l103 84h-227z m240 0l123 84h-227z m308 73v-692q0-35-24-59t-58-24h-692q-35 0-59 24t-24 59v692q0 35 24 59t59 24h692q34 0 58-24t24-59z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="handshake-o" unicode="" d="M107 207q23 0 31 18t0 36-31 18-31-18 0-36 31-18z m822 33q-5 7-21 27t-23 31-22 27-23 30-23 26-25 27l-70-78q-46-52-116-51t-115 54q-32 39-31 88t32 88l99 115q-12 6-28 9t-27 4-31-1-28 0q-51 0-88-37l-88-88h-87v-304q3 0 12 0t12 0 11-1 12-2 9-5 11-7l165-163q65-62 127-62 44 0 70 26 32-11 63 4t40 48q41-4 71 24 11 10 20 26t8 28q5-6 24-6 24 0 43 12t28 30 6 40-17 41z m89-33h53v286h-51l-88 100q-37 43-94 43h-94q-49 0-81-38l-117-135q-15-19-15-42t15-42q24-28 61-29t62 27l108 122q14 13 30 12t26-15 5-32q9-10 31-35t33-38q17-20 46-59t36-47q29-37 34-78z m161 0q22 0 31 18t0 36-31 18-32-18 0-36 32-18z m107 322v-358q0-14-11-25t-25-10h-242q-15-37-46-60t-70-28q-18-27-45-46t-57-25q-23-30-58-46t-72-14q-33-19-70-22t-71 8-66 30-57 45l-160 158h-200q-15 0-25 10t-11 25v375q0 15 11 26t25 10h235q8 8 26 27t26 27 25 22 28 21 29 14 34 11 38 3h65q56 0 101-31 46 31 101 31h94q19 0 37-3t32-8 28-15 25-17 24-22 22-24 23-27 23-27h198q15 0 25-10t11-25z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="envelope-open" unicode="" d="M1000 485v-546q0-37-26-63t-63-26h-822q-36 0-63 26t-26 63v546q0 8 6 13 5 4 22 20t23 20 26 21 39 31 53 40 80 60 108 79q2 2 29 22t40 29 36 20 38 10 39-10 36-20 39-29 29-22q62-45 108-79t80-60 54-40 39-31 25-21 23-20 22-20q6-5 6-13z m-315-326q147 106 193 140 6 5 7 12t-4 13l-21 29q-4 6-12 7t-13-4q-129-94-192-139-2-2-29-22t-39-29-36-20-39-10-38 10-36 20-40 29-29 22q-104 74-192 139-6 5-13 4t-12-7l-21-29q-5-6-4-13t7-12q46-34 193-140 5-5 28-22t36-26 36-22 43-19 42-6 42 6 44 20 36 22 37 26 26 21z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="envelope-open-o" unicode="" d="M823 341l21-29q5-6 4-13t-6-11q-24-19-71-55t-82-63-37-29q-22-18-34-27t-33-23-43-20-41-7h-2q-20 0-41 7t-42 20-34 23-34 27q-3 2-36 28t-80 62-68 53q-7 4-7 11t3 13l21 29q4 6 12 7t14-3q52-41 170-132 3-2 25-20t33-26 32-18 32-9h2q13 0 32 9t32 18 34 26 24 20q144 110 174 135 7 4 14 4t12-7z m106-402v518q-51 47-89 78-51 41-217 169-2 2-24 20t-34 27-31 18-33 10h-2q-13 0-32-10t-32-18-34-27-24-20q-120-92-176-137t-72-58-46-41q-8-7-12-11v-518q0-7 6-12t12-6h822q7 0 12 6t6 12z m71 518v-518q0-37-26-63t-63-26h-822q-36 0-63 26t-26 63v518q0 31 23 53 69 63 195 162t130 101q20 17 33 27t35 23 42 20 41 7h2q20 0 41-7t43-20 34-23 33-27q24-20 87-68t126-99 112-96q23-22 23-53z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="address-card-o" unicode="" d="M571 219q0-36-20-60t-51-23h-286q-30 0-50 23t-21 60 5 65 16 58 34 43 54 16q4-2 17-10t21-12 20-9 24-9 23-2 24 2 24 9 19 9 21 12 17 10q32 0 54-16t34-43 16-58 5-65z m-87 290q0-52-37-89t-90-38-89 38-37 89 37 90 89 37 90-37 37-90z m516-248v-36q0-8-5-13t-13-5h-321q-8 0-13 5t-5 13v36q0 8 5 13t13 5h321q8 0 13-5t5-13z m0 140v-31q0-8-6-14t-14-6h-317q-8 0-14 6t-6 14v31q0 9 6 15t14 5h317q8 0 14-5t6-15z m0 145v-35q0-8-5-13t-13-5h-321q-8 0-13 5t-5 13v35q0 8 5 13t13 5h321q8 0 13-5t5-13z m71-535v678q0 8-5 13t-12 5h-965q-7 0-12-5t-6-13v-678q0-7 6-13t12-5h197v53q0 8 5 13t13 5h35q8 0 13-5t5-13v-53h429v53q0 8 5 13t13 5h35q8 0 13-5t5-13v-53h197q7 0 12 5t5 13z m72 678v-678q0-37-26-63t-63-27h-965q-36 0-63 27t-26 63v678q0 37 26 63t63 27h965q36 0 63-27t26-63z" horiz-adv-x="1142.9" />
|
||||
|
||||
<glyph glyph-name="user-circle-o" unicode="" d="M500 850q102 0 194-40t160-106 106-160 40-194q0-101-39-194t-107-159-159-107-195-40-195 40-159 106-106 160-40 194 40 194 106 160 160 106 194 40z m345-754q84 115 84 254 0 87-34 166t-92 137-137 92-166 34-166-34-137-92-91-137-35-166q0-139 84-254 36 183 170 183 73-72 175-72t175 72q134 0 170-183z m-131 361q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="id-badge" unicode="" d="M571 148q0-36-20-60t-51-24h-286q-30 0-50 24t-21 60 5 66 16 58 34 44 54 16q45-42 105-42t105 42q31 0 54-16t34-44 16-58 5-66z m-85 290q0-53-38-90t-91-37-90 37-38 90 38 89 90 37 91-37 38-89z m157-499v768h-572v-768q0-7 6-12t12-6h536q7 0 13 6t5 12z m71 822v-822q0-37-26-63t-63-26h-536q-36 0-63 26t-26 63v822q0 37 26 63t63 26h197v-54q0-7 5-12t13-5h107q8 0 13 5t5 12v54h196q37 0 63-26t26-63z" horiz-adv-x="714.3" />
|
||||
|
||||
<glyph glyph-name="id-card-o" unicode="" d="M500 174q0-31-18-52t-42-22h-237q-25 0-43 22t-17 52q0 30 4 56t14 50 28 38 45 14q36-36 87-36t88 36q26 0 45-14t28-38 14-50 4-56z m-71 247q0-44-32-75t-76-32-75 32-32 75 32 76 75 32 76-32 32-76z m571-232v-35q0-8-5-13t-13-5h-393q-7 0-12 5t-6 13v35q0 8 6 13t12 5h393q8 0 13-5t5-13z m-214 143v-36q0-7-5-12t-13-5h-179q-7 0-12 5t-6 12v36q0 8 6 13t12 5h179q8 0 13-5t5-13z m214 0v-36q0-7-5-12t-13-5h-107q-8 0-13 5t-5 12v36q0 8 5 13t13 5h107q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-6h-393q-7 0-12 6t-6 12v36q0 8 6 13t12 5h393q8 0 13-5t5-13z m71-464v625h-1000v-625q0-7 6-13t12-5h965q7 0 12 5t5 13z m72 678v-678q0-37-26-63t-63-27h-965q-36 0-63 27t-26 63v678q0 37 26 63t63 27h965q36 0 63-27t26-63z" horiz-adv-x="1142.9" />
|
||||
</font>
|
||||
</defs>
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 83 KiB |
93
public/index-old.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
$_REALPATH=realpath('../');
|
||||
include($_REALPATH.'/php/clonos.php');
|
||||
$clonos=new ClonOS($_REALPATH);
|
||||
|
||||
$lang=$clonos->getLang();
|
||||
$uri=trim($_SERVER['REQUEST_URI'],DIRECTORY_SEPARATOR);
|
||||
$root=trim($_SERVER['DOCUMENT_ROOT'],DIRECTORY_SEPARATOR);
|
||||
$_ds=DIRECTORY_SEPARATOR;
|
||||
$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))
|
||||
{
|
||||
$key=$clonos->menu->first_key;
|
||||
header('Location: /'.$key.'/',true);
|
||||
exit;
|
||||
}
|
||||
|
||||
error_reporting(E_ALL);
|
||||
?>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>ClonOS — <?php echo $clonos->menu->title; ?></title>
|
||||
<link href="/images/favicon.ico?" rel="shortcut icon" type="image/x-icon" />
|
||||
<script src="/js/jquery.js" type="text/javascript"></script>
|
||||
<script src="/js/clonos.js" type="text/javascript"></script>
|
||||
<script src="/js/noty/packaged/jquery.noty.packaged.min.js" type="text/javascript"></script>
|
||||
<link type="text/css" href="/css/reset.css" rel="stylesheet" />
|
||||
<link type="text/css" href="/css/styles-old.css" rel="stylesheet" />
|
||||
<link type="text/css" href="/font/clonos.css" rel="stylesheet" />
|
||||
<link type="text/css" href="/font/animation.css" rel="stylesheet" />
|
||||
<script src="/lang/<?php echo $lang; ?>.js" type="text/javascript"></script>
|
||||
<style type="text/css">html{background-color:#aaa;} .hide{display:none;}</style>
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="" />
|
||||
</head>
|
||||
<body>
|
||||
<nav id="nav">
|
||||
<span id="title"><?php echo $clonos->menu->title; ?></span>
|
||||
<ul>
|
||||
<li class="mhome"><a href="/">Home</a></li>
|
||||
<li><a href="/settings/"><?php echo $clonos->translate('Settings'); ?></a></li>
|
||||
<li><a href="/profile/"><?php echo $clonos->translate('Profile'); ?></a></li>
|
||||
<li><a href="/support/"><?php echo $clonos->translate('Support'); ?></a></li>
|
||||
<li><a name="">
|
||||
<select id="lng-sel">
|
||||
<?php
|
||||
$_languages=$clonos->config->languages;
|
||||
if(isset($_languages))foreach($_languages as $lng=>$lngname)
|
||||
{
|
||||
if($lang==$lng) $sel=' selected="selected"'; else $sel='';
|
||||
echo ' <option value="'.$lng.'"'.$sel.'>'.$lngname.'</option>'.PHP_EOL;
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</a></li>
|
||||
<!-- <li><a href="">...</a></li> -->
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div id="menu">
|
||||
<?php
|
||||
echo $clonos->menu->html;
|
||||
?>
|
||||
</div>
|
||||
|
||||
<main><div id="content">
|
||||
<?php
|
||||
/*
|
||||
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
|
||||
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
|
||||
[REMOTE_ADDR] => 79.173.124.136
|
||||
[DOCUMENT_ROOT] => /usr/home/web/cp/clonos/public
|
||||
[DOCUMENT_URI] => /index.php
|
||||
[REQUEST_URI] => /overview/
|
||||
[REQUEST_METHOD] => GET
|
||||
[SCRIPT_FILENAME] => /usr/home/web/cp/clonos/public/index.php
|
||||
[WORKDIR] => /usr/jails
|
||||
[APPLICATION_ENV] => production
|
||||
*/
|
||||
if(file_exists($file_name)) include($file_name); else
|
||||
{
|
||||
echo '<h1>'.$clonos->translate('File not found').'!</h1>';
|
||||
}
|
||||
$clonos->placeDialogs();
|
||||
?>
|
||||
</div></main>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,10 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
$_REALPATH=realpath('../');
|
||||
include($_REALPATH.'/php/clonos.php');
|
||||
$clonos=new ClonOS($_REALPATH);
|
||||
|
||||
$lang=getLang();
|
||||
$lang=$clonos->getLang();
|
||||
$uri=trim($_SERVER['REQUEST_URI'],DIRECTORY_SEPARATOR);
|
||||
$root=trim($_SERVER['DOCUMENT_ROOT'],DIRECTORY_SEPARATOR);
|
||||
$_ds=DIRECTORY_SEPARATOR;
|
||||
@@ -26,28 +26,43 @@ error_reporting(E_ALL);
|
||||
<title>ClonOS — <?php echo $clonos->menu->title; ?></title>
|
||||
<link href="/images/favicon.ico?" rel="shortcut icon" type="image/x-icon" />
|
||||
<script src="/js/jquery.js" type="text/javascript"></script>
|
||||
<script src="/js/scripts.js" type="text/javascript"></script>
|
||||
<?php if(file_exists($json_name)) echo ' <script type="text/javascript">clonos.jsonLoad=true;</script>'; ?>
|
||||
|
||||
<script src="/js/clonos.js" type="text/javascript"></script>
|
||||
<script src="/js/noty/packaged/jquery.noty.packaged.min.js" type="text/javascript"></script>
|
||||
<link type="text/css" href="/css/reset.css" rel="stylesheet" />
|
||||
<link type="text/css" href="/css/styles.css" rel="stylesheet" />
|
||||
<link type="text/css" href="/font/clonos.css" rel="stylesheet" />
|
||||
<link type="text/css" href="/font/animation.css" rel="stylesheet" />
|
||||
<!--
|
||||
<script src="/js/lang/ru.js" type="text/javascript"></script>
|
||||
-->
|
||||
<script src="/lang/<?php echo $lang; ?>.js" type="text/javascript"></script>
|
||||
<style type="text/css">html{background-color:#aaa;} .hide{display:none;}</style>
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="" />
|
||||
</head>
|
||||
<body>
|
||||
<nav id="nav">
|
||||
<body class="gadget1">
|
||||
|
||||
<main><div class="main"><div id="content">
|
||||
<?php
|
||||
if(file_exists($file_name)) include($file_name); else
|
||||
{
|
||||
echo '<h1>'.$clonos->translate('File not found').'!</h1>';
|
||||
}
|
||||
$clonos->placeDialogs();
|
||||
?>
|
||||
</div></div></main>
|
||||
|
||||
<div class="menu"><div id="menu">
|
||||
<div class="closer"></div>
|
||||
<?php
|
||||
echo $clonos->menu->html;
|
||||
?><div id="console"></div>
|
||||
</div></div>
|
||||
|
||||
<header><div class="header">
|
||||
<span id="title"><?php echo $clonos->menu->title; ?></span>
|
||||
<ul>
|
||||
<li class="mhome"><a href="/">Home</a></li>
|
||||
<li><a href="/settings/"><?php echo get_translate('Settings'); ?></a></li>
|
||||
<li><a href="/profile/"><?php echo get_translate('Profile'); ?></a></li>
|
||||
<li><a href="/support/"><?php echo get_translate('Support'); ?></a></li>
|
||||
<li><a href="/settings/"><?php echo $clonos->translate('Settings'); ?></a></li>
|
||||
<li><a href="/profile/"><?php echo $clonos->translate('Profile'); ?></a></li>
|
||||
<li><a href="/support/"><?php echo $clonos->translate('Support'); ?></a></li>
|
||||
<li><a name="">
|
||||
<select id="lng-sel">
|
||||
<?php
|
||||
@@ -60,36 +75,9 @@ if(isset($_languages))foreach($_languages as $lng=>$lngname)
|
||||
?>
|
||||
</select>
|
||||
</a></li>
|
||||
<!-- <li><a href="">...</a></li> -->
|
||||
</ul>
|
||||
</nav>
|
||||
</div></header>
|
||||
|
||||
<div id="menu">
|
||||
<?php
|
||||
echo $clonos->menu->html;
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<?php
|
||||
/*
|
||||
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
|
||||
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
|
||||
[REMOTE_ADDR] => 79.173.124.136
|
||||
[DOCUMENT_ROOT] => /usr/home/web/cp/clonos/public
|
||||
[DOCUMENT_URI] => /index.php
|
||||
[REQUEST_URI] => /overview/
|
||||
[REQUEST_METHOD] => GET
|
||||
[SCRIPT_FILENAME] => /usr/home/web/cp/clonos/public/index.php
|
||||
[WORKDIR] => /usr/jails
|
||||
[APPLICATION_ENV] => production
|
||||
*/
|
||||
if(file_exists($file_name)) include($file_name); else
|
||||
{
|
||||
echo '<h1>'.get_translate('File not found').'!</h1>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1328
public/js/clonos.js
Normal file
3
public/js/lang-delete/en.js
Normal file
@@ -0,0 +1,3 @@
|
||||
clonos.lang={
|
||||
|
||||
}
|
||||
26
public/js/lang-delete/ru.js
Normal file
@@ -0,0 +1,26 @@
|
||||
clonos.lang={
|
||||
"Error": "Ошибка",
|
||||
"No data, add something": "Нет данных, добавьте что-нибудь",
|
||||
"available on the jail is not running": "доступно при остановленной клетке",
|
||||
"Log is empty": "Лог пуст",
|
||||
"Exported jails": "Экспортированные клетки",
|
||||
"Download": "Скачать",
|
||||
"Jail is created": "Клетка создана",
|
||||
"Jail already launched": "Клетка уже запущена",
|
||||
"Jail already stopped": "Клетка уже остановлена",
|
||||
"Export not available on launched jail": "Экспорт невозможен на запущенной клетке",
|
||||
"This field cannot be left blank": "Это поле должно быть заполнено",
|
||||
"You need to select one or more jails for clone": "Вам необходимо выбрать одну или несколько клеток для клонирования",
|
||||
"Not running":"Не запущено",
|
||||
"Launched":"Запущено",
|
||||
"Stopped":"Остановлено",
|
||||
"Removed":"Удалено",
|
||||
"Creating…":"Создаётся…",
|
||||
"Starting":"Запускается",
|
||||
"Stopping":"Останавливается",
|
||||
"Removing":"Удаляется",
|
||||
"Exporting":"Экспортируется",
|
||||
"Cloning":"Клонируется",
|
||||
|
||||
"end":"конец"
|
||||
}
|
||||
623
public/js/noty/jquery.noty.js
Normal file
@@ -0,0 +1,623 @@
|
||||
/*!
|
||||
@package noty - jQuery Notification Plugin
|
||||
@version version: 2.3.11
|
||||
@contributors https://github.com/needim/noty/graphs/contributors
|
||||
|
||||
@documentation Examples and Documentation - http://needim.github.com/noty/
|
||||
|
||||
@license Licensed under the MIT licenses: http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
if (typeof Object.create !== 'function') {
|
||||
Object.create = function (o) {
|
||||
function F() {
|
||||
}
|
||||
|
||||
F.prototype = o;
|
||||
return new F();
|
||||
};
|
||||
}
|
||||
|
||||
var NotyObject = {
|
||||
|
||||
init: function (options) {
|
||||
|
||||
// Mix in the passed in options with the default options
|
||||
this.options = $.extend({}, $.noty.defaults, options);
|
||||
|
||||
this.options.layout = (this.options.custom) ? $.noty.layouts['inline'] : $.noty.layouts[this.options.layout];
|
||||
|
||||
if ($.noty.themes[this.options.theme]) {
|
||||
this.options.theme = $.noty.themes[this.options.theme];
|
||||
if (this.options.theme.template)
|
||||
this.options.template = this.options.theme.template;
|
||||
|
||||
if (this.options.theme.animation)
|
||||
this.options.animation = this.options.theme.animation;
|
||||
}
|
||||
else {
|
||||
this.options.themeClassName = this.options.theme;
|
||||
}
|
||||
|
||||
this.options = $.extend({}, this.options, this.options.layout.options);
|
||||
|
||||
if (this.options.id) {
|
||||
if ($.noty.store[this.options.id]) {
|
||||
return $.noty.store[this.options.id];
|
||||
}
|
||||
} else {
|
||||
this.options.id = 'noty_' + (new Date().getTime() * Math.floor(Math.random() * 1000000));
|
||||
}
|
||||
|
||||
// Build the noty dom initial structure
|
||||
this._build();
|
||||
|
||||
// return this so we can chain/use the bridge with less code.
|
||||
return this;
|
||||
}, // end init
|
||||
|
||||
_build: function () {
|
||||
|
||||
// Generating noty bar
|
||||
var $bar = $('<div class="noty_bar noty_type_' + this.options.type + '"></div>').attr('id', this.options.id);
|
||||
$bar.append(this.options.template).find('.noty_text').html(this.options.text);
|
||||
|
||||
this.$bar = (this.options.layout.parent.object !== null) ? $(this.options.layout.parent.object).css(this.options.layout.parent.css).append($bar) : $bar;
|
||||
|
||||
if (this.options.themeClassName)
|
||||
this.$bar.addClass(this.options.themeClassName).addClass('noty_container_type_' + this.options.type);
|
||||
|
||||
// Set buttons if available
|
||||
if (this.options.buttons) {
|
||||
|
||||
var $buttons;
|
||||
// Try find container for buttons in presented template, and create it if not found
|
||||
if (this.$bar.find('.noty_buttons').length > 0) {
|
||||
$buttons = this.$bar.find('.noty_buttons');
|
||||
} else {
|
||||
$buttons = $('<div/>').addClass('noty_buttons');
|
||||
(this.options.layout.parent.object !== null) ? this.$bar.find('.noty_bar').append($buttons) : this.$bar.append($buttons);
|
||||
}
|
||||
|
||||
var self = this;
|
||||
|
||||
$.each(this.options.buttons, function (i, button) {
|
||||
var $button = $('<button/>').addClass((button.addClass) ? button.addClass : 'gray').html(button.text).attr('id', button.id ? button.id : 'button-' + i)
|
||||
.attr('title', button.title)
|
||||
.appendTo($buttons)
|
||||
.on('click', function (event) {
|
||||
if ($.isFunction(button.onClick)) {
|
||||
button.onClick.call($button, self, event);
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
// If buttons is not available, then remove containers if exist
|
||||
this.$bar.find('.noty_buttons').remove();
|
||||
}
|
||||
|
||||
// For easy access
|
||||
this.$message = this.$bar.find('.noty_message');
|
||||
this.$closeButton = this.$bar.find('.noty_close');
|
||||
this.$buttons = this.$bar.find('.noty_buttons');
|
||||
|
||||
$.noty.store[this.options.id] = this; // store noty for api
|
||||
|
||||
}, // end _build
|
||||
|
||||
show: function () {
|
||||
|
||||
var self = this;
|
||||
|
||||
(self.options.custom) ? self.options.custom.find(self.options.layout.container.selector).append(self.$bar) : $(self.options.layout.container.selector).append(self.$bar);
|
||||
|
||||
if (self.options.theme && self.options.theme.style)
|
||||
self.options.theme.style.apply(self);
|
||||
|
||||
($.type(self.options.layout.css) === 'function') ? this.options.layout.css.apply(self.$bar) : self.$bar.css(this.options.layout.css || {});
|
||||
|
||||
self.$bar.addClass(self.options.layout.addClass);
|
||||
|
||||
self.options.layout.container.style.apply($(self.options.layout.container.selector), [self.options.within]);
|
||||
|
||||
self.showing = true;
|
||||
|
||||
if (self.options.theme && self.options.theme.style)
|
||||
self.options.theme.callback.onShow.apply(this);
|
||||
|
||||
if ($.inArray('click', self.options.closeWith) > -1)
|
||||
self.$bar.css('cursor', 'pointer').on('click', function (evt) {
|
||||
self.stopPropagation(evt);
|
||||
if (self.options.callback.onCloseClick) {
|
||||
self.options.callback.onCloseClick.apply(self);
|
||||
}
|
||||
self.close();
|
||||
});
|
||||
|
||||
if ($.inArray('hover', self.options.closeWith) > -1)
|
||||
self.$bar.one('mouseenter', function () {
|
||||
self.close();
|
||||
});
|
||||
|
||||
if ($.inArray('button', self.options.closeWith) > -1)
|
||||
self.$closeButton.one('click', function (evt) {
|
||||
self.stopPropagation(evt);
|
||||
self.close();
|
||||
});
|
||||
|
||||
if ($.inArray('button', self.options.closeWith) == -1)
|
||||
self.$closeButton.remove();
|
||||
|
||||
if (self.options.callback.beforeShow)
|
||||
self.options.callback.beforeShow.apply(self);
|
||||
|
||||
if (typeof self.options.animation.open == 'string') {
|
||||
self.animationTypeOpen = 'css';
|
||||
self.$bar.css('min-height', self.$bar.innerHeight());
|
||||
self.$bar.on('click', function (e) {
|
||||
self.wasClicked = true;
|
||||
});
|
||||
self.$bar.show();
|
||||
|
||||
if (self.options.callback.onShow)
|
||||
self.options.callback.onShow.apply(self);
|
||||
|
||||
self.$bar.addClass(self.options.animation.open).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
|
||||
if (self.options.callback.afterShow) self.options.callback.afterShow.apply(self);
|
||||
self.showing = false;
|
||||
self.shown = true;
|
||||
if (self.hasOwnProperty('wasClicked')) {
|
||||
self.$bar.off('click', function (e) {
|
||||
self.wasClicked = true;
|
||||
});
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
|
||||
} else if (typeof self.options.animation.open == 'object' && self.options.animation.open == null) {
|
||||
self.animationTypeOpen = 'none';
|
||||
self.showing = false;
|
||||
self.shown = true;
|
||||
self.$bar.show();
|
||||
|
||||
if (self.options.callback.onShow)
|
||||
self.options.callback.onShow.apply(self);
|
||||
|
||||
self.$bar.queue(function () {
|
||||
if (self.options.callback.afterShow)
|
||||
self.options.callback.afterShow.apply(self);
|
||||
});
|
||||
|
||||
} else {
|
||||
self.animationTypeOpen = 'anim';
|
||||
|
||||
if (self.options.callback.onShow)
|
||||
self.options.callback.onShow.apply(self);
|
||||
|
||||
self.$bar.animate(
|
||||
self.options.animation.open,
|
||||
self.options.animation.speed,
|
||||
self.options.animation.easing,
|
||||
function () {
|
||||
if (self.options.callback.afterShow) self.options.callback.afterShow.apply(self);
|
||||
self.showing = false;
|
||||
self.shown = true;
|
||||
});
|
||||
}
|
||||
|
||||
// If noty is have a timeout option
|
||||
if (self.options.timeout) {
|
||||
self.queueClose(self.options.timeout);
|
||||
self.$bar.on('mouseenter', self.dequeueClose.bind(self));
|
||||
self.$bar.on('mouseleave', self.queueClose.bind(self, self.options.timeout));
|
||||
}
|
||||
|
||||
return this;
|
||||
|
||||
}, // end show
|
||||
|
||||
dequeueClose: function () {
|
||||
if (!this.closeTimer) return;
|
||||
clearTimeout(this.closeTimer);
|
||||
this.closeTimer = null;
|
||||
},
|
||||
|
||||
queueClose: function (timeout) {
|
||||
if (this.closeTimer) return;
|
||||
var self = this;
|
||||
self.closeTimer = window.setTimeout(function () {
|
||||
self.close();
|
||||
}, timeout);
|
||||
return self.closeTimer
|
||||
},
|
||||
|
||||
close: function () {
|
||||
if (this.closeTimer) this.dequeueClose();
|
||||
|
||||
if (this.closed) return;
|
||||
if (this.$bar && this.$bar.hasClass('i-am-closing-now')) return;
|
||||
|
||||
var self = this;
|
||||
|
||||
if (this.showing && (this.animationTypeOpen == 'anim' || this.animationTypeOpen == 'none')) {
|
||||
self.$bar.queue(
|
||||
function () {
|
||||
self.close.apply(self);
|
||||
}
|
||||
);
|
||||
return;
|
||||
} else if (this.showing && this.animationTypeOpen == 'css') {
|
||||
self.$bar.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
|
||||
self.close();
|
||||
});
|
||||
}
|
||||
|
||||
if (!this.shown && !this.showing) { // If we are still waiting in the queue just delete from queue
|
||||
var queue = [];
|
||||
$.each($.noty.queue, function (i, n) {
|
||||
if (n.options.id != self.options.id) {
|
||||
queue.push(n);
|
||||
}
|
||||
});
|
||||
$.noty.queue = queue;
|
||||
return;
|
||||
}
|
||||
|
||||
self.$bar.addClass('i-am-closing-now');
|
||||
|
||||
if (self.options.callback.onClose) {
|
||||
self.options.callback.onClose.apply(self);
|
||||
}
|
||||
|
||||
if (typeof self.options.animation.close == 'string') {
|
||||
self.$bar.removeClass(self.options.animation.open).addClass(self.options.animation.close).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
|
||||
if (self.options.callback.afterClose) self.options.callback.afterClose.apply(self);
|
||||
self.closeCleanUp();
|
||||
});
|
||||
|
||||
} else if (typeof self.options.animation.close == 'object' && self.options.animation.close == null) {
|
||||
self.$bar.dequeue().hide(0, function() {
|
||||
if (self.options.callback.afterClose) self.options.callback.afterClose.apply(self);
|
||||
self.closeCleanUp();
|
||||
});
|
||||
|
||||
} else {
|
||||
self.$bar.clearQueue().stop().animate(
|
||||
self.options.animation.close,
|
||||
self.options.animation.speed,
|
||||
self.options.animation.easing,
|
||||
function () {
|
||||
if (self.options.callback.afterClose) self.options.callback.afterClose.apply(self);
|
||||
})
|
||||
.promise().done(function () {
|
||||
self.closeCleanUp();
|
||||
});
|
||||
}
|
||||
|
||||
}, // end close
|
||||
|
||||
closeCleanUp: function () {
|
||||
|
||||
var self = this;
|
||||
|
||||
// Modal Cleaning
|
||||
if (self.options.modal) {
|
||||
$.notyRenderer.setModalCount(-1);
|
||||
if ($.notyRenderer.getModalCount() == 0 && !$.noty.queue.length) $('.noty_modal').fadeOut(self.options.animation.fadeSpeed, function () {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
|
||||
// Layout Cleaning
|
||||
$.notyRenderer.setLayoutCountFor(self, -1);
|
||||
if ($.notyRenderer.getLayoutCountFor(self) == 0) $(self.options.layout.container.selector).remove();
|
||||
|
||||
// Make sure self.$bar has not been removed before attempting to remove it
|
||||
if (typeof self.$bar !== 'undefined' && self.$bar !== null) {
|
||||
|
||||
if (typeof self.options.animation.close == 'string') {
|
||||
self.$bar.css('transition', 'all 10ms ease').css('border', 0).css('margin', 0).height(0);
|
||||
self.$bar.one('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function () {
|
||||
self.$bar.remove();
|
||||
self.$bar = null;
|
||||
self.closed = true;
|
||||
|
||||
if (self.options.theme.callback && self.options.theme.callback.onClose) {
|
||||
self.options.theme.callback.onClose.apply(self);
|
||||
}
|
||||
|
||||
self.handleNext();
|
||||
});
|
||||
} else {
|
||||
self.$bar.remove();
|
||||
self.$bar = null;
|
||||
self.closed = true;
|
||||
|
||||
self.handleNext();
|
||||
}
|
||||
} else {
|
||||
self.handleNext();
|
||||
}
|
||||
|
||||
}, // end close clean up
|
||||
|
||||
handleNext: function () {
|
||||
var self = this;
|
||||
|
||||
delete $.noty.store[self.options.id]; // deleting noty from store
|
||||
|
||||
if (self.options.theme.callback && self.options.theme.callback.onClose) {
|
||||
self.options.theme.callback.onClose.apply(self);
|
||||
}
|
||||
|
||||
if (!self.options.dismissQueue) {
|
||||
// Queue render
|
||||
$.noty.ontap = true;
|
||||
|
||||
$.notyRenderer.render();
|
||||
}
|
||||
|
||||
if (self.options.maxVisible > 0 && self.options.dismissQueue) {
|
||||
$.notyRenderer.render();
|
||||
}
|
||||
},
|
||||
|
||||
setText: function (text) {
|
||||
if (!this.closed) {
|
||||
this.options.text = text;
|
||||
this.$bar.find('.noty_text').html(text);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
setType: function (type) {
|
||||
if (!this.closed) {
|
||||
this.options.type = type;
|
||||
this.options.theme.style.apply(this);
|
||||
this.options.theme.callback.onShow.apply(this);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
setTimeout: function (time) {
|
||||
if (!this.closed) {
|
||||
var self = this;
|
||||
this.options.timeout = time;
|
||||
self.$bar.delay(self.options.timeout).promise().done(function () {
|
||||
self.close();
|
||||
});
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
stopPropagation: function (evt) {
|
||||
evt = evt || window.event;
|
||||
if (typeof evt.stopPropagation !== "undefined") {
|
||||
evt.stopPropagation();
|
||||
}
|
||||
else {
|
||||
evt.cancelBubble = true;
|
||||
}
|
||||
},
|
||||
|
||||
closed : false,
|
||||
showing: false,
|
||||
shown : false
|
||||
|
||||
}; // end NotyObject
|
||||
|
||||
$.notyRenderer = {};
|
||||
|
||||
$.notyRenderer.init = function (options) {
|
||||
|
||||
// Renderer creates a new noty
|
||||
var notification = Object.create(NotyObject).init(options);
|
||||
|
||||
if (notification.options.killer)
|
||||
$.noty.closeAll();
|
||||
|
||||
(notification.options.force) ? $.noty.queue.unshift(notification) : $.noty.queue.push(notification);
|
||||
|
||||
$.notyRenderer.render();
|
||||
|
||||
return ($.noty.returns == 'object') ? notification : notification.options.id;
|
||||
};
|
||||
|
||||
$.notyRenderer.render = function () {
|
||||
|
||||
var instance = $.noty.queue[0];
|
||||
|
||||
if ($.type(instance) === 'object') {
|
||||
if (instance.options.dismissQueue) {
|
||||
if (instance.options.maxVisible > 0) {
|
||||
if ($(instance.options.layout.container.selector + ' > li').length < instance.options.maxVisible) {
|
||||
$.notyRenderer.show($.noty.queue.shift());
|
||||
}
|
||||
else {
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
$.notyRenderer.show($.noty.queue.shift());
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($.noty.ontap) {
|
||||
$.notyRenderer.show($.noty.queue.shift());
|
||||
$.noty.ontap = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$.noty.ontap = true; // Queue is over
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$.notyRenderer.show = function (notification) {
|
||||
|
||||
if (notification.options.modal) {
|
||||
$.notyRenderer.createModalFor(notification);
|
||||
$.notyRenderer.setModalCount(+1);
|
||||
}
|
||||
|
||||
// Where is the container?
|
||||
if (notification.options.custom) {
|
||||
if (notification.options.custom.find(notification.options.layout.container.selector).length == 0) {
|
||||
notification.options.custom.append($(notification.options.layout.container.object).addClass('i-am-new'));
|
||||
}
|
||||
else {
|
||||
notification.options.custom.find(notification.options.layout.container.selector).removeClass('i-am-new');
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($(notification.options.layout.container.selector).length == 0) {
|
||||
$('body').append($(notification.options.layout.container.object).addClass('i-am-new'));
|
||||
}
|
||||
else {
|
||||
$(notification.options.layout.container.selector).removeClass('i-am-new');
|
||||
}
|
||||
}
|
||||
|
||||
$.notyRenderer.setLayoutCountFor(notification, +1);
|
||||
|
||||
notification.show();
|
||||
};
|
||||
|
||||
$.notyRenderer.createModalFor = function (notification) {
|
||||
if ($('.noty_modal').length == 0) {
|
||||
var modal = $('<div/>').addClass('noty_modal').addClass(notification.options.theme).data('noty_modal_count', 0);
|
||||
|
||||
if (notification.options.theme.modal && notification.options.theme.modal.css)
|
||||
modal.css(notification.options.theme.modal.css);
|
||||
|
||||
modal.prependTo($('body')).fadeIn(notification.options.animation.fadeSpeed);
|
||||
|
||||
if ($.inArray('backdrop', notification.options.closeWith) > -1)
|
||||
modal.on('click', function () {
|
||||
$.noty.closeAll();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$.notyRenderer.getLayoutCountFor = function (notification) {
|
||||
return $(notification.options.layout.container.selector).data('noty_layout_count') || 0;
|
||||
};
|
||||
|
||||
$.notyRenderer.setLayoutCountFor = function (notification, arg) {
|
||||
return $(notification.options.layout.container.selector).data('noty_layout_count', $.notyRenderer.getLayoutCountFor(notification) + arg);
|
||||
};
|
||||
|
||||
$.notyRenderer.getModalCount = function () {
|
||||
return $('.noty_modal').data('noty_modal_count') || 0;
|
||||
};
|
||||
|
||||
$.notyRenderer.setModalCount = function (arg) {
|
||||
return $('.noty_modal').data('noty_modal_count', $.notyRenderer.getModalCount() + arg);
|
||||
};
|
||||
|
||||
// This is for custom container
|
||||
$.fn.noty = function (options) {
|
||||
options.custom = $(this);
|
||||
return $.notyRenderer.init(options);
|
||||
};
|
||||
|
||||
$.noty = {};
|
||||
$.noty.queue = [];
|
||||
$.noty.ontap = true;
|
||||
$.noty.layouts = {};
|
||||
$.noty.themes = {};
|
||||
$.noty.returns = 'object';
|
||||
$.noty.store = {};
|
||||
|
||||
$.noty.get = function (id) {
|
||||
return $.noty.store.hasOwnProperty(id) ? $.noty.store[id] : false;
|
||||
};
|
||||
|
||||
$.noty.close = function (id) {
|
||||
return $.noty.get(id) ? $.noty.get(id).close() : false;
|
||||
};
|
||||
|
||||
$.noty.setText = function (id, text) {
|
||||
return $.noty.get(id) ? $.noty.get(id).setText(text) : false;
|
||||
};
|
||||
|
||||
$.noty.setType = function (id, type) {
|
||||
return $.noty.get(id) ? $.noty.get(id).setType(type) : false;
|
||||
};
|
||||
|
||||
$.noty.clearQueue = function () {
|
||||
$.noty.queue = [];
|
||||
};
|
||||
|
||||
$.noty.closeAll = function () {
|
||||
$.noty.clearQueue();
|
||||
$.each($.noty.store, function (id, noty) {
|
||||
noty.close();
|
||||
});
|
||||
};
|
||||
|
||||
var windowAlert = window.alert;
|
||||
|
||||
$.noty.consumeAlert = function (options) {
|
||||
window.alert = function (text) {
|
||||
if (options)
|
||||
options.text = text;
|
||||
else
|
||||
options = {text: text};
|
||||
|
||||
$.notyRenderer.init(options);
|
||||
};
|
||||
};
|
||||
|
||||
$.noty.stopConsumeAlert = function () {
|
||||
window.alert = windowAlert;
|
||||
};
|
||||
|
||||
$.noty.defaults = {
|
||||
layout : 'topRight',
|
||||
theme : 'relax',
|
||||
type : 'alert',
|
||||
text : '',
|
||||
dismissQueue: true,
|
||||
template : '<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
|
||||
animation : {
|
||||
open : {height: 'toggle'},
|
||||
close : {height: 'toggle'},
|
||||
easing : 'swing',
|
||||
speed : 500,
|
||||
fadeSpeed: 'fast'
|
||||
},
|
||||
timeout : false,
|
||||
force : false,
|
||||
modal : false,
|
||||
maxVisible : 5,
|
||||
killer : false,
|
||||
closeWith : ['click'],
|
||||
callback : {
|
||||
beforeShow : function () {
|
||||
},
|
||||
onShow : function () {
|
||||
},
|
||||
afterShow : function () {
|
||||
},
|
||||
onClose : function () {
|
||||
},
|
||||
afterClose : function () {
|
||||
},
|
||||
onCloseClick: function () {
|
||||
}
|
||||
},
|
||||
buttons : false
|
||||
};
|
||||
|
||||
$(window).on('resize', function () {
|
||||
$.each($.noty.layouts, function (index, layout) {
|
||||
layout.container.style.apply($(layout.container.selector));
|
||||
});
|
||||
});
|
||||
|
||||
// Helpers
|
||||
window.noty = function noty(options) {
|
||||
return $.notyRenderer.init(options);
|
||||
};
|
||||
30
public/js/noty/layouts/bottom.js
Normal file
@@ -0,0 +1,30 @@
|
||||
$.noty.layouts.bottom = {
|
||||
name : 'bottom',
|
||||
options : {},
|
||||
container: {
|
||||
object : '<ul id="noty_bottom_layout_container" />',
|
||||
selector: 'ul#noty_bottom_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
bottom : 0,
|
||||
left : '5%',
|
||||
position : 'fixed',
|
||||
width : '90%',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 9999999
|
||||
});
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
38
public/js/noty/layouts/bottomCenter.js
Normal file
@@ -0,0 +1,38 @@
|
||||
$.noty.layouts.bottomCenter = {
|
||||
name : 'bottomCenter',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_bottomCenter_layout_container" />',
|
||||
selector: 'ul#noty_bottomCenter_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
bottom : 20,
|
||||
left : 0,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
$(this).css({
|
||||
left: ($(window).width() - $(this).outerWidth(false)) / 2 + 'px'
|
||||
});
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
|
||||
39
public/js/noty/layouts/bottomLeft.js
Normal file
@@ -0,0 +1,39 @@
|
||||
$.noty.layouts.bottomLeft = {
|
||||
name : 'bottomLeft',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_bottomLeft_layout_container" />',
|
||||
selector: 'ul#noty_bottomLeft_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
bottom : 20,
|
||||
left : 20,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
if(window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
left: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
39
public/js/noty/layouts/bottomRight.js
Normal file
@@ -0,0 +1,39 @@
|
||||
$.noty.layouts.bottomRight = {
|
||||
name : 'bottomRight',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_bottomRight_layout_container" />',
|
||||
selector: 'ul#noty_bottomRight_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
bottom : 20,
|
||||
right : 20,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
if(window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
right: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
53
public/js/noty/layouts/center.js
Normal file
@@ -0,0 +1,53 @@
|
||||
$.noty.layouts.center = {
|
||||
name : 'center',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_center_layout_container" />',
|
||||
selector: 'ul#noty_center_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
// getting hidden height
|
||||
var dupe = $(this).clone().css({visibility: "hidden", display: "block", position: "absolute", top: 0, left: 0}).attr('id', 'dupe');
|
||||
$("body").append(dupe);
|
||||
dupe.find('.i-am-closing-now').remove();
|
||||
dupe.find('li').css('display', 'block');
|
||||
var actual_height = dupe.height();
|
||||
dupe.remove();
|
||||
|
||||
if($(this).hasClass('i-am-new')) {
|
||||
$(this).css({
|
||||
left: ($(window).width() - $(this).outerWidth(false)) / 2 + 'px',
|
||||
top : ($(window).height() - actual_height) / 2 + 'px'
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(this).animate({
|
||||
left: ($(window).width() - $(this).outerWidth(false)) / 2 + 'px',
|
||||
top : ($(window).height() - actual_height) / 2 + 'px'
|
||||
}, 500);
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
58
public/js/noty/layouts/centerLeft.js
Normal file
@@ -0,0 +1,58 @@
|
||||
$.noty.layouts.centerLeft = {
|
||||
name : 'centerLeft',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_centerLeft_layout_container" />',
|
||||
selector: 'ul#noty_centerLeft_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
left : 20,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
// getting hidden height
|
||||
var dupe = $(this).clone().css({visibility: "hidden", display: "block", position: "absolute", top: 0, left: 0}).attr('id', 'dupe');
|
||||
$("body").append(dupe);
|
||||
dupe.find('.i-am-closing-now').remove();
|
||||
dupe.find('li').css('display', 'block');
|
||||
var actual_height = dupe.height();
|
||||
dupe.remove();
|
||||
|
||||
if($(this).hasClass('i-am-new')) {
|
||||
$(this).css({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(this).animate({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
}, 500);
|
||||
}
|
||||
|
||||
if(window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
left: 5
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
58
public/js/noty/layouts/centerRight.js
Normal file
@@ -0,0 +1,58 @@
|
||||
$.noty.layouts.centerRight = {
|
||||
name : 'centerRight',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_centerRight_layout_container" />',
|
||||
selector: 'ul#noty_centerRight_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
right : 20,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
// getting hidden height
|
||||
var dupe = $(this).clone().css({visibility: "hidden", display: "block", position: "absolute", top: 0, left: 0}).attr('id', 'dupe');
|
||||
$("body").append(dupe);
|
||||
dupe.find('.i-am-closing-now').remove();
|
||||
dupe.find('li').css('display', 'block');
|
||||
var actual_height = dupe.height();
|
||||
dupe.remove();
|
||||
|
||||
if($(this).hasClass('i-am-new')) {
|
||||
$(this).css({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(this).animate({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
}, 500);
|
||||
}
|
||||
|
||||
if(window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
right: 5
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
27
public/js/noty/layouts/inline.js
Normal file
@@ -0,0 +1,27 @@
|
||||
$.noty.layouts.inline = {
|
||||
name : 'inline',
|
||||
options : {},
|
||||
container: {
|
||||
object : '<ul class="noty_inline_layout_container" />',
|
||||
selector: 'ul.noty_inline_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
width : '100%',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 9999999
|
||||
});
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
30
public/js/noty/layouts/top.js
Normal file
@@ -0,0 +1,30 @@
|
||||
$.noty.layouts.top = {
|
||||
name : 'top',
|
||||
options : {},
|
||||
container: {
|
||||
object : '<ul id="noty_top_layout_container" />',
|
||||
selector: 'ul#noty_top_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
top : 0,
|
||||
left : '5%',
|
||||
position : 'fixed',
|
||||
width : '90%',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 9999999
|
||||
});
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
37
public/js/noty/layouts/topCenter.js
Normal file
@@ -0,0 +1,37 @@
|
||||
$.noty.layouts.topCenter = {
|
||||
name : 'topCenter',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_topCenter_layout_container" />',
|
||||
selector: 'ul#noty_topCenter_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
top : 20,
|
||||
left : 0,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
$(this).css({
|
||||
left: ($(window).width() - $(this).outerWidth(false)) / 2 + 'px'
|
||||
});
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
39
public/js/noty/layouts/topLeft.js
Normal file
@@ -0,0 +1,39 @@
|
||||
$.noty.layouts.topLeft = {
|
||||
name : 'topLeft',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_topLeft_layout_container" />',
|
||||
selector: 'ul#noty_topLeft_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
top : 20,
|
||||
left : 20,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
if(window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
left: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
39
public/js/noty/layouts/topRight.js
Normal file
@@ -0,0 +1,39 @@
|
||||
$.noty.layouts.topRight = {
|
||||
name : 'topRight',
|
||||
options : { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object : '<ul id="noty_topRight_layout_container" />',
|
||||
selector: 'ul#noty_topRight_layout_container',
|
||||
style : function() {
|
||||
$(this).css({
|
||||
top : 20,
|
||||
right : 20,
|
||||
position : 'fixed',
|
||||
width : '310px',
|
||||
height : 'auto',
|
||||
margin : 0,
|
||||
padding : 0,
|
||||
listStyleType: 'none',
|
||||
zIndex : 10000000
|
||||
});
|
||||
|
||||
if(window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
right: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent : {
|
||||
object : '<li />',
|
||||
selector: 'li',
|
||||
css : {}
|
||||
},
|
||||
css : {
|
||||
display: 'none',
|
||||
width : '310px'
|
||||
},
|
||||
addClass : ''
|
||||
};
|
||||
1768
public/js/noty/packaged/jquery.noty.packaged.js
Normal file
1
public/js/noty/packaged/jquery.noty.packaged.min.js
vendored
Normal file
432
public/js/noty/promise.js
Normal file
@@ -0,0 +1,432 @@
|
||||
/*!
|
||||
* Noty Helpers Javascript From JQuery Javascript Library
|
||||
*
|
||||
* Ported by Maksim Pecherskiy. Original Licensing:
|
||||
*
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2011, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2011, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Mon Nov 21 21:11:03 2011 -0500
|
||||
*/
|
||||
|
||||
|
||||
(function(){
|
||||
|
||||
// String to Object flags format cache
|
||||
var flagsCache = {};
|
||||
|
||||
// Convert String-formatted flags into Object-formatted ones and store in cache
|
||||
function createFlags( flags ) {
|
||||
var object = flagsCache[ flags ] = {},
|
||||
i, length;
|
||||
flags = flags.split( /\s+/ );
|
||||
for ( i = 0, length = flags.length; i < length; i++ ) {
|
||||
object[ flags[i] ] = true;
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
jQuery.extend({
|
||||
|
||||
_mark: function( elem, type ) {
|
||||
if ( elem ) {
|
||||
type = (type || "fx") + "mark";
|
||||
jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
|
||||
}
|
||||
},
|
||||
|
||||
_unmark: function( force, elem, type ) {
|
||||
if ( force !== true ) {
|
||||
type = elem;
|
||||
elem = force;
|
||||
force = false;
|
||||
}
|
||||
if ( elem ) {
|
||||
type = type || "fx";
|
||||
var key = type + "mark",
|
||||
count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
|
||||
if ( count ) {
|
||||
jQuery.data( elem, key, count, true );
|
||||
} else {
|
||||
jQuery.removeData( elem, key, true );
|
||||
handleQueueMarkDefer( elem, type, "mark" );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
queue: function( elem, type, data ) {
|
||||
if ( elem ) {
|
||||
type = (type || "fx") + "queue";
|
||||
var q = jQuery.data( elem, type, undefined, true );
|
||||
// Speed up dequeue by getting out quickly if this is just a lookup
|
||||
if ( data ) {
|
||||
if ( !q || jQuery.isArray(data) ) {
|
||||
q = jQuery.data( elem, type, jQuery.makeArray(data), true );
|
||||
} else {
|
||||
q.push( data );
|
||||
}
|
||||
}
|
||||
return q || [];
|
||||
}
|
||||
},
|
||||
|
||||
dequeue: function( elem, type ) {
|
||||
type = type || "fx";
|
||||
|
||||
var queue = jQuery.queue( elem, type ),
|
||||
fn = queue.shift(),
|
||||
defer;
|
||||
|
||||
// If the fx queue is dequeued, always remove the progress sentinel
|
||||
if ( fn === "inprogress" ) {
|
||||
fn = queue.shift();
|
||||
}
|
||||
|
||||
if ( fn ) {
|
||||
// Add a progress sentinel to prevent the fx queue from being
|
||||
// automatically dequeued
|
||||
if ( type === "fx" ) {
|
||||
queue.unshift("inprogress");
|
||||
}
|
||||
|
||||
fn.call(elem, function() {
|
||||
jQuery.dequeue(elem, type);
|
||||
});
|
||||
}
|
||||
|
||||
if ( !queue.length ) {
|
||||
jQuery.removeData( elem, type + "queue", true );
|
||||
handleQueueMarkDefer( elem, type, "queue" );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
jQuery.fn.extend({
|
||||
queue: function( type, data ) {
|
||||
if ( typeof type !== "string" ) {
|
||||
data = type;
|
||||
type = "fx";
|
||||
}
|
||||
|
||||
if ( data === undefined ) {
|
||||
return jQuery.queue( this[0], type );
|
||||
}
|
||||
return this.each(function() {
|
||||
var queue = jQuery.queue( this, type, data );
|
||||
|
||||
if ( type === "fx" && queue[0] !== "inprogress" ) {
|
||||
jQuery.dequeue( this, type );
|
||||
}
|
||||
});
|
||||
},
|
||||
dequeue: function( type ) {
|
||||
return this.each(function() {
|
||||
jQuery.dequeue( this, type );
|
||||
});
|
||||
},
|
||||
// Based off of the plugin by Clint Helfers, with permission.
|
||||
// http://blindsignals.com/index.php/2009/07/jquery-delay/
|
||||
delay: function( time, type ) {
|
||||
time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
|
||||
type = type || "fx";
|
||||
|
||||
return this.queue( type, function() {
|
||||
var elem = this;
|
||||
setTimeout(function() {
|
||||
jQuery.dequeue( elem, type );
|
||||
}, time );
|
||||
});
|
||||
},
|
||||
clearQueue: function( type ) {
|
||||
return this.queue( type || "fx", [] );
|
||||
},
|
||||
// Get a promise resolved when queues of a certain type
|
||||
// are emptied (fx is the type by default)
|
||||
promise: function( type, object ) {
|
||||
if ( typeof type !== "string" ) {
|
||||
object = type;
|
||||
type = undefined;
|
||||
}
|
||||
type = type || "fx";
|
||||
var defer = jQuery.Deferred(),
|
||||
elements = this,
|
||||
i = elements.length,
|
||||
count = 1,
|
||||
deferDataKey = type + "defer",
|
||||
queueDataKey = type + "queue",
|
||||
markDataKey = type + "mark",
|
||||
tmp;
|
||||
function resolve() {
|
||||
if ( !( --count ) ) {
|
||||
defer.resolveWith( elements, [ elements ] );
|
||||
}
|
||||
}
|
||||
while( i-- ) {
|
||||
if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
|
||||
( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
|
||||
jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
|
||||
jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
|
||||
count++;
|
||||
tmp.done( resolve );
|
||||
}
|
||||
}
|
||||
resolve();
|
||||
return defer.promise();
|
||||
}
|
||||
});
|
||||
|
||||
function handleQueueMarkDefer( elem, type, src ) {
|
||||
var deferDataKey = type + "defer",
|
||||
queueDataKey = type + "queue",
|
||||
markDataKey = type + "mark",
|
||||
defer = jQuery._data( elem, deferDataKey );
|
||||
if ( defer &&
|
||||
( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
|
||||
( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
|
||||
// Give room for hard-coded callbacks to fire first
|
||||
// and eventually mark/queue something else on the element
|
||||
setTimeout( function() {
|
||||
if ( !jQuery._data( elem, queueDataKey ) &&
|
||||
!jQuery._data( elem, markDataKey ) ) {
|
||||
jQuery.removeData( elem, deferDataKey, true );
|
||||
defer.fire();
|
||||
}
|
||||
}, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
jQuery.Callbacks = function( flags ) {
|
||||
|
||||
// Convert flags from String-formatted to Object-formatted
|
||||
// (we check in cache first)
|
||||
flags = flags ? ( /*flagsCache[ flags ] || */createFlags( flags ) ) : {};
|
||||
|
||||
var // Actual callback list
|
||||
list = [],
|
||||
// Stack of fire calls for repeatable lists
|
||||
stack = [],
|
||||
// Last fire value (for non-forgettable lists)
|
||||
memory,
|
||||
// Flag to know if list is currently firing
|
||||
firing,
|
||||
// First callback to fire (used internally by add and fireWith)
|
||||
firingStart,
|
||||
// End of the loop when firing
|
||||
firingLength,
|
||||
// Index of currently firing callback (modified by remove if needed)
|
||||
firingIndex,
|
||||
// Add one or several callbacks to the list
|
||||
add = function( args ) {
|
||||
var i,
|
||||
length,
|
||||
elem,
|
||||
type,
|
||||
actual;
|
||||
for ( i = 0, length = args.length; i < length; i++ ) {
|
||||
elem = args[ i ];
|
||||
type = jQuery.type( elem );
|
||||
if ( type === "array" ) {
|
||||
// Inspect recursively
|
||||
add( elem );
|
||||
} else if ( type === "function" ) {
|
||||
// Add if not in unique mode and callback is not in
|
||||
if ( !flags.unique || !self.has( elem ) ) {
|
||||
list.push( elem );
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// Fire callbacks
|
||||
fire = function( context, args ) {
|
||||
args = args || [];
|
||||
memory = !flags.memory || [ context, args ];
|
||||
firing = true;
|
||||
firingIndex = firingStart || 0;
|
||||
firingStart = 0;
|
||||
firingLength = list.length;
|
||||
for ( ; list && firingIndex < firingLength; firingIndex++ ) {
|
||||
if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
|
||||
memory = true; // Mark as halted
|
||||
break;
|
||||
}
|
||||
}
|
||||
firing = false;
|
||||
if ( list ) {
|
||||
if ( !flags.once ) {
|
||||
if ( stack && stack.length ) {
|
||||
memory = stack.shift();
|
||||
self.fireWith( memory[ 0 ], memory[ 1 ] );
|
||||
}
|
||||
} else if ( memory === true ) {
|
||||
self.disable();
|
||||
} else {
|
||||
list = [];
|
||||
}
|
||||
}
|
||||
},
|
||||
// Actual Callbacks object
|
||||
self = {
|
||||
// Add a callback or a collection of callbacks to the list
|
||||
add: function() {
|
||||
if ( list ) {
|
||||
var length = list.length;
|
||||
add( arguments );
|
||||
// Do we need to add the callbacks to the
|
||||
// current firing batch?
|
||||
if ( firing ) {
|
||||
firingLength = list.length;
|
||||
// With memory, if we're not firing then
|
||||
// we should call right away, unless previous
|
||||
// firing was halted (stopOnFalse)
|
||||
} else if ( memory && memory !== true ) {
|
||||
firingStart = length;
|
||||
fire( memory[ 0 ], memory[ 1 ] );
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
// Remove a callback from the list
|
||||
remove: function() {
|
||||
if ( list ) {
|
||||
var args = arguments,
|
||||
argIndex = 0,
|
||||
argLength = args.length;
|
||||
for ( ; argIndex < argLength ; argIndex++ ) {
|
||||
for ( var i = 0; i < list.length; i++ ) {
|
||||
if ( args[ argIndex ] === list[ i ] ) {
|
||||
// Handle firingIndex and firingLength
|
||||
if ( firing ) {
|
||||
if ( i <= firingLength ) {
|
||||
firingLength--;
|
||||
if ( i <= firingIndex ) {
|
||||
firingIndex--;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Remove the element
|
||||
list.splice( i--, 1 );
|
||||
// If we have some unicity property then
|
||||
// we only need to do this once
|
||||
if ( flags.unique ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
// Control if a given callback is in the list
|
||||
has: function( fn ) {
|
||||
if ( list ) {
|
||||
var i = 0,
|
||||
length = list.length;
|
||||
for ( ; i < length; i++ ) {
|
||||
if ( fn === list[ i ] ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
// Remove all callbacks from the list
|
||||
empty: function() {
|
||||
list = [];
|
||||
return this;
|
||||
},
|
||||
// Have the list do nothing anymore
|
||||
disable: function() {
|
||||
list = stack = memory = undefined;
|
||||
return this;
|
||||
},
|
||||
// Is it disabled?
|
||||
disabled: function() {
|
||||
return !list;
|
||||
},
|
||||
// Lock the list in its current state
|
||||
lock: function() {
|
||||
stack = undefined;
|
||||
if ( !memory || memory === true ) {
|
||||
self.disable();
|
||||
}
|
||||
return this;
|
||||
},
|
||||
// Is it locked?
|
||||
locked: function() {
|
||||
return !stack;
|
||||
},
|
||||
// Call all callbacks with the given context and arguments
|
||||
fireWith: function( context, args ) {
|
||||
if ( stack ) {
|
||||
if ( firing ) {
|
||||
if ( !flags.once ) {
|
||||
stack.push( [ context, args ] );
|
||||
}
|
||||
} else if ( !( flags.once && memory ) ) {
|
||||
fire( context, args );
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
// Call all the callbacks with the given arguments
|
||||
fire: function() {
|
||||
self.fireWith( this, arguments );
|
||||
return this;
|
||||
},
|
||||
// To know if the callbacks have already been called at least once
|
||||
fired: function() {
|
||||
return !!memory;
|
||||
}
|
||||
};
|
||||
|
||||
return self;
|
||||
};
|
||||
|
||||
|
||||
|
||||
jQuery.fn.extend({
|
||||
// Get a promise resolved when queues of a certain type
|
||||
// are emptied (fx is the type by default)
|
||||
promise: function( type, object ) {
|
||||
if ( typeof type !== "string" ) {
|
||||
object = type;
|
||||
type = undefined;
|
||||
}
|
||||
type = type || "fx";
|
||||
var defer = jQuery.Deferred(),
|
||||
elements = this,
|
||||
i = elements.length,
|
||||
count = 1,
|
||||
deferDataKey = type + "defer",
|
||||
queueDataKey = type + "queue",
|
||||
markDataKey = type + "mark",
|
||||
tmp;
|
||||
function resolve() {
|
||||
if ( !( --count ) ) {
|
||||
defer.resolveWith( elements, [ elements ] );
|
||||
}
|
||||
}
|
||||
while( i-- ) {
|
||||
if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
|
||||
( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
|
||||
jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
|
||||
jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
|
||||
count++;
|
||||
tmp.add( resolve );
|
||||
}
|
||||
}
|
||||
resolve();
|
||||
return defer.promise();
|
||||
}
|
||||
});
|
||||
})();
|
||||
58
public/js/noty/themes/bootstrap.js
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
$.noty.themes.bootstrapTheme = {
|
||||
name : 'bootstrapTheme',
|
||||
modal : {
|
||||
css: {
|
||||
position : 'fixed',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex : 10000,
|
||||
opacity : 0.6,
|
||||
display : 'none',
|
||||
left : 0,
|
||||
top : 0,
|
||||
wordBreak : 'break-all'
|
||||
}
|
||||
},
|
||||
style : function () {
|
||||
|
||||
var containerSelector = this.options.layout.container.selector;
|
||||
$(containerSelector).addClass('list-group');
|
||||
|
||||
this.$closeButton.append('<span aria-hidden="true">×</span><span class="sr-only">Close</span>');
|
||||
this.$closeButton.addClass('close');
|
||||
|
||||
this.$bar.addClass("list-group-item").css('padding', '0px');
|
||||
|
||||
switch (this.options.type) {
|
||||
case 'alert':
|
||||
case 'notification':
|
||||
this.$bar.addClass("list-group-item-info");
|
||||
break;
|
||||
case 'warning':
|
||||
this.$bar.addClass("list-group-item-warning");
|
||||
break;
|
||||
case 'error':
|
||||
this.$bar.addClass("list-group-item-danger");
|
||||
break;
|
||||
case 'information':
|
||||
this.$bar.addClass("list-group-item-info");
|
||||
break;
|
||||
case 'success':
|
||||
this.$bar.addClass("list-group-item-success");
|
||||
break;
|
||||
}
|
||||
|
||||
this.$message.css({
|
||||
textAlign: 'center',
|
||||
padding : '8px 10px 9px',
|
||||
width : 'auto',
|
||||
position : 'relative'
|
||||
});
|
||||
},
|
||||
callback: {
|
||||
onShow : function () { },
|
||||
onClose: function () { }
|
||||
}
|
||||
};
|
||||
|
||||
182
public/js/noty/themes/default.js
Normal file
@@ -0,0 +1,182 @@
|
||||
$.noty.themes.defaultTheme = {
|
||||
name : 'defaultTheme',
|
||||
helpers : {
|
||||
borderFix: function () {
|
||||
if (this.options.dismissQueue) {
|
||||
var selector = this.options.layout.container.selector + ' ' + this.options.layout.parent.selector;
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).last().css({borderRadius: '0px 0px 5px 5px'});
|
||||
break;
|
||||
case 'topCenter':
|
||||
case 'topLeft':
|
||||
case 'topRight':
|
||||
case 'bottomCenter':
|
||||
case 'bottomLeft':
|
||||
case 'bottomRight':
|
||||
case 'center':
|
||||
case 'centerLeft':
|
||||
case 'centerRight':
|
||||
case 'inline':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).first().css({'border-top-left-radius': '5px', 'border-top-right-radius': '5px'});
|
||||
$(selector).last().css({'border-bottom-left-radius': '5px', 'border-bottom-right-radius': '5px'});
|
||||
break;
|
||||
case 'bottom':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).first().css({borderRadius: '5px 5px 0px 0px'});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
modal : {
|
||||
css: {
|
||||
position : 'fixed',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex : 10000,
|
||||
opacity : 0.6,
|
||||
display : 'none',
|
||||
left : 0,
|
||||
top : 0
|
||||
}
|
||||
},
|
||||
style : function () {
|
||||
|
||||
this.$bar.css({
|
||||
overflow : 'hidden',
|
||||
background: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAQAAAClM0ndAAAAhklEQVR4AdXO0QrCMBBE0bttkk38/w8WRERpdyjzVOc+HxhIHqJGMQcFFkpYRQotLLSw0IJ5aBdovruMYDA/kT8plF9ZKLFQcgF18hDj1SbQOMlCA4kao0iiXmah7qBWPdxpohsgVZyj7e5I9KcID+EhiDI5gxBYKLBQYKHAQoGFAoEks/YEGHYKB7hFxf0AAAAASUVORK5CYII=') repeat-x scroll left top #fff"
|
||||
});
|
||||
|
||||
this.$message.css({
|
||||
textAlign : 'center',
|
||||
padding : '8px 10px 9px',
|
||||
width : 'auto',
|
||||
position : 'relative'
|
||||
});
|
||||
|
||||
this.$closeButton.css({
|
||||
position : 'absolute',
|
||||
top : 4, right: 4,
|
||||
width : 10, height: 10,
|
||||
background: "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAxUlEQVR4AR3MPUoDURSA0e++uSkkOxC3IAOWNtaCIDaChfgXBMEZbQRByxCwk+BasgQRZLSYoLgDQbARxry8nyumPcVRKDfd0Aa8AsgDv1zp6pYd5jWOwhvebRTbzNNEw5BSsIpsj/kurQBnmk7sIFcCF5yyZPDRG6trQhujXYosaFoc+2f1MJ89uc76IND6F9BvlXUdpb6xwD2+4q3me3bysiHvtLYrUJto7PD/ve7LNHxSg/woN2kSz4txasBdhyiz3ugPGetTjm3XRokAAAAASUVORK5CYII=)",
|
||||
display : 'none',
|
||||
cursor : 'pointer'
|
||||
});
|
||||
|
||||
this.$buttons.css({
|
||||
padding : 5,
|
||||
textAlign : 'right',
|
||||
borderTop : '1px solid #ccc',
|
||||
backgroundColor: '#fff'
|
||||
});
|
||||
|
||||
this.$buttons.find('button').css({
|
||||
marginLeft: 5
|
||||
});
|
||||
|
||||
this.$buttons.find('button:first').css({
|
||||
marginLeft: 0
|
||||
});
|
||||
|
||||
this.$bar.on({
|
||||
mouseenter: function () {
|
||||
$(this).find('.noty_close').stop().fadeTo('normal', 1);
|
||||
},
|
||||
mouseleave: function () {
|
||||
$(this).find('.noty_close').stop().fadeTo('normal', 0);
|
||||
}
|
||||
});
|
||||
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
this.$bar.css({
|
||||
borderRadius: '0px 0px 5px 5px',
|
||||
borderBottom: '2px solid #eee',
|
||||
borderLeft : '2px solid #eee',
|
||||
borderRight : '2px solid #eee',
|
||||
boxShadow : "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
case 'topCenter':
|
||||
case 'center':
|
||||
case 'bottomCenter':
|
||||
case 'inline':
|
||||
this.$bar.css({
|
||||
borderRadius: '5px',
|
||||
border : '1px solid #eee',
|
||||
boxShadow : "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({textAlign: 'center'});
|
||||
break;
|
||||
case 'topLeft':
|
||||
case 'topRight':
|
||||
case 'bottomLeft':
|
||||
case 'bottomRight':
|
||||
case 'centerLeft':
|
||||
case 'centerRight':
|
||||
this.$bar.css({
|
||||
borderRadius: '5px',
|
||||
border : '1px solid #eee',
|
||||
boxShadow : "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({textAlign: 'left'});
|
||||
break;
|
||||
case 'bottom':
|
||||
this.$bar.css({
|
||||
borderRadius: '5px 5px 0px 0px',
|
||||
borderTop : '2px solid #eee',
|
||||
borderLeft : '2px solid #eee',
|
||||
borderRight : '2px solid #eee',
|
||||
boxShadow : "0 -2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({
|
||||
border : '2px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
switch (this.options.type) {
|
||||
case 'alert':
|
||||
case 'notification':
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#CCC', color: '#444'});
|
||||
break;
|
||||
case 'warning':
|
||||
this.$bar.css({backgroundColor: '#FFEAA8', borderColor: '#FFC237', color: '#826200'});
|
||||
this.$buttons.css({borderTop: '1px solid #FFC237'});
|
||||
break;
|
||||
case 'error':
|
||||
this.$bar.css({backgroundColor: 'red', borderColor: 'darkred', color: '#FFF'});
|
||||
this.$message.css({fontWeight: 'bold'});
|
||||
this.$buttons.css({borderTop: '1px solid darkred'});
|
||||
break;
|
||||
case 'information':
|
||||
this.$bar.css({backgroundColor: '#57B7E2', borderColor: '#0B90C4', color: '#FFF'});
|
||||
this.$buttons.css({borderTop: '1px solid #0B90C4'});
|
||||
break;
|
||||
case 'success':
|
||||
this.$bar.css({backgroundColor: 'lightgreen', borderColor: '#50C24E', color: 'darkgreen'});
|
||||
this.$buttons.css({borderTop: '1px solid #50C24E'});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#CCC', color: '#444'});
|
||||
break;
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onShow : function () {
|
||||
$.noty.themes.defaultTheme.helpers.borderFix.apply(this);
|
||||
},
|
||||
onClose: function () {
|
||||
$.noty.themes.defaultTheme.helpers.borderFix.apply(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
143
public/js/noty/themes/metroui.js
Normal file
@@ -0,0 +1,143 @@
|
||||
$.noty.themes.metroui = {
|
||||
name : 'metroui',
|
||||
helpers : {},
|
||||
modal : {
|
||||
css: {
|
||||
position : 'fixed',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex : 10000,
|
||||
opacity : 0.6,
|
||||
display : 'none',
|
||||
left : 0,
|
||||
top : 0
|
||||
}
|
||||
},
|
||||
style : function () {
|
||||
|
||||
this.$bar.css({
|
||||
overflow : 'hidden',
|
||||
margin : '4px 0',
|
||||
borderRadius: '0'
|
||||
});
|
||||
|
||||
this.$message.css({
|
||||
textAlign: 'center',
|
||||
padding : '1.25rem',
|
||||
width : 'auto',
|
||||
position : 'relative'
|
||||
});
|
||||
|
||||
this.$closeButton.css({
|
||||
position : 'absolute',
|
||||
top : '.25rem', right: '.25rem',
|
||||
width : 10, height: 10,
|
||||
background: "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAxUlEQVR4AR3MPUoDURSA0e++uSkkOxC3IAOWNtaCIDaChfgXBMEZbQRByxCwk+BasgQRZLSYoLgDQbARxry8nyumPcVRKDfd0Aa8AsgDv1zp6pYd5jWOwhvebRTbzNNEw5BSsIpsj/kurQBnmk7sIFcCF5yyZPDRG6trQhujXYosaFoc+2f1MJ89uc76IND6F9BvlXUdpb6xwD2+4q3me3bysiHvtLYrUJto7PD/ve7LNHxSg/woN2kSz4txasBdhyiz3ugPGetTjm3XRokAAAAASUVORK5CYII=)",
|
||||
display : 'none',
|
||||
cursor : 'pointer'
|
||||
});
|
||||
|
||||
this.$buttons.css({
|
||||
padding : 5,
|
||||
textAlign : 'right',
|
||||
borderTop : '1px solid #ccc',
|
||||
backgroundColor: '#fff'
|
||||
});
|
||||
|
||||
this.$buttons.find('button').css({
|
||||
marginLeft: 5
|
||||
});
|
||||
|
||||
this.$buttons.find('button:first').css({
|
||||
marginLeft: 0
|
||||
});
|
||||
|
||||
this.$bar.on({
|
||||
mouseenter: function () {
|
||||
$(this).find('.noty_close').stop().fadeTo('normal', 1);
|
||||
},
|
||||
mouseleave: function () {
|
||||
$(this).find('.noty_close').stop().fadeTo('normal', 0);
|
||||
}
|
||||
});
|
||||
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
this.$bar.css({
|
||||
border : 'none',
|
||||
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)"
|
||||
});
|
||||
break;
|
||||
case 'topCenter':
|
||||
case 'center':
|
||||
case 'bottomCenter':
|
||||
case 'inline':
|
||||
this.$bar.css({
|
||||
border : 'none',
|
||||
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)"
|
||||
});
|
||||
this.$message.css({textAlign: 'center'});
|
||||
break;
|
||||
case 'topLeft':
|
||||
case 'topRight':
|
||||
case 'bottomLeft':
|
||||
case 'bottomRight':
|
||||
case 'centerLeft':
|
||||
case 'centerRight':
|
||||
this.$bar.css({
|
||||
border : 'none',
|
||||
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)"
|
||||
});
|
||||
this.$message.css({textAlign: 'left'});
|
||||
break;
|
||||
case 'bottom':
|
||||
this.$bar.css({
|
||||
border : 'none',
|
||||
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)"
|
||||
});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({
|
||||
border : 'none',
|
||||
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)"
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
switch (this.options.type) {
|
||||
case 'alert':
|
||||
case 'notification':
|
||||
this.$bar.css({backgroundColor: '#fff', border: 'none', color: '#1d1d1d'});
|
||||
break;
|
||||
case 'warning':
|
||||
this.$bar.css({backgroundColor: '#FA6800', border: 'none', color: '#fff'});
|
||||
this.$buttons.css({borderTop: '1px solid #FA6800'});
|
||||
break;
|
||||
case 'error':
|
||||
this.$bar.css({backgroundColor: '#CE352C', border: 'none', color: '#fff'});
|
||||
this.$message.css({fontWeight: 'bold'});
|
||||
this.$buttons.css({borderTop: '1px solid #CE352C'});
|
||||
break;
|
||||
case 'information':
|
||||
this.$bar.css({backgroundColor: '#1BA1E2', border: 'none', color: '#fff'});
|
||||
this.$buttons.css({borderTop: '1px solid #1BA1E2'});
|
||||
break;
|
||||
case 'success':
|
||||
this.$bar.css({backgroundColor: '#60A917', border: 'none', color: '#fff'});
|
||||
this.$buttons.css({borderTop: '1px solid #50C24E'});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({backgroundColor: '#fff', border: 'none', color: '#1d1d1d'});
|
||||
break;
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onShow : function () {
|
||||
|
||||
},
|
||||
onClose: function () {
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
149
public/js/noty/themes/relax.js
Normal file
@@ -0,0 +1,149 @@
|
||||
$.noty.themes.relax = {
|
||||
name : 'relax',
|
||||
helpers : {},
|
||||
modal : {
|
||||
css: {
|
||||
position : 'fixed',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex : 10000,
|
||||
opacity : 0.6,
|
||||
display : 'none',
|
||||
left : 0,
|
||||
top : 0
|
||||
}
|
||||
},
|
||||
style : function() {
|
||||
|
||||
this.$bar.css({
|
||||
overflow : 'hidden',
|
||||
margin : '4px 0',
|
||||
borderRadius: '2px'
|
||||
});
|
||||
|
||||
this.$message.css({
|
||||
textAlign : 'center',
|
||||
padding : '10px',
|
||||
width : 'auto',
|
||||
position : 'relative'
|
||||
});
|
||||
|
||||
this.$closeButton.css({
|
||||
position : 'absolute',
|
||||
top : 4, right: 4,
|
||||
width : 10, height: 10,
|
||||
background: "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAxUlEQVR4AR3MPUoDURSA0e++uSkkOxC3IAOWNtaCIDaChfgXBMEZbQRByxCwk+BasgQRZLSYoLgDQbARxry8nyumPcVRKDfd0Aa8AsgDv1zp6pYd5jWOwhvebRTbzNNEw5BSsIpsj/kurQBnmk7sIFcCF5yyZPDRG6trQhujXYosaFoc+2f1MJ89uc76IND6F9BvlXUdpb6xwD2+4q3me3bysiHvtLYrUJto7PD/ve7LNHxSg/woN2kSz4txasBdhyiz3ugPGetTjm3XRokAAAAASUVORK5CYII=)",
|
||||
display : 'none',
|
||||
cursor : 'pointer'
|
||||
});
|
||||
|
||||
this.$buttons.css({
|
||||
padding : 5,
|
||||
textAlign : 'right',
|
||||
borderTop : '1px solid #ccc',
|
||||
backgroundColor: '#fff'
|
||||
});
|
||||
|
||||
this.$buttons.find('button').css({
|
||||
marginLeft: 5
|
||||
});
|
||||
|
||||
this.$buttons.find('button:first').css({
|
||||
marginLeft: 0
|
||||
});
|
||||
|
||||
this.$bar.on({
|
||||
mouseenter: function() {
|
||||
$(this).find('.noty_close').stop().fadeTo('normal', 1);
|
||||
},
|
||||
mouseleave: function() {
|
||||
$(this).find('.noty_close').stop().fadeTo('normal', 0);
|
||||
}
|
||||
});
|
||||
|
||||
switch(this.options.layout.name) {
|
||||
case 'top':
|
||||
this.$bar.css({
|
||||
borderBottom: '2px solid #eee',
|
||||
borderLeft : '2px solid #eee',
|
||||
borderRight : '2px solid #eee',
|
||||
borderTop : '2px solid #eee',
|
||||
boxShadow : "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
case 'topCenter':
|
||||
case 'center':
|
||||
case 'bottomCenter':
|
||||
case 'inline':
|
||||
this.$bar.css({
|
||||
border : '1px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({textAlign: 'center'});
|
||||
break;
|
||||
case 'topLeft':
|
||||
case 'topRight':
|
||||
case 'bottomLeft':
|
||||
case 'bottomRight':
|
||||
case 'centerLeft':
|
||||
case 'centerRight':
|
||||
this.$bar.css({
|
||||
border : '1px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({textAlign: 'left'});
|
||||
break;
|
||||
case 'bottom':
|
||||
this.$bar.css({
|
||||
borderTop : '2px solid #eee',
|
||||
borderLeft : '2px solid #eee',
|
||||
borderRight : '2px solid #eee',
|
||||
borderBottom: '2px solid #eee',
|
||||
boxShadow : "0 -2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({
|
||||
border : '2px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
switch(this.options.type) {
|
||||
case 'alert':
|
||||
case 'notification':
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#dedede', color: '#444'});
|
||||
break;
|
||||
case 'warning':
|
||||
this.$bar.css({backgroundColor: '#FFEAA8', borderColor: '#FFC237', color: '#826200'});
|
||||
this.$buttons.css({borderTop: '1px solid #FFC237'});
|
||||
break;
|
||||
case 'error':
|
||||
this.$bar.css({backgroundColor: '#FF8181', borderColor: '#e25353', color: '#FFF'});
|
||||
this.$message.css({fontWeight: 'bold'});
|
||||
this.$buttons.css({borderTop: '1px solid darkred'});
|
||||
break;
|
||||
case 'information':
|
||||
this.$bar.css({backgroundColor: '#78C5E7', borderColor: '#3badd6', color: '#FFF'});
|
||||
this.$buttons.css({borderTop: '1px solid #0B90C4'});
|
||||
break;
|
||||
case 'success':
|
||||
this.$bar.css({backgroundColor: '#BCF5BC', borderColor: '#7cdd77', color: 'darkgreen'});
|
||||
this.$buttons.css({borderTop: '1px solid #50C24E'});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#CCC', color: '#444'});
|
||||
break;
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onShow : function() {
|
||||
|
||||
},
|
||||
onClose: function() {
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
103
public/js/noty/themes/semanticUI.js
Normal file
@@ -0,0 +1,103 @@
|
||||
$.noty.themes.semanticUI = {
|
||||
name : 'semanticUI',
|
||||
|
||||
template : '<div class="ui message"><div class="content"><div class="header"></div></div></div>',
|
||||
|
||||
animation: {
|
||||
open : {
|
||||
animation: 'fade',
|
||||
duration : '800ms'
|
||||
},
|
||||
close: {
|
||||
animation: 'fade left',
|
||||
duration : '800ms'
|
||||
}
|
||||
},
|
||||
|
||||
modal : {
|
||||
css: {
|
||||
position : 'fixed',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex : 10000,
|
||||
opacity : 0.6,
|
||||
display : 'none',
|
||||
left : 0,
|
||||
top : 0
|
||||
}
|
||||
},
|
||||
style : function () {
|
||||
this.$message = this.$bar.find('.ui.message');
|
||||
|
||||
this.$message.find('.header').html(this.options.header);
|
||||
this.$message.find('.content').append(this.options.text);
|
||||
|
||||
this.$bar.css({
|
||||
margin: '0.5em'
|
||||
});
|
||||
|
||||
if (this.options.icon) {
|
||||
this.$message.addClass('icon').prepend($('<i/>').addClass(this.options.icon));
|
||||
}
|
||||
|
||||
switch (this.options.size) {
|
||||
case 'mini':
|
||||
this.$message.addClass('mini');
|
||||
break;
|
||||
case 'tiny':
|
||||
this.$message.addClass('tiny');
|
||||
break;
|
||||
case 'small':
|
||||
this.$message.addClass('small');
|
||||
break;
|
||||
case 'large':
|
||||
this.$message.addClass('large');
|
||||
break;
|
||||
case 'big':
|
||||
this.$message.addClass('big');
|
||||
break;
|
||||
case 'huge':
|
||||
this.$message.addClass('huge');
|
||||
break;
|
||||
case 'massive':
|
||||
this.$message.addClass('massive');
|
||||
break;
|
||||
}
|
||||
|
||||
switch (this.options.type) {
|
||||
case 'info':
|
||||
this.$message.addClass('info');
|
||||
break;
|
||||
case 'warning':
|
||||
this.$message.addClass('warning');
|
||||
break;
|
||||
case 'error':
|
||||
this.$message.addClass('error');
|
||||
break;
|
||||
case 'negative':
|
||||
this.$message.addClass('negative');
|
||||
break;
|
||||
case 'success':
|
||||
this.$message.addClass('success');
|
||||
break;
|
||||
case 'positive':
|
||||
this.$message.addClass('positive');
|
||||
break;
|
||||
case 'floating':
|
||||
this.$message.addClass('floating');
|
||||
break;
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onShow : function () {
|
||||
// Enable transition
|
||||
this.$bar.addClass('transition');
|
||||
// Actual transition
|
||||
this.$bar.transition(this.options.animation.open);
|
||||
},
|
||||
onClose: function () {
|
||||
this.$bar.transition(this.options.animation.close);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1,413 +0,0 @@
|
||||
var clonos={
|
||||
jsonLoad:false,
|
||||
|
||||
start:function()
|
||||
{
|
||||
this.addEvents();
|
||||
|
||||
var r, res, args=[];
|
||||
var hash=window.location.hash;
|
||||
hash=hash.replace(new RegExp(/^#/),'');
|
||||
var rx=new RegExp(/([^\/]+)/g);
|
||||
if(res=hash.match(rx))
|
||||
{
|
||||
for(r in res)
|
||||
{
|
||||
var r1=res[r].split('-');
|
||||
if(r1.length==2) args[args.length]={'var':r1[0],'val':r1[1]};
|
||||
}
|
||||
this.route(args);
|
||||
}
|
||||
},
|
||||
|
||||
addEvents:function()
|
||||
{
|
||||
$('#lng-sel').bind('change',function(){document.cookie="lang="+$(this).val()+";path=/;";location.reload();});
|
||||
$('#content').bind('click',$.proxy(this.tableClick,this));
|
||||
},
|
||||
|
||||
translate:function(phrase)
|
||||
{
|
||||
if(typeof this.lang!='undefined')
|
||||
{
|
||||
if(typeof this.lang[phrase]!='undefined')
|
||||
return this.lang[phrase];
|
||||
}
|
||||
return phrase;
|
||||
},
|
||||
|
||||
route:function(args)
|
||||
{
|
||||
if(typeof args=='undefined') return;
|
||||
//alert(args.length);
|
||||
},
|
||||
|
||||
loadData:function()
|
||||
{
|
||||
if(!this.jsonLoad) return;
|
||||
var path=location.pathname;
|
||||
var file='/json.php'; //'/pages'+path+'a.json.php';
|
||||
this.loadDataJson(file,$.proxy(this.onLoadData,this),{'path':path});
|
||||
},
|
||||
loadDataJson:function(file,return_func,arr) //mode,
|
||||
{
|
||||
var posts=arr;
|
||||
/*
|
||||
var posts={'mode':mode,'project':this.project,'jail':this.jail,'module':this.module};
|
||||
if(typeof arr=='object')
|
||||
{
|
||||
posts['form_data']={};
|
||||
for(n=0,nl=arr.length;n<nl;n++)
|
||||
posts['form_data'][arr[n]['name']]=arr[n]['value'];
|
||||
}
|
||||
*/
|
||||
$.post(file,posts,
|
||||
$.proxy(function(data){return_func(data);},this));
|
||||
},
|
||||
onLoadData:function(data)
|
||||
{
|
||||
try{
|
||||
var data=$.parseJSON(data);
|
||||
}catch(e){alert(e.message);return;}
|
||||
|
||||
if(data.error)
|
||||
{
|
||||
var t=$('tbody.error td.error_message');
|
||||
if(typeof(data.error_message)!='undefined' && data.error_message!='') t.html(data.error_message);
|
||||
$(t).parents('table').addClass('error');
|
||||
}else{
|
||||
if(typeof data.func!='undefined')
|
||||
{
|
||||
this[data.func](data);
|
||||
return;
|
||||
}
|
||||
for(id in data) $('#'+id).html(data[id]);
|
||||
}
|
||||
},
|
||||
|
||||
fillTable:function(data)
|
||||
{
|
||||
if(typeof data.id!='undefined')
|
||||
{
|
||||
$('#'+data.id+' tbody').html(data.html);
|
||||
}
|
||||
},
|
||||
|
||||
enableWait:function(id)
|
||||
{
|
||||
var icon_cnt=$('tr.id-'+id).find('span.icon-cnt');
|
||||
var icon=$(icon_cnt).find('span');
|
||||
$(icon).removeClass('icon-play');
|
||||
$(icon).removeClass('icon-stop');
|
||||
$(icon).addClass('icon-spin6 animate-spin');
|
||||
},
|
||||
enablePlay:function(id)
|
||||
{
|
||||
var icon_cnt=$('tr.id-'+id).find('span.icon-cnt');
|
||||
var icon=$(icon_cnt).find('span');
|
||||
if(icon[0]) icon[0].className='icon-play';
|
||||
},
|
||||
enableStop:function(id)
|
||||
{
|
||||
var icon_cnt=$('tr.id-'+id).find('span.icon-cnt');
|
||||
var icon=$(icon_cnt).find('span');
|
||||
if(icon[0]) icon[0].className='icon-stop';
|
||||
},
|
||||
enableRip:function(id)
|
||||
{
|
||||
var icon_cnt=$('tr.id-'+id).find('span.icon-cnt');
|
||||
if(typeof icon_cnt!='undefined')
|
||||
{
|
||||
var icon=$(icon_cnt).find('span');
|
||||
if(typeof icon!='undefined')
|
||||
icon[0].className='icon-emo-cry';
|
||||
}
|
||||
},
|
||||
|
||||
jailStart:function(obj)
|
||||
{
|
||||
if(!obj) return;
|
||||
// if(this.currentPage=='services') return this.serviceStart(obj);
|
||||
// var id=this.getJailId(obj);
|
||||
// if(id<0) return;
|
||||
var icon_cnt=$(obj).find('span.icon-cnt');
|
||||
var icon=$(icon_cnt).find('span');
|
||||
op='';
|
||||
if($(icon).hasClass('icon-play')) op='jstart';
|
||||
if($(icon).hasClass('icon-stop')) op='jstop';
|
||||
this.enableWait(id);
|
||||
|
||||
var op_status=(op=='jstart'?1:0);
|
||||
|
||||
if(op!='')
|
||||
{
|
||||
this.tasks.add({'operation':op,'jail_id':id});
|
||||
this.tasks.start();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
tasks:
|
||||
{
|
||||
context:null,
|
||||
tasks:{},
|
||||
interval:null,
|
||||
checkTasks:false,
|
||||
|
||||
init:function(context)
|
||||
{
|
||||
this.context=context;
|
||||
},
|
||||
|
||||
add:function(vars)
|
||||
{
|
||||
if(typeof vars['status']=='undefined') vars['status']=-1;
|
||||
if(typeof vars['jail_id']!='undefined')
|
||||
this.tasks[vars['jail_id']]=vars;
|
||||
if(typeof vars['modules_id']!='undefined')
|
||||
this.tasks['mod_ops']=vars;
|
||||
if(typeof vars['service_id']!='undefined')
|
||||
this.tasks[vars['service_id']]=vars;
|
||||
if(typeof vars['projects_id']!='undefined')
|
||||
{
|
||||
this.tasks['proj_ops']='projDelete';
|
||||
this.tasks[vars['projects_id']]=vars;
|
||||
}
|
||||
},
|
||||
|
||||
start:function()
|
||||
{
|
||||
if(this.checkTasks) return;
|
||||
this.checkTasks=true;
|
||||
|
||||
if($.isEmptyObject(this.tasks))
|
||||
{
|
||||
clearInterval(this.interval);
|
||||
this.interval=null;
|
||||
this.checkTasks=false;
|
||||
return;
|
||||
}
|
||||
|
||||
var vars=JSON.stringify(this.tasks);
|
||||
this.context.loadData('getTasksStatus',$.proxy(this.update,this),[{'name':'jsonObj','value':vars}]);
|
||||
},
|
||||
|
||||
update:function(data)
|
||||
{
|
||||
try{
|
||||
var data=$.parseJSON(data);
|
||||
}catch(e){alert(e.message);return;}
|
||||
|
||||
if(typeof data['mod_ops']!='undefined')
|
||||
{
|
||||
var key='mod_ops';
|
||||
this.tasks[key]=data[key];
|
||||
var d=data[key];
|
||||
|
||||
if(d.status==2)
|
||||
{
|
||||
//this.context.onTaskEnd(this.tasks[key],key);
|
||||
this.context.modulesUpdate(data);
|
||||
delete this.tasks[key];
|
||||
this.context.waitScreenHide();
|
||||
}
|
||||
if(d.status<2) this.context.waitScreenShow();
|
||||
|
||||
this.checkTasks=false;
|
||||
if(this.interval===null)
|
||||
{
|
||||
this.interval=setInterval($.proxy(this.start,this),1000);
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if(typeof data['proj_ops']!='undefined')
|
||||
{
|
||||
if(data['proj_ops']=='projDelete')
|
||||
{
|
||||
if(typeof data.projects!='undefined')
|
||||
this.context.projectsList=data.projects;
|
||||
this.context.showProjectsList();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for(key in data)
|
||||
{
|
||||
if(key>0)
|
||||
{
|
||||
$('tr.id-'+key+' .jstatus').html(data[key].txt_status);
|
||||
var errmsg=$('tr.id-'+key+' .errmsg');
|
||||
if(typeof data[key].errmsg!='undefined')
|
||||
{
|
||||
$(errmsg).html('<span class="label">Error:</span>'+data[key].errmsg); //'+this.translate('Error')+'
|
||||
this.tasks[key].errmsg=data[key].errmsg;
|
||||
}
|
||||
this.tasks[key].operation=data[key].operation;
|
||||
this.tasks[key].task_id=data[key].task_id;
|
||||
this.tasks[key].status=data[key].status;
|
||||
|
||||
if(data[key].status==2)
|
||||
{
|
||||
this.context.onTaskEnd(this.tasks[key],key);
|
||||
delete this.tasks[key];
|
||||
}
|
||||
}else{
|
||||
if(typeof data[-1].jails!='undefined')
|
||||
{
|
||||
this.context.jailsList=data[-1].jails;
|
||||
this.context.showJailsList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.checkTasks=false;
|
||||
|
||||
if(this.interval===null)
|
||||
{
|
||||
this.interval=setInterval($.proxy(this.start,this),1000);
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
tableClick:function(event)
|
||||
{
|
||||
debugger;
|
||||
var target=event.target;
|
||||
/* if(target.id=='main_chkbox')
|
||||
{
|
||||
this.mainChkBoxClick(event);
|
||||
return;
|
||||
} */
|
||||
var td=$(target).closest('td');
|
||||
td=td[0];
|
||||
var tr=$(target).closest('tr');
|
||||
/* if(target.tagName=='SPAN')
|
||||
{
|
||||
var cl=target.className;
|
||||
if(cl && cl.indexOf('install')>=0)
|
||||
{
|
||||
var res=cl.match(new RegExp(/helper-(\w+)/));
|
||||
if(res)
|
||||
{
|
||||
this.installHelper(res[1]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(cl && cl.indexOf('default')>=0)
|
||||
{
|
||||
var res=cl.match(new RegExp(/val-(.*)/));
|
||||
if(res)
|
||||
{
|
||||
this.fillHelperDefault(target,res[1]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/* if(target.tagName=='INPUT')
|
||||
{
|
||||
var cl=target.className;
|
||||
if(cl=='') return;
|
||||
if(cl=='save-helper-values') this.saveHelperValues();
|
||||
if(cl=='clear-helper') this.clearHelperForm(target);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(typeof td!='undefined') this.selItem(tr);
|
||||
|
||||
if(typeof tr[0]=='undefined') return;
|
||||
var cl=tr[0].className;
|
||||
if(!$(tr).hasClass('link')) return;
|
||||
var rx=new RegExp(/id-(\d+)/);
|
||||
if(res=cl.match(rx))
|
||||
{
|
||||
var id=res[1];
|
||||
} */
|
||||
//debugger;
|
||||
if(!td || typeof td.className=='undefined') return false;
|
||||
var tdc=td.className;
|
||||
tdc=tdc.replace(' ','-');
|
||||
|
||||
switch(tdc)
|
||||
{
|
||||
case 'ops':
|
||||
this.jailStart(tr);
|
||||
return;break;
|
||||
/* case 'sett-proj':
|
||||
this.lastProjectId=id;
|
||||
this.editMode='edit-proj';
|
||||
this.projSettings(id);
|
||||
return;break;
|
||||
case 'sett':
|
||||
this.lastJailId=id;
|
||||
this.editMode='edit';
|
||||
this.getJailSettings(tr);
|
||||
return;break;
|
||||
case 'jstatus':
|
||||
return;break;
|
||||
case 'info':
|
||||
this.loadData('getForm',$.proxy(this.loadForm,this));
|
||||
return;break;
|
||||
case 'mod-info':
|
||||
alert('show info about module!');
|
||||
return;break;
|
||||
case 'user-info':
|
||||
this.editMode='user-edit';
|
||||
var n;
|
||||
data=null;
|
||||
for(n=0,nl=this.usersList.length;n<nl;n++)
|
||||
if(this.usersList[n].id==id) {data=this.usersList[n];break;}
|
||||
if(data==null) return;
|
||||
var obj_cnt=this.settWinOpen('users');
|
||||
var form=$('form',obj_cnt);
|
||||
$('#window-content h1').html(this.translate('User edit'));
|
||||
$('input[name="login"]',form).val(data.login).attr('disabled','disabled');
|
||||
$('input[name="fullname"]',form).val(data.gecos);
|
||||
return;break;
|
||||
*/ }
|
||||
|
||||
/* if($(td).hasClass('chbx'))
|
||||
{
|
||||
// tr.link.hover.id-1
|
||||
if(this.currentPage=='project')
|
||||
if(id>0) this.selectedProjects[id]=$(td).children('input[type="checkbox"]').prop('checked');
|
||||
if(this.currentPage=='jails')
|
||||
if(id>0) this.selectedJails[id]=$(td).children('input[type="checkbox"]').prop('checked');
|
||||
if(this.currentPage=='modules')
|
||||
if(id>0) this.selectedModules[id]=$(td).children('input[type="checkbox"]').prop('checked');
|
||||
return;
|
||||
}
|
||||
|
||||
switch(this.currentPage)
|
||||
{
|
||||
case 'project':
|
||||
location.hash='#prj-'+id;
|
||||
break;
|
||||
case 'jails':
|
||||
location.hash='#prj-'+this.project+'/jail-'+id;
|
||||
break;
|
||||
case 'modules':
|
||||
location.hash='#prj-'+this.project+'/jail-'+this.jail+'/module-'+id;
|
||||
break;
|
||||
case 'log':
|
||||
var hid=$('td.sp-id',tr).html();
|
||||
location.hash='#prj-'+this.project+'/jail-'+this.jail+'/log-'+hid;
|
||||
break;
|
||||
case 'helpers':
|
||||
var hid=$('td .sp-id',tr).html();
|
||||
location.hash='#prj-'+this.project+'/jail-'+this.jail+'/helpers-'+hid;
|
||||
break;
|
||||
}
|
||||
*/
|
||||
},
|
||||
}
|
||||
|
||||
$(window).load(function(){clonos.start();});
|
||||
$(window).unload(function(){}); /* эта функция заставляет FireFox запускать JS-функции при нажатии кнопки «Назад»
|
||||
http://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run */
|
||||
$(document).ready(function(){clonos.loadData();});
|
||||
@@ -11,8 +11,8 @@ $_REALPATH=realpath('../');
|
||||
include($_REALPATH.'/php/clonos.php');
|
||||
$clonos=new ClonOS($_REALPATH);
|
||||
|
||||
$file_path=$_REALPATH.$_ds.'public/pages'.$_ds.$path.$_ds;
|
||||
$json_name=$file_path.'a.json.php';
|
||||
//$file_path=$_REALPATH.$_ds.'public/pages'.$_ds.$path.$_ds;
|
||||
//$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;
|
||||
@@ -1,6 +1,3 @@
|
||||
iface.lang={
|
||||
"*Servers": "Servers",
|
||||
"*Projects": "Projects",
|
||||
"*Jails": "Jails",
|
||||
"*Modules": "Modules",
|
||||
clonos.lang={
|
||||
|
||||
}
|
||||
@@ -1,3 +1,42 @@
|
||||
iface.lang={
|
||||
"Error": "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
clonos.lang={
|
||||
"Error": "Ошибка",
|
||||
"No data, add something": "Нет данных, добавьте что-нибудь",
|
||||
"available on the jail is not running": "доступно при остановленной клетке",
|
||||
"Log is empty": "Лог пуст",
|
||||
"Exported jails": "Экспортированные клетки",
|
||||
"Download": "Скачать",
|
||||
"Jail is created": "Клетка создана",
|
||||
"Jail already launched": "Клетка уже запущена",
|
||||
"Jail already stopped": "Клетка уже остановлена",
|
||||
"Export not available on launched jail": "Экспорт невозможен на запущенной клетке",
|
||||
"This field cannot be left blank": "Это поле должно быть заполнено",
|
||||
"You need to select one or more jails for clone": "Вам необходимо выбрать одну или несколько клеток для клонирования",
|
||||
"You want to restart selected jail! 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 virtual machine! Are you sure?":"Вы уверены, что хотите удалить выбранную виртуальную машину?",
|
||||
|
||||
"You want to delete selected authkey! Are you sure?":"Вы уверены, что хотите удалить выбранный ключ авторизации?",
|
||||
|
||||
|
||||
"Not running":"Не запущено",
|
||||
"Not Launched":"Не запущено",
|
||||
"Launched":"Запущено",
|
||||
"Stopping":"Останавливается",
|
||||
"Stopped":"Остановлено",
|
||||
"Removing":"Удаляется",
|
||||
"Removed":"Удалено",
|
||||
"Creating":"Создаётся",
|
||||
"Created":"Создано;",
|
||||
"Starting":"Запускается",
|
||||
"Exporting":"Экспортируется",
|
||||
"Cloning":"Клонируется",
|
||||
"Cloned":"Клонировано",
|
||||
"Restarting":"Перезапускаем",
|
||||
"Restarted":"Перезапущено",
|
||||
|
||||
"end":"конец",
|
||||
|
||||
"This name is already exists!":"Такое имя уже существует!",
|
||||
"Passwords must match!":"Пароли должны совпадать!",
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
$lang=array(
|
||||
'Settings'=>'Настройки',
|
||||
'Profile'=>'Профиль',
|
||||
@@ -19,7 +18,7 @@ $lang=array(
|
||||
'Nodes control panel'=>'Панель управления нодами',
|
||||
'Virtual Private Network'=>'Виртуальные сети',
|
||||
'Manage for virtual private networks'=>'Панель управления подсетями',
|
||||
'Authkey'=>'Ключи авторизации',
|
||||
'Authkeys'=>'Ключи авторизации',
|
||||
'Manage for SSH auth key'=>'Панель управления авторизационными ключами',
|
||||
'Storage Media'=>'Виртуальные носители',
|
||||
'Virtual Media Manager'=>'Менеджер виртуальных носителей',
|
||||
@@ -29,7 +28,7 @@ $lang=array(
|
||||
'FreeBSD bases manager'=>'Управление базами FreeBSD',
|
||||
'FreeBSD Sources'=>'FreeBSD исходники',
|
||||
'FreeBSD sources manager'=>'Управление исходными кодами FreeBSD',
|
||||
'Jail Marketplace'=>'Преднастроенные контейнера',
|
||||
'Jail Marketplace'=>'Преднастроенные контейнеры',
|
||||
'Public remote containers marketplace'=>'Репозиторий преднастроенных контейнеров',
|
||||
'Bhyve Marketplace'=>'Преднастроенные виртуальные машины',
|
||||
'Public remote virtual machine marketplace'=>'Репозиторий преднастроенных виртуальных машин',
|
||||
@@ -39,4 +38,82 @@ $lang=array(
|
||||
'File not found'=>'Файл не найден',
|
||||
|
||||
'Description'=>'Описание',
|
||||
|
||||
'Not Launched'=>'Не запущено',
|
||||
'Starting'=>'Запускается',
|
||||
'Launched'=>'Запущено',
|
||||
'Creating'=>'Создаётся',
|
||||
'Created'=>'Создано',
|
||||
'Stopping'=>'Останавливается',
|
||||
'Stopped'=>'Остановлено',
|
||||
'Removing'=>'Удаляется',
|
||||
'Exporting'=>'Экспортируется',
|
||||
'Cloning'=>'Клонируется',
|
||||
'Cloned'=>'Клонировано',
|
||||
'Restarting'=>'Перезапускаем',
|
||||
'Restarted'=>'Перезапущено',
|
||||
'Maintenance'=>'На обслуживании',
|
||||
|
||||
'Create jail'=>'Создание клетки',
|
||||
'Edit jail'=>'Редактирование клетки',
|
||||
'Jail Settings'=>'Настройки клетки',
|
||||
'Jail name'=>'Имя клетки',
|
||||
'Hostname'=>'Имя хоста',
|
||||
'available on the jail is not running'=>'доступно при остановленной клетке',
|
||||
'IP address'=>'IP-адрес',
|
||||
'Root password'=>'Пароль пользователя ROOT (опционально)',
|
||||
'Root password (again)'=>'Пароль пользователя ROOT (повтор)',
|
||||
'Description'=>'Описание',
|
||||
'Net Interface'=>'Сетевой интерфейс',
|
||||
'Parameters'=>'Параметры',
|
||||
'Autostart'=>'Автозапуск',
|
||||
'Autostart jail at system startup'=>'Автозапуск клетки при загрузке системы',
|
||||
'Base writable'=>'R/W базовой системы',
|
||||
'Virtual network stack (VIMAGE)'=>'Виртуальный сетевой стек (VIMAGE)',
|
||||
'Mount'=>'Примонтировать',
|
||||
'Enabled services'=>'Автозапуск сервисов',
|
||||
'Create'=>'Создать',
|
||||
'Cancel'=>'Отменить',
|
||||
|
||||
'Delete'=>'Удалить',
|
||||
'Protected jail'=>'Запрет на удаление',
|
||||
'Open VNC'=>'Консоль управления',
|
||||
'Restart jail'=>'Перезапустить клетку',
|
||||
'Restart bhyve'=>'Перезапустить виртуальную машину',
|
||||
|
||||
//err_messages
|
||||
'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'=>'Это поле не может быть пустым',
|
||||
'Write correct ip address, e.g: 10.0.0.2'=>'Укажите корректный IP адрес, например: 10.0.0.2',
|
||||
'Password can not be less than 3 symbols'=>'Пароль не должен быть меньше трех символов',
|
||||
'Please retype password correctly'=>'Повторите пароль правильно',
|
||||
|
||||
'edit'=>'редактировать',
|
||||
'clone'=>'клонировать',
|
||||
'export'=>'экспортировать',
|
||||
'helpers'=>'хэлперы',
|
||||
|
||||
'default is'=>'по-умолчанию',
|
||||
|
||||
'Create Virtual Machine'=>'Создание виртуальной машины',
|
||||
'Create Virtual Machine from Library'=>'Создание из библиотеки',
|
||||
'Virtual Machine Settings'=>'Настройки',
|
||||
'Virtual Machine name'=>'Имя виртуальной машины',
|
||||
'VM OS profile'=>'Профиль операционной системы',
|
||||
'Authkey'=>'Ключ авторизации',
|
||||
'VM CPUs'=>'Количество процессоров',
|
||||
'VM RAM'=>'Объём памяти',
|
||||
'VM Image size'=>'Объём виртуального диска',
|
||||
'VNC PORT'=>'Порт подключения к терминалу',
|
||||
'VM Password'=>'Пароль администратора',
|
||||
|
||||
'Create Authkey'=>'Создание ключа авторизации',
|
||||
'Authkey name'=>'Имя ключа',
|
||||
'Authkey'=>'Код ключа',
|
||||
|
||||
'Open'=>'Открыть',
|
||||
'Close'=>'Закрыть',
|
||||
'Update'=>'Обновить',
|
||||
|
||||
//''=>'',
|
||||
);
|
||||
6
public/novnc/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
*.pyc
|
||||
*.o
|
||||
tests/data_*.js
|
||||
utils/rebind.so
|
||||
utils/websockify
|
||||
node_modules
|
||||
0
public/novnc/.gitmodules
vendored
Normal file
22
public/novnc/.travis.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
node_js:
|
||||
- '0.11.13'
|
||||
env:
|
||||
matrix:
|
||||
- TEST_BROWSER_NAME=PhantomJS
|
||||
- TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='Windows 7,Linux'
|
||||
- TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='Windows 7,Linux' TEST_BROWSER_VERSION='30,26'
|
||||
- TEST_BROWSER_NAME='internet explorer' TEST_BROWSER_OS='Windows 7' TEST_BROWSER_VERSION=10
|
||||
- TEST_BROWSER_NAME='internet explorer' TEST_BROWSER_OS='Windows 8.1' TEST_BROWSER_VERSION=11
|
||||
- TEST_BROWSER_NAME=safari TEST_BROWSER_OS='OS X 10.8' TEST_BROWSER_VERSION=6
|
||||
- TEST_BROWSER_NAME=safari TEST_BROWSER_OS='OS X 10.9' TEST_BROWSER_VERSION=7
|
||||
global:
|
||||
- secure: QE5GqGd2hrpQsIgd8dlv3oRUUHqZayomzzQjNXOB81VQi241uz/ru+3GtBZLB5WLZCq/Gj89vbLnR0LN4ixlmPaWv3/WJQGyDGuRD/vMnccVl+rBUP/Hh2zdYwiISIGcrywNAE+KLus/lyt/ahVgzbaRaDSzrM1HaZFT/rndGck=
|
||||
- secure: g75sdctEwj0hoLW0Y08Tdv8s5scNzplB6a9EtaJ2vJD9S/bK+AsPqbWesGv1UlrFPCWdbV7Vg61vkmoUjcmb5xhqFIjcM9TlYJoKWeOTsOmnQoSIkIq6gMF1k02+LmKInbPgIzrp3m3jluS1qaOs/EzFpDnJp9hWBiAfXa12Jxk=
|
||||
before_script: npm install -g karma-cli
|
||||
addons:
|
||||
sauce_connect: true
|
||||
54
public/novnc/CONTRIBUTING.md
Normal file
@@ -0,0 +1,54 @@
|
||||
How to contribute to noVNC
|
||||
==========================
|
||||
|
||||
We accept code via pull requests on GitHub. There are several guidelines that
|
||||
we expect contributors submitting code requests to follow. If you have issues
|
||||
following any of these guidelines, feel free to drop us a line by leaving a
|
||||
comment in the code request or sending us an email.
|
||||
|
||||
Contributing Guidelines
|
||||
-----------------------
|
||||
|
||||
* While we don't have an official coding style guide, please try to follow
|
||||
the general coding style of the existing code.
|
||||
** Use four spaces instead of tabs
|
||||
** prefix private variables and functions with an `_`
|
||||
|
||||
* Please try to include unit tests for your code. For instance, if you
|
||||
introduce a new encoding, add a test to `tests/test.rfb.js` under the
|
||||
"Encoding Handlers" section (basically, input a small pattern in your
|
||||
encoding and make sure the pattern gets displayed correctly). If you
|
||||
fix a bug, try to add a unit test that would have caught that bug
|
||||
(if possible -- some bugs, especially visual ones, are hard to test for).
|
||||
|
||||
* Squash your commits down in to a clean commit history. For instance, there
|
||||
should not be "cleanup" commits where you fix issues in previous commits in
|
||||
the same pull request. Before you go to commit, use `git rebase -i` to
|
||||
squash these changes into the relevant commits. For instance, a good commit
|
||||
history might look like "Added support for FOO encoding, Added support for
|
||||
BAR message, Placed Button in UI to Trigger BAR" (where each comma denotes
|
||||
a separate commit).
|
||||
|
||||
* Add both a title and description to your commit, if possible. Place more
|
||||
detail on what you did in the description.
|
||||
|
||||
Running the unit tests
|
||||
----------------------
|
||||
|
||||
There are two ways to run the unit tests. For both ways, you should first run
|
||||
`npm install` (not as root).
|
||||
|
||||
The first way to run the tests is to run `npm test`. This will run all the
|
||||
tests in the headless PhantomJS browser (which uses WebKit).
|
||||
|
||||
The second way to run the tests is using the `tests/run_from_console.js` file.
|
||||
This way is a bit more flexible, and can provide more information about what
|
||||
went wrong. To run all the tests, simply run `tests/run_from_console.js`.
|
||||
To run a specific test file, you can use the `-t path/to/test/file.js` option.
|
||||
If you wish to simply generate the HTML for the test, use the `-g` option, and
|
||||
the path to the temporary HTML file will be written to standard out. To open
|
||||
this file in your default browser automatically, pass the `-o` option as well.
|
||||
More information can be found by passing the `--help` or `-h` option.
|
||||
|
||||
|
||||
Thanks, and happy coding!
|
||||
85
public/novnc/LICENSE.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
noVNC is Copyright (C) 2011 Joel Martin <github@martintribe.org>
|
||||
|
||||
The noVNC core library files are licensed under the MPL 2.0 (Mozilla
|
||||
Public License 2.0). The noVNC core library is composed of the
|
||||
Javascript code necessary for full noVNC operation. This includes (but
|
||||
is not limited to):
|
||||
|
||||
include/base64.js
|
||||
include/des.js
|
||||
include/display.js
|
||||
include/input.js
|
||||
include/keysym.js
|
||||
include/logo.js
|
||||
include/playback.js
|
||||
include/rfb.js
|
||||
include/ui.js
|
||||
include/util.js
|
||||
include/websock.js
|
||||
include/webutil.js
|
||||
include/xtscancodes.js
|
||||
|
||||
The HTML, CSS, font and images files that included with the noVNC
|
||||
source distibution (or repository) are not considered part of the
|
||||
noVNC core library and are licensed under more permissive licenses.
|
||||
The intent is to allow easy integration of noVNC into existing web
|
||||
sites and web applications.
|
||||
|
||||
The HTML, CSS, font and image files are licensed as follows:
|
||||
|
||||
*.html : 2-Clause BSD license
|
||||
|
||||
include/*.css : 2-Clause BSD license
|
||||
|
||||
include/Orbitron* : SIL Open Font License 1.1
|
||||
(Copyright 2009 Matt McInerney)
|
||||
|
||||
images/ : Creative Commons Attribution-ShareAlike
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
Some portions of noVNC are copyright to their individual authors.
|
||||
Please refer to the individual source files and/or to the noVNC commit
|
||||
history: https://github.com/kanaka/noVNC/commits/master
|
||||
|
||||
The are several files and projects that have been incorporated into
|
||||
the noVNC core library. Here is a list of those files and the original
|
||||
licenses (all MPL 2.0 compatible):
|
||||
|
||||
include/base64.js : MPL 2.0
|
||||
|
||||
include/des.js : Various BSD style licenses
|
||||
|
||||
include/chrome-app/tcp-stream.js
|
||||
: Apache 2.0 license
|
||||
|
||||
utils/websockify
|
||||
utils/websocket.py : LGPL 3
|
||||
|
||||
utils/inflator.partial.js
|
||||
include/inflator.js : MIT (for pako)
|
||||
|
||||
Any other files not mentioned above are typically marked with
|
||||
a copyright/license header at the top of the file. The default noVNC
|
||||
license is MPL-2.0.
|
||||
|
||||
The following license texts are included:
|
||||
|
||||
docs/LICENSE.MPL-2.0
|
||||
docs/LICENSE.LGPL-3 and
|
||||
docs/LICENSE.GPL-3
|
||||
docs/LICENSE.OFL-1.1
|
||||
docs/LICENSE.BSD-3-Clause (New BSD)
|
||||
docs/LICENSE.BSD-2-Clause (Simplified BSD / FreeBSD)
|
||||
docs/LICENSE.zlib
|
||||
docs/LICENSE.Apache-2.0
|
||||
docs/LICENSE.pako
|
||||
|
||||
Or alternatively the license texts may be found here:
|
||||
|
||||
http://www.mozilla.org/MPL/2.0/
|
||||
http://www.gnu.org/licenses/lgpl.html and
|
||||
http://www.gnu.org/licenses/gpl.html
|
||||
http://scripts.sil.org/OFL
|
||||
http://en.wikipedia.org/wiki/BSD_licenses
|
||||
http://www.gzip.org/zlib/zlib_license.html
|
||||
http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
132
public/novnc/README.md
Normal file
@@ -0,0 +1,132 @@
|
||||
## noVNC: HTML5 VNC Client
|
||||
|
||||
[](https://travis-ci.org/kanaka/noVNC)
|
||||
|
||||
### Description
|
||||
|
||||
noVNC is a HTML5 VNC client that runs well in any modern browser
|
||||
including mobile browsers (iPhone/iPad and Android).
|
||||
|
||||
Many companies/projects have integrated noVNC including [Ganeti Web
|
||||
Manager](http://code.osuosl.org/projects/ganeti-webmgr),
|
||||
[OpenStack](http://www.openstack.org),
|
||||
[OpenNebula](http://opennebula.org/), and
|
||||
[LibVNCServer](http://libvncserver.sourceforge.net). See [the Projects
|
||||
and Companies wiki
|
||||
page](https://github.com/kanaka/noVNC/wiki/ProjectsCompanies-using-noVNC)
|
||||
for a more complete list with additional info and links.
|
||||
|
||||
### News/help/contact
|
||||
|
||||
Notable commits, announcements and news are posted to
|
||||
<a href="http://www.twitter.com/noVNC">@noVNC</a>
|
||||
|
||||
If you are a noVNC developer/integrator/user (or want to be) please
|
||||
join the <a
|
||||
href="https://groups.google.com/forum/?fromgroups#!forum/novnc">noVNC
|
||||
discussion group</a>
|
||||
|
||||
Bugs and feature requests can be submitted via [github
|
||||
issues](https://github.com/kanaka/noVNC/issues). If you are looking
|
||||
for a place to start contributing to noVNC, a good place to start
|
||||
would be the issues that are marked as
|
||||
["patchwelcome"](https://github.com/kanaka/noVNC/issues?labels=patchwelcome).
|
||||
|
||||
If you want to show appreciation for noVNC you could donate to a great
|
||||
non-profits such as: [Compassion
|
||||
International](http://www.compassion.com/), [SIL](http://www.sil.org),
|
||||
[Habitat for Humanity](http://www.habitat.org), [Electronic Frontier
|
||||
Foundation](https://www.eff.org/), [Against Malaria
|
||||
Foundation](http://www.againstmalaria.com/), [Nothing But
|
||||
Nets](http://www.nothingbutnets.net/), etc. Please tweet <a
|
||||
href="http://www.twitter.com/noVNC">@noVNC</a> if you do.
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* Supports all modern browsers including mobile (iOS, Android)
|
||||
* Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG
|
||||
* WebSocket SSL/TLS encryption (i.e. "wss://") support
|
||||
* 24-bit true color and 8 bit colour mapped
|
||||
* Supports desktop resize notification/pseudo-encoding
|
||||
* Local or remote cursor
|
||||
* Clipboard copy/paste
|
||||
* Clipping or scolling modes for large remote screens
|
||||
* Easy site integration and theming (3 example themes included)
|
||||
* Licensed under the [MPL 2.0](http://www.mozilla.org/MPL/2.0/)
|
||||
|
||||
### Screenshots
|
||||
|
||||
Running in Chrome before and after connecting:
|
||||
|
||||
<img src="http://kanaka.github.com/noVNC/img/noVNC-5.png" width=400> <img src="http://kanaka.github.com/noVNC/img/noVNC-7.jpg" width=400>
|
||||
|
||||
See more screenshots <a href="http://kanaka.github.com/noVNC/screenshots.html">here</a>.
|
||||
|
||||
|
||||
### Browser Requirements
|
||||
|
||||
* HTML5 Canvas (with createImageData): Chrome, Firefox 3.6+, iOS
|
||||
Safari, Opera 11+, Internet Explorer 9+, etc.
|
||||
|
||||
* HTML5 WebSockets and Typed Arrays
|
||||
|
||||
* Fast Javascript Engine: this is not strictly a requirement, but
|
||||
without a fast Javascript engine, noVNC might be painfully slow.
|
||||
|
||||
* See the more detailed [browser compatibility wiki page](https://github.com/kanaka/noVNC/wiki/Browser-support).
|
||||
|
||||
|
||||
### Server Requirements
|
||||
|
||||
Unless you are using a VNC server with support for WebSockets
|
||||
connections (such as
|
||||
[x11vnc/libvncserver](http://libvncserver.sourceforge.net/),
|
||||
[QEMU](http://www.qemu.org/), or
|
||||
[PocketVNC](http://www.pocketvnc.com/blog/?page_id=866)), you need to
|
||||
use a WebSockets to TCP socket proxy. There is a python proxy included
|
||||
('websockify').
|
||||
|
||||
|
||||
### Quick Start
|
||||
|
||||
* Use the launch script to start a mini-webserver and the WebSockets
|
||||
proxy (websockify). The `--vnc` option is used to specify the location of
|
||||
a running VNC server:
|
||||
|
||||
`./utils/launch.sh --vnc localhost:5901`
|
||||
|
||||
* Point your browser to the cut-and-paste URL that is output by the
|
||||
launch script. Enter a password if the VNC server has one
|
||||
configured. Hit the Connect button and enjoy!
|
||||
|
||||
|
||||
### Other Pages
|
||||
|
||||
* [Encrypted Connections](https://github.com/kanaka/websockify/wiki/Encrypted-Connections). How to setup websockify so that you can use encrypted connections from noVNC.
|
||||
|
||||
* [Advanced Usage](https://github.com/kanaka/noVNC/wiki/Advanced-usage). Starting a VNC server, advanced websockify usage, etc.
|
||||
|
||||
* [Integrating noVNC](https://github.com/kanaka/noVNC/wiki/Integration) into existing projects.
|
||||
|
||||
* [Troubleshooting noVNC](https://github.com/kanaka/noVNC/wiki/Troubleshooting) problems.
|
||||
|
||||
|
||||
### Authors/Contributors
|
||||
|
||||
* Core team:
|
||||
* [Joel Martin](https://github.com/kanaka)
|
||||
* [Samuel Mannehed](https://github.com/samhed) (Cendio)
|
||||
* [Peter Åstrand](https://github.com/astrand) (Cendio)
|
||||
* [Solly Ross](https://github.com/DirectXMan12) (Red Hat / OpenStack)
|
||||
|
||||
* Notable contributions:
|
||||
* UI and Icons : Chris Gordon
|
||||
* Original Logo : Michael Sersen
|
||||
* tight encoding : Michael Tinglof (Mercuri.ca)
|
||||
|
||||
* Included libraries:
|
||||
* as3crypto : Henri Torgemane (code.google.com/p/as3crypto)
|
||||
* base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
|
||||
* DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)
|
||||
* Pako : Vitaly Puzrin (https://github.com/nodeca/pako)
|
||||
202
public/novnc/docs/LICENSE.Apache-2.0
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
22
public/novnc/docs/LICENSE.BSD-2-Clause
Normal file
@@ -0,0 +1,22 @@
|
||||
Copyright (c) <year>, <copyright holder>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
24
public/novnc/docs/LICENSE.BSD-3-Clause
Normal file
@@ -0,0 +1,24 @@
|
||||
Copyright (c) <year>, <copyright holder>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the <organization> nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
621
public/novnc/docs/LICENSE.GPL-3
Normal file
@@ -0,0 +1,621 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
165
public/novnc/docs/LICENSE.LGPL-3
Normal file
@@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
373
public/novnc/docs/LICENSE.MPL-2.0
Normal file
@@ -0,0 +1,373 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
||||
91
public/novnc/docs/LICENSE.OFL-1.1
Normal file
@@ -0,0 +1,91 @@
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
21
public/novnc/docs/LICENSE.pako
Normal file
@@ -0,0 +1,21 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (C) 2014 by Vitaly Puzrin
|
||||
|
||||
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 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.
|
||||
27
public/novnc/docs/LICENSE.zlib
Normal file
@@ -0,0 +1,27 @@
|
||||
Copyright (c) <year>, <copyright holder>
|
||||
All rights reserved.
|
||||
|
||||
This software is provided 'as-is', without any express
|
||||
or implied warranty. In no event will the authors be
|
||||
held liable for any damages arising from the use of
|
||||
this software.
|
||||
|
||||
Permission is granted to anyone to use this software
|
||||
for any purpose, including commercial applications,
|
||||
and to alter it and redistribute it freely, subject to
|
||||
the following restrictions:
|
||||
|
||||
1. The origin of this software must not be
|
||||
misrepresented; you must not claim that you
|
||||
wrote the original software. If you use this
|
||||
software in a product, an acknowledgment in
|
||||
the product documentation would be appreciated
|
||||
but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked
|
||||
as such, and must not be misrepresented as
|
||||
being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from
|
||||
any source distribution.
|
||||
|
||||
1
public/novnc/docs/VERSION
Normal file
@@ -0,0 +1 @@
|
||||
0.6.1
|
||||
4
public/novnc/docs/flash_policy.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
Manual setup:
|
||||
|
||||
DATA="echo \'<cross-domain-policy><allow-access-from domain=\\\"*\\\" to-ports=\\\"*\\\" /></cross-domain-policy>\'"
|
||||
/usr/bin/socat -T 1 TCP-L:843,reuseaddr,fork,crlf SYSTEM:"$DATA"
|
||||
76
public/novnc/docs/links
Normal file
@@ -0,0 +1,76 @@
|
||||
New tight PNG protocol:
|
||||
http://wiki.qemu.org/VNC_Tight_PNG
|
||||
http://xf.iksaif.net/blog/index.php?post/2010/06/14/QEMU:-Tight-PNG-and-some-profiling
|
||||
|
||||
RFB protocol and extensions:
|
||||
http://tigervnc.org/cgi-bin/rfbproto
|
||||
|
||||
Canvas Browser Compatibility:
|
||||
http://philip.html5.org/tests/canvas/suite/tests/results.html
|
||||
|
||||
WebSockets API standard:
|
||||
http://www.whatwg.org/specs/web-apps/current-work/complete.html#websocket
|
||||
http://dev.w3.org/html5/websockets/
|
||||
http://www.ietf.org/id/draft-ietf-hybi-thewebsocketprotocol-00.txt
|
||||
|
||||
Browser Keyboard Events detailed:
|
||||
http://unixpapa.com/js/key.html
|
||||
|
||||
ActionScript (Flash) WebSocket implementation:
|
||||
http://github.com/gimite/web-socket-js
|
||||
|
||||
ActionScript (Flash) crypto/TLS library:
|
||||
http://code.google.com/p/as3crypto
|
||||
http://github.com/lyokato/as3crypto_patched
|
||||
|
||||
TLS Protocol:
|
||||
http://en.wikipedia.org/wiki/Transport_Layer_Security
|
||||
|
||||
Generate self-signed certificate:
|
||||
http://docs.python.org/dev/library/ssl.html#certificates
|
||||
|
||||
Cursor appearance/style (for Cursor pseudo-encoding):
|
||||
http://en.wikipedia.org/wiki/ICO_(file_format)
|
||||
http://www.daubnet.com/en/file-format-cur
|
||||
https://developer.mozilla.org/en/Using_URL_values_for_the_cursor_property
|
||||
http://www.fileformat.info/format/bmp/egff.htm
|
||||
|
||||
Icon/Cursor file format:
|
||||
http://msdn.microsoft.com/en-us/library/ms997538
|
||||
http://msdn.microsoft.com/en-us/library/aa921550.aspx
|
||||
http://msdn.microsoft.com/en-us/library/aa930622.aspx
|
||||
|
||||
|
||||
RDP Protocol specification:
|
||||
http://msdn.microsoft.com/en-us/library/cc240445(v=PROT.10).aspx
|
||||
|
||||
|
||||
Related projects:
|
||||
|
||||
guacamole: http://guacamole.sourceforge.net/
|
||||
|
||||
- Web client, but Java servlet does pre-processing
|
||||
|
||||
jsvnc: http://code.google.com/p/jsvnc/
|
||||
|
||||
- No releases
|
||||
|
||||
webvnc: http://code.google.com/p/webvnc/
|
||||
|
||||
- Jetty web server gateway, no updates since April 2008.
|
||||
|
||||
RealVNC Java applet: http://www.realvnc.com/support/javavncviewer.html
|
||||
|
||||
- Java applet
|
||||
|
||||
Flashlight-VNC: http://www.wizhelp.com/flashlight-vnc/
|
||||
|
||||
- Adobe Flash implementation
|
||||
|
||||
FVNC: http://osflash.org/fvnc
|
||||
|
||||
- Adbove Flash implementation
|
||||
|
||||
CanVNC: http://canvnc.sourceforge.net/
|
||||
|
||||
- HTML client with REST to VNC python proxy. Mostly vapor.
|
||||
5
public/novnc/docs/notes
Normal file
@@ -0,0 +1,5 @@
|
||||
Rebuilding inflator.js
|
||||
|
||||
- Download pako from npm
|
||||
- Install browserify using npm
|
||||
- browserify utils/inflator.partial.js -o include/inflator.js -s inflator
|
||||
34
public/novnc/docs/release.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
- Decide a new version number X.Y.Z (follow SemVer)
|
||||
- Update version in package.json
|
||||
- Update version in docs/VERSION
|
||||
- Commit the change with a commit like "Release X.Y.Z"
|
||||
- Add a new release on GitHub called "vX.Y.Z", and populate it with
|
||||
release notes of the following form (where A.B.C is the last release):
|
||||
|
||||
Major Changes Since A.B.C
|
||||
=========================
|
||||
|
||||
*Insert warnings here about incompatibilities*
|
||||
|
||||
*Thanks to all the contributors who filed bugs, added features, and fixed bugs
|
||||
during this release :tada:*
|
||||
|
||||
App-visible Changes
|
||||
-------------------
|
||||
|
||||
- *feature* a feature which improves the app usage (#PRNUM)
|
||||
- *bugfix* a bug fix which fixes the app usage (#PRNUM)
|
||||
- *refactor* a refactor which changes the app usage (#PRNUM)
|
||||
|
||||
Library-visible Changes
|
||||
-----------------------
|
||||
|
||||
- *feature* a feature which improves the noVNC APIs (#PRNUM)
|
||||
- *bugfix* a bug fix which fixes the noVNC APIs (#PRNUM)
|
||||
- *refactor* a refactor which changes the noVNC APIs (#PRNUM)
|
||||
|
||||
App-internals Changes
|
||||
---------------------
|
||||
|
||||
- *bugfix* a bug fix with affects the internals of noVNC only (#PRNUM)
|
||||
- *refactor* a refactor which affects the internals of noVNC only (#PRNUM)
|
||||
147
public/novnc/docs/rfb_notes
Normal file
@@ -0,0 +1,147 @@
|
||||
5.1.1 ProtocolVersion: 12, 12 bytes
|
||||
|
||||
- Sent by server, max supported
|
||||
12 ascii - "RFB 003.008\n"
|
||||
- Response by client, version to use
|
||||
12 ascii - "RFB 003.003\n"
|
||||
|
||||
5.1.2 Authentication: >=4, [16, 4] bytes
|
||||
|
||||
- Sent by server
|
||||
CARD32 - authentication-scheme
|
||||
0 - connection failed
|
||||
CARD32 - length
|
||||
length - reason
|
||||
1 - no authentication
|
||||
|
||||
2 - VNC authentication
|
||||
16 CARD8 - challenge (random bytes)
|
||||
|
||||
- Response by client (if VNC authentication)
|
||||
16 CARD8 - client encrypts the challenge with DES, using user
|
||||
password as key, sends resulting 16 byte response
|
||||
|
||||
- Response by server (if VNC authentication)
|
||||
CARD32 - 0 - OK
|
||||
1 - failed
|
||||
2 - too-many
|
||||
|
||||
5.1.3 ClientInitialisation: 1 byte
|
||||
- Sent by client
|
||||
CARD8 - shared-flag, 0 exclusive, non-zero shared
|
||||
|
||||
5.1.4 ServerInitialisation: >=24 bytes
|
||||
- Sent by server
|
||||
CARD16 - framebuffer-width
|
||||
CARD16 - framebuffer-height
|
||||
16 byte PIXEL_FORMAT - server-pixel-format
|
||||
CARD8 - bits-per-pixel
|
||||
CARD8 - depth
|
||||
CARD8 - big-endian-flag, non-zero is big endian
|
||||
CARD8 - true-color-flag, non-zero then next 6 apply
|
||||
CARD16 - red-max
|
||||
CARD16 - green-max
|
||||
CARD16 - blue-max
|
||||
CARD8 - red-shift
|
||||
CARD8 - green-shift
|
||||
CARD8 - blue-shift
|
||||
3 bytes - padding
|
||||
CARD32 - name-length
|
||||
|
||||
CARD8[length] - name-string
|
||||
|
||||
|
||||
|
||||
Client to Server Messages:
|
||||
|
||||
5.2.1 SetPixelFormat: 20 bytes
|
||||
CARD8: 0 - message-type
|
||||
...
|
||||
|
||||
5.2.2 FixColourMapEntries: >=6 bytes
|
||||
CARD8: 1 - message-type
|
||||
...
|
||||
|
||||
5.2.3 SetEncodings: >=8 bytes
|
||||
CARD8: 2 - message-type
|
||||
CARD8 - padding
|
||||
CARD16 - numer-of-encodings
|
||||
|
||||
CARD32 - encoding-type in preference order
|
||||
0 - raw
|
||||
1 - copy-rectangle
|
||||
2 - RRE
|
||||
4 - CoRRE
|
||||
5 - hextile
|
||||
|
||||
5.2.4 FramebufferUpdateRequest (10 bytes)
|
||||
CARD8: 3 - message-type
|
||||
CARD8 - incremental (0 for full-update, non-zero for incremental)
|
||||
CARD16 - x-position
|
||||
CARD16 - y-position
|
||||
CARD16 - width
|
||||
CARD16 - height
|
||||
|
||||
|
||||
5.2.5 KeyEvent: 8 bytes
|
||||
CARD8: 4 - message-type
|
||||
CARD8 - down-flag
|
||||
2 bytes - padding
|
||||
CARD32 - key (X-Windows keysym values)
|
||||
|
||||
5.2.6 PointerEvent: 6 bytes
|
||||
CARD8: 5 - message-type
|
||||
CARD8 - button-mask
|
||||
CARD16 - x-position
|
||||
CARD16 - y-position
|
||||
|
||||
5.2.7 ClientCutText: >=9 bytes
|
||||
CARD8: 6 - message-type
|
||||
...
|
||||
|
||||
|
||||
Server to Client Messages:
|
||||
|
||||
5.3.1 FramebufferUpdate
|
||||
CARD8: 0 - message-type
|
||||
1 byte - padding
|
||||
CARD16 - number-of-rectangles
|
||||
|
||||
CARD16 - x-position
|
||||
CARD16 - y-position
|
||||
CARD16 - width
|
||||
CARD16 - height
|
||||
CARD16 - encoding-type:
|
||||
0 - raw
|
||||
1 - copy rectangle
|
||||
2 - RRE
|
||||
4 - CoRRE
|
||||
5 - hextile
|
||||
|
||||
raw:
|
||||
- width x height pixel values
|
||||
|
||||
copy rectangle:
|
||||
CARD16 - src-x-position
|
||||
CARD16 - src-y-position
|
||||
|
||||
RRE:
|
||||
CARD32 - N number-of-subrectangles
|
||||
Nxd bytes - background-pixel-value (d bits-per-pixel)
|
||||
|
||||
...
|
||||
|
||||
5.3.2 SetColourMapEntries (no support)
|
||||
CARD8: 1 - message-type
|
||||
...
|
||||
|
||||
5.3.3 Bell
|
||||
CARD8: 2 - message-type
|
||||
|
||||
5.3.4 ServerCutText
|
||||
CARD8: 3 - message-type
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
public/novnc/docs/rfbproto-3.3.pdf
Normal file
BIN
public/novnc/docs/rfbproto-3.7.pdf
Normal file
BIN
public/novnc/docs/rfbproto-3.8.pdf
Normal file
1
public/novnc/favicon.ico
Symbolic link
@@ -0,0 +1 @@
|
||||
images/favicon.ico
|
||||
BIN
public/novnc/images/alt.png
Normal file
|
After Width: | Height: | Size: 339 B |
BIN
public/novnc/images/clipboard.png
Normal file
|
After Width: | Height: | Size: 501 B |
BIN
public/novnc/images/connect.png
Normal file
|
After Width: | Height: | Size: 404 B |
BIN
public/novnc/images/ctrl.png
Normal file
|
After Width: | Height: | Size: 354 B |
BIN
public/novnc/images/ctrlaltdel.png
Normal file
|
After Width: | Height: | Size: 317 B |
BIN
public/novnc/images/disconnect.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/novnc/images/drag.png
Normal file
|
After Width: | Height: | Size: 963 B |
BIN
public/novnc/images/esc.png
Normal file
|
After Width: | Height: | Size: 385 B |