update
49
PicUpload.html
Normal file
@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>KLanding Pic Uploader</title>
|
||||
|
||||
<!-- Google web fonts -->
|
||||
<link href="http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700" rel='stylesheet' />
|
||||
|
||||
<!-- The main CSS file -->
|
||||
<link href="/assets/css/style.css" rel="stylesheet" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<form id="upload" method="post" action="upload.php" enctype="multipart/form-data">
|
||||
<div id="drop">
|
||||
Drop Here
|
||||
|
||||
<a>Browse</a>
|
||||
<input type="file" name="upl" multiple />
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<!-- The file uploads will be shown here -->
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
|
||||
<footer>
|
||||
|
||||
</footer>
|
||||
|
||||
<!-- JavaScript Includes -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
||||
<script src="/assets/js/jquery.knob.js"></script>
|
||||
|
||||
<!-- jQuery File Upload Dependencies -->
|
||||
<script src="/assets/js/jquery.ui.widget.js"></script>
|
||||
<script src="/assets/js/jquery.iframe-transport.js"></script>
|
||||
<script src="/assets/js/jquery.fileupload.js"></script>
|
||||
|
||||
<!-- Our main JS file -->
|
||||
<script src="/assets/js/script.js"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,12 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<form action="upload.php" method="post" enctype="multipart/form-data">
|
||||
Select image to upload:
|
||||
<input type="file" name="fileToUpload" id="fileToUpload">
|
||||
<input type="submit" value="Upload Image" name="submit">
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
260
assets/css/style.css
Normal file
@ -0,0 +1,260 @@
|
||||
/*-------------------------
|
||||
Simple reset
|
||||
--------------------------*/
|
||||
|
||||
|
||||
*{
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------
|
||||
General Styles
|
||||
--------------------------*/
|
||||
|
||||
|
||||
html{
|
||||
background-color:#ebebec;
|
||||
|
||||
background-image:-webkit-radial-gradient(center, #ebebec, #b4b4b4);
|
||||
background-image:-moz-radial-gradient(center, #ebebec, #b4b4b4);
|
||||
background-image:radial-gradient(center, #ebebec, #b4b4b4);
|
||||
|
||||
min-height:900px;
|
||||
}
|
||||
|
||||
body{
|
||||
font:15px/1.3 Arial, sans-serif;
|
||||
color: #4f4f4f;
|
||||
}
|
||||
|
||||
a, a:visited {
|
||||
outline:none;
|
||||
color:#389dc1;
|
||||
}
|
||||
|
||||
a:hover{
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
section, footer, header, aside{
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------
|
||||
The file upload form
|
||||
-----------------------------*/
|
||||
|
||||
|
||||
#upload{
|
||||
font-family:'PT Sans Narrow', sans-serif;
|
||||
background-color:#373a3d;
|
||||
|
||||
background-image:-webkit-linear-gradient(top, #373a3d, #313437);
|
||||
background-image:-moz-linear-gradient(top, #373a3d, #313437);
|
||||
background-image:linear-gradient(top, #373a3d, #313437);
|
||||
|
||||
width:250px;
|
||||
padding:30px;
|
||||
border-radius:3px;
|
||||
|
||||
margin:200px auto 100px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#drop{
|
||||
background-color: #2E3134;
|
||||
padding: 40px 50px;
|
||||
margin-bottom: 30px;
|
||||
border: 20px solid rgba(0, 0, 0, 0);
|
||||
border-radius: 3px;
|
||||
border-image: url('../img/border-image.png') 25 repeat;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
|
||||
font-size:16px;
|
||||
font-weight:bold;
|
||||
color:#7f858a;
|
||||
}
|
||||
|
||||
#drop a{
|
||||
background-color:#007a96;
|
||||
padding:12px 26px;
|
||||
color:#fff;
|
||||
font-size:14px;
|
||||
border-radius:2px;
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
margin-top:12px;
|
||||
line-height:1;
|
||||
}
|
||||
|
||||
#drop a:hover{
|
||||
background-color:#0986a3;
|
||||
}
|
||||
|
||||
#drop input{
|
||||
display:none;
|
||||
}
|
||||
|
||||
#upload ul{
|
||||
list-style:none;
|
||||
margin:0 -30px;
|
||||
border-top:1px solid #2b2e31;
|
||||
border-bottom:1px solid #3d4043;
|
||||
}
|
||||
|
||||
#upload ul li{
|
||||
|
||||
background-color:#333639;
|
||||
|
||||
background-image:-webkit-linear-gradient(top, #333639, #303335);
|
||||
background-image:-moz-linear-gradient(top, #333639, #303335);
|
||||
background-image:linear-gradient(top, #333639, #303335);
|
||||
|
||||
border-top:1px solid #3d4043;
|
||||
border-bottom:1px solid #2b2e31;
|
||||
padding:15px;
|
||||
height: 52px;
|
||||
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#upload ul li input{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#upload ul li p{
|
||||
width: 144px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #EEE;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 100px;
|
||||
}
|
||||
|
||||
#upload ul li i{
|
||||
font-weight: normal;
|
||||
font-style:normal;
|
||||
color:#7f7f7f;
|
||||
display:block;
|
||||
}
|
||||
|
||||
#upload ul li canvas{
|
||||
top: 15px;
|
||||
left: 32px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#upload ul li span{
|
||||
width: 15px;
|
||||
height: 12px;
|
||||
background: url('../img/icons.png') no-repeat;
|
||||
position: absolute;
|
||||
top: 34px;
|
||||
right: 33px;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
#upload ul li.working span{
|
||||
height: 16px;
|
||||
background-position: 0 -12px;
|
||||
}
|
||||
|
||||
#upload ul li.error p{
|
||||
color:red;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------
|
||||
The Demo Footer
|
||||
-----------------------------*/
|
||||
|
||||
|
||||
footer{
|
||||
background-color: #080808;
|
||||
bottom: 0;
|
||||
box-shadow: 0 -1px 2px rgba(0,0,0,0.4);
|
||||
height: 40px;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 100000;
|
||||
}
|
||||
|
||||
footer h2{
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
position: absolute;
|
||||
top:0;
|
||||
left: 50%;
|
||||
bottom:0;
|
||||
margin-left: -420px;
|
||||
padding:13px 20px 0;
|
||||
border:1px solid #000;
|
||||
border-width:0 1px;
|
||||
background-color:rgba(0,0,0,0.6);
|
||||
box-shadow:0 0 5px #000 inset;
|
||||
line-height: 1;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
footer h2 a{
|
||||
color: #EEEEEE !important;
|
||||
text-decoration:none !important;
|
||||
}
|
||||
|
||||
footer h2 i{
|
||||
font-style:normal;
|
||||
color:#888;
|
||||
}
|
||||
|
||||
#tzine-download{
|
||||
opacity:0.9;
|
||||
background-color:#257691;
|
||||
font-size:11px;
|
||||
text-align:center;
|
||||
text-transform:uppercase;
|
||||
width:150px;
|
||||
height:28px;
|
||||
line-height:28px;
|
||||
text-decoration:none !important;
|
||||
|
||||
display: inline-block;
|
||||
border-radius: 2px;
|
||||
color: #fff !Important;
|
||||
font-weight: bold;
|
||||
box-shadow: 0 -1px 2px #1e5e74 inset;
|
||||
|
||||
border-top:1px solid #26849c;
|
||||
|
||||
text-shadow:1px 1px 1px #1e6176;
|
||||
margin-top:6px;
|
||||
}
|
||||
|
||||
#tzine-download:hover{
|
||||
opacity:1;
|
||||
}
|
||||
|
||||
#tzine-actions{
|
||||
position:absolute;
|
||||
top:0;
|
||||
width:500px;
|
||||
right:50%;
|
||||
margin-right:-420px;
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
#tzine-actions iframe{
|
||||
display: inline-block;
|
||||
height: 21px;
|
||||
width: 95px;
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-top: 11px;
|
||||
}
|
BIN
assets/img/border-image.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/img/icons.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
1201
assets/js/jquery.fileupload.js
vendored
Normal file
185
assets/js/jquery.iframe-transport.js
Normal file
@ -0,0 +1,185 @@
|
||||
/*
|
||||
* jQuery Iframe Transport Plugin 1.6.1
|
||||
* https://github.com/blueimp/jQuery-File-Upload
|
||||
*
|
||||
* Copyright 2011, Sebastian Tschan
|
||||
* https://blueimp.net
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* http://www.opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
/*jslint unparam: true, nomen: true */
|
||||
/*global define, window, document */
|
||||
|
||||
(function (factory) {
|
||||
'use strict';
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// Register as an anonymous AMD module:
|
||||
define(['jquery'], factory);
|
||||
} else {
|
||||
// Browser globals:
|
||||
factory(window.jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
'use strict';
|
||||
|
||||
// Helper variable to create unique names for the transport iframes:
|
||||
var counter = 0;
|
||||
|
||||
// The iframe transport accepts three additional options:
|
||||
// options.fileInput: a jQuery collection of file input fields
|
||||
// options.paramName: the parameter name for the file form data,
|
||||
// overrides the name property of the file input field(s),
|
||||
// can be a string or an array of strings.
|
||||
// options.formData: an array of objects with name and value properties,
|
||||
// equivalent to the return data of .serializeArray(), e.g.:
|
||||
// [{name: 'a', value: 1}, {name: 'b', value: 2}]
|
||||
$.ajaxTransport('iframe', function (options) {
|
||||
if (options.async) {
|
||||
var form,
|
||||
iframe,
|
||||
addParamChar;
|
||||
return {
|
||||
send: function (_, completeCallback) {
|
||||
form = $('<form style="display:none;"></form>');
|
||||
form.attr('accept-charset', options.formAcceptCharset);
|
||||
addParamChar = /\?/.test(options.url) ? '&' : '?';
|
||||
// XDomainRequest only supports GET and POST:
|
||||
if (options.type === 'DELETE') {
|
||||
options.url = options.url + addParamChar + '_method=DELETE';
|
||||
options.type = 'POST';
|
||||
} else if (options.type === 'PUT') {
|
||||
options.url = options.url + addParamChar + '_method=PUT';
|
||||
options.type = 'POST';
|
||||
} else if (options.type === 'PATCH') {
|
||||
options.url = options.url + addParamChar + '_method=PATCH';
|
||||
options.type = 'POST';
|
||||
}
|
||||
// javascript:false as initial iframe src
|
||||
// prevents warning popups on HTTPS in IE6.
|
||||
// IE versions below IE8 cannot set the name property of
|
||||
// elements that have already been added to the DOM,
|
||||
// so we set the name along with the iframe HTML markup:
|
||||
iframe = $(
|
||||
'<iframe src="javascript:false;" name="iframe-transport-' +
|
||||
(counter += 1) + '"></iframe>'
|
||||
).bind('load', function () {
|
||||
var fileInputClones,
|
||||
paramNames = $.isArray(options.paramName) ?
|
||||
options.paramName : [options.paramName];
|
||||
iframe
|
||||
.unbind('load')
|
||||
.bind('load', function () {
|
||||
var response;
|
||||
// Wrap in a try/catch block to catch exceptions thrown
|
||||
// when trying to access cross-domain iframe contents:
|
||||
try {
|
||||
response = iframe.contents();
|
||||
// Google Chrome and Firefox do not throw an
|
||||
// exception when calling iframe.contents() on
|
||||
// cross-domain requests, so we unify the response:
|
||||
if (!response.length || !response[0].firstChild) {
|
||||
throw new Error();
|
||||
}
|
||||
} catch (e) {
|
||||
response = undefined;
|
||||
}
|
||||
// The complete callback returns the
|
||||
// iframe content document as response object:
|
||||
completeCallback(
|
||||
200,
|
||||
'success',
|
||||
{'iframe': response}
|
||||
);
|
||||
// Fix for IE endless progress bar activity bug
|
||||
// (happens on form submits to iframe targets):
|
||||
$('<iframe src="javascript:false;"></iframe>')
|
||||
.appendTo(form);
|
||||
form.remove();
|
||||
});
|
||||
form
|
||||
.prop('target', iframe.prop('name'))
|
||||
.prop('action', options.url)
|
||||
.prop('method', options.type);
|
||||
if (options.formData) {
|
||||
$.each(options.formData, function (index, field) {
|
||||
$('<input type="hidden"/>')
|
||||
.prop('name', field.name)
|
||||
.val(field.value)
|
||||
.appendTo(form);
|
||||
});
|
||||
}
|
||||
if (options.fileInput && options.fileInput.length &&
|
||||
options.type === 'POST') {
|
||||
fileInputClones = options.fileInput.clone();
|
||||
// Insert a clone for each file input field:
|
||||
options.fileInput.after(function (index) {
|
||||
return fileInputClones[index];
|
||||
});
|
||||
if (options.paramName) {
|
||||
options.fileInput.each(function (index) {
|
||||
$(this).prop(
|
||||
'name',
|
||||
paramNames[index] || options.paramName
|
||||
);
|
||||
});
|
||||
}
|
||||
// Appending the file input fields to the hidden form
|
||||
// removes them from their original location:
|
||||
form
|
||||
.append(options.fileInput)
|
||||
.prop('enctype', 'multipart/form-data')
|
||||
// enctype must be set as encoding for IE:
|
||||
.prop('encoding', 'multipart/form-data');
|
||||
}
|
||||
form.submit();
|
||||
// Insert the file input fields at their original location
|
||||
// by replacing the clones with the originals:
|
||||
if (fileInputClones && fileInputClones.length) {
|
||||
options.fileInput.each(function (index, input) {
|
||||
var clone = $(fileInputClones[index]);
|
||||
$(input).prop('name', clone.prop('name'));
|
||||
clone.replaceWith(input);
|
||||
});
|
||||
}
|
||||
});
|
||||
form.append(iframe).appendTo(document.body);
|
||||
},
|
||||
abort: function () {
|
||||
if (iframe) {
|
||||
// javascript:false as iframe src aborts the request
|
||||
// and prevents warning popups on HTTPS in IE6.
|
||||
// concat is used to avoid the "Script URL" JSLint error:
|
||||
iframe
|
||||
.unbind('load')
|
||||
.prop('src', 'javascript'.concat(':false;'));
|
||||
}
|
||||
if (form) {
|
||||
form.remove();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// The iframe transport returns the iframe content document as response.
|
||||
// The following adds converters from iframe to text, json, html, and script:
|
||||
$.ajaxSetup({
|
||||
converters: {
|
||||
'iframe text': function (iframe) {
|
||||
return iframe && $(iframe[0].body).text();
|
||||
},
|
||||
'iframe json': function (iframe) {
|
||||
return iframe && $.parseJSON($(iframe[0].body).text());
|
||||
},
|
||||
'iframe html': function (iframe) {
|
||||
return iframe && $(iframe[0].body).html();
|
||||
},
|
||||
'iframe script': function (iframe) {
|
||||
return iframe && $.globalEval($(iframe[0].body).text());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}));
|
661
assets/js/jquery.knob.js
Normal file
@ -0,0 +1,661 @@
|
||||
/*!jQuery Knob*/
|
||||
/**
|
||||
* Downward compatible, touchable dial
|
||||
*
|
||||
* Version: 1.2.0 (15/07/2012)
|
||||
* Requires: jQuery v1.7+
|
||||
*
|
||||
* Copyright (c) 2012 Anthony Terrien
|
||||
* Under MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Thanks to vor, eskimoblood, spiffistan, FabrizioC
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
/**
|
||||
* Kontrol library
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Definition of globals and core
|
||||
*/
|
||||
var k = {}, // kontrol
|
||||
max = Math.max,
|
||||
min = Math.min;
|
||||
|
||||
k.c = {};
|
||||
k.c.d = $(document);
|
||||
k.c.t = function (e) {
|
||||
return e.originalEvent.touches.length - 1;
|
||||
};
|
||||
|
||||
/**
|
||||
* Kontrol Object
|
||||
*
|
||||
* Definition of an abstract UI control
|
||||
*
|
||||
* Each concrete component must call this one.
|
||||
* <code>
|
||||
* k.o.call(this);
|
||||
* </code>
|
||||
*/
|
||||
k.o = function () {
|
||||
var s = this;
|
||||
|
||||
this.o = null; // array of options
|
||||
this.$ = null; // jQuery wrapped element
|
||||
this.i = null; // mixed HTMLInputElement or array of HTMLInputElement
|
||||
this.g = null; // 2D graphics context for 'pre-rendering'
|
||||
this.v = null; // value ; mixed array or integer
|
||||
this.cv = null; // change value ; not commited value
|
||||
this.x = 0; // canvas x position
|
||||
this.y = 0; // canvas y position
|
||||
this.$c = null; // jQuery canvas element
|
||||
this.c = null; // rendered canvas context
|
||||
this.t = 0; // touches index
|
||||
this.isInit = false;
|
||||
this.fgColor = null; // main color
|
||||
this.pColor = null; // previous color
|
||||
this.dH = null; // draw hook
|
||||
this.cH = null; // change hook
|
||||
this.eH = null; // cancel hook
|
||||
this.rH = null; // release hook
|
||||
|
||||
this.run = function () {
|
||||
var cf = function (e, conf) {
|
||||
var k;
|
||||
for (k in conf) {
|
||||
s.o[k] = conf[k];
|
||||
}
|
||||
s.init();
|
||||
s._configure()
|
||||
._draw();
|
||||
};
|
||||
|
||||
if(this.$.data('kontroled')) return;
|
||||
this.$.data('kontroled', true);
|
||||
|
||||
this.extend();
|
||||
this.o = $.extend(
|
||||
{
|
||||
// Config
|
||||
min : this.$.data('min') || 0,
|
||||
max : this.$.data('max') || 100,
|
||||
stopper : true,
|
||||
readOnly : this.$.data('readonly'),
|
||||
|
||||
// UI
|
||||
cursor : (this.$.data('cursor') === true && 30)
|
||||
|| this.$.data('cursor')
|
||||
|| 0,
|
||||
thickness : this.$.data('thickness') || 0.35,
|
||||
lineCap : this.$.data('linecap') || 'butt',
|
||||
width : this.$.data('width') || 200,
|
||||
height : this.$.data('height') || 200,
|
||||
displayInput : this.$.data('displayinput') == null || this.$.data('displayinput'),
|
||||
displayPrevious : this.$.data('displayprevious'),
|
||||
fgColor : this.$.data('fgcolor') || '#87CEEB',
|
||||
inputColor: this.$.data('inputcolor') || this.$.data('fgcolor') || '#87CEEB',
|
||||
inline : false,
|
||||
step : this.$.data('step') || 1,
|
||||
|
||||
// Hooks
|
||||
draw : null, // function () {}
|
||||
change : null, // function (value) {}
|
||||
cancel : null, // function () {}
|
||||
release : null // function (value) {}
|
||||
}, this.o
|
||||
);
|
||||
|
||||
// routing value
|
||||
if(this.$.is('fieldset')) {
|
||||
|
||||
// fieldset = array of integer
|
||||
this.v = {};
|
||||
this.i = this.$.find('input')
|
||||
this.i.each(function(k) {
|
||||
var $this = $(this);
|
||||
s.i[k] = $this;
|
||||
s.v[k] = $this.val();
|
||||
|
||||
$this.bind(
|
||||
'change'
|
||||
, function () {
|
||||
var val = {};
|
||||
val[k] = $this.val();
|
||||
s.val(val);
|
||||
}
|
||||
);
|
||||
});
|
||||
this.$.find('legend').remove();
|
||||
|
||||
} else {
|
||||
// input = integer
|
||||
this.i = this.$;
|
||||
this.v = this.$.val();
|
||||
(this.v == '') && (this.v = this.o.min);
|
||||
|
||||
this.$.bind(
|
||||
'change'
|
||||
, function () {
|
||||
s.val(s._validate(s.$.val()));
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
(!this.o.displayInput) && this.$.hide();
|
||||
|
||||
this.$c = $('<canvas width="' +
|
||||
this.o.width + 'px" height="' +
|
||||
this.o.height + 'px"></canvas>');
|
||||
this.c = this.$c[0].getContext("2d");
|
||||
|
||||
this.$
|
||||
.wrap($('<div style="' + (this.o.inline ? 'display:inline;' : '') +
|
||||
'width:' + this.o.width + 'px;height:' +
|
||||
this.o.height + 'px;"></div>'))
|
||||
.before(this.$c);
|
||||
|
||||
if (this.v instanceof Object) {
|
||||
this.cv = {};
|
||||
this.copy(this.v, this.cv);
|
||||
} else {
|
||||
this.cv = this.v;
|
||||
}
|
||||
|
||||
this.$
|
||||
.bind("configure", cf)
|
||||
.parent()
|
||||
.bind("configure", cf);
|
||||
|
||||
this._listen()
|
||||
._configure()
|
||||
._xy()
|
||||
.init();
|
||||
|
||||
this.isInit = true;
|
||||
|
||||
this._draw();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._draw = function () {
|
||||
|
||||
// canvas pre-rendering
|
||||
var d = true,
|
||||
c = document.createElement('canvas');
|
||||
|
||||
c.width = s.o.width;
|
||||
c.height = s.o.height;
|
||||
s.g = c.getContext('2d');
|
||||
|
||||
s.clear();
|
||||
|
||||
s.dH
|
||||
&& (d = s.dH());
|
||||
|
||||
(d !== false) && s.draw();
|
||||
|
||||
s.c.drawImage(c, 0, 0);
|
||||
c = null;
|
||||
};
|
||||
|
||||
this._touch = function (e) {
|
||||
|
||||
var touchMove = function (e) {
|
||||
|
||||
var v = s.xy2val(
|
||||
e.originalEvent.touches[s.t].pageX,
|
||||
e.originalEvent.touches[s.t].pageY
|
||||
);
|
||||
|
||||
if (v == s.cv) return;
|
||||
|
||||
if (
|
||||
s.cH
|
||||
&& (s.cH(v) === false)
|
||||
) return;
|
||||
|
||||
|
||||
s.change(s._validate(v));
|
||||
s._draw();
|
||||
};
|
||||
|
||||
// get touches index
|
||||
this.t = k.c.t(e);
|
||||
|
||||
// First touch
|
||||
touchMove(e);
|
||||
|
||||
// Touch events listeners
|
||||
k.c.d
|
||||
.bind("touchmove.k", touchMove)
|
||||
.bind(
|
||||
"touchend.k"
|
||||
, function () {
|
||||
k.c.d.unbind('touchmove.k touchend.k');
|
||||
|
||||
if (
|
||||
s.rH
|
||||
&& (s.rH(s.cv) === false)
|
||||
) return;
|
||||
|
||||
s.val(s.cv);
|
||||
}
|
||||
);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._mouse = function (e) {
|
||||
|
||||
var mouseMove = function (e) {
|
||||
var v = s.xy2val(e.pageX, e.pageY);
|
||||
if (v == s.cv) return;
|
||||
|
||||
if (
|
||||
s.cH
|
||||
&& (s.cH(v) === false)
|
||||
) return;
|
||||
|
||||
s.change(s._validate(v));
|
||||
s._draw();
|
||||
};
|
||||
|
||||
// First click
|
||||
mouseMove(e);
|
||||
|
||||
// Mouse events listeners
|
||||
k.c.d
|
||||
.bind("mousemove.k", mouseMove)
|
||||
.bind(
|
||||
// Escape key cancel current change
|
||||
"keyup.k"
|
||||
, function (e) {
|
||||
if (e.keyCode === 27) {
|
||||
k.c.d.unbind("mouseup.k mousemove.k keyup.k");
|
||||
|
||||
if (
|
||||
s.eH
|
||||
&& (s.eH() === false)
|
||||
) return;
|
||||
|
||||
s.cancel();
|
||||
}
|
||||
}
|
||||
)
|
||||
.bind(
|
||||
"mouseup.k"
|
||||
, function (e) {
|
||||
k.c.d.unbind('mousemove.k mouseup.k keyup.k');
|
||||
|
||||
if (
|
||||
s.rH
|
||||
&& (s.rH(s.cv) === false)
|
||||
) return;
|
||||
|
||||
s.val(s.cv);
|
||||
}
|
||||
);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._xy = function () {
|
||||
var o = this.$c.offset();
|
||||
this.x = o.left;
|
||||
this.y = o.top;
|
||||
return this;
|
||||
};
|
||||
|
||||
this._listen = function () {
|
||||
|
||||
if (!this.o.readOnly) {
|
||||
this.$c
|
||||
.bind(
|
||||
"mousedown"
|
||||
, function (e) {
|
||||
e.preventDefault();
|
||||
s._xy()._mouse(e);
|
||||
}
|
||||
)
|
||||
.bind(
|
||||
"touchstart"
|
||||
, function (e) {
|
||||
e.preventDefault();
|
||||
s._xy()._touch(e);
|
||||
}
|
||||
);
|
||||
this.listen();
|
||||
} else {
|
||||
this.$.attr('readonly', 'readonly');
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._configure = function () {
|
||||
|
||||
// Hooks
|
||||
if (this.o.draw) this.dH = this.o.draw;
|
||||
if (this.o.change) this.cH = this.o.change;
|
||||
if (this.o.cancel) this.eH = this.o.cancel;
|
||||
if (this.o.release) this.rH = this.o.release;
|
||||
|
||||
if (this.o.displayPrevious) {
|
||||
this.pColor = this.h2rgba(this.o.fgColor, "0.4");
|
||||
this.fgColor = this.h2rgba(this.o.fgColor, "0.6");
|
||||
} else {
|
||||
this.fgColor = this.o.fgColor;
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this._clear = function () {
|
||||
this.$c[0].width = this.$c[0].width;
|
||||
};
|
||||
|
||||
this._validate = function(v) {
|
||||
return (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step;
|
||||
};
|
||||
|
||||
// Abstract methods
|
||||
this.listen = function () {}; // on start, one time
|
||||
this.extend = function () {}; // each time configure triggered
|
||||
this.init = function () {}; // each time configure triggered
|
||||
this.change = function (v) {}; // on change
|
||||
this.val = function (v) {}; // on release
|
||||
this.xy2val = function (x, y) {}; //
|
||||
this.draw = function () {}; // on change / on release
|
||||
this.clear = function () { this._clear(); };
|
||||
|
||||
// Utils
|
||||
this.h2rgba = function (h, a) {
|
||||
var rgb;
|
||||
h = h.substring(1,7)
|
||||
rgb = [parseInt(h.substring(0,2),16)
|
||||
,parseInt(h.substring(2,4),16)
|
||||
,parseInt(h.substring(4,6),16)];
|
||||
return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")";
|
||||
};
|
||||
|
||||
this.copy = function (f, t) {
|
||||
for (var i in f) { t[i] = f[i]; }
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* k.Dial
|
||||
*/
|
||||
k.Dial = function () {
|
||||
k.o.call(this);
|
||||
|
||||
this.startAngle = null;
|
||||
this.xy = null;
|
||||
this.radius = null;
|
||||
this.lineWidth = null;
|
||||
this.cursorExt = null;
|
||||
this.w2 = null;
|
||||
this.PI2 = 2*Math.PI;
|
||||
|
||||
this.extend = function () {
|
||||
this.o = $.extend(
|
||||
{
|
||||
bgColor : this.$.data('bgcolor') || '#EEEEEE',
|
||||
angleOffset : this.$.data('angleoffset') || 0,
|
||||
angleArc : this.$.data('anglearc') || 360,
|
||||
inline : true
|
||||
}, this.o
|
||||
);
|
||||
};
|
||||
|
||||
this.val = function (v) {
|
||||
if (null != v) {
|
||||
this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v;
|
||||
this.v = this.cv;
|
||||
this.$.val(this.v);
|
||||
this._draw();
|
||||
} else {
|
||||
return this.v;
|
||||
}
|
||||
};
|
||||
|
||||
this.xy2val = function (x, y) {
|
||||
var a, ret;
|
||||
|
||||
a = Math.atan2(
|
||||
x - (this.x + this.w2)
|
||||
, - (y - this.y - this.w2)
|
||||
) - this.angleOffset;
|
||||
|
||||
if(this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) {
|
||||
// if isset angleArc option, set to min if .5 under min
|
||||
a = 0;
|
||||
} else if (a < 0) {
|
||||
a += this.PI2;
|
||||
}
|
||||
|
||||
ret = ~~ (0.5 + (a * (this.o.max - this.o.min) / this.angleArc))
|
||||
+ this.o.min;
|
||||
|
||||
this.o.stopper
|
||||
&& (ret = max(min(ret, this.o.max), this.o.min));
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
this.listen = function () {
|
||||
// bind MouseWheel
|
||||
var s = this,
|
||||
mw = function (e) {
|
||||
e.preventDefault();
|
||||
var ori = e.originalEvent
|
||||
,deltaX = ori.detail || ori.wheelDeltaX
|
||||
,deltaY = ori.detail || ori.wheelDeltaY
|
||||
,v = parseInt(s.$.val()) + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0);
|
||||
|
||||
if (
|
||||
s.cH
|
||||
&& (s.cH(v) === false)
|
||||
) return;
|
||||
|
||||
s.val(v);
|
||||
}
|
||||
, kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step};
|
||||
|
||||
this.$
|
||||
.bind(
|
||||
"keydown"
|
||||
,function (e) {
|
||||
var kc = e.keyCode;
|
||||
|
||||
// numpad support
|
||||
if(kc >= 96 && kc <= 105) {
|
||||
kc = e.keyCode = kc - 48;
|
||||
}
|
||||
|
||||
kval = parseInt(String.fromCharCode(kc));
|
||||
|
||||
if (isNaN(kval)) {
|
||||
|
||||
(kc !== 13) // enter
|
||||
&& (kc !== 8) // bs
|
||||
&& (kc !== 9) // tab
|
||||
&& (kc !== 189) // -
|
||||
&& e.preventDefault();
|
||||
|
||||
// arrows
|
||||
if ($.inArray(kc,[37,38,39,40]) > -1) {
|
||||
e.preventDefault();
|
||||
|
||||
var v = parseInt(s.$.val()) + kv[kc] * m;
|
||||
|
||||
s.o.stopper
|
||||
&& (v = max(min(v, s.o.max), s.o.min));
|
||||
|
||||
s.change(v);
|
||||
s._draw();
|
||||
|
||||
// long time keydown speed-up
|
||||
to = window.setTimeout(
|
||||
function () { m*=2; }
|
||||
,30
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
.bind(
|
||||
"keyup"
|
||||
,function (e) {
|
||||
if (isNaN(kval)) {
|
||||
if (to) {
|
||||
window.clearTimeout(to);
|
||||
to = null;
|
||||
m = 1;
|
||||
s.val(s.$.val());
|
||||
}
|
||||
} else {
|
||||
// kval postcond
|
||||
(s.$.val() > s.o.max && s.$.val(s.o.max))
|
||||
|| (s.$.val() < s.o.min && s.$.val(s.o.min));
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
this.$c.bind("mousewheel DOMMouseScroll", mw);
|
||||
this.$.bind("mousewheel DOMMouseScroll", mw)
|
||||
};
|
||||
|
||||
this.init = function () {
|
||||
|
||||
if (
|
||||
this.v < this.o.min
|
||||
|| this.v > this.o.max
|
||||
) this.v = this.o.min;
|
||||
|
||||
this.$.val(this.v);
|
||||
this.w2 = this.o.width / 2;
|
||||
this.cursorExt = this.o.cursor / 100;
|
||||
this.xy = this.w2;
|
||||
this.lineWidth = this.xy * this.o.thickness;
|
||||
this.lineCap = this.o.lineCap;
|
||||
this.radius = this.xy - this.lineWidth / 2;
|
||||
|
||||
this.o.angleOffset
|
||||
&& (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset);
|
||||
|
||||
this.o.angleArc
|
||||
&& (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc);
|
||||
|
||||
// deg to rad
|
||||
this.angleOffset = this.o.angleOffset * Math.PI / 180;
|
||||
this.angleArc = this.o.angleArc * Math.PI / 180;
|
||||
|
||||
// compute start and end angles
|
||||
this.startAngle = 1.5 * Math.PI + this.angleOffset;
|
||||
this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
|
||||
|
||||
var s = max(
|
||||
String(Math.abs(this.o.max)).length
|
||||
, String(Math.abs(this.o.min)).length
|
||||
, 2
|
||||
) + 2;
|
||||
|
||||
this.o.displayInput
|
||||
&& this.i.css({
|
||||
'width' : ((this.o.width / 2 + 4) >> 0) + 'px'
|
||||
,'height' : ((this.o.width / 3) >> 0) + 'px'
|
||||
,'position' : 'absolute'
|
||||
,'vertical-align' : 'middle'
|
||||
,'margin-top' : ((this.o.width / 3) >> 0) + 'px'
|
||||
,'margin-left' : '-' + ((this.o.width * 3 / 4 + 2) >> 0) + 'px'
|
||||
,'border' : 0
|
||||
,'background' : 'none'
|
||||
,'font' : 'bold ' + ((this.o.width / s) >> 0) + 'px Arial'
|
||||
,'text-align' : 'center'
|
||||
,'color' : this.o.inputColor || this.o.fgColor
|
||||
,'padding' : '0px'
|
||||
,'-webkit-appearance': 'none'
|
||||
})
|
||||
|| this.i.css({
|
||||
'width' : '0px'
|
||||
,'visibility' : 'hidden'
|
||||
});
|
||||
};
|
||||
|
||||
this.change = function (v) {
|
||||
this.cv = v;
|
||||
this.$.val(v);
|
||||
};
|
||||
|
||||
this.angle = function (v) {
|
||||
return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min);
|
||||
};
|
||||
|
||||
this.draw = function () {
|
||||
|
||||
var c = this.g, // context
|
||||
a = this.angle(this.cv) // Angle
|
||||
, sat = this.startAngle // Start angle
|
||||
, eat = sat + a // End angle
|
||||
, sa, ea // Previous angles
|
||||
, r = 1;
|
||||
|
||||
c.lineWidth = this.lineWidth;
|
||||
|
||||
c.lineCap = this.lineCap;
|
||||
|
||||
this.o.cursor
|
||||
&& (sat = eat - this.cursorExt)
|
||||
&& (eat = eat + this.cursorExt);
|
||||
|
||||
c.beginPath();
|
||||
c.strokeStyle = this.o.bgColor;
|
||||
c.arc(this.xy, this.xy, this.radius, this.endAngle, this.startAngle, true);
|
||||
c.stroke();
|
||||
|
||||
if (this.o.displayPrevious) {
|
||||
ea = this.startAngle + this.angle(this.v);
|
||||
sa = this.startAngle;
|
||||
this.o.cursor
|
||||
&& (sa = ea - this.cursorExt)
|
||||
&& (ea = ea + this.cursorExt);
|
||||
|
||||
c.beginPath();
|
||||
c.strokeStyle = this.pColor;
|
||||
c.arc(this.xy, this.xy, this.radius, sa, ea, false);
|
||||
c.stroke();
|
||||
r = (this.cv == this.v);
|
||||
}
|
||||
|
||||
c.beginPath();
|
||||
c.strokeStyle = r ? this.o.fgColor : this.fgColor ;
|
||||
c.arc(this.xy, this.xy, this.radius, sat, eat, false);
|
||||
c.stroke();
|
||||
};
|
||||
|
||||
this.cancel = function () {
|
||||
this.val(this.v);
|
||||
};
|
||||
};
|
||||
|
||||
$.fn.dial = $.fn.knob = function (o) {
|
||||
return this.each(
|
||||
function () {
|
||||
var d = new k.Dial();
|
||||
d.o = o;
|
||||
d.$ = $(this);
|
||||
d.run();
|
||||
}
|
||||
).parent();
|
||||
};
|
||||
|
||||
})(jQuery);
|
530
assets/js/jquery.ui.widget.js
vendored
Normal file
@ -0,0 +1,530 @@
|
||||
/*
|
||||
* jQuery UI Widget 1.10.1+amd
|
||||
* https://github.com/blueimp/jQuery-File-Upload
|
||||
*
|
||||
* Copyright 2013 jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/jQuery.widget/
|
||||
*/
|
||||
|
||||
(function (factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
// Register as an anonymous AMD module:
|
||||
define(["jquery"], factory);
|
||||
} else {
|
||||
// Browser globals:
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function( $, undefined ) {
|
||||
|
||||
var uuid = 0,
|
||||
slice = Array.prototype.slice,
|
||||
_cleanData = $.cleanData;
|
||||
$.cleanData = function( elems ) {
|
||||
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
|
||||
try {
|
||||
$( elem ).triggerHandler( "remove" );
|
||||
// http://bugs.jquery.com/ticket/8235
|
||||
} catch( e ) {}
|
||||
}
|
||||
_cleanData( elems );
|
||||
};
|
||||
|
||||
$.widget = function( name, base, prototype ) {
|
||||
var fullName, existingConstructor, constructor, basePrototype,
|
||||
// proxiedPrototype allows the provided prototype to remain unmodified
|
||||
// so that it can be used as a mixin for multiple widgets (#8876)
|
||||
proxiedPrototype = {},
|
||||
namespace = name.split( "." )[ 0 ];
|
||||
|
||||
name = name.split( "." )[ 1 ];
|
||||
fullName = namespace + "-" + name;
|
||||
|
||||
if ( !prototype ) {
|
||||
prototype = base;
|
||||
base = $.Widget;
|
||||
}
|
||||
|
||||
// create selector for plugin
|
||||
$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
|
||||
return !!$.data( elem, fullName );
|
||||
};
|
||||
|
||||
$[ namespace ] = $[ namespace ] || {};
|
||||
existingConstructor = $[ namespace ][ name ];
|
||||
constructor = $[ namespace ][ name ] = function( options, element ) {
|
||||
// allow instantiation without "new" keyword
|
||||
if ( !this._createWidget ) {
|
||||
return new constructor( options, element );
|
||||
}
|
||||
|
||||
// allow instantiation without initializing for simple inheritance
|
||||
// must use "new" keyword (the code above always passes args)
|
||||
if ( arguments.length ) {
|
||||
this._createWidget( options, element );
|
||||
}
|
||||
};
|
||||
// extend with the existing constructor to carry over any static properties
|
||||
$.extend( constructor, existingConstructor, {
|
||||
version: prototype.version,
|
||||
// copy the object used to create the prototype in case we need to
|
||||
// redefine the widget later
|
||||
_proto: $.extend( {}, prototype ),
|
||||
// track widgets that inherit from this widget in case this widget is
|
||||
// redefined after a widget inherits from it
|
||||
_childConstructors: []
|
||||
});
|
||||
|
||||
basePrototype = new base();
|
||||
// we need to make the options hash a property directly on the new instance
|
||||
// otherwise we'll modify the options hash on the prototype that we're
|
||||
// inheriting from
|
||||
basePrototype.options = $.widget.extend( {}, basePrototype.options );
|
||||
$.each( prototype, function( prop, value ) {
|
||||
if ( !$.isFunction( value ) ) {
|
||||
proxiedPrototype[ prop ] = value;
|
||||
return;
|
||||
}
|
||||
proxiedPrototype[ prop ] = (function() {
|
||||
var _super = function() {
|
||||
return base.prototype[ prop ].apply( this, arguments );
|
||||
},
|
||||
_superApply = function( args ) {
|
||||
return base.prototype[ prop ].apply( this, args );
|
||||
};
|
||||
return function() {
|
||||
var __super = this._super,
|
||||
__superApply = this._superApply,
|
||||
returnValue;
|
||||
|
||||
this._super = _super;
|
||||
this._superApply = _superApply;
|
||||
|
||||
returnValue = value.apply( this, arguments );
|
||||
|
||||
this._super = __super;
|
||||
this._superApply = __superApply;
|
||||
|
||||
return returnValue;
|
||||
};
|
||||
})();
|
||||
});
|
||||
constructor.prototype = $.widget.extend( basePrototype, {
|
||||
// TODO: remove support for widgetEventPrefix
|
||||
// always use the name + a colon as the prefix, e.g., draggable:start
|
||||
// don't prefix for widgets that aren't DOM-based
|
||||
widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name
|
||||
}, proxiedPrototype, {
|
||||
constructor: constructor,
|
||||
namespace: namespace,
|
||||
widgetName: name,
|
||||
widgetFullName: fullName
|
||||
});
|
||||
|
||||
// If this widget is being redefined then we need to find all widgets that
|
||||
// are inheriting from it and redefine all of them so that they inherit from
|
||||
// the new version of this widget. We're essentially trying to replace one
|
||||
// level in the prototype chain.
|
||||
if ( existingConstructor ) {
|
||||
$.each( existingConstructor._childConstructors, function( i, child ) {
|
||||
var childPrototype = child.prototype;
|
||||
|
||||
// redefine the child widget using the same prototype that was
|
||||
// originally used, but inherit from the new version of the base
|
||||
$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
|
||||
});
|
||||
// remove the list of existing child constructors from the old constructor
|
||||
// so the old child constructors can be garbage collected
|
||||
delete existingConstructor._childConstructors;
|
||||
} else {
|
||||
base._childConstructors.push( constructor );
|
||||
}
|
||||
|
||||
$.widget.bridge( name, constructor );
|
||||
};
|
||||
|
||||
$.widget.extend = function( target ) {
|
||||
var input = slice.call( arguments, 1 ),
|
||||
inputIndex = 0,
|
||||
inputLength = input.length,
|
||||
key,
|
||||
value;
|
||||
for ( ; inputIndex < inputLength; inputIndex++ ) {
|
||||
for ( key in input[ inputIndex ] ) {
|
||||
value = input[ inputIndex ][ key ];
|
||||
if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
|
||||
// Clone objects
|
||||
if ( $.isPlainObject( value ) ) {
|
||||
target[ key ] = $.isPlainObject( target[ key ] ) ?
|
||||
$.widget.extend( {}, target[ key ], value ) :
|
||||
// Don't extend strings, arrays, etc. with objects
|
||||
$.widget.extend( {}, value );
|
||||
// Copy everything else by reference
|
||||
} else {
|
||||
target[ key ] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
|
||||
$.widget.bridge = function( name, object ) {
|
||||
var fullName = object.prototype.widgetFullName || name;
|
||||
$.fn[ name ] = function( options ) {
|
||||
var isMethodCall = typeof options === "string",
|
||||
args = slice.call( arguments, 1 ),
|
||||
returnValue = this;
|
||||
|
||||
// allow multiple hashes to be passed on init
|
||||
options = !isMethodCall && args.length ?
|
||||
$.widget.extend.apply( null, [ options ].concat(args) ) :
|
||||
options;
|
||||
|
||||
if ( isMethodCall ) {
|
||||
this.each(function() {
|
||||
var methodValue,
|
||||
instance = $.data( this, fullName );
|
||||
if ( !instance ) {
|
||||
return $.error( "cannot call methods on " + name + " prior to initialization; " +
|
||||
"attempted to call method '" + options + "'" );
|
||||
}
|
||||
if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
|
||||
return $.error( "no such method '" + options + "' for " + name + " widget instance" );
|
||||
}
|
||||
methodValue = instance[ options ].apply( instance, args );
|
||||
if ( methodValue !== instance && methodValue !== undefined ) {
|
||||
returnValue = methodValue && methodValue.jquery ?
|
||||
returnValue.pushStack( methodValue.get() ) :
|
||||
methodValue;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.each(function() {
|
||||
var instance = $.data( this, fullName );
|
||||
if ( instance ) {
|
||||
instance.option( options || {} )._init();
|
||||
} else {
|
||||
$.data( this, fullName, new object( options, this ) );
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
};
|
||||
};
|
||||
|
||||
$.Widget = function( /* options, element */ ) {};
|
||||
$.Widget._childConstructors = [];
|
||||
|
||||
$.Widget.prototype = {
|
||||
widgetName: "widget",
|
||||
widgetEventPrefix: "",
|
||||
defaultElement: "<div>",
|
||||
options: {
|
||||
disabled: false,
|
||||
|
||||
// callbacks
|
||||
create: null
|
||||
},
|
||||
_createWidget: function( options, element ) {
|
||||
element = $( element || this.defaultElement || this )[ 0 ];
|
||||
this.element = $( element );
|
||||
this.uuid = uuid++;
|
||||
this.eventNamespace = "." + this.widgetName + this.uuid;
|
||||
this.options = $.widget.extend( {},
|
||||
this.options,
|
||||
this._getCreateOptions(),
|
||||
options );
|
||||
|
||||
this.bindings = $();
|
||||
this.hoverable = $();
|
||||
this.focusable = $();
|
||||
|
||||
if ( element !== this ) {
|
||||
$.data( element, this.widgetFullName, this );
|
||||
this._on( true, this.element, {
|
||||
remove: function( event ) {
|
||||
if ( event.target === element ) {
|
||||
this.destroy();
|
||||
}
|
||||
}
|
||||
});
|
||||
this.document = $( element.style ?
|
||||
// element within the document
|
||||
element.ownerDocument :
|
||||
// element is window or document
|
||||
element.document || element );
|
||||
this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
|
||||
}
|
||||
|
||||
this._create();
|
||||
this._trigger( "create", null, this._getCreateEventData() );
|
||||
this._init();
|
||||
},
|
||||
_getCreateOptions: $.noop,
|
||||
_getCreateEventData: $.noop,
|
||||
_create: $.noop,
|
||||
_init: $.noop,
|
||||
|
||||
destroy: function() {
|
||||
this._destroy();
|
||||
// we can probably remove the unbind calls in 2.0
|
||||
// all event bindings should go through this._on()
|
||||
this.element
|
||||
.unbind( this.eventNamespace )
|
||||
// 1.9 BC for #7810
|
||||
// TODO remove dual storage
|
||||
.removeData( this.widgetName )
|
||||
.removeData( this.widgetFullName )
|
||||
// support: jquery <1.6.3
|
||||
// http://bugs.jquery.com/ticket/9413
|
||||
.removeData( $.camelCase( this.widgetFullName ) );
|
||||
this.widget()
|
||||
.unbind( this.eventNamespace )
|
||||
.removeAttr( "aria-disabled" )
|
||||
.removeClass(
|
||||
this.widgetFullName + "-disabled " +
|
||||
"ui-state-disabled" );
|
||||
|
||||
// clean up events and states
|
||||
this.bindings.unbind( this.eventNamespace );
|
||||
this.hoverable.removeClass( "ui-state-hover" );
|
||||
this.focusable.removeClass( "ui-state-focus" );
|
||||
},
|
||||
_destroy: $.noop,
|
||||
|
||||
widget: function() {
|
||||
return this.element;
|
||||
},
|
||||
|
||||
option: function( key, value ) {
|
||||
var options = key,
|
||||
parts,
|
||||
curOption,
|
||||
i;
|
||||
|
||||
if ( arguments.length === 0 ) {
|
||||
// don't return a reference to the internal hash
|
||||
return $.widget.extend( {}, this.options );
|
||||
}
|
||||
|
||||
if ( typeof key === "string" ) {
|
||||
// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
|
||||
options = {};
|
||||
parts = key.split( "." );
|
||||
key = parts.shift();
|
||||
if ( parts.length ) {
|
||||
curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
|
||||
for ( i = 0; i < parts.length - 1; i++ ) {
|
||||
curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
|
||||
curOption = curOption[ parts[ i ] ];
|
||||
}
|
||||
key = parts.pop();
|
||||
if ( value === undefined ) {
|
||||
return curOption[ key ] === undefined ? null : curOption[ key ];
|
||||
}
|
||||
curOption[ key ] = value;
|
||||
} else {
|
||||
if ( value === undefined ) {
|
||||
return this.options[ key ] === undefined ? null : this.options[ key ];
|
||||
}
|
||||
options[ key ] = value;
|
||||
}
|
||||
}
|
||||
|
||||
this._setOptions( options );
|
||||
|
||||
return this;
|
||||
},
|
||||
_setOptions: function( options ) {
|
||||
var key;
|
||||
|
||||
for ( key in options ) {
|
||||
this._setOption( key, options[ key ] );
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
_setOption: function( key, value ) {
|
||||
this.options[ key ] = value;
|
||||
|
||||
if ( key === "disabled" ) {
|
||||
this.widget()
|
||||
.toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )
|
||||
.attr( "aria-disabled", value );
|
||||
this.hoverable.removeClass( "ui-state-hover" );
|
||||
this.focusable.removeClass( "ui-state-focus" );
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
return this._setOption( "disabled", false );
|
||||
},
|
||||
disable: function() {
|
||||
return this._setOption( "disabled", true );
|
||||
},
|
||||
|
||||
_on: function( suppressDisabledCheck, element, handlers ) {
|
||||
var delegateElement,
|
||||
instance = this;
|
||||
|
||||
// no suppressDisabledCheck flag, shuffle arguments
|
||||
if ( typeof suppressDisabledCheck !== "boolean" ) {
|
||||
handlers = element;
|
||||
element = suppressDisabledCheck;
|
||||
suppressDisabledCheck = false;
|
||||
}
|
||||
|
||||
// no element argument, shuffle and use this.element
|
||||
if ( !handlers ) {
|
||||
handlers = element;
|
||||
element = this.element;
|
||||
delegateElement = this.widget();
|
||||
} else {
|
||||
// accept selectors, DOM elements
|
||||
element = delegateElement = $( element );
|
||||
this.bindings = this.bindings.add( element );
|
||||
}
|
||||
|
||||
$.each( handlers, function( event, handler ) {
|
||||
function handlerProxy() {
|
||||
// allow widgets to customize the disabled handling
|
||||
// - disabled as an array instead of boolean
|
||||
// - disabled class as method for disabling individual parts
|
||||
if ( !suppressDisabledCheck &&
|
||||
( instance.options.disabled === true ||
|
||||
$( this ).hasClass( "ui-state-disabled" ) ) ) {
|
||||
return;
|
||||
}
|
||||
return ( typeof handler === "string" ? instance[ handler ] : handler )
|
||||
.apply( instance, arguments );
|
||||
}
|
||||
|
||||
// copy the guid so direct unbinding works
|
||||
if ( typeof handler !== "string" ) {
|
||||
handlerProxy.guid = handler.guid =
|
||||
handler.guid || handlerProxy.guid || $.guid++;
|
||||
}
|
||||
|
||||
var match = event.match( /^(\w+)\s*(.*)$/ ),
|
||||
eventName = match[1] + instance.eventNamespace,
|
||||
selector = match[2];
|
||||
if ( selector ) {
|
||||
delegateElement.delegate( selector, eventName, handlerProxy );
|
||||
} else {
|
||||
element.bind( eventName, handlerProxy );
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_off: function( element, eventName ) {
|
||||
eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
|
||||
element.unbind( eventName ).undelegate( eventName );
|
||||
},
|
||||
|
||||
_delay: function( handler, delay ) {
|
||||
function handlerProxy() {
|
||||
return ( typeof handler === "string" ? instance[ handler ] : handler )
|
||||
.apply( instance, arguments );
|
||||
}
|
||||
var instance = this;
|
||||
return setTimeout( handlerProxy, delay || 0 );
|
||||
},
|
||||
|
||||
_hoverable: function( element ) {
|
||||
this.hoverable = this.hoverable.add( element );
|
||||
this._on( element, {
|
||||
mouseenter: function( event ) {
|
||||
$( event.currentTarget ).addClass( "ui-state-hover" );
|
||||
},
|
||||
mouseleave: function( event ) {
|
||||
$( event.currentTarget ).removeClass( "ui-state-hover" );
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_focusable: function( element ) {
|
||||
this.focusable = this.focusable.add( element );
|
||||
this._on( element, {
|
||||
focusin: function( event ) {
|
||||
$( event.currentTarget ).addClass( "ui-state-focus" );
|
||||
},
|
||||
focusout: function( event ) {
|
||||
$( event.currentTarget ).removeClass( "ui-state-focus" );
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_trigger: function( type, event, data ) {
|
||||
var prop, orig,
|
||||
callback = this.options[ type ];
|
||||
|
||||
data = data || {};
|
||||
event = $.Event( event );
|
||||
event.type = ( type === this.widgetEventPrefix ?
|
||||
type :
|
||||
this.widgetEventPrefix + type ).toLowerCase();
|
||||
// the original event may come from any element
|
||||
// so we need to reset the target on the new event
|
||||
event.target = this.element[ 0 ];
|
||||
|
||||
// copy original event properties over to the new event
|
||||
orig = event.originalEvent;
|
||||
if ( orig ) {
|
||||
for ( prop in orig ) {
|
||||
if ( !( prop in event ) ) {
|
||||
event[ prop ] = orig[ prop ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.element.trigger( event, data );
|
||||
return !( $.isFunction( callback ) &&
|
||||
callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
|
||||
event.isDefaultPrevented() );
|
||||
}
|
||||
};
|
||||
|
||||
$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
|
||||
$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
|
||||
if ( typeof options === "string" ) {
|
||||
options = { effect: options };
|
||||
}
|
||||
var hasOptions,
|
||||
effectName = !options ?
|
||||
method :
|
||||
options === true || typeof options === "number" ?
|
||||
defaultEffect :
|
||||
options.effect || defaultEffect;
|
||||
options = options || {};
|
||||
if ( typeof options === "number" ) {
|
||||
options = { duration: options };
|
||||
}
|
||||
hasOptions = !$.isEmptyObject( options );
|
||||
options.complete = callback;
|
||||
if ( options.delay ) {
|
||||
element.delay( options.delay );
|
||||
}
|
||||
if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
|
||||
element[ method ]( options );
|
||||
} else if ( effectName !== method && element[ effectName ] ) {
|
||||
element[ effectName ]( options.duration, options.easing, callback );
|
||||
} else {
|
||||
element.queue(function( next ) {
|
||||
$( this )[ method ]();
|
||||
if ( callback ) {
|
||||
callback.call( element[ 0 ] );
|
||||
}
|
||||
next();
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
}));
|
95
assets/js/script.js
Normal file
@ -0,0 +1,95 @@
|
||||
$(function(){
|
||||
|
||||
var ul = $('#upload ul');
|
||||
|
||||
$('#drop a').click(function(){
|
||||
// Simulate a click on the file input button
|
||||
// to show the file browser dialog
|
||||
$(this).parent().find('input').click();
|
||||
});
|
||||
|
||||
// Initialize the jQuery File Upload plugin
|
||||
$('#upload').fileupload({
|
||||
|
||||
// This element will accept file drag/drop uploading
|
||||
dropZone: $('#drop'),
|
||||
|
||||
// This function is called when a file is added to the queue;
|
||||
// either via the browse button, or via drag/drop:
|
||||
add: function (e, data) {
|
||||
|
||||
var tpl = $('<li class="working"><input type="text" value="0" data-width="48" data-height="48"'+
|
||||
' data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" /><p></p><span></span></li>');
|
||||
|
||||
// Append the file name and file size
|
||||
tpl.find('p').text(data.files[0].name)
|
||||
.append('<i>' + formatFileSize(data.files[0].size) + '</i>');
|
||||
|
||||
// Add the HTML to the UL element
|
||||
data.context = tpl.appendTo(ul);
|
||||
|
||||
// Initialize the knob plugin
|
||||
tpl.find('input').knob();
|
||||
|
||||
// Listen for clicks on the cancel icon
|
||||
tpl.find('span').click(function(){
|
||||
|
||||
if(tpl.hasClass('working')){
|
||||
jqXHR.abort();
|
||||
}
|
||||
|
||||
tpl.fadeOut(function(){
|
||||
tpl.remove();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Automatically upload the file once it is added to the queue
|
||||
var jqXHR = data.submit();
|
||||
},
|
||||
|
||||
progress: function(e, data){
|
||||
|
||||
// Calculate the completion percentage of the upload
|
||||
var progress = parseInt(data.loaded / data.total * 100, 10);
|
||||
|
||||
// Update the hidden input field and trigger a change
|
||||
// so that the jQuery knob plugin knows to update the dial
|
||||
data.context.find('input').val(progress).change();
|
||||
|
||||
if(progress == 100){
|
||||
data.context.removeClass('working');
|
||||
}
|
||||
},
|
||||
|
||||
fail:function(e, data){
|
||||
// Something has gone wrong!
|
||||
data.context.addClass('error');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Prevent the default action when a file is dropped on the window
|
||||
$(document).on('drop dragover', function (e) {
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
// Helper function that formats the file sizes
|
||||
function formatFileSize(bytes) {
|
||||
if (typeof bytes !== 'number') {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (bytes >= 1000000000) {
|
||||
return (bytes / 1000000000).toFixed(2) + ' GB';
|
||||
}
|
||||
|
||||
if (bytes >= 1000000) {
|
||||
return (bytes / 1000000).toFixed(2) + ' MB';
|
||||
}
|
||||
|
||||
return (bytes / 1000).toFixed(2) + ' KB';
|
||||
}
|
||||
|
||||
});
|
@ -1,3 +1,19 @@
|
||||
<head>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
function togglebodyServices() {
|
||||
$('#servicestable tbody').toggle();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<?php
|
||||
/*
|
||||
* Script: Server Status
|
||||
@ -12,7 +28,7 @@
|
||||
require "configs_services.php";
|
||||
|
||||
# Start a variable to contain Service Status.
|
||||
$serverStatus = "<table width='190' border='0' cellspacing='0' cellpadding='1'><tr BGCOLOR='#0066FF'><th style='text-align: left;'><font color='white'>Service</font></th><th style='text-align: left;'><font color='white'>Status</font></th></tr>";
|
||||
$serverStatus = "<table id='servicestable' width='190' border='0' cellspacing='0' cellpadding='1'><thead><tr onclick='togglebodyServices()' BGCOLOR='#0066FF'><th style='text-align: left;'><font color='white'>Service</font></th><th style='text-align: left;'><font color='white'>Status</font></th></tr></thead>";
|
||||
|
||||
# Process all services montiored.
|
||||
foreach( $configs['servicesKloud'] as $serviceName => $servicePort )
|
||||
@ -31,7 +47,7 @@ foreach( $configs['servicesKloud'] as $serviceName => $servicePort )
|
||||
}
|
||||
|
||||
# Set the status Row.
|
||||
$serverStatus .= "<td BGCOLOR='#FFFFFF'><font color='#0066FF'>{$serviceName}</font></td><td BGCOLOR='#FFFFFF'><font color='white'>{$statusText}</font></td></tr>";
|
||||
$serverStatus .= "<tbody><td BGCOLOR='#FFFFFF'><font color='#0066FF'>{$serviceName}</font></td><td BGCOLOR='#FFFFFF'><font color='white'>{$statusText}</font></td></tr>";
|
||||
}
|
||||
|
||||
# Process all services montiored.
|
||||
@ -71,7 +87,7 @@ foreach( $configs['services'] as $serviceName => $servicePort )
|
||||
}
|
||||
|
||||
# Set the status Row.
|
||||
$serverStatus .= "<td BGCOLOR='#FFFFFF'><font color='#0066FF'>{$serviceName}</font></td><td BGCOLOR='#FFFFFF'><font color='white'>{$statusText}</font></td></tr>";
|
||||
$serverStatus .= "<td BGCOLOR='#FFFFFF'><font color='#0066FF'>{$serviceName}</font></td><td BGCOLOR='#FFFFFF'><font color='white'>{$statusText}</font></td></tr></tbody>";
|
||||
}
|
||||
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<table width='275' border='0' cellspacing='0' cellpadding='1'>
|
||||
<table width='275' cellspacing='0' cellpadding='1'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#0066FF'>
|
||||
<th style='text-align: left;'><font color='white'>Time</font></th>
|
||||
</tr>
|
||||
|
32
config.php
@ -10,8 +10,8 @@ $pass = ""; // Password for logging on
|
||||
///////////// Main Link Settings /////////////
|
||||
//// SAB Settings
|
||||
$sabvisible = ""; // Set to turn on or off links (0 = Off 1 = On)
|
||||
$sabname = "";
|
||||
$sabpicname = "";
|
||||
$sabname = ""; // Set an alternate name to the default displayed
|
||||
$sabpicname = ""; // Set an alternate image, you can upload with picupload.html, then just enter the name of the file you uploaded e.g. "sab.png"
|
||||
$sabport = ""; // Set the ports for your services
|
||||
////
|
||||
//// SickBeard Settings
|
||||
@ -45,7 +45,7 @@ $torrentport = ""; // uTorrent = 86 / Transmission = 9091
|
||||
$ftpvisible = "1";
|
||||
$ftpname = "";
|
||||
$ftppicname = "";
|
||||
$ftpport = "";
|
||||
$ftpport = "21";
|
||||
////
|
||||
//// MadSonic Settings
|
||||
$madsonicvisible = "1";
|
||||
@ -57,13 +57,13 @@ $madsonicport = "";
|
||||
$plexvisible = "1";
|
||||
$plexname = "";
|
||||
$plexpicname = "";
|
||||
$plexport = "";
|
||||
$plexport = "32400";
|
||||
////
|
||||
//// Squeezebox Settings
|
||||
$squeezevisible = "1";
|
||||
$squeezename = "";
|
||||
$squeezepicname = "";
|
||||
$squeezeport = "";
|
||||
$squeezeport = "9000";
|
||||
////
|
||||
//// Jdownloader Settings
|
||||
$jdownloadervisible = "1";
|
||||
@ -101,20 +101,20 @@ $drive7 = "J:";
|
||||
$serverstatusvisible = "1";
|
||||
//
|
||||
$server1visible = "1";
|
||||
$server1name = ""; // Set to Server Name to track
|
||||
$server1url = ""; // Set to Server URL to track (without http://)
|
||||
$server1name = "Karl"; // Set to Server Name to track
|
||||
$server1url = "home.k-world.me.uk"; // Set to Server URL to track (without http://)
|
||||
//
|
||||
$server2visible = "";
|
||||
$server2name = "";
|
||||
$server2url = "";
|
||||
$server2visible = "2";
|
||||
$server2name = "k";
|
||||
$server2url = "google.com";
|
||||
//
|
||||
$server3visible = "";
|
||||
$server3name = "";
|
||||
$server3url = "";
|
||||
$server3visible = "1";
|
||||
$server3name = "1";
|
||||
$server3url = "google.com";
|
||||
//
|
||||
$server4visible = "";
|
||||
$server4name = "";
|
||||
$server4url = "";
|
||||
$server4visible = "1";
|
||||
$server4name = "1";
|
||||
$server4url = "google.com";
|
||||
////
|
||||
|
||||
//// Custom Feeds
|
||||
|
@ -70,5 +70,11 @@ color: black;
|
||||
padding: 0 0 0 0;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#table{
|
||||
border-radius:15px;
|
||||
-moz-border-radius:15px;
|
||||
-webkit-border-radius:15px;
|
||||
}
|
||||
|
||||
</style>
|
@ -1,39 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -66,9 +30,6 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive1;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
@ -79,11 +40,3 @@ require_once 'DiskStatus.class.php';
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,39 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -66,9 +30,6 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive2;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
@ -80,11 +41,3 @@ require_once 'DiskStatus.class.php';
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,38 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -65,13 +30,9 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive3;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr class="hiddenRow">
|
||||
<td bgcolor='#FFFFFF'>
|
||||
<div class="disk">
|
||||
@ -79,11 +40,3 @@ require_once 'DiskStatus.class.php';
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,39 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -66,13 +30,8 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><?php echo $drive4;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive4;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
<tr class="hiddenRow">
|
||||
<td bgcolor='#FFFFFF'>
|
||||
@ -81,11 +40,3 @@ require_once 'DiskStatus.class.php';
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,39 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -66,9 +30,6 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive5;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
@ -79,11 +40,3 @@ require_once 'DiskStatus.class.php';
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,38 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -65,24 +30,13 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive6;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
<tr class="hiddenRow">
|
||||
<tr class="hiddenRow">
|
||||
<td bgcolor='#FFFFFF'>
|
||||
<div class="disk">
|
||||
<div class="used" style="width: <?= $barWidthC ?>px"><?= $diskStatusC->usedSpace() ?>% </div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,39 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
indicateSelected(formref.switchcontrol)
|
||||
}
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.hiddenRow { display: none; }
|
||||
</style>
|
||||
<script>
|
||||
function toggleNextRow(row) {
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include '../config.php';?>
|
||||
<?php
|
||||
|
||||
@ -66,9 +30,6 @@ require_once 'DiskStatus.class.php';
|
||||
}
|
||||
|
||||
?>
|
||||
<body>
|
||||
<div id="drivebox2" style="font:10pt Arial; color:#0066FF;">
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr onclick="toggleNextRow(this)" BGCOLOR='#FFFFFF'>
|
||||
<th style='text-align: left;'><font color='#0066FF'><?php echo $drive7;?>\<?= $freeSpaceC ?> (of <?= $totalSpaceC ?>)</font></th>
|
||||
</tr>
|
||||
@ -79,11 +40,3 @@ require_once 'DiskStatus.class.php';
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,10 +1,5 @@
|
||||
<table width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<tr BGCOLOR='#0066FF'>
|
||||
<thead>
|
||||
<tr onclick='togglebody()' BGCOLOR='#0066FF'>
|
||||
<th style='text-align: left;'><font color='white'>Drive Space</font></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td BGCOLOR='#FFFFFF'>
|
||||
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</thead>
|
BIN
jscolor/arrow.gif
Normal file
After Width: | Height: | Size: 66 B |
BIN
jscolor/cross.gif
Normal file
After Width: | Height: | Size: 83 B |
12
jscolor/demo.html
Normal file
@ -0,0 +1,12 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>jscolor demo</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type="text/javascript" src="jscolor.js"></script>
|
||||
|
||||
Click here: <input class="color" value="66ff00">
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
jscolor/hs.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
jscolor/hv.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
1010
jscolor/jscolor.js
Normal file
21
right.php
@ -18,6 +18,7 @@ indicateSelected(formref.switchcontrol)
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
@ -34,8 +35,13 @@ indicateSelected(formref.switchcontrol)
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
function togglebodytheme() {
|
||||
$('#themetable tbody').toggle();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<?php include 'config.php';?>
|
||||
<div id="style">
|
||||
<div class="innertube">
|
||||
@ -87,20 +93,27 @@ if ($customfeed3visible > "0") {
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<table width='275' border="0" cellpadding="1" cellspacing="0">
|
||||
<tbody>
|
||||
<tr onclick="toggleNextRow(this)">
|
||||
<table id='themetable' width='275' border="0" cellpadding="1" cellspacing="0">
|
||||
<thead>
|
||||
<tr onclick='togglebodytheme()'>
|
||||
<td bgcolor="#0066FF" style="text-align: left;"><font color="white">Theme</font></td>
|
||||
<td bgcolor="#0066FF"> </td>
|
||||
<td bgcolor="#0066FF"> </td>
|
||||
<td bgcolor="#0066FF"> </td>
|
||||
</tr>
|
||||
<tr class="hiddenRow">
|
||||
</thead>
|
||||
<tbody style= 'display:none'>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff"><a checked="checked" href="javascript:chooseStyle('white', 60)" onclick="parent.left.location.reload(); parent.main.location.reload()">White</a></td>
|
||||
<td bgcolor="#ffffff"><a href="javascript:chooseStyle('black', 60)" onclick="parent.left.location.reload(); parent.main.location.reload()">Black</a></td>
|
||||
<td bgcolor="#ffffff"><a href="javascript:chooseStyle('blue', 60)" onclick="parent.left.location.reload(); parent.main.location.reload()">Blue</a></td>
|
||||
<td bgcolor="#ffffff"><a href="javascript:chooseStyle('red', 60)" onclick="parent.left.location.reload(); parent.main.location.reload()">Red</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" bgcolor="#ffffff"><script type="text/javascript" src="jscolor/jscolor.js"></script>Custom: <input class="color" onchange="document.getElementsByTagName('BODY')[0].style.backgroundColor = '#'+this.color"></td>
|
||||
<td bgcolor="#ffffff"><a href="javascript:chooseStyle('red', 60)" onclick="document.getElementsByTagName('BODY')[0].style.backgroundColor = '#'+this.color">Set</a></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
27
space.php
@ -1,20 +1,3 @@
|
||||
<!--Force IE6 into quirks mode with this comment tag-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
|
||||
<!--This script should appear below your LINK stylesheet tags -->
|
||||
|
||||
<script src="styleswitch.js" type="text/javascript">
|
||||
|
||||
/***********************************************
|
||||
* Style Sheet Switcher v1.1- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
|
||||
* This notice MUST stay intact for legal use
|
||||
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
|
||||
***********************************************/
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
window.onload=function(){
|
||||
var formref=document.getElementById("switchform")
|
||||
@ -30,14 +13,19 @@ indicateSelected(formref.switchcontrol)
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
function togglebody() {
|
||||
$('#drivespace tbody').toggle();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<table id='drivespace' width='190' border='0' cellspacing='0' cellpadding='0'>
|
||||
<?php include 'config.php';?>
|
||||
<?php
|
||||
if ($drivespacevisible > "0") {
|
||||
require "drives/head.php";
|
||||
}
|
||||
?>
|
||||
<tbody style= 'display:none'>
|
||||
<?php
|
||||
if ($drive1visible > "0") {
|
||||
require "drives/drive1.php";
|
||||
@ -71,4 +59,5 @@ if ($drive7visible > "0") {
|
||||
require "drives/drive7.php";
|
||||
}
|
||||
?>
|
||||
</html>
|
||||
</tbody>
|
||||
</table>
|
@ -8,6 +8,10 @@
|
||||
var nextRow = $(row).next();
|
||||
nextRow.toggle();
|
||||
}
|
||||
function togglebodyServers() {
|
||||
$('#serverstable tbody').toggle();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<?php
|
||||
@ -25,10 +29,9 @@ require "ss_configs_servers.php";
|
||||
|
||||
# Start a variable to contain Service Status.
|
||||
if ($serverstatusvisible > "0") {
|
||||
$serverStatus = "<table width='190' border='0' cellspacing='0' cellpadding='1'><tr onclick='toggleNextRow(this)' BGCOLOR='#0066FF'><th style='text-align: left;'><font color='white'>Server</font></th><th style='text-align: left;'><font color='white'>Status</font></th></tr>";
|
||||
$serverStatus = "<table id='serverstable' width='190' border='0' cellspacing='0' cellpadding='1'><thead><tr onclick='togglebodyServers()' BGCOLOR='#0066FF'><th style='text-align: left;'><font color='white'>Server</font></th><th style='text-align: left;'><font color='white'>Status</font></th></tr></thead>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Process all services1 montiored.
|
||||
foreach( $configs['services1'] as $serviceName => $servicePort )
|
||||
{
|
||||
@ -46,7 +49,7 @@ foreach( $configs['services1'] as $serviceName => $servicePort )
|
||||
}
|
||||
|
||||
# Set the status Row.
|
||||
$serverStatus .= "<td BGCOLOR='#FFFFFF'>{$serviceName}</td><td BGCOLOR='#FFFFFF'>{$statusText}</td></tr>";
|
||||
$serverStatus .= "<tbody><td BGCOLOR='#FFFFFF'>{$serviceName}</td><td BGCOLOR='#FFFFFF'>{$statusText}</td></tr>";
|
||||
}
|
||||
|
||||
# Process all services1 montiored.
|
||||
@ -106,12 +109,11 @@ foreach( $configs['services4'] as $serviceName => $servicePort )
|
||||
}
|
||||
|
||||
# Set the status Row.
|
||||
$serverStatus .= "<td BGCOLOR='#FFFFFF'>{$serviceName}</td><td BGCOLOR='#FFFFFF'>{$statusText}</td></tr>";
|
||||
$serverStatus .= "<td BGCOLOR='#FFFFFF'>{$serviceName}</td><td BGCOLOR='#FFFFFF'>{$statusText}</td></tbody></tr>";
|
||||
}
|
||||
|
||||
# Finish service status table.
|
||||
$serverStatus .= "</table>";
|
||||
|
||||
# File Complete.
|
||||
|
||||
?>
|
1
sysinfo/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
phpsysinfo.ini
|
11
sysinfo/.htaccess
Normal file
@ -0,0 +1,11 @@
|
||||
<files phpsysinfo.ini>
|
||||
# Deny all requests from Apache 2.0-2.2
|
||||
<IfModule !mod_authz_core.c>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</IfModule>
|
||||
# Deny all requests from Apache 2.4+
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all granted
|
||||
</IfModule>
|
||||
</files>
|
18
sysinfo/.travis.yml
Normal file
@ -0,0 +1,18 @@
|
||||
language: php
|
||||
|
||||
php:
|
||||
- 5.2
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
|
||||
script: for i in `find . -name "*.php"`; do php -l $i; done;
|
||||
|
||||
branches:
|
||||
only:
|
||||
- "master"
|
||||
- "stable"
|
||||
|
||||
notifications:
|
||||
email: false
|
244
sysinfo/CHANGELOG.md
Normal file
@ -0,0 +1,244 @@
|
||||
Changelog of phpSysInfo
|
||||
=======================
|
||||
|
||||
http://phpsysinfo.sourceforge.net/
|
||||
|
||||
phpSysInfo 3.2.2
|
||||
----------------
|
||||
- [UPD] bootstrap 3.3.4
|
||||
|
||||
- [NEW] Thunderbolt (TB) devices list on Darwin
|
||||
|
||||
- [ADD] cleansyn template
|
||||
- [ADD] PS plugin - support for Android
|
||||
- [ADD] PS plugin - SHOW_KTHREADD_EXPANDED option
|
||||
- [ADD] Qubes and HandyLinux to detected distros
|
||||
|
||||
- [FIX] PS plugin - fixed display of the processes tree
|
||||
|
||||
phpSysInfo 3.2.1
|
||||
----------------
|
||||
- [UPD] bootstrap 3.3.2
|
||||
|
||||
- [NEW] REFRESH parameter also for frontend "bootstrap"
|
||||
|
||||
- [ADD] pfSense to detected distros
|
||||
|
||||
- [FIX] Percentage memory usage
|
||||
|
||||
phpSysInfo 3.2.0
|
||||
----------------
|
||||
- [NEW] Frontend "bootstrap" with Bootstrap3 and Transparency (JSON)
|
||||
|
||||
- [ADD] Catalan Translation ca.xml
|
||||
- [ADD] Mer (core of Sailfish OS) and Tizen to detected distros
|
||||
- [ADD] ThermalZone sensor support for Linux and Android
|
||||
- [ADD] Temperature, voltage and current sensor for Banana Pi
|
||||
|
||||
- [UPD] German Translation de.xml
|
||||
|
||||
phpSysInfo 3.1.17
|
||||
----------------
|
||||
|
||||
- [UPD] BAT plugin - capacity unit, cycle count, FreeBSD support
|
||||
- [UPD] Brazilian Portuguese Translation pt-br.xml
|
||||
|
||||
- [ADD] Show the number of processes on Haiku
|
||||
- [ADD] ThermalZone sensor support for WinNT
|
||||
- [ADD] Tanglu to detected distros
|
||||
- [ADD] Android and OS X version name
|
||||
|
||||
- [FIX] Fixed display of treetables
|
||||
|
||||
phpSysInfo 3.1.16
|
||||
----------------
|
||||
|
||||
- [ADD] Show the number of processes
|
||||
- [ADD] Lunar and 4MLinux to detected distros
|
||||
|
||||
phpSysInfo 3.1.15
|
||||
----------------
|
||||
|
||||
- [ADD] CoreOS and Pisi Linux to detected distros
|
||||
- [ADD] pmset - UPS support on Darwin (thanks to pelletierr)
|
||||
- [ADD] lspci support on Darwin
|
||||
- [ADD] SHOW_CPULIST_EXPANDED option
|
||||
- [ADD] lxc/docker detection on Linux
|
||||
- [ADD] ability to hide all disks and all network interfaces
|
||||
|
||||
- [FIX] Small CSS fix
|
||||
|
||||
- [UPD] Memory informations on Darwin systems
|
||||
- [UPD] BAT plugin - Darwin support
|
||||
|
||||
phpSysInfo 3.1.14
|
||||
----------------
|
||||
|
||||
- [ADD] FreeIPMI sensor program support
|
||||
- [ADD] IPMIutil sensor program support
|
||||
- [ADD] PowerSoftPlus (EVER) UPS program support
|
||||
- [ADD] Line frequency for the UPS info
|
||||
- [ADD] SENSOR_EVENTS option - show events of sensors
|
||||
- [ADD] HIDE_RAID_DEVICES option for plugins MDStatus and DMRaid - list of RAID devices to hide
|
||||
- [ADD] idash template
|
||||
|
||||
phpSysInfo 3.1.13
|
||||
----------------
|
||||
|
||||
- [UPD] jQuery 2.1.1 and jQuery 1.11.1
|
||||
- [UPD] Romanian Translation ro.xml
|
||||
|
||||
- [ADD] SHOW_CPUINFO_EXPANDED option
|
||||
- [ADD] Machine detection on WINNT, Linux, Android and Darwin systems
|
||||
|
||||
phpSysInfo 3.1.12
|
||||
----------------
|
||||
|
||||
- [ADD] GoboLinux, UltimateEdition, BOSS, Canaima, VortexBox, KaOS and NixOS to detected distros
|
||||
- [ADD] OpenHardwareMonitor sensor program support
|
||||
- [ADD] Possibility to define multiple UPS_PROGRAM
|
||||
- [ADD] UPS_NUT_LIST option
|
||||
|
||||
- [FIX] Fixed incorrect network usage on FreeBSD
|
||||
|
||||
- [UPD] SMART plugin - Smartctl --device option value setting method
|
||||
|
||||
phpSysInfo 3.1.11
|
||||
----------------
|
||||
|
||||
- [ADD] Add Access-Control-Allow-Origin on XML (JSON) interface for Ajax Load PR#47
|
||||
- [ADD] Generations Linux and SliTaz to detected distros
|
||||
- [ADD] IPMI and LMSensors currents information
|
||||
- [ADD] Plugin IPMIInfo - added powers and currents values
|
||||
- [ADD] Partial support of QNX
|
||||
|
||||
- [FIX] Reduce execution time on Linux systems when showing load average PR#47
|
||||
|
||||
phpSysInfo 3.1.10
|
||||
----------------
|
||||
|
||||
- [ADD] Zenwalk and Raspbian to detected distros
|
||||
|
||||
- [FIX] /etc/os-release Linux distro detection
|
||||
|
||||
phpSysInfo 3.1.9
|
||||
----------------
|
||||
|
||||
- [NEW] New plugin DMRaid - software raid status
|
||||
|
||||
- [ADD] Calculate, Tails, SMEServer, Semplice, SolydXK, Parsix, RedFlag, Amazon, Korora, OpenMandriva, SteamOS, ROSA Enterprise Server and ROSA Desktop Fresh to detected distros
|
||||
|
||||
- [UPD] Rebuilding of the Linux distribution detection
|
||||
- [UPD] jQuery 2.1.0 and jQuery 1.11.0
|
||||
|
||||
phpSysInfo 3.1.8
|
||||
----------------
|
||||
|
||||
- [ADD] Add printers messages in the XML output
|
||||
- [ADD] PSStatus plugin - added optional regular expression search in the process name
|
||||
- [ADD] RedHatEnterpriseClient distro icon #40
|
||||
- [ADD] Hebrew Translation he.xml
|
||||
|
||||
- [FIX] BAT plugin - fix for old and new kernel /proc/acpi and /sys/class/power_supply
|
||||
|
||||
- [UPD] LMSensors name for Mac hardware sensors
|
||||
|
||||
phpSysInfo 3.1.7
|
||||
----------------
|
||||
|
||||
- [ADD] Ksplice support for Linux
|
||||
- [ADD] Show CPU frequency max and min for Darwin (Mac OS X)
|
||||
- [ADD] Show System Language and Code Page on Darwin (Mac OS X)
|
||||
- [ADD] Show network interfaces infos for Minix and SunOS
|
||||
- [ADD] SMS, gNewSense and Vector to detected distros
|
||||
- [ADD] LMSensors power information
|
||||
- [ADD] Battery installation date for the UPS info
|
||||
|
||||
- [UPD] Network interfaces infos and filesystems infos for FreeBSD
|
||||
- [UPD] Updated support of SunOS
|
||||
- [UPD] Memory informations on Darwin systems
|
||||
- [UPD] BAT plugin - updated Linux support
|
||||
- [UPD] Updated HWSensors - OpenBSD sensor program
|
||||
|
||||
phpSysInfo 3.1.6
|
||||
----------------
|
||||
|
||||
- [ADD] Porteus, Peppermint, Manjaro, Netrunner and Salix to detected distros
|
||||
- [ADD] Show CPU frequency max for WINNT
|
||||
- [ADD] Show network interfaces infos for Darwin (Mac OS X)
|
||||
|
||||
- [UPD] SNMPPInfo plugin, ink level for some of the data
|
||||
- [UPD] jQuery 2.0.3 and jQuery 1.10.2
|
||||
- [UPD] Russian Translation ru.xml
|
||||
- [UPD] BAT plugin - WINNT support
|
||||
|
||||
- [SEC] Fix JSONP
|
||||
|
||||
phpSysInfo 3.1.5
|
||||
----------------
|
||||
|
||||
- [ADD] Possibility to define multiple SENSOR_PROGRAM
|
||||
- [ADD] Added display of temperature and fan speed for IPMI sensor program
|
||||
- [ADD] openSUSE and Eisfair to detected distros
|
||||
- [ADD] Portuguese Translation pt-pt.xml
|
||||
|
||||
- [FIX] Fixed incorrect display of the minimum fan speed
|
||||
- [FIX] Fix recovery detection of RAID arrays on debian systems #18
|
||||
|
||||
phpSysInfo 3.1.4
|
||||
----------------
|
||||
|
||||
- [ADD] Option for reading the results of functions executeProgram() and rfts() from log
|
||||
- [ADD] Show CPU frequency max and min for variable speed processors for Linux and Android
|
||||
- [ADD] Filesystem usage warning on defined threshold FS_USAGE_THRESHOLD
|
||||
|
||||
- [UPD] BAT plugin - added temperature, condition and type of battery, Android support
|
||||
- [UPD] jQuery 2.0.2 and jQuery 1.10.1
|
||||
|
||||
phpSysInfo 3.1.3
|
||||
----------------
|
||||
|
||||
- [ADD] IPFire, Sabayon, PearOS, ClearOS, Frugalware, Fuduntu, Foresight, Tinycore, ALT Linux, ROSA Desktop Marathon and RedHatEnterpriseServer to detected distros
|
||||
|
||||
- [UPD] Added "username" to filtered mount credentials
|
||||
- [UPD] jQuery 2.0 coexistent with jQuery 1.9.1 for old Internet Explorer browser versions (IE 6/7/8)
|
||||
|
||||
- [FIX] proc_open() malfunction on some PHP for Android by replacing by popen()
|
||||
- [FIX] Run php-cs-fixer on php files (PSR-2 fixer)
|
||||
|
||||
phpSysInfo 3.1.2
|
||||
----------------
|
||||
|
||||
- [ADD] Tempsensor and CPU frequency for Raspberry Pi (thanks to hawkeyexp)
|
||||
- [ADD] Linaro to detected distros
|
||||
- [ADD] Option for logging of functions executeProgram() and rfts()
|
||||
- [ADD] Add support of JSONP
|
||||
|
||||
- [FIX] Incorrect display of chunk size for the plugin mdstatus for some results
|
||||
|
||||
phpSysInfo 3.1.1
|
||||
----------------
|
||||
|
||||
- [ADD] SolusOS, Deepin and antiX to detected distros
|
||||
- [ADD] Simplified Chinese translation
|
||||
|
||||
- [UPD] jQuery 1.9.1
|
||||
|
||||
phpSysInfo 3.1.0
|
||||
----------------
|
||||
|
||||
- [NEW] Configuration moved from config.php and subdirs of "plugins" to one file phpsysinfo.ini
|
||||
|
||||
- [ADD] Turbolinux, Oracle Linux, CloudLinux, PCLinuxOS, StartOS, Trisquel, CRUX, Slax, Pear, Android, Zorin and elementary OS to detected distros
|
||||
- [ADD] Show System Language and Code Page on Linux, Haiku and WINNT
|
||||
- [ADD] Minor support of ReactOS
|
||||
- [ADD] apcupsd-cgi support (thanks to duhast)
|
||||
|
||||
- [UPD] Plugin ipmi renamed to IPMIInfo and Update-Notifier to UpdateNotifier (to avoid name conflicts)
|
||||
- [UPD] Case-insensitive for most of parameters
|
||||
- [UPD] Detection of Mac OS X and Linux distribution
|
||||
- [UPD] CPU detection on Mac OS X
|
||||
|
||||
- [FIX] Fixed UTF8 encoding for Linux
|
||||
- [FIX] SMART plugin doesn't display for some results
|
||||
- [FIX] Incorrect display of mountpoint on Mac OS X
|
339
sysinfo/COPYING
Normal file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) 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
|
||||
this service 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 make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. 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.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
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
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the 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 a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE 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.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
26
sysinfo/Dockerfile
Normal file
@ -0,0 +1,26 @@
|
||||
# phpSysInfo
|
||||
# VERSION 2
|
||||
|
||||
FROM ubuntu:14.04
|
||||
|
||||
MAINTAINER phpSysInfo
|
||||
|
||||
# Update sources
|
||||
RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list
|
||||
RUN apt-get update
|
||||
|
||||
RUN apt-get install -y apache2 php5 git pciutils
|
||||
|
||||
RUN git clone https://github.com/phpsysinfo/phpsysinfo.git /var/www/html/phpsysinfo
|
||||
#RUN cp /var/www/html/phpsysinfo/phpsysinfo.ini.new /var/www/html/phpsysinfo/phpsysinfo.ini
|
||||
RUN cat /var/www/html/phpsysinfo/phpsysinfo.ini.new | sed 's/^LOAD_BAR=false/LOAD_BAR=true/' >/var/www/html/phpsysinfo/phpsysinfo.ini
|
||||
|
||||
ENV APACHE_RUN_USER www-data
|
||||
ENV APACHE_RUN_GROUP www-data
|
||||
ENV APACHE_LOG_DIR /var/log/apache2
|
||||
ENV APACHE_LOCK_DIR /var/lock/apache2
|
||||
ENV APACHE_PID_FILE /var/run/apache2/apache2.pid
|
||||
|
||||
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
|
||||
|
||||
EXPOSE 80
|
121
sysinfo/README.md
Normal file
@ -0,0 +1,121 @@
|
||||
phpSysInfo
|
||||
==============
|
||||
|
||||
* Copyright (c), 1999-2008, Uriah Welcome (precision@users.sf.net)
|
||||
* Copyright (c), 1999-2009, Michael Cramer (bigmichi1@users.sf.net)
|
||||
* Copyright (c), 2007-2008, Audun Larsen (xqus@users.sf.net)
|
||||
* Copyright (c), 2007-2015, Erkan Valentin
|
||||
* Copyright (c), 2009-2015, Mieczyslaw Nalewaj (namiltd@users.sf.net)
|
||||
* Copyright (c), 2010-2012, Damien Roth (iysaak@users.sf.net)
|
||||
|
||||
|
||||
|
||||
CURRENT TESTED PLATFORMS
|
||||
------------------------
|
||||
|
||||
- Linux 2.6.x
|
||||
- FreeBSD 7.x
|
||||
- OpenBSD 2.8+
|
||||
- NetBSD
|
||||
- DragonFly
|
||||
- HP-UX
|
||||
- Darwin/OSX
|
||||
- Windows 2000 / Windows 2003 / Windows XP / Windows Vista / Windows 7 / Windows 8 / Windows 8.1
|
||||
- Android
|
||||
- > PHP 5.2 or later
|
||||
- With PCRE, XML, XSL, MBString and SimpleXML extension.
|
||||
|
||||
####Platforms currently in progress:
|
||||
- Haiku
|
||||
- Minix
|
||||
- SunOS
|
||||
- ReactOS
|
||||
- IBM AIX
|
||||
- QNX
|
||||
|
||||
If your platform is not here try checking out the mailing list archives or
|
||||
the message boards on SourceForge.
|
||||
|
||||
INSTALLATION AND CONFIGURATION
|
||||
------------------------------
|
||||
|
||||
####Typical installation
|
||||
|
||||
Just decompress and untar the source (which you should have done by now,
|
||||
if you're reading this...), into your webserver's document root.
|
||||
|
||||
There is a configuration file called phpsysinfo.ini.new. If this a brand new
|
||||
installation, you should copy this file to phpsysinfo.ini and edit it.
|
||||
|
||||
- make sure your `php.ini` file's `include_path` entry contains "."
|
||||
- make sure your `php.ini` has `safe_mode` set to 'off'.
|
||||
|
||||
phpSysInfo require php-xml extension.
|
||||
|
||||
Please keep in the mind that because phpSysInfo requires access to many
|
||||
files in `/proc` and other system binary you **MUST DISABLE** `php's safe_mode`.
|
||||
Please see the PHP documentation for information on how you
|
||||
can do this.
|
||||
|
||||
That's it. Restart your webserver (if you changed php.ini), and voila.
|
||||
|
||||
####Docker container installation
|
||||
|
||||
- sudo docker build -t phpsysinfo github.com/phpsysinfo/phpsysinfo
|
||||
- sudo docker run -i -p 8080:80 -t phpsysinfo
|
||||
- go to http://localhost:8080/phpsysinfo/
|
||||
|
||||
KNOWN PROBLEMS
|
||||
--------------
|
||||
|
||||
- phpSysInfo is not compatible with SELinux Systems
|
||||
- small bug under FreeBSD with memory reporting
|
||||
|
||||
PLATFORM SPECIFIC ISSUES
|
||||
------------------------
|
||||
|
||||
####Windows with IIS
|
||||
On Windows systems we get our informations through the WMI interface.
|
||||
If you run phpSysInfo on the IIS webserver, phpSysInfo will not connect
|
||||
to the WMI interface for security reasons. At this point you MUST set
|
||||
an authentication mechanism for the directory in the IIS admin
|
||||
interface for the directory where phpSysInfo is installed. Then you
|
||||
will be asked for an user and a password when opening the page. At this
|
||||
point it is necassary to log in with an user that will be able to
|
||||
connect to the WMI interface. If you use the wrong user and/or password
|
||||
you might get an "ACCESS DENIED ERROR".
|
||||
|
||||
SENSOR RELATED INFORMATION
|
||||
---------------------------
|
||||
|
||||
####MBM5
|
||||
Make sure you set MBM5 Interval Logging to csv and to the data
|
||||
directory of phpSysInfo. The file must be called MBM5. Also make sure
|
||||
MBM5 doesn't add symbols to the values. This is a Quick MBM5 log parser,
|
||||
need more csv logs to make it better.
|
||||
|
||||
WHAT TO DO IF IT DOESN'T WORK
|
||||
-----------------------------
|
||||
|
||||
First make sure you've read this file completely, especially the
|
||||
"INSTALLATION AND CONFIGURATION" section. If it still doesn't work then
|
||||
you can:
|
||||
|
||||
Submit a bug on SourceForge (preferred) (http://sourceforge.net/projects/phpsysinfo/)
|
||||
|
||||
Ask for help in the forum (http://sourceforge.net/projects/phpsysinfo/)
|
||||
|
||||
***!! If you have any problems, please set `DEBUG` to true in `phpsysinfo.ini`
|
||||
and include any error messages in your bug report / help request !!***
|
||||
|
||||
OTHER NOTES
|
||||
-----------
|
||||
|
||||
If you have a great idea or want to help out, just drop by the project
|
||||
page at SourceForge (http://sourceforge.net/projects/phpsysinfo/).
|
||||
|
||||
LICENSING
|
||||
---------
|
||||
|
||||
This program and all associated files are released under the GNU Public
|
||||
License, see [COPYING](COPYING) for details.
|
134
sysinfo/README_PLUGIN.md
Normal file
@ -0,0 +1,134 @@
|
||||
phpSysInfo 3.1 - http://phpsysinfo.sourceforge.net/
|
||||
===================================================
|
||||
|
||||
Document written by Michael Cramer (bigmichi1 at sourceforge.net)
|
||||
|
||||
!!Please read if you want to develop a plugin to understand our plugin system!!
|
||||
|
||||
|
||||
Plugins
|
||||
-------
|
||||
|
||||
Beginning with phpSysInfo 3.0, phpSysInfo can be extended by Plugins. So here is
|
||||
a description that a developer of a plugin must take care of. Plugins can be
|
||||
enabled through the `phpsysinfo.ini` in the PLUGINS variable. The name of the
|
||||
plugin is essential for the function of the plugin system. Lets say you write a
|
||||
plugin with the name 'hdd_stats', then this name is added to the PLUGINS
|
||||
variable in `phpsysinfo.ini`. And this is also then the name which is everywhere in
|
||||
the plugin system used, like creating the object, locate the needed files and
|
||||
so on.
|
||||
|
||||
So if the name is now specified, phpSysInfo needs a special directory structure
|
||||
to find the needed files. The directory structure for the example `hdd_stats`
|
||||
plugin can be seen here:
|
||||
|
||||
```
|
||||
-+ phpSysInfo root
|
||||
|
|
||||
+---+ plugins (directory in that plugins are installed)
|
||||
| |
|
||||
| +---+ hdd_stats (the real plugin directory, must have the same name like
|
||||
| | | the plugin named in PLUGINS, else it won't be found)
|
||||
| | |
|
||||
| | +---+ js (directory in which the needed JavaScript file is located,
|
||||
| | | | to generate the html output out of the xml)
|
||||
| | | # hdd_stats.js (the js file must have the same name, like the
|
||||
| | | plugin in PSI_PLUGINS with the extension js)
|
||||
| | +---+ css (directory in which the needed style sheet information are
|
||||
| | | | located, can exists, but it's up to the author)
|
||||
| | | # hdd_stats.css (the css file must have the same name, like the
|
||||
| | | plugin in PSI_PLUGINS with the extension css)
|
||||
| | +---+ lang (directory where translations for the plugin are located)
|
||||
| | | |
|
||||
| | | # en.xml (at least an english translation file must exist)
|
||||
| | |
|
||||
| | # class.hdd_stats.inc.php (this is the core file of the plugin,
|
||||
| | name must consists of 'class' +
|
||||
| | name from PSI_PLUGINS + '.inc.php')
|
||||
```
|
||||
|
||||
other files or directorys can be included in the plugin directory, but then
|
||||
its up to the developer to include them in the plugin. So it might be possible
|
||||
to have a 'gfx' directory in which some pics are located that are used in the
|
||||
output.
|
||||
|
||||
If the directory structure is build up, then it's time to start programming.
|
||||
|
||||
Files
|
||||
-----
|
||||
|
||||
An example implementation is the mdstat plugin, which is shipped with phpSysInfo
|
||||
|
||||
* en.xml - at least this file must exist to get the translation working, and the
|
||||
the first entry in this file is normally the headline of the plugin.
|
||||
So one translation migth exists everytime. Other translation files
|
||||
are also in the same directory like the `en.xml` file.
|
||||
The id's specified in the translation file SHOULD have the following
|
||||
look `plugin_hdd_status_001`. First we say that this is a plugin
|
||||
translation, then the name of plugin and at last a increasing number
|
||||
for each translation. Please create your id's in that way, so that
|
||||
other plugins don't redefine your translations. At the time of writing
|
||||
this, there is no check to verify the id's, so be carfull.
|
||||
|
||||
* hdd_stats.css - here can all custom style sheet informations written down. The
|
||||
names of the id's and classes SHOULD also begin, like the translation
|
||||
id's, with `'plugin_' + pluginname`. If thats not the case it might be
|
||||
possible that another plugin is overwriting your css definitions.
|
||||
|
||||
* class.hdd_stats.inc.php - this file MUST include a class with the plugin name
|
||||
and also this class MUST extend the 'psi_plugin' class. A check that
|
||||
such a class exist and also extends 'psi_plugin' will be included in
|
||||
the near future. And if the check fails the plugin won't be loaded.
|
||||
The psi_plugin class checks the existens of the js and the en.xml
|
||||
files. Also an extra configuration of the plugin is loaded
|
||||
automatically from `phpsysinfo.ini`, if present.
|
||||
Through the extension of the psi_plugin class there is a need to
|
||||
include at least two public function. These are the execute() function
|
||||
and the xml() function. Other functions can be exist, that depends on
|
||||
the plugin needs or the author of the class. The execute() function is
|
||||
called to get the required information that should be later included
|
||||
in the xml file. The xml() function is called when the xml output
|
||||
should be generated. This function must return a simplexml object. This
|
||||
object is then included in another xml at the right position or as a
|
||||
standalone xml. So there is no need to do some special things, only
|
||||
create a xml object for the plugin.
|
||||
|
||||
* hdd_stats.js - this file is called when the page is loaded. A block for the
|
||||
plugin is automatically created. This one is a div container with the
|
||||
id `'plugin_'+ pluginname ("plugin_hdd_stats")`. The entire output must be
|
||||
placed in that container.
|
||||
There is a helper function for creating the headline: buildBlock() that
|
||||
can be called. This function returns a string with the html code of the
|
||||
headline, this code can then be appended to the plugin block. The
|
||||
generated headline can provide a reload icon for an ajax request. Only
|
||||
the click action of that icon must be created. The id of this icon is
|
||||
`'reload_' + pluginname + 'Table' ("reload_hdd_statsTable")`.
|
||||
Everything that then is done to get the html output out of the xml is up
|
||||
to the author.
|
||||
To get the xml document the ajax request url is `'xml.php?plugin=' +
|
||||
pluginname (xml.php?plugin=hdd_stats)`. This xml includes only the xml
|
||||
from the plugin nothing more.
|
||||
The last two executed commands should/must be the translation call and
|
||||
the unhide of the filled div container.
|
||||
The translation function that needs to be called is named
|
||||
plugin_traslate() with one argument, that is the pluginname like in
|
||||
`PSI_PLUGINS (plugin_translate("hdd_stats");)`.
|
||||
To unhide the filled container call the .show() function of it.
|
||||
`$("plugin_" + pluginname).show() ($("plugin_hdd_stat").show())`.
|
||||
|
||||
FAQ
|
||||
---
|
||||
|
||||
Q: Is the plugin system ready to use?
|
||||
|
||||
A: It can be used, but it might change slightly in the future, if there are some
|
||||
special needs.
|
||||
|
||||
SUGGESTION
|
||||
----------
|
||||
|
||||
If anybody out there has some suggestions in improving the plugin system let us
|
||||
know. We are looking forward to get some feedback, suggestions and patches and
|
||||
more. Feel free to contact us on our website: http://phpsysinfo.sourceforge.net.
|
||||
|
||||
$Id: README_PLUGIN 463 2011-04-19 17:34:41Z namiltd $
|
18
sysinfo/composer.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "phpsysinfo/phpsysinfo",
|
||||
"description": "phpSysInfo is a customizable PHP Script that parses /proc, and formats information nicely. It will display information about system facts like Uptime, CPU, Memory, PCI devices, SCSI devices, IDE devices, Network adapters, Disk usage, and more.",
|
||||
"license": "GPL",
|
||||
"homepage": "http://phpsysinfo.github.io/phpsysinfo/",
|
||||
"require": {
|
||||
"php": ">=5.2.0",
|
||||
"ext-simplexml": "*",
|
||||
"ext-pcre": "*",
|
||||
"ext-xml": "*",
|
||||
"ext-dom": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "Required for *nix non UTF-8 systems",
|
||||
"ext-com_dotnet": "Required for Windows environments",
|
||||
"ext-xsl": "Required for static mode"
|
||||
}
|
||||
}
|
143
sysinfo/data/ModelTranslation.txt
Normal file
@ -0,0 +1,143 @@
|
||||
ADP2,1:Developer Transition Kit:Intel Pentium 4
|
||||
iMac,1:iMac G3:PowerPC 750 (G3)
|
||||
iMac1,1:iMac G3*:PowerPC 750 (G3)
|
||||
iMac4,1:iMac Core Duo:Intel Core Duo T2400/T2500
|
||||
iMac4,2:iMac Core Duo:Intel Core Duo T2400
|
||||
iMac5,1:iMac Core 2 Duo:Intel Core 2 Duo T7200/T7400/T7600
|
||||
iMac5,2:iMac Core 2 Duo:Intel Core 2 Duo T5600
|
||||
iMac6,1:iMac Core 2 Duo:Intel Core 2 Duo T7400/T7600
|
||||
iMac7,1:iMac Core 2 Duo/Extreme:Intel Core 2 Duo T7300/T7700/X7900
|
||||
iMac8,1:iMac Core 2 Duo:Intel Core 2 Duo E8135/E8335/E8235/E8435
|
||||
iMac9,1:iMac Core 2 Duo:Intel Core 2 Duo P7350/P7550/E8135/E8335/E8435
|
||||
iMac10,1:iMac Core 2 Duo:Intel Core 2 Duo E7600/E8600
|
||||
iMac10,2:iMac Core 2 Duo*:Intel Core 2 Duo E7500/E7600/E8600
|
||||
iMac11,1:iMac Core i5/i7:Intel Core I5-750/I7-860
|
||||
iMac11,2:iMac Core i3/i5:Intel Core I3-540/I3-550/I5-680
|
||||
iMac11,3:iMac Core i3/i5/i7:Intel Core I3-550/I5-760/I5-680/I7-870
|
||||
iMac12,1:iMac Core i3/i5/i7:Intel Core I3-2100/I5-2400S/I5-2500S/I5-2600S
|
||||
iMac12,2:iMac Core i5/i7:Intel Core I5-2400/I5-2500S/I7-2600
|
||||
iMac13,1:iMac Core i3/i5/i7:Intel Core I3-3225/I5-3335S/I5-3470S/I7-3770S
|
||||
iMac13,2:iMac Core i5/i7:Intel Core I5-3470/I5-3470S/I7-3770
|
||||
iMac14,1:iMac Core i5:Intel Core I5-4570R
|
||||
iMac14,2:iMac Core i5/i7:Intel Core I5-4570/I5-4670/I7-4771
|
||||
iMac14,3:iMac Core i5/i7:Intel Core I5-4570S/I7-4770S
|
||||
M43ADP1,1:Development Mac Pro:Intel Xeon X5340
|
||||
MacBook1,1:MacBook Core Duo:Intel Core Duo T2400/T2500
|
||||
MacBook2,1:MacBook Core 2 Duo:Intel Core 2 Duo T5600/T7200/T7400
|
||||
MacBook3,1:MacBook Core 2 Duo:Intel Core 2 Duo T7300/T7500
|
||||
MacBook4,1:MacBook Core 2 Duo:Intel Core 2 Duo T8100/T8300
|
||||
MacBook5,1:MacBook Core 2 Duo:Intel Core 2 Duo P7350/P8600
|
||||
MacBook5,2:MacBook Core 2 Duo:Intel Core 2 Duo P7350/P7450
|
||||
MacBook6,1:MacBook Core 2 Duo:Intel Core 2 Duo P7550
|
||||
MacBook7,1:MacBook Core 2 Duo:Intel Core 2 Duo P8600
|
||||
MacBookAir1,1:MacBook Air Core 2 Duo:Intel Core 2 Duo P7500/P7700
|
||||
MacBookAir2,1:MacBook Air Core 2 Duo:Intel Core 2 Duo SL9300/SL9400/SL9600
|
||||
MacBookAir3,1:MacBook Air Core 2 Duo:Intel Core 2 Duo SU9400/SU9600
|
||||
MacBookAir3,2:MacBook Air Core 2 Duo:Intel Core 2 Duo SL9400/SL9600
|
||||
MacBookAir4,1:MacBook Air Core i5/i7:Intel Core I5-2467M/I7-2677M
|
||||
MacBookAir4,2:MacBook Air Core i5/i7:Intel Core I5-2467M/I5-2557M/I7-2677M
|
||||
MacBookAir5,1:MacBook Air Core i5/i7:Intel Core I5-3317U/I7-3667U
|
||||
MacBookAir5,2:MacBook Air Core i5/i7:Intel Core I5-3427U/I7-3667U
|
||||
MacBookAir6,1:MacBook Air Core i5/i7:Intel Core I5-4250U/I5-4260U/I7-4650U
|
||||
MacBookAir6,2:MacBook Air Core i5/i7:Intel Core I5-4250U/I5-4260U/I7-4650U
|
||||
MacBookPro1,1:MacBook Pro Core Duo:Intel Core Duo L2400/T2400/T2500/T2600
|
||||
MacBookPro1,2:MacBook Pro Core Duo:Intel Core Duo T2600
|
||||
MacBookPro2,1:MacBook Pro Core 2 Duo:Intel Core 2 Duo T7600
|
||||
MacBookPro2,2:MacBook Pro Core 2 Duo:Intel Core 2 Duo T7400/T7600
|
||||
MacBookPro3,1:MacBook Pro Core 2 Duo:Intel Core 2 Duo T7500/T7700/T7800
|
||||
MacBookPro4,1:MacBook Pro Core 2 Duo:Intel Core 2 Duo T8300/T9300/T9500
|
||||
MacBookPro5,1:MacBook Pro Core 2 Duo:Intel Core 2 Duo P8600/T9400/T9550/T9600/T9800
|
||||
MacBookPro5,2:MacBook Pro Core 2 Duo:Intel Core 2 Duo T9550/T9600/T9800/T9900
|
||||
MacBookPro5,3:MacBook Pro Core 2 Duo:Intel Core 2 Duo P8800/T9600/T9900
|
||||
MacBookPro5,4:MacBook Pro Core 2 Duo:Intel Core 2 Duo P8700
|
||||
MacBookPro5,5:MacBook Pro Core 2 Duo:Intel Core 2 Duo P8400/P8700
|
||||
MacBookPro6,1:MacBook Pro Core i5/i7:Intel Core I5-540M/I7-620M/I7-640M
|
||||
MacBookPro6,2:MacBook Pro Core i5/i7:Intel Core I5-520M/I5-540M/I7-620M/I7-640M
|
||||
MacBookPro7,1:MacBook Pro Core 2 Duo:Intel Core 2 Duo P8600/P8800
|
||||
MacBookPro8,1:MacBook Pro Core i5/i7:Intel Core I5-2415M/I5-2435M/I7-2620M/I7-2640M
|
||||
MacBookPro8,2:MacBook Pro Core i7:Intel Core I7-2635QM/I7-2720QM/I7-2675QM/I7-2820QM/I7-2760QM/I7-2860QM
|
||||
MacBookPro8,3:MacBook Pro Core i7:Intel Core I7-2720QM/I7-2820QM/I7-2760QM/I7-2860QM
|
||||
MacBookPro9,1:MacBook Pro Core i7:Intel Core I7-3615QM/I7-3720QM/I7-3820QM
|
||||
MacBookPro9,2:MacBook Pro Core i5/i7:Intel Core I5-3210M/I7-3520M
|
||||
MacBookPro10,1:MacBook Pro Core i7:Intel Core I7-3615QM/I7-3635QM/I7-3720QM/I7-3740QM/I7-3820QM/I7-3840QM
|
||||
MacBookPro10,2:MacBook Pro Core i5/i7:Intel Core I5-3210M/I5-3230M/I7-3520M/I7-3540M
|
||||
MacBookPro11,1:MacBook Pro Core i5/i7:Intel Core I5-4258U/I5-4288U/I7-4558U
|
||||
MacBookPro11,2:MacBook Pro Core i7:Intel Core I7-4750HQ/I7-4850HQ/I7-4960HQ
|
||||
MacBookPro11,3:MacBook Pro Core i7:Intel Core I7-4850HQ/I7-4960HQ
|
||||
Macmini1,1:Mac mini Core Solo/Duo:Intel Core Duo T2300/T2400 Solo T1200
|
||||
Macmini2,1:Mac mini Core 2 Duo:Intel Core 2 Duo T5600/T7200
|
||||
Macmini3,1:Mac mini Core 2 Duo:Intel Core 2 Duo P7350/P8400/P7550/P8700/P8800
|
||||
Macmini4,1:Mac mini Core 2 Duo:Intel Core 2 Duo P8600/P8800
|
||||
Macmini5,1:Mac mini Core i5:Intel Core I5-2415M
|
||||
Macmini5,2:Mac mini Core i5/i7:Intel Core I5-2520M/I7-2620M
|
||||
Macmini5,3:Mac mini Core i7:Intel Core I7-2635QM
|
||||
Macmini6,1:Mac mini Core i5:Intel Core I5-3210M
|
||||
Macmini6,2:Mac mini Core i7:Intel Core i7 I7-3615QM/I7-3720QM
|
||||
MacPro1,1:Mac Pro Quad Core:Intel Xeon 5130/5150/5160
|
||||
MacPro2,1:Mac Pro Eight Core:Intel Xeon X5365
|
||||
MacPro3,1:Mac Pro Quad/Eight Core:Intel Xeon E5462/E5472/X5482
|
||||
MacPro4,1:Mac Pro Quad/Eight Core:Intel Xeon E5520/E5550/X5570/W3520/W3540/W3580
|
||||
MacPro5,1:Mac Pro Quad/Six/Eight/Twelve Core:Intel Xeon E5620/E5645/W3530/W3565/W3680/X5650/X5670/X5675
|
||||
MacPro6,1:Mac Pro Quad/Six/Eight/Twelve Core:Intel Xeon E5-1620v2/E5-1650v2/E5-1680v2/E5-2697v2
|
||||
PowerBook1,1:PowerBook G3:PowerPC 750 (G3)
|
||||
PowerBook2,1:iBook G3:PowerPC 750 (G3)
|
||||
PowerBook2,2:iBook G3:PowerPC 750cx (G3)
|
||||
PowerBook2,3:iBook G3*:PowerPC 750cx (G3)
|
||||
PowerBook2,4:iBook G3*:PowerPC 750cx (G3)
|
||||
PowerBook3,1:PowerBook G3:PowerPC 750 (G3)
|
||||
PowerBook3,2:PowerBook G4:PowerPC 7410 (G4)
|
||||
PowerBook3,3:PowerBook G4:PowerPC 7440 (G4)
|
||||
PowerBook3,4:PowerBook G4:PowerPC 7451 (G4)
|
||||
PowerBook3,5:PowerBook G4:PowerPC 7455 (G4)
|
||||
PowerBook4,1:iBook G3:PowerPC 750cx (G3)
|
||||
PowerBook4,2:iBook G3 600:PowerPC 750cx (G3)
|
||||
PowerBook4,3:iBook G3:PowerPC 750fx (G3)
|
||||
PowerBook5,1:PowerBook G4:PowerPC 7455 (G4)
|
||||
PowerBook5,2:PowerBook G4:PowerPC 7447 (G4)
|
||||
PowerBook5,3:PowerBook G4:PowerPC 7447 (G4)
|
||||
PowerBook5,4:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook5,5:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook5,6:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook5,7:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook5,8:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook5,9:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook6,1:PowerBook G4:PowerPC 7455 (G4)
|
||||
PowerBook6,2:PowerBook G4:PowerPC 7447 (G4)
|
||||
PowerBook6,3:iBook G4:PowerPC 7457 (G4)
|
||||
PowerBook6,4:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerBook6,5:iBook G4:PowerPC 7447a (G4)
|
||||
PowerBook6,7:iBook G4:PowerPC 7447a (G4)
|
||||
PowerBook6,8:PowerBook G4:PowerPC 7447a (G4)
|
||||
PowerMac1,1:Power Macintosh/Mac Server G3:PowerPC 750 (G3)
|
||||
PowerMac1,2:Power Macintosh G4:PowerPC 7400 (G4)
|
||||
PowerMac2,1:iMac G3:PowerPC 750 (G3)
|
||||
PowerMac2,2:iMac G3:PowerPC 750 (G3)
|
||||
PowerMac3,1:Power Macintosh/Mac Server G4:PowerPC 7400 (G4)
|
||||
PowerMac3,2:Power Macintosh/Mac Server G4*:PowerPC 7400 (G4)
|
||||
PowerMac3,3:Power Macintosh/Mac Server G4:PowerPC 7400 (G4)
|
||||
PowerMac3,4:Power Macintosh/Mac Server G4:PowerPC 7410 (G4)
|
||||
PowerMac3,5:Power Macintosh/Mac Server G4:PowerPC 7450/7455 (G4)
|
||||
PowerMac3,6:Power Macintosh/Mac Server G4:PowerPC 7455 (G4)
|
||||
PowerMac4,1:iMac G3:PowerPC 750/750cx (G3)
|
||||
PowerMac4,2:iMac G4:PowerPC 7441/7445 (G4)
|
||||
PowerMac4,4:eMac G4:PowerPC 7441/7445 (G4)
|
||||
PowerMac4,5:iMac G4:PowerPC 7445 (G4)
|
||||
PowerMac5,1:Power Macintosh G4 Cube:PowerPC 7400 (G4)
|
||||
PowerMac6,1:iMac G4:PowerPC 7445 (G4)
|
||||
PowerMac6,3:iMac G4:PowerPC 7445 (G4)
|
||||
PowerMac6,4:eMac G4:PowerPC 7447a (G4)
|
||||
PowerMac7,2:Power Macintosh G5:PowerPC 970 (G5)
|
||||
PowerMac7,3:Power Macintosh G5:PowerPC 970fx (G5)
|
||||
PowerMac8,1:iMac G5:PowerPC 970 (G5)
|
||||
PowerMac8,2:iMac G5:PowerPC 970 (G5)
|
||||
PowerMac9,1:Power Macintosh G5:PowerPC 970fx (G5)
|
||||
PowerMac10,1:Mac mini G4:PowerPC 7447a (G4)
|
||||
PowerMac10,2:Mac mini G4:PowerPC 7447a (G4)
|
||||
PowerMac11,2:Power Macintosh G5 Dual/Quad Core:PowerPC 970MP (G5)
|
||||
PowerMac12,1:iMac G5:PowerPC 970fx (G5)
|
||||
RackMac1,1:Xserve G4:PowerPC 7455 (G4)
|
||||
RackMac1,2:Xserve G4:PowerPC 7455 (G4)
|
||||
RackMac3,1:Xserve G5:PowerPC 970fx (G5)
|
||||
Xserve1,1:Xserve Xeon Quad Core:Intel Xeon 5130/5150/5160
|
||||
Xserve2,1:Xserve Xeon Quad/Eight Core:Intel Xeon E5462/E5472
|
||||
Xserve3,1:Xserve Xeon Nehalem Quad/Eight Core:Intel Xeon E5520/E5550/E5570
|
800
sysinfo/data/distros.ini
Normal file
@ -0,0 +1,800 @@
|
||||
; linux-distros.ini - Defines known linux distros for phpSysInfo.
|
||||
; http://phpsysinfo.sourceforge.net/
|
||||
; $Id: distros.ini 709 2012-12-05 11:20:40Z namiltd $
|
||||
;
|
||||
|
||||
[GoboLinux]
|
||||
Image = "Gobo.png"
|
||||
Name = "GoboLinux"
|
||||
Files = "/etc/GoboLinuxVersion"
|
||||
|
||||
[SliTaz]
|
||||
Image = "SliTaz.png"
|
||||
Name = "SliTaz"
|
||||
Files = "/etc/slitaz-release"
|
||||
|
||||
[eisfair]
|
||||
Image = "Eisfair.png"
|
||||
Files = "/etc/eisfair-system"
|
||||
Files2 = "/etc/version"
|
||||
|
||||
[TinyCore]
|
||||
Image = "TinyCore.png"
|
||||
Name = "Tiny Core Linux"
|
||||
Files = "/usr/share/doc/tc/release.txt"
|
||||
|
||||
[Frugalware]
|
||||
Image = "Frugalware.png"
|
||||
Files = "/etc/frugalware-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[antiX]
|
||||
Image = "antiX.png"
|
||||
Files = "/etc/antix-version"
|
||||
;wrong in "/etc/os-release" Debian GNU/Linux
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[IPFire]
|
||||
Image = "IPFire.png"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[4MLinux]
|
||||
Image = "4MLinux.png"
|
||||
Name = "4MLinux"
|
||||
Files = "/etc/4MLinux-version"
|
||||
|
||||
[Lunar Linux]
|
||||
Image = "Lunar.png"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[CRUX]
|
||||
Image = "Crux.png"
|
||||
Mode = "Execute"
|
||||
Files = "/usr/bin/crux"
|
||||
|
||||
[Foresight]
|
||||
Image = "Foresight.png"
|
||||
;detected in "/etc/distro-release"
|
||||
|
||||
[Trustix]
|
||||
Image = "Trustix.png"
|
||||
Files = "/etc/trustix-release;/etc/trustix-version"
|
||||
|
||||
[NixOS]
|
||||
Image = "NixOS.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[FreeEOS]
|
||||
Image = "free-eos.png"
|
||||
Files = "/etc/eos-version"
|
||||
|
||||
[generations]
|
||||
Image = "Generations.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[Generations Linux]
|
||||
Image = "Generations.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Manjaro Linux]
|
||||
Image = "Manjaro.png"
|
||||
Files = "/etc/manjaro-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[ManjaroLinux]
|
||||
Image = "Manjaro.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[Arch Linux]
|
||||
Image = "Arch.png"
|
||||
Files = "/etc/arch-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Arch]
|
||||
Image = "Arch.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[Cobalt]
|
||||
Image = "Cobalt.png"
|
||||
Files = "/etc/cobalt-release"
|
||||
|
||||
[LinuxFromScratch]
|
||||
Image = "LFS.png"
|
||||
Files = "/etc/lfs-release"
|
||||
|
||||
[Rubix]
|
||||
Image = "Rubix.png"
|
||||
Files = "/etc/rubix-version"
|
||||
|
||||
[Tails]
|
||||
Image = "Tails.png"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Tanglu]
|
||||
Image = "Tanglu.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Tanglu GNU/Linux]
|
||||
Image = "Tanglu.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Mer]
|
||||
Image = "Mer.png"
|
||||
Files = "/etc/mer-release;/etc/meego-release;/etc/moblin-release"
|
||||
Mode = "Analyse"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[KaOS]
|
||||
Image = "KaOS.png"
|
||||
Files = "/etc/KaOS-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[CoreOS]
|
||||
Image = "CoreOS.png"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[BOSS]
|
||||
Image = "BOSS.png"
|
||||
Name = "BOSS GNU/Linux"
|
||||
Files = "/etc/boss_version"
|
||||
;detected in "lsb_release -a"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[BOSS GNU/Linux]
|
||||
Image = "BOSS.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[BOSS Server Beta]
|
||||
Image = "BOSS.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[Canaima]
|
||||
Image = "Canaima.png"
|
||||
Name = "Canaima GNU/Linux"
|
||||
Files = "/etc/canaima_version"
|
||||
;detected in "lsb_release -a"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Canaima GNU/Linux]
|
||||
Image = "Canaima.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Semplice]
|
||||
Image = "Semplice.png"
|
||||
Name = "Semplice"
|
||||
Files = "/etc/semplice_version"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[SolydXK]
|
||||
Image = "SolydXK.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/solydxk/info"
|
||||
;wrong in "/etc/os-release" Debian GNU/Linux
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[HandyLinux]
|
||||
Image = "Handy.png"
|
||||
Files = "/etc/handylinux_version"
|
||||
;detected in "lsb_release -a"
|
||||
;wrong in "/etc/os-release" Debian GNU/Linux
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Parsix]
|
||||
Image = "Parsix.png"
|
||||
Files = "/etc/parsix-version"
|
||||
;detected in "lsb_release -a"
|
||||
;detected or wrong version in "/etc/os-release" | Parsix 4.0
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Linaro]
|
||||
Image = "Linaro.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[LinuxDeepin]
|
||||
Image = "Deepin.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Debian GNU/Linux
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Ultimate_Edition]
|
||||
Image = "UltimateEdition.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[elementary OS]
|
||||
Image = "elementaryOS.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[PearLinux]
|
||||
Image = "Pear.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Ubuntu
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Pear Linux]
|
||||
Image = "Pear.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Ubuntu
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[PearOS]
|
||||
Image = "Pear.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Ubuntu
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[SolusOS]
|
||||
Image = "SolusOS.png"
|
||||
Files = "/etc/solusos_version"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Debian GNU/Linux
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[LinuxMint]
|
||||
Image = "Mint.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Ubuntu
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Trisquel]
|
||||
Image = "Trisquel.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/os-release" Ubuntu
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Zorin]
|
||||
Image = "Zorin.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong or almost in "/etc/os-release" Ubuntu | Zorin OS
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Zorin OS]
|
||||
Image = "Zorin.png"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Netrunner]
|
||||
Image = "Netrunner.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[NetrunnerSE]
|
||||
Image = "Netrunner.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Netrunner Rolling]
|
||||
Image = "Netrunner.png"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/manjaro-release" Manjaro
|
||||
|
||||
[Peppermint]
|
||||
Image = "Peppermint.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Ubuntu]
|
||||
Image = "Ubuntu.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Chakra]
|
||||
Image = "Chakra.png"
|
||||
Files = "/etc/chakra-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[The Chakra-Project]
|
||||
Image = "Chakra.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[IYCC]
|
||||
Image = "iycc.png"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[Mageia]
|
||||
Image = "Mageia.png"
|
||||
Files = "/etc/mageia-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/mandriva-release"
|
||||
;detected in "/etc/mandrake-release;/etc/mandrakelinux-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[PLD Linux]
|
||||
Image = "PLD.png"
|
||||
Files = "/etc/pld-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[LFS]
|
||||
Image = "lfs.png"
|
||||
Files = "/etc/lfs-release;/etc/lfs_version"
|
||||
|
||||
[HLFS]
|
||||
Image = "lfs.png"
|
||||
Files = "/etc/hlfs-release;/etc/hlfs_version"
|
||||
|
||||
[Synology]
|
||||
Image = "Synology.png"
|
||||
Mode = "Detection"
|
||||
Files = "/etc/synoinfo.conf"
|
||||
Files2 = "/etc/VERSION"
|
||||
|
||||
[Alpine]
|
||||
Name = "Alpine"
|
||||
Image = "Alpine.png"
|
||||
Files = "/etc/alpine-release"
|
||||
|
||||
[Puppy]
|
||||
Image = "Puppy.png"
|
||||
;detected in "/etc/DISTRO_SPECS"
|
||||
|
||||
[Lucid]
|
||||
Name = "Lucid Puppy"
|
||||
Image = "Puppy.png"
|
||||
;detected in "/etc/DISTRO_SPECS"
|
||||
|
||||
[Slacko Puppy]
|
||||
Image = "Puppy.png"
|
||||
;detected in "/etc/DISTRO_SPECS"
|
||||
|
||||
[Wary Puppy]
|
||||
Image = "Puppy.png"
|
||||
;detected in "/etc/DISTRO_SPECS"
|
||||
|
||||
[Turbolinux]
|
||||
Image = "Turbo.png"
|
||||
Files = "/etc/turbolinux-release"
|
||||
|
||||
[Amazon]
|
||||
Image = "Amazon.png"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[AmazonAMI]
|
||||
Image = "Amazon.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[RedFlag]
|
||||
Image = "RedFlag.png"
|
||||
Files = "/etc/redflag-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[Red Flag inWise]
|
||||
Image = "RedFlag.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[StartOS]
|
||||
Image = "StartOS.png"
|
||||
Files = "/etc/startos-release"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[PisiLinux]
|
||||
Image = "Pisi.png"
|
||||
Files = "/etc/pisilinux-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[Pisi_Linux]
|
||||
Image = "Pisi.png"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[SME]
|
||||
Image = "SMEServer.png"
|
||||
Files = "/etc/e-smith-release"
|
||||
;wrong in "/etc/centos-release" CentOS
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[SMEServer]
|
||||
Image = "SMEServer.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[Scientific]
|
||||
Image = "Scientific.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[ScientificSL]
|
||||
Image = "Scientific.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[ScientificCERNSLC]
|
||||
Image = "Scientific.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[ScientificFermi]
|
||||
Image = "Scientific.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[ScientificFermiLTS]
|
||||
Image = "Scientific.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[ScientificSLF]
|
||||
Image = "Scientific.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[ClearOS]
|
||||
Image = "ClearOS.png"
|
||||
Files = "/etc/clearos-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[CloudLinuxServer]
|
||||
Image = "Cloud.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[CloudLinux]
|
||||
Image = "Cloud.png"
|
||||
Files = "/etc/CloudLinux-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like SMEServer)
|
||||
[CentOS]
|
||||
Image = "CentOS.png"
|
||||
Files = "/etc/centos-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[Oracle]
|
||||
Image = "Oracle.png"
|
||||
Files = "/etc/oracle-release;/etc/enterprise-release"
|
||||
;detected in "/etc/system-release"
|
||||
;wrong in "/etc/redhat-release" RedHat
|
||||
|
||||
[OracleServer]
|
||||
Image = "Oracle.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[EnterpriseEnterpriseServer]
|
||||
Image = "Oracle.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[PCLinuxOS]
|
||||
Image = "PCLinuxOS.png"
|
||||
Files = "/etc/pclinuxos-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/mandriva-release"
|
||||
;detected in "/etc/mandrake-release;/etc/mandrakelinux-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
|
||||
[Salix]
|
||||
Image = "Salix.png"
|
||||
Mode = "Detection"
|
||||
Files = "/etc/salix-update-notifier.conf"
|
||||
Files2 = "/etc/slackware-version"
|
||||
;wrong in "/etc/os-release" Slackware
|
||||
;wrong in "/etc/slackware-version" Slackware
|
||||
|
||||
[Slax]
|
||||
Image = "Slax.png"
|
||||
Files = "/etc/slax-version"
|
||||
;wrong in "/etc/os-release" Slackware
|
||||
;wrong in "/etc/slackware-version" Slackware
|
||||
|
||||
[SMS]
|
||||
Image = "SMS.png"
|
||||
Files = "/etc/sms-version"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/slackware-version" Slackware
|
||||
|
||||
[Porteus]
|
||||
Image = "Porteus.png"
|
||||
Files = "/etc/porteus-version"
|
||||
;wrong in "/etc/os-release" Slackware
|
||||
;wrong in "/etc/slackware-version" Slackware
|
||||
|
||||
[Vector]
|
||||
Image = "Vector.png"
|
||||
Files = "/etc/vector-version"
|
||||
;wrong in "/etc/slackware-version" Slackware
|
||||
|
||||
[Zenwalk]
|
||||
Name = "Zenwalk"
|
||||
Image = "Zenwalk.png"
|
||||
Files = "/etc/zenwalk-version"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/slackware-version" Slackware
|
||||
|
||||
[Calculate]
|
||||
Image = "Calculate.png"
|
||||
;detected in "/etc/gentoo-release"
|
||||
;wrong in "/etc/os-release" Gentoo
|
||||
|
||||
[Tizen]
|
||||
Image = "Tizen.png"
|
||||
Files = "/etc/tizen-release"
|
||||
;detected in "/etc/system-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Sabayon]
|
||||
Image = "Sabayon.png"
|
||||
Files = "/etc/sabayon-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/system-release"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/gentoo-release" Gentoo
|
||||
|
||||
[VortexBox]
|
||||
Image = "VortexBox.png"
|
||||
Name = "VortexBox"
|
||||
Files = "/etc/vortexbox/vortexbox-version"
|
||||
;wrong in "/etc/fedora-release" Fedora
|
||||
;wrong in "/etc/redhat-release" Fedora
|
||||
;wrong in "/etc/system-release" Fedora
|
||||
;wrong in "/etc/os-release" Fedora
|
||||
|
||||
[ALT]
|
||||
Image = "ALT.png"
|
||||
Files = "/etc/altlinux-release"
|
||||
;detected in "/etc/fedora-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[Simply]
|
||||
Image = "ALT.png"
|
||||
;detected in "/etc/fedora-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[Simply Linux]
|
||||
Image = "ALT.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[ALT Linux]
|
||||
Image = "ALT.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Fuduntu]
|
||||
Image = "Fuduntu.png"
|
||||
Files = "/etc/fuduntu-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/fedora-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[gNewSense]
|
||||
Image = "gNewSense.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[SteamOS]
|
||||
Image = "SteamOS.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[SteamOS GNU/Linux]
|
||||
Image = "SteamOS.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Raspbian]
|
||||
Image = "Raspbian.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/os-release"
|
||||
;wrong in "/etc/debian_version" Debian
|
||||
|
||||
[Raspbian GNU/Linux]
|
||||
Image = "Raspbian.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Debian]
|
||||
Name = "Debian"
|
||||
Image = "Debian.png"
|
||||
Files = "/etc/debian_release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/debian_version"
|
||||
|
||||
[Debian GNU/Linux]
|
||||
Image = "Debian.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[openSUSE]
|
||||
Image = "openSUSE.png"
|
||||
;detected in "/etc/os-release"
|
||||
;detected in "/etc/SuSE-release"
|
||||
|
||||
[openSUSE project]
|
||||
Image = "openSUSE.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
; at the end because some distros may also have the same files (like openSUSE)
|
||||
[SUSE LINUX]
|
||||
Image = "SUSE.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/SuSE-release;/etc/UnitedLinux-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like Sabayon, Calculate)
|
||||
[Gentoo]
|
||||
Image = "Gentoo.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/gentoo-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like Salix, Slax, SMS, Porteus, Vector, Zenwalk)
|
||||
[Slackware]
|
||||
Image = "Slackware.png"
|
||||
Files = "/etc/slackware-release;/etc/slackware-version"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Qubes]
|
||||
Image = "Qubes.png"
|
||||
Files = "/etc/qubes-release"
|
||||
;detected in "/etc/fedora-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[Korora]
|
||||
Image = "Korora.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/fedora-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like Fuduntu, ALT, VortexBox, Qubes, Korora)
|
||||
[Fedora]
|
||||
Image = "Fedora.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/fedora-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/system-release"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[FedoraCore]
|
||||
Image = "Fedora.png"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[OpenMandriva]
|
||||
Image = "OpenMandriva.png"
|
||||
;detected in "/etc/rosa-release"
|
||||
;detected in "/etc/mandriva-release"
|
||||
;detected in "/etc/mandrake-release;/etc/mandrakelinux-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
;detected in "/etc/distro-release"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[OpenMandriva Lx]
|
||||
Image = "OpenMandriva.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[OpenMandrivaLinux]
|
||||
Image = "OpenMandriva.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[ROSA MarathonLinux]
|
||||
Image = "ROSA.png"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[RosaDesktop.Marathon]
|
||||
Image = "ROSA.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[RosaDesktop.Fresh]
|
||||
Image = "ROSA.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
[ROSA Desktop Fresh]
|
||||
Image = "ROSA.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[ROSA Marathon]
|
||||
Image = "ROSA.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[ROSAEnterpriseServer]
|
||||
Image = "ROSA.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
; at the end because some distros may also have the same files (like OpenMandriva)
|
||||
[ROSA]
|
||||
Image = "ROSA.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/rosa-release"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/system-release"
|
||||
;detected in "/etc/mandriva-release"
|
||||
;detected in "/etc/mandrake-release;/etc/mandrakelinux-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
|
||||
[MandrivaLinux]
|
||||
Image = "Mandrake.png"
|
||||
;detected in "lsb_release -a"
|
||||
;detected in "/etc/lsb-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like Mageia, PCLinuxOS, ROSA, OpenMandriva)
|
||||
[Mandriva]
|
||||
Image = "Mandrake.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/mandriva-release"
|
||||
;detected in "/etc/mandrake-release;/etc/mandrakelinux-release"
|
||||
;detected in "/etc/redhat-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like Mandriva, Mageia, PCLinuxOS, ROSA, OpenMandriva)
|
||||
[Mandrake]
|
||||
Image = "Mandrake.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/mandrake-release;/etc/mandrakelinux-release"
|
||||
|
||||
; at the end because some distros may also have the same files (like SMEServer, Fuduntu, ALT, VortexBox, Qubes, Korora, Fedora, CentOS, Oracle, Scientific, CloudLinux, Mandrake, MandrivaLinux, Mageia, PCLinuxOS, ROSA, OpenMandriva)
|
||||
[RedHat]
|
||||
Image = "RedHat.png"
|
||||
Mode = "Analyse"
|
||||
Files = "/etc/redhat-release;/etc/redhat_version"
|
||||
;detected in "/etc/system-release"
|
||||
|
||||
[Red Hat Enterprise Linux Everything]
|
||||
Image = "RedHat.png"
|
||||
;detected in "/etc/os-release"
|
||||
|
||||
[RedHatEnterpriseES]
|
||||
Image = "RedHat.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[RedHatEnterpriseAS]
|
||||
Image = "RedHat.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[RedHatEnterpriseServer]
|
||||
Image = "RedHat.png"
|
||||
;detected in "lsb_release -a"
|
||||
|
||||
[RedHatEnterpriseClient]
|
||||
Image = "RedHat.png"
|
||||
;detected in "lsb_release -a"
|
1025
sysinfo/data/languages.ini
Normal file
33
sysinfo/data/osnames.ini
Normal file
@ -0,0 +1,33 @@
|
||||
[Android]
|
||||
1.0="Apple Pie"
|
||||
1.1="Banana Bread"
|
||||
1.5="Cupcake"
|
||||
1.6="Donut"
|
||||
2.0="Eclair"
|
||||
2.1="Eclair"
|
||||
2.2="Froyo"
|
||||
2.3="Gingerbread"
|
||||
3.0="Honeycomb"
|
||||
3.1="Honeycomb"
|
||||
3.2="Honeycomb"
|
||||
4.0="Ice Cream Sandwich"
|
||||
4.1="Jelly Bean"
|
||||
4.2="Jelly Bean"
|
||||
4.3="Jelly Bean"
|
||||
4.4="KitKat"
|
||||
5.0="Lollipop"
|
||||
5.1="Lollipop"
|
||||
5.2="Lollipop"
|
||||
|
||||
[OS X]
|
||||
10.0="Cheetah"
|
||||
10.1="Puma"
|
||||
10.2="Jaguar"
|
||||
10.3="Panther"
|
||||
10.4="Tiger"
|
||||
10.5="Leopard"
|
||||
10.6="Snow Leopard"
|
||||
10.7="Lion"
|
||||
10.8="Mountain Lion"
|
||||
10.9="Mavericks"
|
||||
10.10="Yosemite"
|
BIN
sysinfo/gfx/ajax-loader.gif
Normal file
After Width: | Height: | Size: 404 B |
BIN
sysinfo/gfx/ajaxLoader.gif
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
sysinfo/gfx/attention.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
sysinfo/gfx/body.png
Normal file
After Width: | Height: | Size: 443 B |
BIN
sysinfo/gfx/bullet_toggle_minus.png
Normal file
After Width: | Height: | Size: 207 B |
BIN
sysinfo/gfx/bullet_toggle_plus.png
Normal file
After Width: | Height: | Size: 209 B |
BIN
sysinfo/gfx/close.gif
Normal file
After Width: | Height: | Size: 70 B |
BIN
sysinfo/gfx/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
sysinfo/gfx/favicon.png
Normal file
After Width: | Height: | Size: 479 B |
BIN
sysinfo/gfx/html.gif
Normal file
After Width: | Height: | Size: 94 B |
BIN
sysinfo/gfx/htmlwarn.gif
Normal file
After Width: | Height: | Size: 120 B |
BIN
sysinfo/gfx/images/4MLinux.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/AIX.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
sysinfo/gfx/images/ALT.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Alpine.png
Normal file
After Width: | Height: | Size: 972 B |
BIN
sysinfo/gfx/images/Amazon.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/Android.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Apple.png
Normal file
After Width: | Height: | Size: 380 B |
BIN
sysinfo/gfx/images/Arch.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
sysinfo/gfx/images/BOSS.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/Calculate.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/Canaima.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/CentOS.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
sysinfo/gfx/images/Chakra.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/ClearOS.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Cloud.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Cobalt.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
sysinfo/gfx/images/CoreOS.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/Crux.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Darwin.png
Normal file
After Width: | Height: | Size: 851 B |
BIN
sysinfo/gfx/images/Debian.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
sysinfo/gfx/images/Deepin.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/DragonFly.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
sysinfo/gfx/images/Eisfair.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
sysinfo/gfx/images/Fedora.png
Normal file
After Width: | Height: | Size: 742 B |
BIN
sysinfo/gfx/images/Foresight.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/FreeBSD.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
sysinfo/gfx/images/Frugalware.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/Fuduntu.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Generations.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/Gentoo.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
sysinfo/gfx/images/Gobo.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/HPUX.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
sysinfo/gfx/images/Haiku.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Handy.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
sysinfo/gfx/images/IPFire.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
sysinfo/gfx/images/KaOS.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Korora.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/LFS.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
sysinfo/gfx/images/Linaro.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Lunar.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
sysinfo/gfx/images/Mageia.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
sysinfo/gfx/images/Mandrake.png
Normal file
After Width: | Height: | Size: 451 B |
BIN
sysinfo/gfx/images/Manjaro.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
sysinfo/gfx/images/Mer.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
sysinfo/gfx/images/Minix.png
Normal file
After Width: | Height: | Size: 3.6 KiB |