diff --git a/api.php b/api.php index 2ed1790..eb28ecc 100644 --- a/api.php +++ b/api.php @@ -1,5 +1,5 @@ © WebCraft Media 2013'), - array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL, 'system/'), + array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL, 'lib/system/'), array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS, array('deDE')), array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG, 'deDE'), array(\SYSTEM\CONFIG\config_ids::SYS_CRON_LOG2SQLITE_PATH, '/home/web/webdir/slingit/slingit/files/log/')); \ No newline at end of file diff --git a/index.php b/index.php index 845de10..29f4a57 100644 --- a/index.php +++ b/index.php @@ -1,5 +1,5 @@ - - - - HashMask - Demo - - - - - - - - - -

Login to HashMask Demo

- -
-

- - -

-

- - -

-

- -

-
- -
- - - - diff --git a/slingit/lib/hashmask/jquery.hashmask.js b/slingit/lib/hashmask/jquery.hashmask.js deleted file mode 100644 index b248427..0000000 --- a/slingit/lib/hashmask/jquery.hashmask.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * HashMask - a new approach to password masking security - * - * REQUIRES: - * jquery.sparkline.js - * a one way hashing method, currently sha1, provided by jquery.sha1.js - * - * @author Chris Dary - * @copyright Copyright (c) 2009 {@link http://arc90.com Arc90 Inc.} - * @license http://www.opensource.org/licenses/bsd-license.php -**/ - -(function($) { - $.hashmask = { - settings: { - hashFunction: $.sha1, - useColorAsHint: true, - sparkInterval: 500, - sparklineOptions: { - width: '100px', - height: 'auto', - lineColor: '#69C', - spotColor: false, - minSpotColor: false, - maxSpotColor: false - } - } - }; - - $.fn.hashmask = function(settings) { - /** - * @var object Contains an associative array of all settings for hashmask. - **/ - settings = $.extend({}, $.hashmask.settings, settings); - - /** - * Add hashmask hint to an input. The input must be of type password. - * - * @param selector string A jquery capable selector, as defined here: http://docs.jquery.com/Selectors - * @return void - **/ - return this.each(function() { - var $sparkline, sparkTimeout, i; - var $this = $(this); - - if(!$this.is('input[type="password"]')) - { - throw new Error('HashMask may only be used on inputs of type password.'); - } - - $sparkline = $('
'); - $sparkline.css({ - position: 'absolute', - top: $this.offset().top + parseInt($this.css('borderTopWidth'), 10), - left: $this.offset().left + $this.outerWidth() - parseInt($this.css('borderRightWidth'), 10) - parseInt(settings.sparklineOptions.width, 10), - width: settings.sparklineOptions.width, - height: $this.outerHeight() - }); - $sparkline.click(function() { $this.focus(); }); - - $this.parents('form').append($sparkline); - - $this.keyup(function(e) { - window.clearTimeout(sparkTimeout); - - var inputVal = $this.val(); - if(inputVal === "") - { - $sparkline.html(""); - return; - } - - var inputHash = settings.hashFunction($this.val()).substr(0,20); - var inputHexArr = inputHash.split(''); - var inputDecArr = []; - - /* Convert our hex string array into decimal numbers for sparkline consumption */ - for(i=0; i < inputHexArr.length; i++) - { - inputDecArr.push(parseInt(inputHexArr[i], 16)); - } - - var fillColor; - if(settings.useColorAsHint) - { - fillColor = '#' + inputHash.substr(0,6); - } - else - { - fillColor = settings.sparklineOptions.fillColor - } - - sparkTimeout = window.setTimeout(function() { - $sparkline.sparkline(inputDecArr, $.extend( settings.sparklineOptions, { - height: (settings.sparklineOptions.height == 'auto' ? $this.outerHeight() - parseInt($this.css('borderBottomWidth'), 10) - parseInt($this.css('borderTopWidth'), 10): settings.sparklineOptions.height), - fillColor: fillColor - })); - }, settings.sparkInterval); - - }); - - }); - }; - -})(jQuery); diff --git a/slingit/lib/hashmask/jquery.md5.js b/slingit/lib/hashmask/jquery.md5.js deleted file mode 100644 index bf9bbe9..0000000 --- a/slingit/lib/hashmask/jquery.md5.js +++ /dev/null @@ -1,269 +0,0 @@ -/* - * jQuery MD5 Plugin 1.2.1 - * https://github.com/blueimp/jQuery-MD5 - * - * Copyright 2010, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * http://creativecommons.org/licenses/MIT/ - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - -/*jslint bitwise: true */ -/*global unescape, jQuery */ - -(function ($) { - 'use strict'; - - /* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ - function safe_add(x, y) { - var lsw = (x & 0xFFFF) + (y & 0xFFFF), - msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); - } - - /* - * Bitwise rotate a 32-bit number to the left. - */ - function bit_rol(num, cnt) { - return (num << cnt) | (num >>> (32 - cnt)); - } - - /* - * These functions implement the four basic operations the algorithm uses. - */ - function md5_cmn(q, a, b, x, s, t) { - return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); - } - function md5_ff(a, b, c, d, x, s, t) { - return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); - } - function md5_gg(a, b, c, d, x, s, t) { - return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); - } - function md5_hh(a, b, c, d, x, s, t) { - return md5_cmn(b ^ c ^ d, a, b, x, s, t); - } - function md5_ii(a, b, c, d, x, s, t) { - return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); - } - - /* - * Calculate the MD5 of an array of little-endian words, and a bit length. - */ - function binl_md5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << ((len) % 32); - x[(((len + 64) >>> 9) << 4) + 14] = len; - - var i, olda, oldb, oldc, oldd, - a = 1732584193, - b = -271733879, - c = -1732584194, - d = 271733878; - - for (i = 0; i < x.length; i += 16) { - olda = a; - oldb = b; - oldc = c; - oldd = d; - - a = md5_ff(a, b, c, d, x[i], 7, -680876936); - d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); - - a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5_gg(b, c, d, a, x[i], 20, -373897302); - a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); - - a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5_hh(d, a, b, c, x[i], 11, -358537222); - c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); - - a = md5_ii(a, b, c, d, x[i], 6, -198630844); - d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - } - return [a, b, c, d]; - } - - /* - * Convert an array of little-endian words to a string - */ - function binl2rstr(input) { - var i, - output = ''; - for (i = 0; i < input.length * 32; i += 8) { - output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF); - } - return output; - } - - /* - * Convert a raw string to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - */ - function rstr2binl(input) { - var i, - output = []; - output[(input.length >> 2) - 1] = undefined; - for (i = 0; i < output.length; i += 1) { - output[i] = 0; - } - for (i = 0; i < input.length * 8; i += 8) { - output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32); - } - return output; - } - - /* - * Calculate the MD5 of a raw string - */ - function rstr_md5(s) { - return binl2rstr(binl_md5(rstr2binl(s), s.length * 8)); - } - - /* - * Calculate the HMAC-MD5, of a key and some data (raw strings) - */ - function rstr_hmac_md5(key, data) { - var i, - bkey = rstr2binl(key), - ipad = [], - opad = [], - hash; - ipad[15] = opad[15] = undefined; - if (bkey.length > 16) { - bkey = binl_md5(bkey, key.length * 8); - } - for (i = 0; i < 16; i += 1) { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); - return binl2rstr(binl_md5(opad.concat(hash), 512 + 128)); - } - - /* - * Convert a raw string to a hex string - */ - function rstr2hex(input) { - var hex_tab = '0123456789abcdef', - output = '', - x, - i; - for (i = 0; i < input.length; i += 1) { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) + - hex_tab.charAt(x & 0x0F); - } - return output; - } - - /* - * Encode a string as utf-8 - */ - function str2rstr_utf8(input) { - return unescape(encodeURIComponent(input)); - } - - /* - * Take string arguments and return either raw or hex encoded strings - */ - function raw_md5(s) { - return rstr_md5(str2rstr_utf8(s)); - } - function hex_md5(s) { - return rstr2hex(raw_md5(s)); - } - function raw_hmac_md5(k, d) { - return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)); - } - function hex_hmac_md5(k, d) { - return rstr2hex(raw_hmac_md5(k, d)); - } - - $.md5 = function (string, key, raw) { - if (!key) { - if (!raw) { - return hex_md5(string); - } else { - return raw_md5(string); - } - } - if (!raw) { - return hex_hmac_md5(key, string); - } else { - return raw_hmac_md5(key, string); - } - }; - -}(typeof jQuery === 'function' ? jQuery : this)); \ No newline at end of file diff --git a/slingit/lib/hashmask/jquery.sha1.js b/slingit/lib/hashmask/jquery.sha1.js deleted file mode 100644 index 40c5725..0000000 --- a/slingit/lib/hashmask/jquery.sha1.js +++ /dev/null @@ -1,170 +0,0 @@ - -/** - * jQuery SHA1 hash algorithm function - * - * - * Calculate the sha1 hash of a String - * String $.sha1 ( String str ) - * - * - * Calculates the sha1 hash of str using the US Secure Hash Algorithm 1. - * SHA-1 the Secure Hash Algorithm (SHA) was developed by NIST and is specified in the Secure Hash Standard (SHS, FIPS 180). - * This script is used to process variable length message into a fixed-length output using the SHA-1 algorithm. It is fully compatible with UTF-8 encoding. - * If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag). - * This function orginally get from the WebToolkit and rewrite for using as the jQuery plugin. - * - * Example - * Code - * - * $.sha1("I'm Persian."); - * - * Result - * - * "1d302f9dc925d62fc859055999d2052e274513ed" - * - * - * @alias Muhammad Hussein Fattahizadeh < muhammad [AT] semnanweb [DOT] com > - * @link http://www.semnanweb.com/jquery-plugin/sha1.html - * @see http://www.webtoolkit.info/ - * @license http://www.gnu.org/licenses/gpl.html [GNU General Public License] - * @param {jQuery} {sha1:function(string)) - * @return string - */ - -(function($){ - - var rotateLeft = function(lValue, iShiftBits) { - return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); - } - - var lsbHex = function(value) { - var string = ""; - var i; - var vh; - var vl; - for(i = 0;i <= 6;i += 2) { - vh = (value>>>(i * 4 + 4))&0x0f; - vl = (value>>>(i*4))&0x0f; - string += vh.toString(16) + vl.toString(16); - } - return string; - }; - - var cvtHex = function(value) { - var string = ""; - var i; - var v; - for(i = 7;i >= 0;i--) { - v = (value>>>(i * 4))&0x0f; - string += v.toString(16); - } - return string; - }; - - var uTF8Encode = function(string) { - string = string.replace(/\x0d\x0a/g, "\x0a"); - var output = ""; - for (var n = 0; n < string.length; n++) { - var c = string.charCodeAt(n); - if (c < 128) { - output += String.fromCharCode(c); - } else if ((c > 127) && (c < 2048)) { - output += String.fromCharCode((c >> 6) | 192); - output += String.fromCharCode((c & 63) | 128); - } else { - output += String.fromCharCode((c >> 12) | 224); - output += String.fromCharCode(((c >> 6) & 63) | 128); - output += String.fromCharCode((c & 63) | 128); - } - } - return output; - }; - - $.extend({ - sha1: function(string) { - var blockstart; - var i, j; - var W = new Array(80); - var H0 = 0x67452301; - var H1 = 0xEFCDAB89; - var H2 = 0x98BADCFE; - var H3 = 0x10325476; - var H4 = 0xC3D2E1F0; - var A, B, C, D, E; - var tempValue; - string = uTF8Encode(string); - var stringLength = string.length; - var wordArray = new Array(); - for(i = 0;i < stringLength - 3;i += 4) { - j = string.charCodeAt(i)<<24 | string.charCodeAt(i + 1)<<16 | string.charCodeAt(i + 2)<<8 | string.charCodeAt(i + 3); - wordArray.push(j); - } - switch(stringLength % 4) { - case 0: - i = 0x080000000; - break; - case 1: - i = string.charCodeAt(stringLength - 1)<<24 | 0x0800000; - break; - case 2: - i = string.charCodeAt(stringLength - 2)<<24 | string.charCodeAt(stringLength - 1)<<16 | 0x08000; - break; - case 3: - i = string.charCodeAt(stringLength - 3)<<24 | string.charCodeAt(stringLength - 2)<<16 | string.charCodeAt(stringLength - 1)<<8 | 0x80; - break; - } - wordArray.push(i); - while((wordArray.length % 16) != 14 ) wordArray.push(0); - wordArray.push(stringLength>>>29); - wordArray.push((stringLength<<3)&0x0ffffffff); - for(blockstart = 0;blockstart < wordArray.length;blockstart += 16) { - for(i = 0;i < 16;i++) W[i] = wordArray[blockstart+i]; - for(i = 16;i <= 79;i++) W[i] = rotateLeft(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1); - A = H0; - B = H1; - C = H2; - D = H3; - E = H4; - for(i = 0;i <= 19;i++) { - tempValue = (rotateLeft(A, 5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff; - E = D; - D = C; - C = rotateLeft(B, 30); - B = A; - A = tempValue; - } - for(i = 20;i <= 39;i++) { - tempValue = (rotateLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff; - E = D; - D = C; - C = rotateLeft(B, 30); - B = A; - A = tempValue; - } - for(i = 40;i <= 59;i++) { - tempValue = (rotateLeft(A, 5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff; - E = D; - D = C; - C = rotateLeft(B, 30); - B = A; - A = tempValue; - } - for(i = 60;i <= 79;i++) { - tempValue = (rotateLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff; - E = D; - D = C; - C = rotateLeft(B, 30); - B = A; - A = tempValue; - } - H0 = (H0 + A) & 0x0ffffffff; - H1 = (H1 + B) & 0x0ffffffff; - H2 = (H2 + C) & 0x0ffffffff; - H3 = (H3 + D) & 0x0ffffffff; - H4 = (H4 + E) & 0x0ffffffff; - } - var tempValue = cvtHex(H0) + cvtHex(H1) + cvtHex(H2) + cvtHex(H3) + cvtHex(H4); - return tempValue.toLowerCase(); - } - }); -})(jQuery); \ No newline at end of file diff --git a/slingit/lib/hashmask/jquery.sparkline.js b/slingit/lib/hashmask/jquery.sparkline.js deleted file mode 100644 index f0fba50..0000000 --- a/slingit/lib/hashmask/jquery.sparkline.js +++ /dev/null @@ -1,936 +0,0 @@ -/** -* -* jquery.sparkline.js -* -* v1.4.2 -* (c) Splunk, Inc -* Contact: Gareth Watts (gareth@splunk.com) -* http://omnipotent.net/jquery.sparkline/ -* -* Generates inline sparkline charts from data supplied either to the method -* or inline in HTML -* -* Compatible with Internet Explorer 6.0+ and modern browsers equipped with the canvas tag -* (Firefox 2.0+, Safari, Opera, etc) -* -* License: New BSD License -* -* Copyright (c) 2009, Splunk Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without modification, -* are permitted provided that the following conditions are met: -* -* * Redistributions of source code must retain the above copyright notice, -* this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materials provided with the distribution. -* * Neither the name of Splunk Inc nor the names of its contributors may -* be used to endorse or promote products derived from this software without -* specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* -* Usage: -* $(selector).sparkline(values, options) -* -* If values is undefined or set to 'html' then the data values are read from the specified tag: -*

Sparkline: 1,4,6,6,8,5,3,5

-* $('.sparkline').sparkline(); -* There must be no spaces in the enclosed data set -* -* Otherwise values must be an array of numbers -*

Sparkline: This text replaced if the browser is compatible

-* $('#sparkline1').sparkline([1,4,6,6,8,5,3,5]) -* -* For line charts, x values can also be specified: -*

Sparkline: 1:1,2.7:4,3.4:6,5:6,6:8,8.7:5,9:3,10:5

-* $('#sparkline1').sparkline([ [1,1], [2.7,4], [3.4,6], [5,6], [6,8], [8.7,5], [9,3], [10,5] ]) -* -* Supported options: -* lineColor - Color of the line used for the chart -* fillColor - Color used to fill in the chart - Set to '' or false for a transparent chart -* width - Width of the chart - Defaults to 3 times the number of values in pixels -* height - Height of the chart - Defaults to the height of the containing element -* chartRangeMin - Specify the minimum value to use for the range of the chart - Defaults to the minimum value supplied -* chartRangeMax - Specify the maximum value to use for the range of the chart - Defaults to the maximum value supplied -* composite - If true then don't erase any existing chart attached to the tag, but draw -* another chart over the top - Note that width and height are ignored if an -* existing chart is detected. -* -* There are 7 types of sparkline, selected by supplying a "type" option of 'line' (default), -* 'bar', 'tristate', 'bullet', 'discrete', 'pie' or 'box' -* line - Line chart. Options: -* spotColor - Set to '' to not end each line in a circular spot -* minSpotColor - If set, color of spot at minimum value -* maxSpotColor - If set, color of spot at maximum value -* spotRadius - Radius in pixels -* normalRangeMin -* normalRangeMax - If set draws a filled horizontal bar between these two values marking the "normal" -* or expected range of values -* normalRangeColor - Color to use for the above bar -* defaultPixelsPerValue - Defaults to 3 pixels of width for each value in the chart -* -* bar - Bar chart. Options: -* barColor - Color of bars for postive values -* negBarColor - Color of bars for negative values -* barWidth - Width of bars in pixels -* barSpacing - Gap between bars in pixels -* zeroAxis - Centers the y-axis around zero if true -* -* tristate - Charts values of win (>0), lose (<0) or draw (=0) -* posBarColor - Color of win values -* negBarColor - Color of lose values -* zeroBarColor - Color of draw values -* barWidth - Width of bars in pixels -* barSpacing - Gap between bars in pixels -* colorMap - Optional mappnig of values to colors to override the *BarColor values above -* -* discrete - Options: -* lineHeight - Height of each line in pixels - Defaults to 30% of the graph height -* thesholdValue - Values less than this value will be drawn using thresholdColor instead of lineColor -* thresholdColor -* -* bullet - Values for bullet graphs msut be in the order: target, performance, range1, range2, range3, ... -* options: -* targetColor - The color of the vertical target marker -* targetWidth - The width of the target marker in pixels -* performanceColor - The color of the performance measure horizontal bar -* rangeColors - Colors to use for each qualitative range background color -* -* pie - Pie chart. Options: -* sliceColors - An array of colors to use for pie slices -* offset - Angle in degrees to offset the first slice - Try -90 or +90 -* -* box - Box plot. Options: -* raw - Set to true to supply pre-computed plot points as values -* values should be: low_outlier, low_whisker, q1, median, q3, high_whisker, high_outlier -* When set to false you can supply any number of values and the box plot will -* be computed for you. Default is false. -* showOutliers - Set to true (default) to display outliers as circles -* outlierIRQ - Interquartile range used to determine outliers. Default 1.5 -* boxLineColor - Outline color of the box -* boxFillColor - Fill color for the box -* whiskerColor - Line color used for whiskers -* outlierLineColor - Outline color of outlier circles -* outlierFillColor - Fill color of the outlier circles -* spotRadius - Radius of outlier circles -* medianColor - Line color of the median line -* target - Draw a target cross hair at the supplied value (default undefined) -* -* -* -* Examples: -* $('#sparkline1').sparkline(myvalues, { lineColor: '#f00', fillColor: false }); -* $('.barsparks').sparkline('html', { type:'bar', height:'40px', barWidth:5 }); -* $('#tristate').sparkline([1,1,-1,1,0,0,-1], { type:'tristate' }): -* $('#discrete').sparkline([1,3,4,5,5,3,4,5], { type:'discrete' }); -* $('#bullet').sparkline([10,12,12,9,7], { type:'bullet' }); -* $('#pie').sparkline([1,1,2], { type:'pie' }); -*/ - - -(function($) { - - // Provide a cross-browser interface to a few simple drawing primitives - $.fn.simpledraw = function(width, height, use_existing) { - if (use_existing && this[0].vcanvas) return this[0].vcanvas; - if (width==undefined) width=$(this).innerWidth(); - if (height==undefined) height=$(this).innerHeight(); - if ($.browser.hasCanvas) { - return new vcanvas_canvas(width, height, this); - } else if ($.browser.msie) { - return new vcanvas_vml(width, height, this); - } else { - return false; - } - }; - - var pending = []; - - $.fn.sparkline = function(uservalues, options) { - var options = $.extend({ - type : 'line', - lineColor : '#00f', - fillColor : '#cdf', - defaultPixelsPerValue : 3, - width : 'auto', - height : 'auto', - composite : false - }, options ? options : {}); - - return this.each(function() { - var render = function() { - var values = (uservalues=='html' || uservalues==undefined) ? $(this).text().split(',') : uservalues; - - var width = options.width=='auto' ? values.length*options.defaultPixelsPerValue : options.width; - if (options.height == 'auto') { - if (!options.composite || !this.vcanvas) { - // must be a better way to get the line height - var tmp = document.createElement('span'); - tmp.innerHTML = 'a'; - $(this).html(tmp); - height = $(tmp).innerHeight(); - $(tmp).remove(); - } - } else { - height = options.height; - } - - $.fn.sparkline[options.type].call(this, values, options, width, height); - } - // jQuery 1.3.0 completely changed the meaning of :hidden :-/ - if (($(this).html() && $(this).is(':hidden')) || ($.fn.jquery < "1.3.0" && $(this).parents().is(':hidden'))) { - pending.push([this, render]); - } else { - render.call(this); - } - }); - }; - - - $.sparkline_display_visible = function() { - for (var i=pending.length-1; i>=0; i--) { - var el = pending[i][0]; - if ($(el).is(':visible') && !$(el).parents().is(':hidden')) { - pending[i][1].call(el); - pending.splice(i, 1); - } - } - }; - - $.fn.sparkline.line = function(values, options, width, height) { - var options = $.extend({ - spotColor : '#f80', - spotRadius : 1.5, - minSpotColor : '#f80', - maxSpotColor : '#f80', - normalRangeMin : undefined, - normalRangeMax : undefined, - normalRangeColor : '#ccc', - chartRangeMin : undefined, - chartRangeMax : undefined - }, options ? options : {}); - - var xvalues = [], yvalues = []; - for (i=0; imaxy) - maxy = options.normalRangeMax; - } - if (options.chartRangeMin!=undefined && options.chartRangeMinmaxy) { - maxy = options.chartRangeMax; - } - var rangex = maxx-minx == 0 ? 1 : maxx-minx; - var rangey = maxy-miny == 0 ? 1 : maxy-miny; - var vl = yvalues.length-1; - - if (vl<1) { - this.innerHTML = ''; - return; - } - - var target = $(this).simpledraw(width, height, options.composite); - if (target) { - var canvas_width = target.pixel_width; - var canvas_height = target.pixel_height; - var canvas_top = 0; - var canvas_left = 0; - - if (options.spotRadius && (canvas_width < (options.spotRadius*4) || canvas_height < (options.spotRadius*4))) { - options.spotRadius = 0; - } - if (options.spotRadius) { - // adjust the canvas size as required so that spots will fit - if (options.minSpotColor || (options.spotColor && yvalues[vl]==miny)) - canvas_height -= Math.ceil(options.spotRadius); - if (options.maxSpotColor || (options.spotColor && yvalues[vl]==maxy)) { - canvas_height -= Math.ceil(options.spotRadius); - canvas_top += Math.ceil(options.spotRadius); - } - if (options.minSpotColor || options.maxSpotColor && (yvalues[0]==miny || yvalues[0]==maxy)) { - canvas_left += Math.ceil(options.spotRadius); - canvas_width -= Math.ceil(options.spotRadius); - } - if (options.spotColor || (options.minSpotColor || options.maxSpotColor && (yvalues[vl]==miny||yvalues[vl]==maxy))) - canvas_width -= Math.ceil(options.spotRadius); - } - - - canvas_height--; - if (options.normalRangeMin!=undefined) { - var ytop = canvas_top+Math.round(canvas_height-(canvas_height*((options.normalRangeMax-miny)/rangey))); - var height = Math.round((canvas_height*(options.normalRangeMax-options.normalRangeMin))/rangey); - target.drawRect(canvas_left, ytop, canvas_width, height, undefined, options.normalRangeColor); - } - - var path = [ [canvas_left, canvas_top+canvas_height] ]; - for(var i=0; imax) { - max = options.chartRangeMax; - } - if (options.zeroAxis == undefined) options.zeroAxis = min<0; - var range = max-min == 0 ? 1 : max-min; - - var target = $(this).simpledraw(width, height); - if (target) { - var canvas_width = target.pixel_width; - var canvas_height = target.pixel_height; - var yzero = min<0 && options.zeroAxis ? canvas_height-Math.round(canvas_height * (Math.abs(min)/range))-1 : canvas_height-1; - - for(var i=0; i 0) { - var y = 0; - var height = half_height-1; - var color = options.posBarColor; - } else { - var y = half_height-1; - var height = 2; - var color = options.zeroBarColor; - } - if (options.colorMap[values[i]]) { - color = options.colorMap[values[i]]; - } - target.drawRect(x, y, options.barWidth-1, height-1, color, color); - } - } else { - // Remove the tag contents if sparklines aren't supported - this.innerHTML = ''; - } - }; - - $.fn.sparkline.discrete = function(values, options, width, height) { - values = $.map(values, Number); - var options = $.extend({ - lineHeight: 'auto', - thresholdColor: undefined, - thresholdValue : 0, - chartRangeMax: undefined, - chartRangeMin: undefined - }, options); - - width = options.width=='auto' ? values.length*2 : width; - var interval = Math.floor(width / values.length); - - var target = $(this).simpledraw(width, height); - if (target) { - var canvas_width = target.pixel_width; - var canvas_height = target.pixel_height; - var line_height = options.lineHeight == 'auto' ? Math.round(canvas_height * 0.3) : options.lineHeight; - var pheight = canvas_height - line_height; - var min = Math.min.apply(Math, values); - var max = Math.max.apply(Math, values); - if (options.chartRangeMin!=undefined && options.chartRangeMinmax) { - max = options.chartRangeMax; - } - var range = max-min; - - for(var i=0; i1) { - var canvas_width = target.pixel_width-Math.ceil(options.targetWidth/2); - var canvas_height = target.pixel_height; - - var min = Math.min.apply(Math, values); - var max = Math.max.apply(Math, values); - if (options.base == undefined) { - var min = min < 0 ? min : 0; - } else { - min = options.base; - } - var range = max-min; - - // draw range values - for(i=2; i1) { - var canvas_width = target.pixel_width; - var canvas_height = target.pixel_height; - - var radius = Math.floor(Math.min(canvas_width, canvas_height)/2); - var total = 0; - for(var i=0; i 0) { // avoid divide by zero - end = next + (circle*(values[i]/total)); - } - target.drawPieSlice(radius, radius, radius, start, end, undefined, options.sliceColors[i % options.sliceColors.length]); - next = end; - } - } - }; - - function quartile(values, q) { - if (q==2) { - var vl2 = Math.floor(values.length/2); - return values.length % 2 ? values[vl2] : (values[vl2]+values[vl2+1])/2; - } else { - var vl4 = Math.floor(values.length/4); - return values.length % 2 ? (values[vl4*q]+values[vl4*q+1])/2 : values[vl4*q]; - } - }; - - $.fn.sparkline.box = function(values, options, width, height) { - values = $.map(values, Number); - var options = $.extend({ - raw: false, - boxLineColor: 'black', - boxFillColor: '#cdf', - whiskerColor: 'black', - outlierLineColor: '#333', - outlierFillColor: 'white', - medianColor: 'red', - showOutliers: true, - outlierIQR: 1.5, - spotRadius: 1.5, - target: undefined, - targetColor: '#4a2', - chartRangeMax: undefined, - chartRangeMin: undefined - }, options); - - width = options.width=='auto' ? '4.0em' : width; - - minvalue = options.chartRangeMin==undefined ? Math.min.apply(Math, values) : options.chartRangeMin; - maxvalue = options.chartRangeMax==undefined ? Math.max.apply(Math, values) : options.chartRangeMax; - var target = $(this).simpledraw(width, height); - if (target && values.length>1) { - var canvas_width = target.pixel_width; - var canvas_height = target.pixel_height; - if (options.raw) { - if (options.showOutliers && values.length>5) { - var loutlier=values[0], lwhisker=values[1], q1=values[2], q2=values[3], q3=values[4], rwhisker=values[5], routlier=values[6]; - } else { - var lwhisker=values[0], q1=values[1], q2=values[2], q3=values[3], rwhisker=values[4]; - } - } else { - values.sort(function(a, b) { return a-b; }); - var q1 = quartile(values, 1); - var q2 = quartile(values, 2); - var q3 = quartile(values, 3); - var iqr = q3-q1; - if (options.showOutliers) { - var lwhisker=undefined, rwhisker=undefined; - for(var i=0; i q1-(iqr*options.outlierIQR)) - lwhisker = values[i]; - if (values[i] < q3+(iqr*options.outlierIQR)) - rwhisker = values[i]; - } - var loutlier = values[0]; - var routlier = values[values.length-1]; - } else { - var lwhisker = values[0]; - var rwhisker = values[values.length-1]; - } - } - - var unitsize = canvas_width / (maxvalue-minvalue+1); - var canvas_left = 0; - if (options.showOutliers) { - canvas_left = Math.ceil(options.spotRadius); - canvas_width -= 2*Math.ceil(options.spotRadius); - var unitsize = canvas_width / (maxvalue-minvalue+1); - if (loutlier < lwhisker) - target.drawCircle((loutlier-minvalue)*unitsize+canvas_left, canvas_height/2, options.spotRadius, options.outlierLineColor, options.outlierFillColor); - if (routlier > rwhisker) - target.drawCircle((routlier-minvalue)*unitsize+canvas_left, canvas_height/2, options.spotRadius, options.outlierLineColor, options.outlierFillColor); - } - - // box - target.drawRect( - Math.round((q1-minvalue)*unitsize+canvas_left), - Math.round(canvas_height*0.1), - Math.round((q3-q1)*unitsize), - Math.round(canvas_height*0.8), - options.boxLineColor, - options.boxFillColor); - // left whisker - target.drawLine( - Math.round((lwhisker-minvalue)*unitsize+canvas_left), - Math.round(canvas_height/2), - Math.round((q1-minvalue)*unitsize+canvas_left), - Math.round(canvas_height/2), - options.lineColor); - target.drawLine( - Math.round((lwhisker-minvalue)*unitsize+canvas_left), - Math.round(canvas_height/4), - Math.round((lwhisker-minvalue)*unitsize+canvas_left), - Math.round(canvas_height-canvas_height/4), - options.whiskerColor); - // right whisker - target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left), - Math.round(canvas_height/2), - Math.round((q3-minvalue)*unitsize+canvas_left), - Math.round(canvas_height/2), - options.lineColor); - target.drawLine( - Math.round((rwhisker-minvalue)*unitsize+canvas_left), - Math.round(canvas_height/4), - Math.round((rwhisker-minvalue)*unitsize+canvas_left), - Math.round(canvas_height-canvas_height/4), - options.whiskerColor); - // median line - target.drawLine( - Math.round((q2-minvalue)*unitsize+canvas_left), - Math.round(canvas_height*0.1), - Math.round((q2-minvalue)*unitsize+canvas_left), - Math.round(canvas_height*0.9), - options.medianColor); - if (options.target) { - var size = Math.ceil(options.spotRadius); - target.drawLine( - Math.round((options.target-minvalue)*unitsize+canvas_left), - Math.round((canvas_height/2)-size), - Math.round((options.target-minvalue)*unitsize+canvas_left), - Math.round((canvas_height/2)+size), - options.targetColor); - target.drawLine( - Math.round((options.target-minvalue)*unitsize+canvas_left-size), - Math.round(canvas_height/2), - Math.round((options.target-minvalue)*unitsize+canvas_left+size), - Math.round(canvas_height/2), - options.targetColor); - } - } else { - // Remove the tag contents if sparklines aren't supported - this.innerHTML = ''; - } - }; - - - // IE doesn't provide an indexOf method for arrays :-( - if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function(entry) { - for(var i=0; i'; - this.canvas.insertAdjacentHTML('beforeEnd', groupel); - this.group = $(this.canvas).children()[0]; - }, - - drawShape : function(path, lineColor, fillColor) { - var vpath = []; - for(var i=0; i' - +' '; - this.group.insertAdjacentHTML('beforeEnd', vel); - }, - - drawCircle : function(x, y, radius, lineColor, fillColor) { - x -= radius+1; - y -= radius+1; - var stroke = lineColor == undefined ? ' stroked="false" ' : ' strokeWeight="1" strokeColor="'+lineColor+'" '; - var fill = fillColor == undefined ? ' filled="false"' : ' fillColor="'+fillColor+'" filled="true" '; - var vel = ''; - this.group.insertAdjacentHTML('beforeEnd', vel); - - }, - - drawPieSlice : function(x, y, radius, startAngle, endAngle, lineColor, fillColor) { - if (startAngle == endAngle) { - return; // VML seems to have problem when start angle equals end angle. - } - if ((endAngle - startAngle) == (2*Math.PI)) { - startAngle = 0.0; // VML seems to have a problem when drawing a full circle that doesn't start 0 - endAngle = (2*Math.PI); - } - - var startx = x + Math.round(Math.cos(startAngle) * radius); - var starty = y + Math.round(Math.sin(startAngle) * radius); - var endx = x + Math.round(Math.cos(endAngle) * radius); - var endy = y + Math.round(Math.sin(endAngle) * radius); - - var vpath = [ x-radius, y-radius, x+radius, y+radius, startx, starty, endx, endy ]; - var stroke = lineColor == undefined ? ' stroked="false" ' : ' strokeWeight="1" strokeColor="'+lineColor+'" '; - var fill = fillColor == undefined ? ' filled="false"' : ' fillColor="'+fillColor+'" filled="true" '; - var vel = '' - +' '; - this.group.insertAdjacentHTML('beforeEnd', vel); - }, - - drawRect : function(x, y, width, height, lineColor, fillColor) { - return this.drawShape( [ [x, y], [x, y+height], [x+width, y+height], [x+width, y], [x, y] ], lineColor, fillColor); - } - }); - -})(jQuery); diff --git a/slingit/page/default_page/default_page.php b/slingit/page/default_page/default_page.php index c59938b..c2f5397 100644 --- a/slingit/page/default_page/default_page.php +++ b/slingit/page/default_page/default_page.php @@ -2,8 +2,8 @@ class default_page extends \SYSTEM\PAGE\Page { private function js(){ return ''. - ''. - ''. + //''. + ''. //''. //''. //''. @@ -13,10 +13,10 @@ class default_page extends \SYSTEM\PAGE\Page { } private function css(){ - return ''. - ''. - ''. - ''; + return ''; + //''. + //''. + //''; } public function html(){ diff --git a/slingit/path/PLIB.php b/slingit/path/PLIB.php index 9639089..f0bb5dd 100644 --- a/slingit/path/PLIB.php +++ b/slingit/path/PLIB.php @@ -1,5 +1,5 @@