├── LICENSE ├── README.md ├── images ├── ajax-loader.gif ├── ajax-loader.png ├── asc.gif ├── autodll-irc1.png ├── autodll-irc2.png ├── bul.gif ├── bul_f.gif ├── bul_l.gif ├── chat.png ├── chat2.png ├── chat3.png ├── close.png ├── default_images │ ├── archive.png │ ├── console.gif │ ├── copy.gif │ ├── copy.png │ ├── curdir.png │ ├── delete.png │ ├── dir_up.png │ ├── extract.png │ ├── image.gif │ ├── move.png │ ├── mp3.png │ ├── newdir.png │ ├── nfo.gif │ ├── rar.gif │ ├── rarpart.gif │ ├── refresh.png │ ├── rename.png │ ├── sfv.gif │ ├── torrent.png │ ├── video.png │ ├── vplay.png │ └── zip.gif ├── desc.gif ├── dlg-autodl-irc.gif ├── dlg-rssurlrewrite.gif ├── dlg-toolbars.gif ├── green.png ├── header_move.gif ├── headers.png ├── logoff.png ├── logoff2.png ├── logoff3.png ├── menus.png ├── nlb.png ├── pauseui.png ├── pauseuih.png ├── playui.png ├── playuih.png ├── plugin.png ├── pnl_close.gif ├── pnl_close.png ├── pnl_open.gif ├── pnl_open.png ├── r_bg.gif ├── red.png ├── refreshui.png ├── refreshuih.png ├── s.gif ├── s_bg.gif ├── stable.js ├── status.png ├── status_icons.png ├── t_bg.gif ├── tb_bg.gif ├── tb_bg.png ├── toolbar.png ├── trackers │ ├── bhd.ico │ ├── footy.png │ ├── hdahoy.ico │ ├── hidt.png │ ├── ptp.ico │ ├── tyt.png │ └── waffles.ico ├── tstatus.png └── yellow.png ├── init.js ├── lang └── en.js ├── plugin.info ├── plugins-min.css ├── plugins.css ├── stable-min.css ├── stable.css ├── style-min.css └── style.css /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # club-QuickBox 2 | club-QuickBox is a fresh and modernized skin for rTorrent GUI, ruTorrent. This theme has been featured on projects such as Swizards and has been made exclusively for QuickBox.IO. Welcome to club-QuickBox! 3 | 4 | ## Install 5 | 6 | You will need to navigate to your plugins/themes directory, typically located at ```../../rutorrent/plugins/theme/themes``` 7 | 8 | Next, simply clone the club-QuickBox skin to your themes 9 | ``` 10 | git clone https://github.com/QuickBox/club-QuickBox.git club-QuickBox 11 | chown -R www-data: club-QuickBox 12 | ``` 13 | -------------------------------------------------------------------------------- /images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/ajax-loader.gif -------------------------------------------------------------------------------- /images/ajax-loader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/ajax-loader.png -------------------------------------------------------------------------------- /images/asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/asc.gif -------------------------------------------------------------------------------- /images/autodll-irc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/autodll-irc1.png -------------------------------------------------------------------------------- /images/autodll-irc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/autodll-irc2.png -------------------------------------------------------------------------------- /images/bul.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/bul.gif -------------------------------------------------------------------------------- /images/bul_f.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/bul_f.gif -------------------------------------------------------------------------------- /images/bul_l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/bul_l.gif -------------------------------------------------------------------------------- /images/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/chat.png -------------------------------------------------------------------------------- /images/chat2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/chat2.png -------------------------------------------------------------------------------- /images/chat3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/chat3.png -------------------------------------------------------------------------------- /images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/close.png -------------------------------------------------------------------------------- /images/default_images/archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/archive.png -------------------------------------------------------------------------------- /images/default_images/console.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/console.gif -------------------------------------------------------------------------------- /images/default_images/copy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/copy.gif -------------------------------------------------------------------------------- /images/default_images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/copy.png -------------------------------------------------------------------------------- /images/default_images/curdir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/curdir.png -------------------------------------------------------------------------------- /images/default_images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/delete.png -------------------------------------------------------------------------------- /images/default_images/dir_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/dir_up.png -------------------------------------------------------------------------------- /images/default_images/extract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/extract.png -------------------------------------------------------------------------------- /images/default_images/image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/image.gif -------------------------------------------------------------------------------- /images/default_images/move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/move.png -------------------------------------------------------------------------------- /images/default_images/mp3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/mp3.png -------------------------------------------------------------------------------- /images/default_images/newdir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/newdir.png -------------------------------------------------------------------------------- /images/default_images/nfo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/nfo.gif -------------------------------------------------------------------------------- /images/default_images/rar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/rar.gif -------------------------------------------------------------------------------- /images/default_images/rarpart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/rarpart.gif -------------------------------------------------------------------------------- /images/default_images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/refresh.png -------------------------------------------------------------------------------- /images/default_images/rename.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/rename.png -------------------------------------------------------------------------------- /images/default_images/sfv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/sfv.gif -------------------------------------------------------------------------------- /images/default_images/torrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/torrent.png -------------------------------------------------------------------------------- /images/default_images/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/video.png -------------------------------------------------------------------------------- /images/default_images/vplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/vplay.png -------------------------------------------------------------------------------- /images/default_images/zip.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/default_images/zip.gif -------------------------------------------------------------------------------- /images/desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/desc.gif -------------------------------------------------------------------------------- /images/dlg-autodl-irc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/dlg-autodl-irc.gif -------------------------------------------------------------------------------- /images/dlg-rssurlrewrite.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/dlg-rssurlrewrite.gif -------------------------------------------------------------------------------- /images/dlg-toolbars.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/dlg-toolbars.gif -------------------------------------------------------------------------------- /images/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/green.png -------------------------------------------------------------------------------- /images/header_move.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/header_move.gif -------------------------------------------------------------------------------- /images/headers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/headers.png -------------------------------------------------------------------------------- /images/logoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/logoff.png -------------------------------------------------------------------------------- /images/logoff2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/logoff2.png -------------------------------------------------------------------------------- /images/logoff3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/logoff3.png -------------------------------------------------------------------------------- /images/menus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/menus.png -------------------------------------------------------------------------------- /images/nlb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/nlb.png -------------------------------------------------------------------------------- /images/pauseui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/pauseui.png -------------------------------------------------------------------------------- /images/pauseuih.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/pauseuih.png -------------------------------------------------------------------------------- /images/playui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/playui.png -------------------------------------------------------------------------------- /images/playuih.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/playuih.png -------------------------------------------------------------------------------- /images/plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/plugin.png -------------------------------------------------------------------------------- /images/pnl_close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/pnl_close.gif -------------------------------------------------------------------------------- /images/pnl_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/pnl_close.png -------------------------------------------------------------------------------- /images/pnl_open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/pnl_open.gif -------------------------------------------------------------------------------- /images/pnl_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/pnl_open.png -------------------------------------------------------------------------------- /images/r_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/r_bg.gif -------------------------------------------------------------------------------- /images/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/red.png -------------------------------------------------------------------------------- /images/refreshui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/refreshui.png -------------------------------------------------------------------------------- /images/refreshuih.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/refreshuih.png -------------------------------------------------------------------------------- /images/s.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/s.gif -------------------------------------------------------------------------------- /images/s_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/s_bg.gif -------------------------------------------------------------------------------- /images/stable.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright Emil A Eklund - Column List Widget 1.03 4 | * (http://webfx.eae.net/dhtml/collist/columnlist.html) 5 | * Copyright Erik Arvidsson - Sortable Table 1.12 6 | * (http://webfx.eae.net/dhtml/sortabletable/sortabletable.html) 7 | * Copyright 2007, 2008 Carsten Niebuhr 8 | * (http://trac.utorrent.com/trac) 9 | * Copyright 2009, 2011 Novik 10 | * 11 | * Licensed under the Apache License, Version 2.0 (the "License"); 12 | * you may not use this file except in compliance with the License. 13 | * You may obtain a copy of the License at 14 | * 15 | * http://www.apache.org/licenses/LICENSE-2.0 16 | * 17 | * Unless required by applicable law or agreed to in writing, software 18 | * distributed under the License is distributed on an "AS IS" BASIS, 19 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | * See the License for the specific language governing permissions and 21 | * limitations under the License. 22 | * 23 | * $Id: stable.js 2596 2014-08-10 07:52:45Z novik65@gmail.com $ 24 | */ 25 | 26 | var TYPE_STRING = 0; 27 | var TYPE_NUMBER = 1; 28 | var TYPE_DATE = 2; 29 | var TYPE_STRING_NO_CASE = 3; 30 | var TYPE_PROGRESS = 4; 31 | var ALIGN_AUTO = 0; 32 | var ALIGN_LEFT = 1; 33 | var ALIGN_CENTER = 2; 34 | var ALIGN_RIGHT = 3; 35 | 36 | var TR_HEIGHT = 19; 37 | 38 | var dxSTable = function() 39 | { 40 | this.rows = 0; 41 | this.rowdata = new Object(); 42 | this.rowIDs = new Array(); 43 | this.rowSel = new Array(); 44 | this.maxRows = false; 45 | this.noDelayingDraw = true; 46 | this.viewRows = 0; 47 | this.cols = 0; 48 | this.colsdata = new Array(); 49 | this.stSel = null; 50 | this.format = function(r) { return r; }; 51 | this.sIndex =- 1; 52 | this.reverse = 0; 53 | this.secIndex = 0; 54 | this.secRev = 0; 55 | this.tBody = null; 56 | this.tHead = null; 57 | this.tHeadCols = new Array(); 58 | this.tBodyCols = new Array(); 59 | this.colorEvenRows = false; 60 | this.paletteURL = "."; 61 | this.sortAscImage = this.paletteURL+"/images/asc.gif"; 62 | this.sortDescImage = this.paletteURL+"/images/desc.gif"; 63 | this.cancelSort = false; 64 | this.cancelMove = false; 65 | this.colMove = new dxSTable.ColumnMove(this); 66 | this.colOrder = new Array(); 67 | this.ids = new Array(); 68 | this.onselect = null; 69 | this.ondelete = null; 70 | this.onsort = null; 71 | this.onmove = null; 72 | this.onresize = null; 73 | this.ondblclick = null; 74 | this.sortTimeout = null; 75 | this.hotCell =- 1; 76 | this.isMoving = false; 77 | this.isResizing = false; 78 | this.isSorting = false; 79 | this.selCount = 0; 80 | this.created = false; 81 | this.colReszObj = null; 82 | this.rowCover = null; 83 | this.prgStartColor = new RGBackground(".meter-value-start-color"); 84 | this.prgEndColor = new RGBackground(".meter-value-end-color"); 85 | this.mni = 0; 86 | this.mxi = 0; 87 | this.maxViewRows = 100; 88 | } 89 | 90 | dxSTable.prototype.setPaletteByURL = function(url) 91 | { 92 | this.paletteURL = url; 93 | this.sortAscImage = url+"/images/asc.gif"; 94 | this.sortDescImage = url+"/images/desc.gif"; 95 | if(this.created) 96 | this.Sort(); 97 | } 98 | 99 | dxSTable.prototype.bindKeys = function() 100 | { 101 | $(document).off( (browser.isOpera && browser.versionMinor<9.8) ? "keypress" : "keydown", this.keyEvents ); 102 | $(document).on( (browser.isOpera && browser.versionMinor<9.8) ? "keypress" : "keydown", this, this.keyEvents ); 103 | } 104 | 105 | dxSTable.prototype.create = function(ele, styles, aName) 106 | { 107 | if(!ele || this.created) 108 | return; 109 | var tr, td, cl, cg, div; 110 | this.prefix = aName; 111 | this.dCont = ele; 112 | 113 | this.dHead = $("
").addClass("stable-head").get(0); 114 | this.dBody = $("
").addClass("stable-body").get(0); 115 | $(this.dCont).addClass("stable"); 116 | this.tHead = $("").width(100).get(0); 117 | this.tHead.cellSpacing = 0; 118 | this.tHead.cellPadding = 0; 119 | this.tHead.tb = $("").get(0); 120 | this.dCont.appendChild(this.dHead); 121 | this.dCont.appendChild(this.dBody); 122 | this.dHead.appendChild(this.tHead); 123 | this.tHead.appendChild(this.tHead.tb); 124 | 125 | tr = $(""); 126 | this.tHead.tb.appendChild(tr.get(0)); 127 | var self = this, span; 128 | var j = 0; 129 | if(this.sIndex>=styles.length) 130 | this.sIndex = -1; 131 | 132 | for(var i in this.colOrder) 133 | { 134 | if(this.colOrder[i]>=styles.length) 135 | { 136 | this.colOrder = new Array(); 137 | break; 138 | } 139 | } 140 | for(var i = 0, l = styles.length; i < l; i++) 141 | { 142 | if(!$type(this.colOrder[i])) 143 | this.colOrder[i] = i; 144 | if(!$type(styles[this.colOrder[i]].enabled)) 145 | styles[this.colOrder[i]].enabled = true; 146 | this.cols++; 147 | this.colsdata[i] = styles[this.colOrder[i]]; 148 | 149 | if(browser.isIE7x && (this.colsdata[i].type==TYPE_PROGRESS)) 150 | this.colsdata[i].type = TYPE_NUMBER; 151 | 152 | this.colsdata[i].width = iv(this.colsdata[i].width); 153 | this.ids[i] = styles[i].id; 154 | 155 | td = $("
").on( "mousemove touchstart", function(e) 156 | { 157 | if(self.isResizing) 158 | return; 159 | var x = e.clientX - $(this).offset().left; 160 | this.lastMouseX = e.clientX; 161 | var w = this.offsetWidth; 162 | var i = parseInt(this.getAttribute("index")); 163 | var delta = $.support.touchable ? 16 : 8; 164 | if(x <= delta) 165 | { 166 | if(i!= 0) 167 | { 168 | self.hotCell = i - 1; 169 | this.style.cursor = "e-resize"; 170 | } 171 | else 172 | { 173 | self.hotCell =- 1; 174 | this.style.cursor = "default"; 175 | } 176 | } 177 | else 178 | { 179 | if(x >= w - delta) 180 | { 181 | self.hotCell = i; 182 | this.style.cursor = "e-resize"; 183 | } 184 | else 185 | { 186 | self.hotCell =- 1; 187 | this.style.cursor = "default"; 188 | } 189 | } 190 | }); 191 | tr.append( td.append( $("
").html(styles[this.colOrder[i]].text)). 192 | width(styles[this.colOrder[i]].width). 193 | attr("index", i)); 194 | this.colMove.init(td.get(0), preventSort, null, moveColumn); 195 | td.mouseclick( function(e) 196 | { 197 | self.onRightClick(e); 198 | }).mouseup( function(e) 199 | { 200 | self.Sort(e); 201 | }); 202 | if(!$.support.touchable) 203 | td.mousedown( function(e) { self.bindKeys(); }); 204 | this.tHeadCols[i] = td.get(0); 205 | if(!this.colsdata[i].enabled) 206 | td.hide(); 207 | j++; 208 | } 209 | this.tBody = $("").width(0).get(0); 210 | this.tBody.cellSpacing = 0; 211 | this.tBody.cellPadding = 0; 212 | this.tpad = $("
").addClass("stable-virtpad").get(0); 213 | this.dBody.appendChild(this.tpad); 214 | this.dBody.appendChild(this.tBody); 215 | this.bpad = $("
").addClass("stable-virtpad").get(0); 216 | this.dBody.appendChild(this.bpad); 217 | this.tBody.tb = $("
").get(0); 218 | this.tBody.appendChild(this.tBody.tb); 219 | 220 | cg = $(""); 221 | this.tBody.appendChild(cg.get(0)); 222 | for(var i = 0; i < styles.length; i++) 223 | { 224 | cl = $("").width(this.colsdata[i].width); 225 | cg.append(cl); 226 | this.tBodyCols[i] = cl.get(0); 227 | if(!this.colsdata[i].enabled) 228 | cl.hide(); 229 | } 230 | this.scp = $("").addClass("stable-scrollpos").get(0); 231 | this.dCont.appendChild(this.scp); 232 | this.dCont.style.position = "relative"; 233 | this.init(); 234 | $(window).unload(function() { self.clearRows(); }); 235 | this.calcSize().resizeColumn(); 236 | 237 | this.colReszObj = $("
").addClass("stable-resize-header").get(0); 238 | this.dBody.appendChild(this.colReszObj); 239 | 240 | this.rowCover = $("
").addClass("rowcover").get(0); 241 | this.dHead.appendChild(this.rowCover); 242 | this.created = true; 243 | } 244 | 245 | dxSTable.prototype.toggleColumn = function(i) 246 | { 247 | this.colsdata[i].enabled = !this.colsdata[i].enabled; 248 | $(this.tBodyCols[i]).css( "display", this.colsdata[i].enabled ? "" : "none" ); 249 | $(this.tHeadCols[i]).css( "display", this.colsdata[i].enabled ? "" : "none" ); 250 | if(!browser.isIE7x) 251 | for (var D = 0, B = this.tBody.tb.childNodes.length; D < B; D ++ ) 252 | $(this.tBody.tb.childNodes[D].childNodes[i]).css( "display", this.colsdata[i].enabled ? "" : "none" ); 253 | if(this.colsdata[i].enabled) 254 | { 255 | $(this.tBodyCols[i]).width( this.colsdata[i].width ); 256 | $(this.tHeadCols[i]).width( this.colsdata[i].width ); 257 | } 258 | this.dHead.scrollLeft = this.dBody.scrollLeft; 259 | this.calcSize().resizeColumn(); 260 | if($type(this.onresize) == "function") 261 | this.onresize(); 262 | } 263 | 264 | dxSTable.prototype.removeColumnById = function(id, name) 265 | { 266 | this.removeColumn(this.getColById(id), name); 267 | } 268 | 269 | dxSTable.prototype.removeColumn = function(no) 270 | { 271 | i = this.getColOrder(no); 272 | if(i>=0) 273 | { 274 | $(this.tHeadCols[i]).remove(); 275 | $(this.tBodyCols[i]).remove(); 276 | 277 | for (var D = 0, B = this.tBody.tb.childNodes.length; D < B; D ++ ) 278 | $(this.tBody.tb.childNodes[D].childNodes[i]).remove(); 279 | 280 | this.ids.splice(no,1); 281 | this.colOrder.splice(i,1); 282 | for(var j = 0; j < this.cols; j++) 283 | if(this.colOrder[j] > no) 284 | this.colOrder[j]--; 285 | 286 | this.colsdata.splice(i,1); 287 | this.tBodyCols.splice(i,1); 288 | this.tHeadCols.splice(i,1); 289 | 290 | this.cols--; 291 | if(this.sIndex == i) 292 | this.sIndex = -1; 293 | if(this.secIndex == i) 294 | this.secIndex = 0; 295 | 296 | this.dHead.scrollLeft = this.dBody.scrollLeft; 297 | this.calcSize().resizeColumn(); 298 | } 299 | } 300 | 301 | dxSTable.prototype.onRightClick = function(e) 302 | { 303 | if((e.which==3) && !this.isMoving) 304 | { 305 | theContextMenu.clear(); 306 | for(var i = 0; i= 4) 337 | { 338 | this.dBody.style.width = this.dCont.offsetWidth - 2 + "px"; 339 | this.dBody.style.paddingTop = this.dHead.offsetHeight + "px"; 340 | this.tBody.style.width = this.tHead.offsetWidth + "px"; 341 | var h = this.dCont.clientHeight - this.dHead.offsetHeight; 342 | if(h >= 0) 343 | this.dBody.style.height = h + "px"; 344 | var nsb = -2; 345 | if((this.dBody.offsetWidth != this.dBody.clientWidth) && (window.scrollbarWidth!=null)) 346 | nsb-=window.scrollbarWidth; 347 | this.dHead.style.width = this.dCont.clientWidth + nsb + "px"; 348 | this.rowCover.style.width = this.dHead.style.width; 349 | if((this.cols > 0) && (!this.isResizing)) 350 | { 351 | for(var i = 0, l = this.cols; i < l; i++) 352 | { 353 | var _9a = iv(this.tBodyCols[i].style.width); 354 | if(browser.isIE && (this.tBodyCols[i].offsetWidth != 0)) 355 | { 356 | _9a = this.tBodyCols[i].offsetWidth; 357 | } 358 | if(!_9a) 359 | { 360 | continue; 361 | } 362 | if((browser.isChrome && (browser.versionMajor<537)) || browser.isKonqueror || browser.isSafari) 363 | _9a+=4; 364 | if(_9a>8) 365 | this.tHeadCols[i].style.width = (_9a - 4) + "px"; 366 | } 367 | } 368 | } 369 | return(this); 370 | } 371 | 372 | dxSTable.prototype.resizeColumn = function() 373 | { 374 | var _e = this.tBody.getElementsByTagName("colgroup")[0].getElementsByTagName("col"); 375 | var needCallHandler = false; 376 | var w = 0, c; 377 | for(var i = 0, l = _e.length; i < l; i++) 378 | { 379 | c = this.tHeadCols[i]; 380 | w = this.colsdata[i].width; 381 | if(iv(_e[i].style.width)!=w) 382 | { 383 | _e[i].style.width = w + "px"; 384 | needCallHandler = true; 385 | } 386 | if( 387 | (browser.isAppleWebKit || browser.isKonqueror || browser.isIE8up) && 388 | this.tBody.rows.length>0) 389 | { 390 | if((this.tBody.rows[0].cells[i].width!=w) && (w>=4)) 391 | { 392 | this.tBody.rows[0].cells[i].width=w; 393 | needCallHandler = true; 394 | } 395 | // for( var j=0; j _12)) 496 | this.sIndex = _12 + 1; 497 | else 498 | { 499 | if((_11 < _12) && (this.sIndex < _12) && (this.sIndex > _11)) 500 | this.sIndex--; 501 | else 502 | { 503 | if(_11 == this.sIndex) 504 | { 505 | this.sIndex = _12; 506 | if(_12 > _11) 507 | this.sIndex = _12 - 1; 508 | } 509 | } 510 | } 511 | if((_12 == this.secIndex) && (_11 > _12)) 512 | this.secIndex = _12 + 1; 513 | else 514 | { 515 | if((_11 < _12) && (this.secIndex < _12) && (this.secIndex > _11)) 516 | this.secIndex--; 517 | else 518 | { 519 | if(_11 == this.secIndex) 520 | { 521 | this.secIndex = _12; 522 | if(_12 > _11) 523 | this.secIndex = _12 - 1; 524 | } 525 | } 526 | } 527 | this.cancelSort = false; 528 | if($type(this.onmove) == "function") 529 | this.onmove(); 530 | } 531 | 532 | dxSTable.ColumnMove = function(p) 533 | { 534 | this.parent = p; 535 | this.obj = $("
").addClass("stable-move-header").get(0); 536 | this.sepobj = $("
").addClass("stable-separator-header").get(0); 537 | } 538 | 539 | dxSTable.ColumnMove.prototype = 540 | { 541 | parent : null, 542 | obj : null, 543 | sepobj : null, 544 | added : false, 545 | rx : -1, 546 | index :- 1, 547 | indexnew :- 1, 548 | mid : 0, 549 | uid : 0, 550 | 551 | init : function(o, _1b, _1c, _1d) 552 | { 553 | var self = this; 554 | $(o).mousedown( function(e) 555 | { 556 | if(self.parent.hotCell >- 1) 557 | return; 558 | return(self.start(e, this)); 559 | }); 560 | this.onDrag = _1c || new Function(); 561 | this.onDragEnd = _1d || new Function(); 562 | }, 563 | start : function(e, p) 564 | { 565 | if(this.parent.cancelMove) 566 | return; 567 | if(e && e.which==3) 568 | return(true); 569 | this.parent.isMoving = true; 570 | var o = this.obj; 571 | this.index = parseInt(p.getAttribute("index")); 572 | while(o.firstChild) 573 | o.removeChild(o.firstChild); 574 | o.appendChild(document.createTextNode(p.lastChild.innerHTML)); 575 | o.style.width = (p.offsetWidth - 16) + "px"; 576 | o.style.left = p.offsetLeft + "px"; 577 | o.style.textAlign = (this.parent.colsdata[this.index].type == TYPE_NUMBER) ? "right" : "left"; 578 | this.sepobj.style.left = p.offsetLeft + "px"; 579 | o.lastMouseX = e.clientX; 580 | o.style.visibility = "visible"; 581 | var self = this; 582 | $(document).on("mousemove",self,self.drag); 583 | $(document).on("mouseup touchend",self,self.end); 584 | this.rx = $(this.parent.dHead).offset().left; 585 | this.obj.style.cursor = "move"; 586 | return(false); 587 | }, 588 | drag : function(e) 589 | { 590 | var self = e.data; 591 | self.parent.cancelSort = true; 592 | var o = self.obj, l = parseInt(o.style.left), ex = e.clientX, i = 0, c = self.parent.cols; 593 | if(!self.added) 594 | { 595 | self.parent.dHead.appendChild(self.obj); 596 | self.parent.dHead.appendChild(self.sepobj); 597 | self.added = true; 598 | } 599 | l += ex; 600 | if(!$type(o.lastMouseX)) 601 | o.lastMouseX = ex; 602 | l -= o.lastMouseX; 603 | o.style.left = l + "px"; 604 | var ox = 0; 605 | var orx = ex + self.parent.dBody.scrollLeft - self.rx; 606 | for(i = 0; i < c; i++) 607 | { 608 | if(self.parent.colsdata[i].enabled) 609 | { 610 | ox += self.parent.tHeadCols[i].offsetWidth; 611 | if(ox > orx) 612 | break; 613 | } 614 | } 615 | if(i >= c) 616 | { 617 | self.sepobj.style.left = self.parent.tHeadCols[c - 1].offsetLeft + self.parent.tHeadCols[c - 1].offsetWidth - 1 + "px"; 618 | i = c; 619 | } 620 | else 621 | self.sepobj.style.left = self.parent.tHeadCols[i].offsetLeft + "px"; 622 | self.indexnew = i; 623 | self.obj.lastMouseX = ex; 624 | self.onDrag.apply(self.parent, [i]); 625 | return(false); 626 | }, 627 | end : function(e) 628 | { 629 | var self = e.data; 630 | try { 631 | self.obj.style.cursor = "default"; 632 | self.parent.dHead.removeChild(self.obj); 633 | self.parent.dHead.removeChild(self.sepobj); 634 | self.added = false; 635 | self.onDragEnd.apply(self.parent, [self.index, self.indexnew]); 636 | } catch(ex) {} 637 | self.index =- 1; 638 | self.indexnew =- 1; 639 | self.parent.isMoving = false; 640 | self.parent.cancelSort = false; 641 | $(document).off("mousemove",self.drag); 642 | $(document).off("mouseup touchend",self.end); 643 | return(false); 644 | } 645 | } 646 | 647 | dxSTable.prototype.renameColumnById = function(id, name) 648 | { 649 | this.renameColumn(this.getColById(id), name); 650 | } 651 | 652 | dxSTable.prototype.renameColumn = function(no,name) 653 | { 654 | no = this.getColOrder(no); 655 | if(no>=0) 656 | { 657 | this.colsdata[no].text = name; 658 | this.tHead.tb.rows[0].cells[no].firstChild.innerHTML = name; 659 | } 660 | } 661 | 662 | dxSTable.prototype.Sort = function(e) 663 | { 664 | if(this.cancelSort) 665 | return(true); 666 | this.isSorting = true; 667 | var col = null; 668 | var rev = true; 669 | if(e == null) 670 | { 671 | if(this.sIndex ==- 1) 672 | { 673 | this.calcSize().resizeHack(); 674 | return(true); 675 | } 676 | rev = false; 677 | col = this.tHead.tb.rows[0].cells[this.sIndex]; 678 | } 679 | else 680 | { 681 | if(e.which==3) 682 | return(true); 683 | col = (e.target) ? e.target : e.srcElement; 684 | } 685 | if(col.tagName == "DIV") 686 | { 687 | col = col.parentNode; 688 | } 689 | var ind = parseInt(col.getAttribute("index")); 690 | if(e && e.shiftKey && (this.sIndex >- 1)) 691 | { 692 | if(this.secIndex == ind) 693 | this.secRev = 1 - this.secRev; 694 | else 695 | this.secRev = 0; 696 | this.secIndex = ind; 697 | ind = this.sIndex; 698 | rev = false; 699 | col = this.tHead.tb.rows[0].cells[this.sIndex]; 700 | } 701 | if(rev) 702 | this.reverse = (this.sIndex == ind) ? 1 - this.reverse : 0; 703 | if(this.sIndex >= 0) 704 | { 705 | var td = this.tHead.tb.rows[0].cells[this.sIndex]; 706 | td.style.backgroundImage = "url("+this.paletteURL+"/images/blank.gif)"; 707 | } 708 | col.style.backgroundImage = "url(" + (this.reverse ? this.sortAscImage : this.sortDescImage) + ")"; 709 | this.sIndex = ind; 710 | var d = this.getCache(ind); 711 | var u = d.slice(0); 712 | var self = this; 713 | switch(this.colsdata[ind].type) 714 | { 715 | case TYPE_STRING : 716 | d.sort(function(x, y) { return self.sortAlphaNumeric(x, y); }); 717 | break; 718 | case TYPE_PROGRESS : 719 | case TYPE_NUMBER : 720 | d.sort(function(x, y) { return self.sortNumeric(x, y); }); 721 | break; 722 | default : 723 | d.sort(); 724 | break; 725 | } 726 | if(this.reverse) 727 | d.reverse(); 728 | this.rowIDs = []; 729 | var c = 0, i = 0; 730 | while(i < this.rows) 731 | { 732 | this.rowdata[d[i].key] = d[i].e; 733 | this.rowIDs.push(d[i].key); 734 | i++; 735 | } 736 | this.clearCache(d); 737 | this.clearCache(u); 738 | this.isSorting = false; 739 | if(!this.isScrolling) 740 | this.refreshRows(); 741 | this.calcSize().resizeHack(); 742 | if($type(this.onsort) == "function") 743 | this.onsort(); 744 | return(false); 745 | } 746 | 747 | dxSTable.prototype.sortNumeric = function(x, y) 748 | { 749 | var r = theSort.Numeric(x.v, y.v); 750 | return( (r == 0) ? this.sortSecondary(x, y) : r ); 751 | } 752 | 753 | dxSTable.prototype.sortAlphaNumeric = function(x, y) 754 | { 755 | var r = theSort.AlphaNumeric(x.v, y.v); 756 | return( (r == 0) ? this.sortSecondary(x, y) : r ); 757 | } 758 | 759 | dxSTable.prototype.sortSecondary = function(x, y) 760 | { 761 | var m = this.getValue(x.e, this.secIndex); 762 | var n = this.getValue(y.e, this.secIndex); 763 | if(this.secRev) 764 | { 765 | var tmp = m; 766 | m = n; 767 | n = tmp; 768 | } 769 | var ret = this.colsdata[this.secIndex].type; 770 | return( (ret==0) ? theSort.AlphaNumeric(m, n) : ((ret==1) || (ret==4)) ? theSort.Numeric(m, n) : theSort.Default(m, n) ); 771 | } 772 | 773 | var theSort = 774 | { 775 | Default: function(x, y) 776 | { 777 | if(x==null) x = ""; 778 | if(y==null) y = ""; 779 | var a = x + ""; 780 | var b = y + ""; 781 | return((a < b) ? -1 : (a > b) ? 1 : 0); 782 | }, 783 | Numeric: function(x, y) 784 | { 785 | return(ir(x) - ir(y)); 786 | }, 787 | AlphaNumeric: function(x, y) 788 | { 789 | if(x==null) x = ""; 790 | if(y==null) y = ""; 791 | var a = (x + "").toLowerCase(); 792 | var b = (y + "").toLowerCase(); 793 | return((a < b) ? -1 : (a > b) ? 1 : 0); 794 | } 795 | }; 796 | 797 | dxSTable.prototype.init = function() 798 | { 799 | if(navigator.product == "Gecko") 800 | { 801 | for(var n = 0, l = document.styleSheets.length; n < l; n++) 802 | { 803 | if(!document.styleSheets[n].href || (document.styleSheets[n].href.indexOf("style.css") ==- 1)) 804 | { 805 | continue; 806 | } 807 | try { 808 | var _55 = document.styleSheets[n].cssRules; 809 | for(var i = 0; i < _55.length; i++) 810 | { 811 | if((_55[i].type == CSSRule.STYLE_RULE) && (_55[i].selectorText == ".stable-head")) 812 | { 813 | _55[i].style.overflow = "-moz-scrollbars-none"; 814 | } 815 | } 816 | } catch(e) {} 817 | } 818 | } 819 | this.assignEvents(); 820 | this.setAlignment(); 821 | } 822 | 823 | dxSTable.prototype.setBodyState = function(v) 824 | { 825 | this.tBody.style.visibility = v; 826 | for(var i = 0; i < this.cols; i++) 827 | { 828 | if((this.colsdata[i].type==TYPE_PROGRESS) && this.colsdata[i].enabled) 829 | { 830 | for(var j = 0; j < this.rows; j++) 831 | { 832 | var id = this.rowIDs[j]; 833 | if($$(id)) 834 | { 835 | var td = $$(id).cells[i]; 836 | if(iv($(td).attr("rawvalue"))==0) 837 | $(td.lastChild).css("visibility", "hidden"); 838 | else 839 | $(td.lastChild).css("visibility", v); 840 | } 841 | } 842 | } 843 | } 844 | } 845 | 846 | dxSTable.prototype.assignEvents = function() 847 | { 848 | var self = this; 849 | this.scrollTimeout = null; 850 | this.scrollTop = 0; 851 | this.scrollDiff = 0; 852 | this.scOdd = null; 853 | this.isScrolling = false; 854 | 855 | $(this.dBody).on( "scroll", 856 | function(e) 857 | { 858 | self.dHead.scrollLeft = self.dBody.scrollLeft; 859 | var maxRows = self.getMaxRows(); 860 | if(self.scrollTop != self.dBody.scrollTop) 861 | { 862 | self.scOdd = null; 863 | self.scrollDiff = self.scrollTop - self.dBody.scrollTop; 864 | self.scrollTop = self.dBody.scrollTop; 865 | if(self.noDelayingDraw || (Math.abs(self.scrollDiff) <= TR_HEIGHT*3) || (self.viewRows <= maxRows)) 866 | { 867 | handleScroll.apply(self); 868 | return; 869 | } 870 | this.isScrolling = true; 871 | self.setBodyState("hidden"); 872 | if(!!self.scrollTimeout) 873 | window.clearTimeout(self.scrollTimeout); 874 | self.scrollTimeout = window.setTimeout( 875 | function() { self.isScrolling = false; handleScroll.apply(self); } 876 | , 500); 877 | self.scrollPos(); 878 | } 879 | }); 880 | this.tHead.onmousedown = function(e) 881 | { 882 | if(self.isResizing) 883 | self.colDragEnd(e); 884 | else 885 | if((self.hotCell >- 1) && !self.isMoving) 886 | { 887 | self.cancelSort = true; 888 | self.cancelMove = true; 889 | $(document).on("mousemove",self,self.colDrag); 890 | $(document).on("mouseup touchend",self,self.colDragEnd); 891 | self.rowCover.style.display = "block"; 892 | return(false); 893 | } 894 | }; 895 | this.tHead.onmouseup = function(e) 896 | { 897 | if((self.hotCell >- 1) && !self.isMoving) 898 | { 899 | self.cancelSort = false; 900 | self.cancelMove = false; 901 | } 902 | }; 903 | if(!$.support.touchable) 904 | $(this.dCont).mousedown( function(e) { self.bindKeys(); } ); 905 | } 906 | 907 | dxSTable.prototype.colDrag = function(e) 908 | { 909 | var self = e.data; 910 | self.isResizing = true; 911 | if(self.hotCell ==- 1) 912 | return(true); 913 | while(!self.colsdata[self.hotCell].enabled && self.hotCell>0) 914 | self.hotCell--; 915 | var o = self.tHeadCols[self.hotCell]; 916 | 917 | var i = parseInt(o.getAttribute("index")); 918 | var tb = self.tBody; 919 | var ex = e.clientX; 920 | var w = parseInt(o.style.width); 921 | var nw = w + ex; 922 | if(!$type(o.lastMouseX)) 923 | o.lastMouseX = ex; 924 | nw-=o.lastMouseX; 925 | if(nw < 10) 926 | { 927 | return(true); 928 | } 929 | self.colsdata[self.hotCell].width += (e.clientX-o.lastMouseX); 930 | o.style.width = nw + "px"; 931 | o.lastMouseX = ex; 932 | document.body.style.cursor = "e-resize"; 933 | 934 | self.colReszObj.style.visibility = "visible"; 935 | if(!browser.isAppleWebKit && !browser.isKonqueror) 936 | nw+=4; 937 | self.colReszObj.style.left = (o.offsetLeft+nw-self.dHead.scrollLeft) + "px"; 938 | 939 | nw = iv(self.dBody.style.height) + iv(self.dHead.offsetHeight); 940 | if(self.dBody.scrollWidth > self.dBody.clientWidth) 941 | nw-=window.scrollbarHeight; 942 | self.colReszObj.style.height = nw + "px"; 943 | 944 | try { document.selection.empty(); } catch(ex) {} 945 | return(false); 946 | } 947 | 948 | dxSTable.prototype.colDragEnd = function(e) 949 | { 950 | var self = e.data; 951 | $(document).off("mousemove",self.colDrag); 952 | $(document).off("mouseup touchend",self.colDragEnd); 953 | self.rowCover.style.display = "none"; 954 | self.isResizing = false; 955 | self.colReszObj.style.left = 0; 956 | self.colReszObj.style.height = 0; 957 | self.colReszObj.style.visibility = "hidden"; 958 | self.resizeColumn(); 959 | self.cancelSort = false; 960 | self.cancelMove = false; 961 | document.body.style.cursor = "default"; 962 | return(false); 963 | } 964 | 965 | dxSTable.prototype.scrollPos = function() 966 | { 967 | this.scp.style.display = "block"; 968 | var mni = Math.floor(this.dBody.scrollTop / TR_HEIGHT); 969 | var mxi = mni + Math.floor(this.dBody.clientHeight / TR_HEIGHT); 970 | var mid = Math.floor(((mni + mxi) / 2)); 971 | if(mid > this.viewRows) 972 | mid = this.viewRows - 1; 973 | var vr =- 1; 974 | var str = ""; 975 | for(var i = 0; i < this.rows; i++) 976 | { 977 | var id = this.rowIDs[i]; 978 | var r = this.rowdata[id]; 979 | if($type(r) && r.enabled) 980 | { 981 | vr++; 982 | if(vr == mid) 983 | { 984 | str = r.data[0]; 985 | break; 986 | } 987 | } 988 | } 989 | this.scp.innerHTML = escapeHTML("Current Row: " + str); 990 | } 991 | 992 | function handleScroll() 993 | { 994 | if(!!this.scrollTimeout) 995 | window.clearTimeout(this.scrollTimeout); 996 | this.scrollTimeout = null; 997 | this.refreshRows(null, true); 998 | this.setBodyState("visible"); 999 | this.scp.style.display = "none"; 1000 | } 1001 | 1002 | dxSTable.prototype.getMaxRows = function() 1003 | { 1004 | return((this.maxRows || this.viewRows this.viewRows) 1017 | { 1018 | mni = this.viewRows - maxRows; 1019 | } 1020 | if(mni < 0) 1021 | { 1022 | mni = 0; 1023 | } 1024 | var mxi = mni + maxRows; 1025 | if((mni==this.mni && mxi==this.mxi) && fromScroll) 1026 | return; 1027 | 1028 | this.cancelSort = true; 1029 | this.mni = mni; 1030 | this.mxi = mxi; 1031 | var h = (this.viewRows - maxRows) * TR_HEIGHT; 1032 | var ht = (h<0) ? 0 : mni*TR_HEIGHT; 1033 | var hb = (h<0) ? 0 : h - ht; 1034 | this.tpad.style.height = ht + "px"; 1035 | this.bpad.style.height = hb + "px"; 1036 | var tb = this.tBody.tb, vr =- 1, i = 0, c = 0, obj = null; 1037 | 1038 | for(i = 0; i < this.rows; i++) 1039 | { 1040 | var id = this.rowIDs[i]; 1041 | var r = this.rowdata[id]; 1042 | if(!$type(r)) 1043 | continue; 1044 | obj = $$(id); 1045 | if(!r.enabled) 1046 | { 1047 | if( (obj != null) && (obj.parentNode == tb) ) 1048 | { 1049 | tb.removeChild(obj); 1050 | } 1051 | continue; 1052 | } 1053 | vr++; 1054 | if((vr >= mni) && (vr <= mxi)) 1055 | { 1056 | if(!$type(tb.rows[c])) 1057 | { 1058 | if( (obj != null) && (obj.parentNode == tb) ) 1059 | { 1060 | tb.removeChild(obj); 1061 | } 1062 | else 1063 | { 1064 | obj = this.createRow(r.data, id, r.icon, r.attr); 1065 | } 1066 | tb.appendChild(obj); 1067 | } 1068 | else 1069 | { 1070 | if(tb.rows[c].id != id) 1071 | { 1072 | if( (obj != null) && (obj.parentNode == tb) ) 1073 | { 1074 | tb.removeChild(obj); 1075 | } 1076 | else 1077 | { 1078 | obj = this.createRow(r.data, id, r.icon, r.attr); 1079 | } 1080 | tb.insertBefore(obj, tb.rows[c]); 1081 | } 1082 | } 1083 | c++; 1084 | } 1085 | else 1086 | { 1087 | if( (obj != null) && (obj.parentNode == tb) ) 1088 | { 1089 | tb.removeChild(obj); 1090 | } 1091 | } 1092 | } 1093 | this.refreshSelection(); 1094 | this.cancelSort = false; 1095 | this.calcSize().resizeHack(); 1096 | } 1097 | 1098 | dxSTable.prototype.keyEvents = function(e) 1099 | { 1100 | var self = e.data; 1101 | if(!e.fromTextCtrl && !theDialogManager.isModalState()) 1102 | { 1103 | var c = e.which; 1104 | if((browser.isKonqueror && c == 127) || (c == 46)) 1105 | { 1106 | if($type(self.ondelete) == "function") 1107 | self.ondelete(); 1108 | } 1109 | else 1110 | if(e.metaKey) 1111 | { 1112 | switch(c) 1113 | { 1114 | case 65: 1115 | { 1116 | self.fillSelection(); 1117 | if($type(self.onselect) == "function") 1118 | self.onselect(e); 1119 | return(false); 1120 | } 1121 | case 90: 1122 | { 1123 | self.clearSelection(); 1124 | if($type(self.onselect) == "function") 1125 | self.onselect(e); 1126 | return(false); 1127 | } 1128 | } 1129 | } 1130 | } 1131 | } 1132 | 1133 | dxSTable.prototype.selectRow = function(e, row) 1134 | { 1135 | if(!$.support.touchable) 1136 | this.bindKeys(); 1137 | var id = row.id; 1138 | if(!((e.which==3) && (this.rowSel[id] == true))) 1139 | { 1140 | if(e.shiftKey) 1141 | { 1142 | if(this.stSel == null) 1143 | { 1144 | this.stSel = id; 1145 | this.rowSel[id] = true; 1146 | this.selCount = 1; 1147 | } 1148 | else 1149 | { 1150 | this.selCount = 0; 1151 | var _81 = false, passedCID = false, k = ""; 1152 | for(var i = 0, l = this.rowIDs.length; i < l; i++) 1153 | { 1154 | k = this.rowIDs[i]; 1155 | this.rowSel[k] = false; 1156 | if((k == this.stSel) || _81) 1157 | { 1158 | if(!passedCID) 1159 | { 1160 | this.rowSel[k] = true; 1161 | this.selCount++; 1162 | } 1163 | else 1164 | { 1165 | if((k == this.stSel) || (k == id)) 1166 | { 1167 | this.rowSel[k] = true; 1168 | this.selCount++; 1169 | } 1170 | } 1171 | } 1172 | else 1173 | { 1174 | if((k == id) || passedCID) 1175 | { 1176 | if(!_81) 1177 | { 1178 | this.rowSel[k] = true; 1179 | this.selCount++; 1180 | } 1181 | else 1182 | { 1183 | if((k == this.stSel) || (k == id)) 1184 | { 1185 | this.rowSel[k] = true; 1186 | this.selCount++; 1187 | } 1188 | } 1189 | } 1190 | } 1191 | if(!this.rowdata[k].enabled && this.rowSel[k]) 1192 | { 1193 | this.rowSel[k] = false; 1194 | this.selCount--; 1195 | } 1196 | if(k == this.stSel) 1197 | _81 = true; 1198 | if(k == id) 1199 | passedCID = true; 1200 | } 1201 | } 1202 | } 1203 | else 1204 | { 1205 | if(e.metaKey) 1206 | { 1207 | this.stSel = id; 1208 | this.rowSel[id] =!this.rowSel[id]; 1209 | if(this.rowSel[id]) 1210 | this.selCount++; 1211 | else 1212 | this.selCount--; 1213 | } 1214 | else 1215 | { 1216 | this.stSel = id; 1217 | this.selCount = 0; 1218 | for(var k in this.rowSel) 1219 | { 1220 | if(k == id) 1221 | { 1222 | this.rowSel[k] = true; 1223 | this.selCount++; 1224 | } 1225 | else 1226 | this.rowSel[k] = false; 1227 | } 1228 | } 1229 | } 1230 | if(this.selCount == 0) 1231 | this.stSel = null; 1232 | this.refreshSelection(); 1233 | } 1234 | if($type(this.onselect) == "function") 1235 | this.onselect(e, id); 1236 | return(false); 1237 | } 1238 | 1239 | dxSTable.prototype.addRowById = function(ids, sId, icon, attr) 1240 | { 1241 | var cols = []; 1242 | for(var i=0; i=0) 1248 | cols[no] = ids[i]; 1249 | } 1250 | this.addRow(cols, sId, icon, attr); 1251 | } 1252 | 1253 | dxSTable.prototype.addRow = function(cols, sId, icon, attr) 1254 | { 1255 | if(cols.length != this.cols) 1256 | return; 1257 | if(this.sortTimeout != null) 1258 | { 1259 | window.clearTimeout(this.sortTimeout); 1260 | this.sortTimeout = null; 1261 | } 1262 | this.rowdata[sId] = {"data" : cols, "icon" : icon, "attr" : attr, "enabled" : true, fmtdata: this.format(this,cols.slice(0))}; 1263 | this.rowSel[sId] = false; 1264 | this.rowIDs.push(sId); 1265 | var maxRows = this.getMaxRows(); 1266 | if(this.viewRows < maxRows) 1267 | this.tBody.tb.appendChild(this.createRow(cols, sId, icon, attr)); 1268 | this.rows++; 1269 | this.viewRows++; 1270 | if(this.viewRows > maxRows) 1271 | this.bpad.style.height = ((this.viewRows - maxRows) * TR_HEIGHT) + "px"; 1272 | var self = this; 1273 | if((this.sIndex !=- 1) && !this.noSort) 1274 | this.sortTimeout = window.setTimeout(function() { self.Sort(); }, 200); 1275 | } 1276 | 1277 | dxSTable.prototype.createRow = function(cols, sId, icon, attr) 1278 | { 1279 | if(!$type(attr)) 1280 | attr = []; 1281 | var tr = $("
").attr( { index: this.rows, title: cols[0] }); 1282 | if(sId != null) 1283 | tr.attr("id",sId); 1284 | var self = this; 1285 | if(this.colorEvenRows) 1286 | tr.addClass( (this.rows & 1) ? "odd" : "even" ); 1287 | 1288 | tr.mouseclick( function(e) { return(self.selectRow(e, this)); }); 1289 | 1290 | if($type(this.ondblclick) == "function") 1291 | tr.dblclick( function(e) { return(self.ondblclick(this)); }); 1292 | 1293 | for(var k in attr) 1294 | tr.attr(k, attr[k]); 1295 | var data = this.rowdata[sId].fmtdata; 1296 | var s = ""; 1297 | var div; 1298 | var ret; 1299 | for(var i = 0; i < this.cols; i++) 1300 | { 1301 | var ind = this.colOrder[i]; 1302 | s+=""; 1326 | } 1327 | ret = tr.append(s).get(0); 1328 | if(!browser.isIE7x) 1329 | { 1330 | var _e = this.tBody.getElementsByTagName("colgroup")[0].getElementsByTagName("col"); 1331 | for(var i = 0, l = _e.length; i < l; i++) 1332 | ret.cells[i].style.textAlign = this.tHeadCols[i].style.textAlign; 1333 | } 1334 | return(ret); 1335 | } 1336 | 1337 | dxSTable.prototype.removeRow = function(sId) 1338 | { 1339 | if(!$type(this.rowdata[sId])) 1340 | return; 1341 | if(this.rowdata[sId].enabled) 1342 | { 1343 | this.viewRows--; 1344 | } 1345 | try 1346 | { 1347 | var obj = this.tBody.tb.removeChild($$(sId)); 1348 | $(obj).off(); 1349 | } catch(ex) {} 1350 | delete this.rowSel[sId]; 1351 | delete this.rowdata[sId]; 1352 | for(var i in this.rowIDs) 1353 | { 1354 | if(this.rowIDs[i] == sId) 1355 | { 1356 | delete this.rowIDs[i]; 1357 | this.rowIDs.splice(i,1); 1358 | break; 1359 | } 1360 | } 1361 | this.rows--; 1362 | this.refreshSelection(); 1363 | } 1364 | 1365 | dxSTable.prototype.clearRows = function() 1366 | { 1367 | if(this.created) 1368 | { 1369 | var tb = this.tBody.tb; 1370 | while(tb.firstChild) 1371 | { 1372 | var obj = tb.removeChild(tb.firstChild); 1373 | $(obj).off(); 1374 | } 1375 | this.rows = 0; 1376 | this.viewRows = 0; 1377 | this.selCount = 0; 1378 | this.rowSel = new Array(0); 1379 | this.rowdata = new Array(0); 1380 | this.rowIDs = new Array(0); 1381 | this.bpad.style.height = "0px"; 1382 | this.tpad.style.height = "0px"; 1383 | this.dBody.scrollTop = 0; 1384 | } 1385 | } 1386 | 1387 | dxSTable.prototype.setAlignment = function() 1388 | { 1389 | var i, aRows, aAlign, j, align; 1390 | var aAlign = []; 1391 | for(i = 0; i < this.cols; i++) 1392 | { 1393 | switch(this.colsdata[i].align) 1394 | { 1395 | case ALIGN_LEFT: 1396 | align = "left"; 1397 | break; 1398 | case ALIGN_CENTER: 1399 | align = "center"; 1400 | break; 1401 | case ALIGN_RIGHT: 1402 | align = "right"; 1403 | break; 1404 | case ALIGN_AUTO: 1405 | default: 1406 | align = (this.colsdata[i].type==TYPE_NUMBER) ? "right" : "left"; 1407 | } 1408 | aAlign.push(align); 1409 | this.tHeadCols[i].style.textAlign = align; 1410 | } 1411 | var col = this.tBody.getElementsByTagName("colgroup")[0].getElementsByTagName("col"); 1412 | if(document.all || browser.isAppleWebKit || browser.isKonqueror) 1413 | { 1414 | for(var i = 0; i < col.length; i++) 1415 | col[i].align = aAlign[i]; 1416 | } 1417 | else 1418 | { 1419 | var ss = null, rules = null; 1420 | for(var n = 0, l = document.styleSheets.length; n < l; n++) 1421 | { 1422 | if(!document.styleSheets[n].href || (document.styleSheets[n].href.indexOf("stable.css") ==- 1)) 1423 | continue; 1424 | try { 1425 | ss = document.styleSheets[n]; 1426 | rules = ss.cssRules; 1427 | } catch(e) { return; } 1428 | } 1429 | if(rules == null) 1430 | return; 1431 | if(!$type(this.colRules)) 1432 | this.colRules = new Array(); 1433 | for(var j = 0; j < col.length; j++) 1434 | { 1435 | var k = this.colOrder[j]; 1436 | if(!this.colRules[k]) 1437 | { 1438 | for(var i = 0, l = rules.length; i < l; i++) 1439 | { 1440 | if((rules[i].type == CSSRule.STYLE_RULE) && (rules[i].selectorText == ".stable-" + this.dCont.id + "-col-" + k)) 1441 | { 1442 | this.colRules[k] = rules[i]; 1443 | break; 1444 | } 1445 | } 1446 | } 1447 | if($type(this.colRules[k])) 1448 | this.colRules[k].style.textAlign = aAlign[j]; 1449 | else 1450 | this.colRules[k] = ss.cssRules[ss.insertRule(".stable-" + this.dCont.id + "-col-" + k + " div { text-align: " + aAlign[j] + "; }", 0)]; 1451 | } 1452 | } 1453 | } 1454 | 1455 | dxSTable.prototype.hideRow = function(sId) 1456 | { 1457 | if(this.rowdata[sId].enabled) 1458 | this.viewRows--; 1459 | this.rowdata[sId].enabled = false; 1460 | } 1461 | 1462 | dxSTable.prototype.unhideRow = function(sId) 1463 | { 1464 | if(!this.rowdata[sId].enabled) 1465 | this.viewRows++; 1466 | this.rowdata[sId].enabled = true; 1467 | } 1468 | 1469 | dxSTable.prototype.refreshSelection = function() 1470 | { 1471 | if(this.created) 1472 | { 1473 | var rows = this.tBody.tb.rows, l = rows.length; 1474 | for(var i = 0; i < l; i++) 1475 | { 1476 | if(this.rowSel[rows[i].id] == true) 1477 | rows[i].className = "selected"; 1478 | else 1479 | { 1480 | if(!this.colorEvenRows) 1481 | rows[i].className = "even"; 1482 | else 1483 | rows[i].className = (i & 1) ? "odd" : "even"; 1484 | } 1485 | } 1486 | } 1487 | } 1488 | 1489 | dxSTable.prototype.clearSelection = function() 1490 | { 1491 | for(var k in this.rowSel) 1492 | this.rowSel[k] = false; 1493 | this.selCount = 0; 1494 | this.refreshSelection(); 1495 | } 1496 | 1497 | dxSTable.prototype.fillSelection = function() 1498 | { 1499 | this.selCount = 0; 1500 | for(var k in this.rowSel) 1501 | if(this.rowdata[k].enabled) 1502 | { 1503 | this.rowSel[k] = true; 1504 | this.selCount++; 1505 | } 1506 | this.refreshSelection(); 1507 | } 1508 | 1509 | dxSTable.prototype.getCache = function(col) 1510 | { 1511 | var a = new Array(0); 1512 | if(this.tBody) 1513 | { 1514 | for(var k in this.rowdata) 1515 | a.push( {"key" : k, "v" : this.getValue(this.rowdata[k], col), "e" : this.rowdata[k]} ); 1516 | this.rowdata = []; 1517 | } 1518 | return(a); 1519 | } 1520 | 1521 | dxSTable.prototype.clearCache = function(a) 1522 | { 1523 | var l = a.length; 1524 | for(var i = 0; i < l; i++) 1525 | { 1526 | a[i].v = null; 1527 | a[i].e = null; 1528 | a[i] = null; 1529 | } 1530 | } 1531 | 1532 | dxSTable.prototype.getColOrder = function(col) 1533 | { 1534 | for(var i = 0; i < this.cols; i++) 1535 | if(this.colOrder[i] == col) 1536 | return(i); 1537 | return(-1); 1538 | } 1539 | 1540 | dxSTable.prototype.getColById = function(id) 1541 | { 1542 | for(var i = 0; i < this.ids.length; i++) 1543 | if(this.ids[i]==id) 1544 | return(i); 1545 | return(-1); 1546 | } 1547 | 1548 | dxSTable.prototype.getIdByCol = function(col) 1549 | { 1550 | return(this.ids[col]); 1551 | } 1552 | 1553 | dxSTable.prototype.updateRowFrom = function(tbl,tblRow,row) 1554 | { 1555 | var updated = this.setIcon(row,tbl.getIcon(tblRow)); 1556 | for(var i = 0; i < this.cols; i++) 1557 | { 1558 | if(this.setValue(row,i,tbl.getRawValue(tblRow,i))) 1559 | updated = true; 1560 | } 1561 | return(updated); 1562 | } 1563 | 1564 | dxSTable.prototype.getValue = function(row, col) 1565 | { 1566 | return(row.data[this.colOrder[col]]); 1567 | } 1568 | 1569 | dxSTable.prototype.getValueById = function(row, id) 1570 | { 1571 | return(this.getRawValue(row, this.getColById(id))); 1572 | } 1573 | 1574 | dxSTable.prototype.getRawValue = function(row, col) 1575 | { 1576 | return(this.rowdata[row].data[col]); 1577 | } 1578 | 1579 | dxSTable.prototype.getValues = function(row) 1580 | { 1581 | var ret = new Array(); 1582 | for(var i = 0; i < this.cols; i++) 1583 | ret.push(this.getRawValue(row,i)); 1584 | return(ret); 1585 | } 1586 | 1587 | dxSTable.prototype.setValuesById = function(row,ids,zeroFill) 1588 | { 1589 | var ret = false; 1590 | for(var i = 0; i < this.cols; i++) 1591 | { 1592 | var id = this.ids[i]; 1593 | if( $type(ids[id]) ) 1594 | ret = this.setValue(row,i,ids[id]) || ret; 1595 | else 1596 | if(zeroFill) 1597 | ret = this.setValue(row,i,null) || ret; 1598 | } 1599 | return(ret); 1600 | } 1601 | 1602 | dxSTable.prototype.setValues = function(row,arr) 1603 | { 1604 | var ret = false; 1605 | for(var i = 0; i < this.cols; i++) 1606 | ret = this.setValue(row,i,arr[i]) || ret; 1607 | return(ret); 1608 | } 1609 | 1610 | dxSTable.prototype.setValueById = function(row, id, val) 1611 | { 1612 | return(this.setValue(row, this.getColById(id), val)); 1613 | } 1614 | 1615 | dxSTable.prototype.setValue = function(row, col, val) 1616 | { 1617 | if((col>=0) && this.rowdata[row]) 1618 | { 1619 | this.rowdata[row].data[col] = val; 1620 | var r = $$(row); 1621 | var rawvalue = val; 1622 | var arr = []; 1623 | arr[col] = val; 1624 | val = this.format(this,arr)[col]; 1625 | 1626 | if(this.rowdata[row].fmtdata[col] != val) 1627 | { 1628 | this.rowdata[row].fmtdata[col] = val; 1629 | if(r) 1630 | { 1631 | var c = this.getColOrder(col); 1632 | var td = r.cells[c]; 1633 | 1634 | if(td) 1635 | { 1636 | if(this.colsdata[c].type==TYPE_PROGRESS) 1637 | { 1638 | $(td).attr("rawvalue",rawvalue); 1639 | td.lastChild.style.width = iv(val)+"%"; 1640 | td.lastChild.style.backgroundColor = (new RGBackground()).setGradient(this.prgStartColor,this.prgEndColor,parseFloat(val)).getColor(); 1641 | if(!iv(val)) 1642 | $(td.lastChild).css({visibility: "hidden"}); 1643 | else 1644 | $(td.lastChild).css({visibility: "visible"}); 1645 | td.firstChild.innerHTML = escapeHTML(val); 1646 | } 1647 | else 1648 | td.lastChild.innerHTML = escapeHTML(val); 1649 | } 1650 | } 1651 | return(true); 1652 | } 1653 | } 1654 | return(false); 1655 | } 1656 | 1657 | dxSTable.prototype.getIcon = function(row) 1658 | { 1659 | return(this.rowdata[row].icon); 1660 | } 1661 | 1662 | dxSTable.prototype.setIcon = function(row, icon) 1663 | { 1664 | if(this.rowdata[row].icon != icon) 1665 | { 1666 | this.rowdata[row].icon = icon; 1667 | var r = $$(row); 1668 | if(r == null) 1669 | return(false); 1670 | var td = r.cells[this.getColOrder(0)]; 1671 | 1672 | td.firstChild.className = (icon) ? "stable-icon " + icon : ""; 1673 | return(true); 1674 | } 1675 | return(false); 1676 | } 1677 | 1678 | dxSTable.prototype.setAttr = function(row, attr) 1679 | { 1680 | if(($type(attr)=="object") || ($type(attr)=="array")) 1681 | { 1682 | if(!this.rowdata[row].attr) 1683 | this.rowdata[row].attr = {}; 1684 | for(var name in attr) 1685 | this.rowdata[row].attr[name] = attr[name]; 1686 | var r = $$(row); 1687 | if(r) 1688 | for(var name in attr) 1689 | r.setAttribute(name, attr[name]); 1690 | } 1691 | } 1692 | 1693 | dxSTable.prototype.getAttr = function(row, attrName) 1694 | { 1695 | return(this.rowdata[row].attr ? this.rowdata[row].attr[attrName] : null); 1696 | } 1697 | 1698 | dxSTable.prototype.resize = function(w, h) 1699 | { 1700 | if(this.dCont) 1701 | { 1702 | if(w) 1703 | this.dCont.style.width = w + "px"; 1704 | if(h) 1705 | this.dCont.style.height = h + "px"; 1706 | this.refreshRows(h); 1707 | } 1708 | } 1709 | 1710 | dxSTable.prototype.isColumnEnabled = function(i) 1711 | { 1712 | return(this.colsdata[this.getColOrder(i)].enabled ? 1 : 0); 1713 | } 1714 | 1715 | dxSTable.prototype.getColWidth = function(i) 1716 | { 1717 | return(this.colsdata[this.getColOrder(i)].width); 1718 | } 1719 | 1720 | dxSTable.prototype.getFirstSelected = function() 1721 | { 1722 | var ret = null; 1723 | for( var k in this.rowSel ) 1724 | { 1725 | if( this.rowSel[k] ) 1726 | { 1727 | ret = k; 1728 | break; 1729 | } 1730 | } 1731 | return(ret); 1732 | } 1733 | 1734 | dxSTable.prototype.scrollTo = function(value) 1735 | { 1736 | var old = this.dBody.scrollTop; 1737 | this.dBody.scrollTop = value; 1738 | return(old); 1739 | } -------------------------------------------------------------------------------- /images/status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/status.png -------------------------------------------------------------------------------- /images/status_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/status_icons.png -------------------------------------------------------------------------------- /images/t_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/t_bg.gif -------------------------------------------------------------------------------- /images/tb_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/tb_bg.gif -------------------------------------------------------------------------------- /images/tb_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/tb_bg.png -------------------------------------------------------------------------------- /images/toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/toolbar.png -------------------------------------------------------------------------------- /images/trackers/bhd.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/bhd.ico -------------------------------------------------------------------------------- /images/trackers/footy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/footy.png -------------------------------------------------------------------------------- /images/trackers/hdahoy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/hdahoy.ico -------------------------------------------------------------------------------- /images/trackers/hidt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/hidt.png -------------------------------------------------------------------------------- /images/trackers/ptp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/ptp.ico -------------------------------------------------------------------------------- /images/trackers/tyt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/tyt.png -------------------------------------------------------------------------------- /images/trackers/waffles.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/trackers/waffles.ico -------------------------------------------------------------------------------- /images/tstatus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/tstatus.png -------------------------------------------------------------------------------- /images/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuickBox/club-QuickBox/c0a45d76a76f3023c342d01cd7df00e5f863b6e1/images/yellow.png -------------------------------------------------------------------------------- /init.js: -------------------------------------------------------------------------------- 1 | /* 2 | * club-QuickBox skin for ruTorrent 3 | */ 4 | 5 | plugin.QuickBoxAllDone = plugin.allDone; 6 | plugin.allDone = function() 7 | { 8 | plugin.QuickBoxAllDone.call(this); 9 | $.each(["diskapceh","diskspace","quotaspace","cpuload"], function(ndx,name) 10 | { 11 | var plg = thePlugins.get(name); 12 | if(plg && plg.enabled) 13 | { 14 | plg.prgStartColor = new RGBackground("#1E824C"); 15 | plg.prgEndColor = new RGBackground("#96281B"); 16 | } 17 | }); 18 | } 19 | 20 | plugin.oldTableCreate = dxSTable.prototype.create; 21 | dxSTable.prototype.create = function(ele, styles, aName) 22 | { 23 | plugin.oldTableCreate.call(this, ele, styles, aName); 24 | this.prgStartColor = new RGBackground("#96281B"); 25 | this.prgEndColor = new RGBackground("#1E824C"); 26 | } 27 | -------------------------------------------------------------------------------- /lang/en.js: -------------------------------------------------------------------------------- 1 | /* 2 | * PLUGIN THEME 3 | * 4 | * English language file. 5 | * 6 | * Author: JMSolo - https://plaza.quickbox.io/ 7 | */ 8 | 9 | theUILang.themeStandard = "QuickBox"; 10 | theUILang.theme = "Theme"; 11 | 12 | thePlugins.get("theme").langLoaded(); 13 | -------------------------------------------------------------------------------- /plugin.info: -------------------------------------------------------------------------------- 1 | description: Dark club-QuickBox skin for ruTorrent. 2 | author: JMSolo 3 | runlevel: 5 4 | version: 5.0 5 | -------------------------------------------------------------------------------- /plugins-min.css: -------------------------------------------------------------------------------- 1 | .console,.exconsole,.starterConsole,.tskconsole{background-color:#333;}.cCell{color:#ccc;}.status-cell{padding:0 3px 0 3px;border-right:solid 2px #222;}#meter-disk-value,#qmeter-band-value,#qmeter-disk-value{background-color:#6c7a89;border:1px solid transparent;border-radius:12px;float:left;}#meter-band-text,#meter-disk-text,#qmeter-disk-text{color:#fff;text-shadow:0 0 2px #000;font-size:11px;font-family:inherit;z-index:1;}#meter-band-holder,#meter-disk-holder,#qmeter-disk-holder{height:16px;line-height:16px;border:0;padding-right:12px;}#meter-disk-pane .icon{background:url('images/status_icons.png') no-repeat 0px -336px;}#meter-cpu-text{top:0;color:#fff;text-shadow:0 0 2px #000;font-size:11px;font-family:inherit;}#meter-cpu-holder{height:16px;line-height:16px;padding-left:25px}#meter-cpu-pane .icon{background:url('images/status_icons.png') no-repeat 0px -320px!important;}#meter-cpu-td{background:url('images/status_icons.png') no-repeat 0px -320px!important;height:16px;line-height:18px;}.meter-value{background-color:#1e824c!important;border:#1e824c;border-radius:12px;width:96%!important;}div.graph_tab{color:#282828;border-color:#000;}.lf li input.TextboxFocus{background-color:transparent;color:#009ddd;}.cCell{color:#333;}.Cell0{background-color:#fffdf0;border:1px dotted #888;}.Cell1{background-color:#7eb400;}.Cell2{background-color:#75a602;}.Cell3{background-color:#6d9a02;}.Cell4{background-color:#628c02;}.Cell5{background-color:#5b8101;}.Cell6{background-color:#527501;}.Cell7{background-color:#4a6801;}.Cell8{background-color:#435f01;}.Cell9{background-color:#3b5401;}.CellA{background-color:#c1c3c3;}.CellB{background-color:#999a9a;}.CellC{background-color:#767776;}.CellD{background-color:#6b6c6b;}.CellE{background-color:#60605e;}.CellF{background-color:#000;color:#fff;}#tCellNotSupported{text-align:center;}#tRowNotSupported{vertical-align:middle;color:red;}#autodl-tb{background:transparent url('/images/autodll-irc1.png') no-repeat center;}#autodl-tb:hover{background:transparent url('/images/autodll-irc2.png') no-repeat center;}#autodl-multiselect-header{background-image:url('/images/dlg-autodl-irc.gif');}#go{background:transparent url('images/toolbar.png') no-repeat -456px 0;}#go:hover{background:transparent url('images/toolbar.png') no-repeat -456px -24px;}.listbox{background-color:#000;border:1px solid #333;color:green;font-family:Courier;overflow:auto;white-space:nowrap;}.listboxItem{color:#ccc;padding:1px 2px;}.listboxItem:hover{background-color:#222;}.listboxItemSelected{background-color:#333;color:#ccc;}.lf_rur{background-color:#222;border:1px solid #333;border-radius:3px;flex:1 0 160px;overflow-y:auto;}.lf_rur input.TextboxFocus{background-color:#222;}.lf_rur input.TextboxNormal{background-color:#212121;}.browseFrame{border:1px solid #2a2a2a;background-color:#222;}div#autodl-filters{width:auto;height:auto;}#autodl-filters-left{float:left;min-height:max-content;padding:0 0 65px 0;vertical-align:top;display:flow;}div#autodl-filters-right{display:inline-flex;float:right;}div#autodl-filters-tabs{display:inline-block;width:150px;}div#autodl-filters-contents{display:inline-block;width:95%;padding-bottom:9%;}.aright.buttons-list.dialog-buttons{padding:5px 30px;display:inline-flex;background:#222;width:100%;margin-bottom:0;margin-right:0;height:auto;clear:both;float:left;border:1px solid #333;border-bottom-left-radius:6px;border-bottom-right-radius:6px;}div#autodl-filters-contents-wol{display:inline-flex;width:300px;max-width:400px;}div#autodl-ircsrvs{height:fit-content;width:fit-content;}fieldset#autodl-ircsrvs-servers-fieldset{border:1px solid #333;border-radius:6px;margin:3px 12px;padding:3px 9px;}fieldset#autodl-ircsrvs-channels-fieldset{margin:3px 12px 65px 12px;padding:3px 9px;}#autodl-prefs{width:fit-content;height:auto;}#autodl-prefs-tabs{margin:5px 2px;padding:0 0 65px 0;display:inline-flex;}#autodl-prefs-contents{margin:3px 5px 65px 5px;padding:0 0 65px 0;display:inline-flex;}#autodl-help{height:auto;}#autodl-help:not(.dlg-window){width:fit-content;height:auto;padding:15px 15px 15px 0;}input#flm-nav-refresh{border:1px solid #333;}.sprite-archive{width:16px;height:16px;background-position:-5px -5px;}.sprite-console{width:16px;height:16px;background-position:-31px -5px;}.sprite-copy{width:16px;height:16px;background-position:-57px -5px;}.sprite-curdir{width:16px;height:16px;background-position:-83px -5px!important;}.sprite-delete{width:16px;height:16px;background-position:-5px -31px;}.flm-sprite-dir_up{width:16px;height:16px;background-position:-31px -31px;}.sprite-extract{width:16px;height:16px;background-position:-57px -31px;}.sprite-image{width:16px;height:16px;background-position:-83px -31px;}.sprite-move{width:16px;height:16px;background-position:-5px -57px;}.sprite-mp3{width:16px;height:16px;background-position:-31px -57px;}.sprite-mkdir{width:16px;height:16px;background-attachment:scroll;background-position:-57px -57px!important;}.sprite-nfo,.sprite-nfo_view{width:16px;height:16px;background-position:-83px -57px;}.sprite-rar{width:16px;height:16px;background-position:-5px -83px;}.sprite-rarpart{width:16px;height:16px;background-position:-31px -83px;}.sprite-refresh{width:16px;height:16px;background-position:-57px -83px;}.sprite-rename{width:16px;height:16px;background-position:-83px -83px;}.sprite-sfv,.sprite-sfv_create,.sprite-sfv_check{width:16px;height:16px;background-position:-109px -5px;}.sprite-torrent{width:16px;height:16px;background-position:-109px -31px;}.sprite-video{width:16px;height:16px;background-position:-109px -57px;}.sprite-vplay{width:16px;height:16px;background-position:-109px -83px;}.sprite-zip{width:16px;height:16px;background-position:-5px -109px;}#flm-nav-refresh{background:#333;border-color:#2a2a2a;box-shadow:none;padding:.25rem!important;}#flm-navigation-head .input-group-text{background:#333;border-color:#2a2a2a;color:#fff;}#flm-navpath{background:#333;border-color:#2a2a2a;color:#fff;}div#logoff{background-image:url(images/logoff.png)}div#logoff:hover{background-image:url(images/logoff3.png);}div#logoffDlg div.dlg-header{background-image:url(images/logoff2.png)} -------------------------------------------------------------------------------- /plugins.css: -------------------------------------------------------------------------------- 1 | /* Console Background */ 2 | .console, 3 | .exconsole, 4 | .starterConsole, 5 | .tskconsole { 6 | background-color: #333; 7 | } 8 | 9 | /* Cell Styling */ 10 | .cCell { 11 | color: #ccc; 12 | } 13 | 14 | .status-cell { 15 | padding: 0 3px 0 3px; 16 | border-right: solid 2px #222; 17 | } 18 | 19 | /* Meters */ 20 | #meter-disk-value, 21 | #qmeter-band-value, 22 | #qmeter-disk-value { 23 | background-color: #6c7a89; 24 | border: 1px solid transparent; 25 | border-radius: 12px; 26 | float: left; 27 | } 28 | 29 | #meter-band-text, 30 | #meter-disk-text, 31 | #qmeter-disk-text { 32 | color: #fff; 33 | text-shadow: 0 0 2px #000; 34 | /*position: relative; 35 | text-align: left; 36 | float: left; 37 | left: 40%;*/ 38 | font-size: 11px; 39 | font-family: inherit; 40 | z-index: 1; 41 | } 42 | 43 | /* Meter Holders */ 44 | #meter-band-holder, 45 | #meter-disk-holder, 46 | #qmeter-disk-holder { 47 | /* background: url(images/status_icons.png) no-repeat 3px -336px; */ 48 | height: 16px; 49 | line-height: 16px; 50 | /*width: 100px;*/ 51 | border: 0; 52 | /*display: flex;*/ 53 | padding-right: 12px; 54 | } 55 | 56 | #meter-disk-pane .icon { 57 | background: url('images/status_icons.png') no-repeat 0px -336px; 58 | } 59 | 60 | #meter-cpu-text { 61 | /*position: absolute;*/ 62 | /*left: 45px;*/ 63 | top: 0; 64 | color: #fff; 65 | text-shadow: 0 0 2px #000; 66 | font-size: 11px; 67 | font-family: inherit; 68 | } 69 | 70 | #meter-cpu-holder { 71 | height: 16px; 72 | line-height: 16px; 73 | padding-left: 25px; 74 | /*width: 100px;*/ 75 | } 76 | 77 | #meter-cpu-pane .icon { 78 | background: url('images/status_icons.png') no-repeat 0px -320px !important; 79 | } 80 | 81 | #meter-cpu-td { 82 | background: url('images/status_icons.png') no-repeat 0px -320px !important; 83 | height: 16px; 84 | line-height: 18px; 85 | } 86 | 87 | .meter-value { 88 | background-color: #1e824c !important; 89 | border: #1e824c; 90 | border-radius: 12px; 91 | width: 96% !important; 92 | } 93 | 94 | /* Graph Tab Styling */ 95 | div.graph_tab { 96 | color: #282828; 97 | border-color: #000; 98 | } 99 | 100 | /* Textbox Focus */ 101 | .lf li input.TextboxFocus { 102 | background-color: transparent; 103 | color: #009ddd; 104 | } 105 | 106 | /* Custom Cell Colors */ 107 | .cCell { 108 | color: #333; 109 | } 110 | 111 | /* Cell Background Colors */ 112 | .Cell0 { 113 | background-color: #fffdf0; 114 | border: 1px dotted #888; 115 | } 116 | 117 | .Cell1 { 118 | background-color: #7eb400; 119 | } 120 | 121 | .Cell2 { 122 | background-color: #75a602; 123 | } 124 | 125 | .Cell3 { 126 | background-color: #6d9a02; 127 | } 128 | 129 | .Cell4 { 130 | background-color: #628c02; 131 | } 132 | 133 | .Cell5 { 134 | background-color: #5b8101; 135 | } 136 | 137 | .Cell6 { 138 | background-color: #527501; 139 | } 140 | 141 | .Cell7 { 142 | background-color: #4a6801; 143 | } 144 | 145 | .Cell8 { 146 | background-color: #435f01; 147 | } 148 | 149 | .Cell9 { 150 | background-color: #3b5401; 151 | } 152 | 153 | .CellA { 154 | background-color: #c1c3c3; 155 | } 156 | 157 | .CellB { 158 | background-color: #999a9a; 159 | } 160 | 161 | .CellC { 162 | background-color: #767776; 163 | } 164 | 165 | .CellD { 166 | background-color: #6b6c6b; 167 | } 168 | 169 | .CellE { 170 | background-color: #60605e; 171 | } 172 | 173 | .CellF { 174 | background-color: #000; 175 | color: #fff; 176 | } 177 | 178 | /* Support Text */ 179 | #tCellNotSupported { 180 | text-align: center; 181 | } 182 | 183 | #tRowNotSupported { 184 | vertical-align: middle; 185 | color: red; 186 | } 187 | 188 | /* AutoDL Toolbar */ 189 | #autodl-tb { 190 | background: transparent url('/images/autodll-irc1.png') no-repeat center; 191 | } 192 | 193 | #autodl-tb:hover { 194 | background: transparent url('/images/autodll-irc2.png') no-repeat center; 195 | } 196 | 197 | #autodl-multiselect-header { 198 | background-image: url('/images/dlg-autodl-irc.gif'); 199 | } 200 | 201 | /* Go Button */ 202 | #go { 203 | background: transparent url('images/toolbar.png') no-repeat -456px 0; 204 | } 205 | 206 | #go:hover { 207 | background: transparent url('images/toolbar.png') no-repeat -456px -24px; 208 | } 209 | 210 | /* Listbox Styling */ 211 | .listbox { 212 | background-color: #000; 213 | border: 1px solid #333; 214 | color: green; 215 | font-family: Courier; 216 | overflow: auto; 217 | white-space: nowrap; 218 | } 219 | 220 | .listboxItem { 221 | color: #ccc; 222 | padding: 1px 2px; 223 | } 224 | 225 | .listboxItem:hover { 226 | background-color: #222; 227 | } 228 | 229 | .listboxItemSelected { 230 | background-color: #333; 231 | color: #ccc; 232 | } 233 | 234 | /* RSS URL Rewrite */ 235 | .lf_rur { 236 | background-color: #222; 237 | border: 1px solid #333; 238 | border-radius: 3px; 239 | flex: 1 0 160px; 240 | overflow-y: auto; 241 | } 242 | 243 | .lf_rur input.TextboxFocus { 244 | background-color: #222; 245 | } 246 | 247 | .lf_rur input.TextboxNormal { 248 | background-color: #212121; 249 | } 250 | 251 | /* _getdir */ 252 | 253 | .browseFrame { 254 | border: 1px solid #2a2a2a; 255 | background-color: #222; 256 | } 257 | 258 | /*AutoDL Filters*/ 259 | div#autodl-filters { 260 | width: auto; 261 | height: auto; 262 | } 263 | 264 | #autodl-filters-left { 265 | /* margin: 0 5px 10px 5px; */ 266 | float: left; 267 | min-height: max-content; 268 | padding: 0 0 65px 0; 269 | vertical-align: top; 270 | display: flow; 271 | } 272 | 273 | div#autodl-filters-right { 274 | display: inline-flex; 275 | float: right; 276 | } 277 | 278 | div#autodl-filters-tabs { 279 | display: inline-block; 280 | width: 150px; 281 | } 282 | 283 | div#autodl-filters-contents { 284 | display: inline-block; 285 | width: 95%; 286 | padding-bottom: 9%; 287 | } 288 | 289 | .aright.buttons-list.dialog-buttons { 290 | /* position: relative; */ 291 | padding: 5px 30px; 292 | display: inline-flex; 293 | background: #222; 294 | width: 100%; 295 | margin-bottom: 0; 296 | margin-right: 0; 297 | height: auto; 298 | clear: both; 299 | float: left; 300 | border: 1px solid #333; 301 | border-bottom-left-radius: 6px; 302 | border-bottom-right-radius: 6px; 303 | } 304 | 305 | div#autodl-filters-contents-wol { 306 | display: inline-flex; 307 | width: 300px; 308 | max-width: 400px; 309 | } 310 | 311 | /* AutoDL IRC Servers */ 312 | div#autodl-ircsrvs { 313 | height: fit-content; 314 | width: fit-content; 315 | } 316 | 317 | fieldset#autodl-ircsrvs-servers-fieldset { 318 | border: 1px solid #333; 319 | border-radius: 6px; 320 | margin: 3px 12px; 321 | padding: 3px 9px; 322 | } 323 | 324 | fieldset#autodl-ircsrvs-channels-fieldset { 325 | margin: 3px 12px 65px 12px; 326 | padding: 3px 9px; 327 | } 328 | 329 | /* AutoDL Prefs */ 330 | #autodl-prefs { 331 | width: fit-content; 332 | height: auto; 333 | } 334 | 335 | #autodl-prefs-tabs { 336 | margin: 5px 2px; 337 | padding: 0 0 65px 0; 338 | display: inline-flex; 339 | } 340 | 341 | #autodl-prefs-contents { 342 | margin: 3px 5px 65px 5px; 343 | padding: 0 0 65px 0; 344 | display: inline-flex; 345 | } 346 | 347 | /* AutoDL Help */ 348 | 349 | #autodl-help { 350 | height: auto; 351 | } 352 | 353 | #autodl-help:not(.dlg-window) { 354 | width: fit-content; 355 | height: auto; 356 | padding: 15px 15px 15px 0; 357 | } 358 | 359 | /* File Manager */ 360 | input#flm-nav-refresh { 361 | border: 1px solid #333; 362 | } 363 | 364 | .sprite-archive { 365 | width: 16px; 366 | height: 16px; 367 | background-position: -5px -5px; 368 | } 369 | 370 | .sprite-console { 371 | width: 16px; 372 | height: 16px; 373 | background-position: -31px -5px; 374 | } 375 | 376 | .sprite-copy { 377 | width: 16px; 378 | height: 16px; 379 | background-position: -57px -5px; 380 | } 381 | 382 | .sprite-curdir { 383 | width: 16px; 384 | height: 16px; 385 | background-position: -83px -5px !important; 386 | } 387 | 388 | .sprite-delete { 389 | width: 16px; 390 | height: 16px; 391 | background-position: -5px -31px; 392 | } 393 | 394 | .flm-sprite-dir_up { 395 | width: 16px; 396 | height: 16px; 397 | background-position: -31px -31px; 398 | } 399 | 400 | .sprite-extract { 401 | width: 16px; 402 | height: 16px; 403 | background-position: -57px -31px; 404 | } 405 | 406 | .sprite-image { 407 | width: 16px; 408 | height: 16px; 409 | background-position: -83px -31px; 410 | } 411 | 412 | .sprite-move { 413 | width: 16px; 414 | height: 16px; 415 | background-position: -5px -57px; 416 | } 417 | 418 | .sprite-mp3 { 419 | width: 16px; 420 | height: 16px; 421 | background-position: -31px -57px; 422 | } 423 | 424 | .sprite-mkdir { 425 | width: 16px; 426 | height: 16px; 427 | background-attachment: scroll; 428 | background-position: -57px -57px !important; 429 | } 430 | 431 | .sprite-nfo, 432 | .sprite-nfo_view { 433 | width: 16px; 434 | height: 16px; 435 | background-position: -83px -57px; 436 | } 437 | 438 | .sprite-rar { 439 | width: 16px; 440 | height: 16px; 441 | background-position: -5px -83px; 442 | } 443 | 444 | .sprite-rarpart { 445 | width: 16px; 446 | height: 16px; 447 | background-position: -31px -83px; 448 | } 449 | 450 | .sprite-refresh { 451 | width: 16px; 452 | height: 16px; 453 | background-position: -57px -83px; 454 | } 455 | 456 | .sprite-rename { 457 | width: 16px; 458 | height: 16px; 459 | background-position: -83px -83px; 460 | } 461 | 462 | .sprite-sfv, 463 | .sprite-sfv_create, 464 | .sprite-sfv_check { 465 | width: 16px; 466 | height: 16px; 467 | background-position: -109px -5px; 468 | } 469 | 470 | .sprite-torrent { 471 | width: 16px; 472 | height: 16px; 473 | background-position: -109px -31px; 474 | } 475 | 476 | .sprite-video { 477 | width: 16px; 478 | height: 16px; 479 | background-position: -109px -57px; 480 | } 481 | 482 | .sprite-vplay { 483 | width: 16px; 484 | height: 16px; 485 | background-position: -109px -83px; 486 | } 487 | 488 | .sprite-zip { 489 | width: 16px; 490 | height: 16px; 491 | background-position: -5px -109px; 492 | } 493 | 494 | /* Filemanager */ 495 | #flm-nav-refresh { 496 | background: #333; 497 | border-color: #2a2a2a; 498 | box-shadow: none; 499 | padding: .25rem !important; 500 | } 501 | 502 | #flm-navigation-head .input-group-text { 503 | background: #333; 504 | border-color: #2a2a2a; 505 | color: #fff; 506 | } 507 | 508 | #flm-navpath { 509 | background: #333; 510 | border-color: #2a2a2a; 511 | color: #fff; 512 | } 513 | 514 | /*Logoff */ 515 | 516 | div#logoff { 517 | background-image: url(images/logoff.png) 518 | } 519 | 520 | div#logoff:hover { 521 | background-image: url(images/logoff3.png); 522 | } 523 | 524 | div#logoffDlg div.dlg-header { 525 | background-image: url(images/logoff2.png) 526 | } -------------------------------------------------------------------------------- /stable-min.css: -------------------------------------------------------------------------------- 1 | :root{--border-color-dark:#333;--border-color-light:#181818;--background-dark:#2a2a2a;--background-darker:#222;--background-light:#343434;--text-color:#ccc;--text-color-light:#999;--highlight-color:#009ddd;--font-family:'Open Sans',sans-serif;--text-shadow-color:#000;--meter-bg-color:#1e824c;--selected-text-shadow:0 0 4px var(--text-shadow-color);--selected-background:#343434;--selected-text-color:var(--highlight-color);}.stable{border:1px solid;border-color:var(--border-color-dark) var(--border-color-light) var(--border-color-light) var(--border-color-dark);--header-bg-color:transparent;--header-bg-image:linear-gradient(0deg,#3a3a3a 0%,#2a2a2a 100%);--header-border-color:#3a3a3a;--col-resize-sep-bg-color:#222;--row-border-color:#333;--row-odd-bg-color:#3a3a3a;--row-even-bg-color:#2a2a2a;--row-active-bg-color:#3a3a3a;}.stable td{padding:2px;}.stable thead{background:var(--background-dark);border:none;color:var(--text-color-light);font-family:inherit;text-shadow:none;}.stable thead td div{padding:4px 16px 4px 6px!important;}div#tdcont .stable thead,div#tdcont .stable{border:none;}.stable thead table tr{background:none;border:none;}.stable thead table tr td{border-color:#222;border-style:none solid solid none;border-width:0 1px 1px 0;font-family:var(--font-family);font-size:12px;font-weight:600;line-height:16px;text-transform:uppercase;white-space:nowrap;}.stable thead div.resz{border:1px solid red;background:transparent url(images/s.gif) no-repeat scroll left center;}.stable-body{background:var(--background-darker);text-shadow:none;color:var(--text-color);}.stable tbody{background:var(--background-darker);text-shadow:none;color:var(--text-color);}.stable tbody tr{cursor:pointer;border-top:1px solid #3a3a3a;border-bottom:1px solid #3a3a3a;}.stable tbody tr td{border-bottom:1px solid var(--background-darker);background:var(--background-dark);vertical-align:middle;}.stable tbody tr td div{font-family:var(--font-family)!important;font-size:11px;height:21px!important;}.stable-body td{border-bottom:1px solid var(--background-darker);vertical-align:middle;}.stable-body td div{font-family:var(--font-family)!important;font-size:11px;height:21px!important;line-height:21px;}.stable-body tr{height:22px;}.stable tbody tr.selected td{background:#3a3a3a!important;}.stable tbody tr.odd td{background:var(--background-darker);}.stable tbody tr.even td{background:var(--background-dark);}.stable-body tr.odd td{background:var(--background-darker);}.stable-body tr.odd:hover td,.stable-body tr.even:hover td{background:#333;}.stable-body tr.even td{background:var(--background-dark);}.stable-body tr.selected td{background:var(--selected-background);color:var(--selected-text-color);text-shadow:var(--selected-text-shadow);}div.stable-body table tbody tr.even td,div.stable-body table tbody tr.even:nth-child(2n+1) td{background:var(--background-dark);}div.stable-body table tbody tr.even:hover td,div.stable-body table tbody tr.even:hover:nth-child(2n+1) td{background:#333;}div.stable-body table tbody tr.even td:nth-child(2n+1){color:#aaa;}.stable-move-header{background:transparent url(images/header_move.gif) repeat-x scroll center top rgba(128,128,128,.7);border:1px solid #09f;opacity:.7;}.gecko .stable-move-header,.ie .stable-move-header,.webkit .stable-move-header{background:rgba(128,128,128,.7);}.stable-active-header{border-color:threedface!important;}.stable-separator-header{background:var(--border-color-light);}.stable-scrollpos{background:var(--border-color-light) url(images/headers.png) repeat-x 0 -37px;height:17px;line-height:17px;border-bottom:1px solid var(--border-color-dark);}.stable-scrollpos:nth-child(2n+1){background:var(--border-color-light) url(images/headers.png) repeat-x 0 -64px;}.meter-value{float:left;border:0 inset #1b1b1b;background:var(--meter-bg-color);border-radius:12px;height:14px;}.stable-body tr.selected span.meter-value{color:var(--text-color);}.meter-text{color:var(--text-color);float:left;font-family:var(--font-family);font-size:11px;font-weight:400;left:40%;line-height:21px;overflow:visible;position:relative;text-align:left;text-shadow:var(--selected-text-shadow);z-index:1;}.stable-icon{float:left;height:16px;margin:3px 5px 0 5px;padding:0!important;width:18px;}.stable-List-col-3 div{height:18px!important;text-align:left;}.stable-List-col-6 div{font-weight:400;text-align:center;text-shadow:var(--selected-text-shadow);} -------------------------------------------------------------------------------- /stable.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --border-color-dark: #333; 3 | --border-color-light: #181818; 4 | --background-dark: #2a2a2a; 5 | --background-darker: #222; 6 | --background-light: #343434; 7 | --text-color: #ccc; 8 | --text-color-light: #999; 9 | --highlight-color: #009ddd; 10 | --font-family: 'Open Sans', sans-serif; 11 | --text-shadow-color: #000; 12 | --meter-bg-color: #1e824c; 13 | --selected-text-shadow: 0 0 4px var(--text-shadow-color); 14 | --selected-background: #343434; 15 | --selected-text-color: var(--highlight-color); 16 | } 17 | 18 | /* Stable Table Styling */ 19 | .stable { 20 | border: 1px solid; 21 | border-color: var(--border-color-dark) var(--border-color-light) var(--border-color-light) var(--border-color-dark); 22 | --header-bg-color: transparent; 23 | --header-bg-image: linear-gradient(0deg, #3a3a3a 0%, #2a2a2a 100%); 24 | --header-border-color: #3a3a3a; 25 | --col-resize-sep-bg-color: #222; 26 | --row-border-color: #333; 27 | --row-odd-bg-color: #3a3a3a; 28 | --row-even-bg-color: #2a2a2a; 29 | --row-active-bg-color: #3a3a3a; 30 | } 31 | 32 | .stable td { 33 | padding: 2px; 34 | } 35 | 36 | /* Table Head Styling */ 37 | .stable thead { 38 | background: var(--background-dark); 39 | border: none; 40 | color: var(--text-color-light); 41 | font-family: inherit; 42 | text-shadow: none; 43 | } 44 | 45 | .stable thead td div { 46 | padding: 4px 16px 4px 6px !important; 47 | } 48 | 49 | div#tdcont .stable thead, 50 | div#tdcont .stable { 51 | border: none; 52 | } 53 | 54 | .stable thead table tr { 55 | background: none; 56 | border: none; 57 | } 58 | 59 | .stable thead table tr td { 60 | border-color: #222; 61 | border-style: none solid solid none; 62 | border-width: 0 1px 1px 0; 63 | font-family: var(--font-family); 64 | font-size: 12px; 65 | font-weight: 600; 66 | line-height: 16px; 67 | text-transform: uppercase; 68 | white-space: nowrap; 69 | } 70 | 71 | .stable thead div.resz { 72 | border: 1px solid red; 73 | background: transparent url(images/s.gif) no-repeat scroll left center; 74 | } 75 | 76 | /* Table Body Styling */ 77 | .stable-body { 78 | background: var(--background-darker); 79 | text-shadow: none; 80 | color: var(--text-color); 81 | } 82 | 83 | .stable tbody { 84 | background: var(--background-darker); 85 | text-shadow: none; 86 | color: var(--text-color); 87 | } 88 | 89 | .stable tbody tr { 90 | cursor: pointer; 91 | border-top: 1px solid #3a3a3a; 92 | border-bottom: 1px solid #3a3a3a; 93 | } 94 | 95 | .stable tbody tr td { 96 | border-bottom: 1px solid var(--background-darker); 97 | background: var(--background-dark); 98 | vertical-align: middle; 99 | } 100 | 101 | .stable tbody tr td div { 102 | font-family: var(--font-family) !important; 103 | font-size: 11px; 104 | height: 18px !important; 105 | } 106 | 107 | .stable-body td { 108 | border-bottom: 1px solid var(--background-darker); 109 | vertical-align: middle; 110 | } 111 | 112 | .stable-body td div { 113 | font-family: var(--font-family) !important; 114 | font-size: 11px; 115 | height: 21px !important; 116 | line-height: 11px; 117 | } 118 | 119 | .stable-body tr { 120 | height: 22px; 121 | } 122 | 123 | .stable tbody tr.selected td { 124 | background: #3a3a3a !important; 125 | } 126 | 127 | .stable tbody tr.odd td { 128 | background: var(--background-darker); 129 | } 130 | 131 | .stable tbody tr.even td { 132 | background: var(--background-dark); 133 | } 134 | 135 | .stable-body tr.odd td { 136 | background: var(--background-darker); 137 | } 138 | 139 | .stable-body tr.odd:hover td, 140 | .stable-body tr.even:hover td { 141 | background: #333; 142 | } 143 | 144 | .stable-body tr.even td { 145 | background: var(--background-dark); 146 | } 147 | 148 | .stable-body tr.selected td { 149 | background: var(--selected-background); 150 | color: var(--selected-text-color); 151 | text-shadow: var(--selected-text-shadow); 152 | } 153 | 154 | /* Table Body Rows with nth-child */ 155 | div.stable-body table tbody tr.even td, 156 | div.stable-body table tbody tr.even:nth-child(2n+1) td { 157 | background: var(--background-dark); 158 | } 159 | 160 | div.stable-body table tbody tr.even:hover td, 161 | div.stable-body table tbody tr.even:hover:nth-child(2n+1) td { 162 | background: #333; 163 | } 164 | 165 | div.stable-body table tbody tr.even td:nth-child(2n+1) { 166 | color: #aaa; 167 | } 168 | 169 | /* Header Move Styling */ 170 | .stable-move-header { 171 | background: transparent url(images/header_move.gif) repeat-x scroll center top rgba(128, 128, 128, 0.7); 172 | border: 1px solid #09f; 173 | opacity: 0.7; 174 | } 175 | 176 | /* Gecko, IE, WebKit-Specific Styling */ 177 | .gecko .stable-move-header, 178 | .ie .stable-move-header, 179 | .webkit .stable-move-header { 180 | background: rgba(128, 128, 128, 0.7); 181 | } 182 | 183 | .stable-active-header { 184 | border-color: threedface !important; 185 | } 186 | 187 | .stable-separator-header { 188 | background: var(--border-color-light); 189 | } 190 | 191 | /* Scroll Position Styling */ 192 | .stable-scrollpos { 193 | background: var(--border-color-light) url(images/headers.png) repeat-x 0 -37px; 194 | height: 17px; 195 | line-height: 17px; 196 | border-bottom: 1px solid var(--border-color-dark); 197 | } 198 | 199 | .stable-scrollpos:nth-child(2n+1) { 200 | background: var(--border-color-light) url(images/headers.png) repeat-x 0 -64px; 201 | } 202 | 203 | /* Meter Value and Text Styling */ 204 | .meter-value { 205 | float: left; 206 | border: 0 inset #1b1b1b; 207 | background: var(--meter-bg-color); 208 | border-radius: 12px; 209 | height: 14px; 210 | } 211 | 212 | .stable-body tr.selected span.meter-value { 213 | color: var(--text-color); 214 | } 215 | 216 | .meter-text { 217 | color: var(--text-color); 218 | float: left; 219 | font-family: var(--font-family); 220 | font-size: 11px; 221 | font-weight: 400; 222 | left: 40%; 223 | line-height: 21px; 224 | overflow: visible; 225 | position: relative; 226 | text-align: left; 227 | text-shadow: var(--selected-text-shadow); 228 | z-index: 1; 229 | } 230 | 231 | /* Icon Styling */ 232 | .stable-icon { 233 | float: left; 234 | height: 16px; 235 | margin: 3px 5px 0 5px; 236 | padding: 0 !important; 237 | width: 18px; 238 | } 239 | 240 | /* Column Styling */ 241 | .stable-List-col-3 div { 242 | height: 18px !important; 243 | text-align: left; 244 | } 245 | 246 | .stable-List-col-6 div { 247 | font-weight: 400; 248 | text-align: center; 249 | text-shadow: var(--selected-text-shadow); 250 | } -------------------------------------------------------------------------------- /style-min.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800');body,html{background-color:#2a2a2a;color:#ccc;font-family:'Open Sans',sans-serif;text-shadow:none;margin:0;padding:0;line-height:1.5;}:root{--text-color:#ccc;--text-header-color:var(--text-color);--menu-color:#ccc;--menu-background-color:#2a2a2a;--menu-border-color:#333;--menu-disabled-color:#777;--menu-disabled-background-color:#2a2a2a;--menu-highlight-color:#fff;--menu-highlight-background-color:#1e824c;--menu-active-color:#ccc;--menu-connect-line-color:#555;--menu-connect-line-style:dotted;--container-bg-color:#2a2a2a;--container-border-color:#333;--btn-bg-color:#222;--header-bg-color:#222;--header-border-color:#333;--footer-height:25px;--footer-bg-color:#2a2a2a;--footer-bg-image:none;--footer-border-color:#333;--dialog-bg-color:#2a2a2a;--dialog-border-color:#333;--navbar-height:36px;--navbar-bg-color:#222;--navbar-border-color:#333;--navbar-item-bg-color:#2a2a2a;--navbar-item-border-color:#333;--loading-indicator-icon:url(images/ajax-loader-dark.gif);--loading-indicator-side-length:32px;}category-panel{color:#dcdcdc;--open-background-image:url('../club-QuickBox/images/pnl_open.png');--close-background-image:url('../club-QuickBox/images/pnl_close.png');--heading-background-color:#1A1A1A;--heading-border-color:transparent;}panel-label{color:#fff;border:none;padding:4px;background-color:#2a2a2a;--prefix-color:#fff;--prefix-fontsize:21px;--badge-color:#d4d6c9;--icon-letter-color:#d4d6c9;--badge-background-color:rgba(0,0,0,.2);--status-image:url('../plugins/theme/themes/club-QuickBox/images/status_icons.png');}panel-label:hover{background-color:#222;}panel-label[selected]{background-color:#222;color:#1e824c;text-shadow:0 -1px 0 #000;--badge-color:#1e824c;}panel-label[selected]:hover{background-color:#181818;}panel-label[icon="file"]{--icon-offset:0 -256px;}panel-label[icon="directory"]{--icon-offset:0 -272px;}panel-label[icon="config"]{--icon-offset:0 -288px;}panel-label[icon="tag"]{--icon-offset:0 -304px;}panel-label[icon="measure"]{--icon-offset:0 -320px;}panel-label[icon="storage"]{--icon-offset:0 -336px;}panel-label[icon="search"]{--icon-offset:0 -352px;}#preload{display:none;background-image:url('images/menus.png'),url('images/toolbar.png'),url('images/status_icons.png'),url('images/r_bg.gif'),url('images/asc.gif'),url('images/desc.gif'),url('images/pnl_open.gif'),url('images/pnl_close.gif'),url('images/headers.png');background-repeat:no-repeat;}#ind{background:transparent url('images/ajax-loader.png') no-repeat 0 center;width:32px;height:32px;cursor:default;}a.dlg-close{background:transparent url('images/close.png') no-repeat left center;border:none;float:right;height:14px;margin:5px;width:14px;}a.dlg-close:hover{background-position:-14px center;}a{color:#686868;font-family:'Open Sans',Tahoma,Arial,Helvetica,sans-serif;font-size:12px;text-decoration:none;}a:hover,a:focus{color:#3498db;text-decoration:underline;}.navbar-toggler-icon{background-image:url('data:image/svg+xml,%3csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"%3e%3cpath stroke="rgba(0,0,0,.5)" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22" /%3e%3c/svg%3e');background-color:transparent!important;}.dropdown-menu{--bs-dropdown-border-color:#333;--bs-dropdown-bg:#222;--bs-dropdown-link-color:#ccc;--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#111;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-link-hover-bg:#111;}.dropdown-menu{--bs-dropdown-border-color:var(--menu-border-color);--bs-dropdown-bg:var(--menu-background-color);--bs-dropdown-link-color:var(--menu-color);--bs-dropdown-link-active-color:var(--menu-highlight-color);--bs-dropdown-link-active-bg:var(--menu-highlight-background-color);--bs-dropdown-link-hover-color:var(--menu-highlight-color);--bs-dropdown-link-hover-bg:var(--menu-highlight-background-color);}.list-group{--bs-list-group-border-color:transparent;--bs-list-group-border-width:0;--bs-list-group-bg:var(--menu-background-color);--bs-list-group-color:var(--menu-color);--bs-list-group-active-color:var(--menu-highlight-color);--bs-list-group-active-border-color:transparent;--bs-list-group-active-bg:var(--menu-highlight-background-color);--bs-list-group-action-hover-color:var(--menu-highlight-color);--bs-list-group-action-hover-bg:var(--menu-highlight-background-color);--bs-list-group-action-active-color:var(--menu-highlight-color);--bs-list-group-action-active-bg:var(--menu-highlight-background-color);--bs-list-group-item-padding-x:.25rem;--bs-list-group-item-padding-y:.25rem;}div#t .nav-link{border:0 solid #2a2a2a;border-radius:3px;}.nav-link{color:#ccc;}.nav-link:hover{color:#1e824c;}hr{border:none;border-top:1px solid #333;margin:1em 0;height:1px;}#cover{background-color:#181818;}#msg{background-color:#2a2a2a;border-top:1px solid #333;border-bottom:1px solid #333;color:#aaa;font-size:12px;font-weight:700;text-shadow:0 0 3px #000;padding:10px;}#sc{border:1px solid #333;background-color:#181818;}#sc li.se_act div{background-color:#333;color:#888;}#lng{background-color:#181818;border:1px solid #333;}div#tdetails{background-color:#222;}div#lcont{line-height:1rem;background:#222;}div#tdcont{background:#222;border:1px solid #333;}.CMenu li a.sel::before{background-image:none!important;}.CMenu li a::before,.CMenu li a::after{content:"";display:block;width:0;height:1.35rem;background-size:.75rem;background-position:center;background-repeat:no-repeat;}ul.CMenu{background-color:#222;border:1px solid #333;opacity:.98;width:180px;padding:0;list-style:none;}ul.CMenu li{background-color:#3a3a3a;width:180px;}ul.CMenu li:hover{background-color:#333;}ul.CMenu li.menuitem:first-child{border-radius:5px 5px 0 0;}ul.CMenu li.menuitem:last-child{border-radius:0 0 5px 5px;}ul.CMenu li a{background:transparent url('images/menus.png') no-repeat 0 0;color:#999;padding:3px 18px;display:flex;}ul.CMenu li a:hover{color:#757571;background-color:#cfdeef;}ul.CMenu li a.dis{color:#333;}ul.CMenu li a.dis:hover{color:#333;}ul.CMenu li hr{background-color:#222;border:none;border-bottom:1px solid #222;height:1px;margin:0;padding:0;}ul.CMenu li a.exp{background-position:right -22px;}ul.CMenu li a.exp:hover{background-position:right -44px;}ul.CMenu li a.sel{color:#cacaca;background-position:0 -66px;}ul.CMenu li ul li a.sel{color:#cacaca;}ul.CMenu li a:hover{background-color:#222;color:#ccc;font-family:'Open Sans',sans-serif;font-weight:600;text-shadow:0 0 2px #000;}ul.CMenu li:hover ul li a{background-color:#111;color:#666;}ul.CMenu li:hover ul li a:hover{background-color:#222;color:#ccc;text-shadow:0 0 2px #000;}ul.CMenu li ul li a.dis{color:#333;}ul.CMenu li ul li a.dis:hover{background-color:#eee;color:#333;}#VDivider,#HDivider{background-color:#444;cursor:n-resize;height:5px;width:100%;}#HDivider{cursor:e-resize;width:5px;height:auto;}#HDivider:hover,#VDivider:hover{background-color:#666;}#sel{border:1px dotted #555;}#t{background-color:#2a2a2a;border-bottom:1px solid #222;height:42px;white-space:nowrap;width:100%;}#t a:hover{background:none!important;}#t div.TB_Separator{background-color:#2a2a2a!important}div#t{background-color:#222;border-bottom-color:#2a2a2a;}#t div{cursor:pointer;float:left;margin-top:3px;background-repeat:no-repeat;background-color:#222}#t div.nav-icon{height:30px;width:30px;background-color:transparent;}#t div#add{background-image:url('images/toolbar.png');background-position:0 0;}#t div#add:hover{background-position:0 -30px;}#t div#create{background-image:url('images/toolbar.png');background-position:-30px 0;}#t div#create:hover{background-position:-30px -30px;}#t div#remove{background-image:url('images/toolbar.png');background-position:-60px 0;}#t div#remove:hover{background-position:-60px -30px;}#t div#start{background-image:url('images/toolbar.png');background-position:-90px 0;}#t div#start:hover{background-position:-90px -30px;}#t div#pause{background-image:url('images/toolbar.png');background-position:-120px 0;}#t div#pause:hover{background-position:-120px -30px;}#t div#stop{background-image:url('images/toolbar.png');background-position:-150px 0;}#t div#stop:hover{background-position:-150px -30px;}#t div#moveu{background-image:url('images/toolbar.png');background-position:-144px 0;}#t div#moveu:hover{background-position:-144px -30px;}#t div#moved{background-image:url('images/toolbar.png');background-position:-168px 0;}#t div#moved:hover{background-position:-168px -30px;}#t div#search{background-image:url('images/toolbar.png');background-position:-241px 0;}#t div#search:hover{background-position:-241px -30px;}#t div#rss{background-image:url('images/toolbar.png');background-position:-301px 0;}#t div#rss:hover{background-position:-301px -30px;}#t div#setting{background-image:url('images/toolbar.png');background-position:-330px 0;}#t div#setting:hover{background-position:-330px -30px;}#t div#help{background-image:url('images/toolbar.png');background-position:-360px 0;}#t div#help:hover{background-position:-360px -30px;}#t div#plugins,#t div#chat{background-image:url('images/toolbar.png');background-position:-421px 0;}#t div#plugins:hover,#t div#chat:hover{background-position:-421px -30px;}#autodl-tb{background:transparent url('images/toolbar.png') no-repeat -271px 0!important;}#autodl-tb:hover{background-position:-271px -30px!important;}@media (min-width:769px){#t a#mnu_go::before{content:"GO"}}#t a#mnu_go{margin:6px 12px 0 6px;padding:4px;background-color:#65878f;line-height:12px;border-radius:3px;color:#fff;font-weight:400;text-decoration:none;}#t a#mnu_go:hover{background-color:#59a9c2!important;}#go{background:none!important;height:12px!important;width:2px!important;}#go:hover{background:none!important;}fieldset{border:1px solid #333;border-radius:6px;margin:.25rem 0;padding:.25rem .5rem;}input[type="file"],input[type="password"],input[type=number],input[type="text"],select{background-color:#212121;border:1px solid #313131;color:#aaa;font-family:'Open Sans',sans-serif;font-size:12px;border-radius:3px;}input[type="file"][disabled],input[type="password"][disabled],input[type=number][disabled],input[type="text"][disabled],select[disabled]{background-color:#2a2a2a;color:#000;}input.Button{background-color:#222;border:1px solid #333;color:#6c7a89;cursor:pointer;padding:6px 12px;font-weight:400;border-radius:3px;font-size:14px;transition:background-color .2s ease;}input.Button:hover,input.Button:focus{background-color:#3a3a3a;color:#999;text-shadow:0 0 4px #999;}input:focus-visible,select:focus-visible{background-color:#1a1a1a;outline:1px solid #2a2a2a;}textarea{background-color:#000;border:1px solid #000;color:green;font-family:monospace;padding:10px;border-radius:5px;}textarea[disabled]{background-color:#2a2a2a;color:#555;}#CatList,category-list{background-color:#222;border:1px solid #222;}#CatList ul{list-style:none;padding:0;margin:0;}#CatList ul li{background-repeat:no-repeat;border:1px solid #222;cursor:pointer;font-family:'Open Sans',sans-serif;font-size:12px;line-height:16px;padding:5px 25px;margin:0;}#CatList ul li:hover{background-color:#303030;}#CatList ul li.sel{background-color:#303030;border:1px solid #313131;color:#009ddd;}#CatList ul li span{color:#67809f;}#CatList ul li.sel span{color:#2782cf;}.catpanel{background-color:#222;border-top:1px solid #2a2a2a;color:#ccc;font-family:'Open Sans',sans-serif;font-size:14px;font-weight:700;line-height:25px;padding:2px 28px;text-shadow:none;}.label-icon{min-width:16px;min-height:16px;background-image:url('images/status_icons.png');background-repeat:no-repeat;}.label-count,.label-size{background-color:rgba(0,0,0,.2);padding:.1em .3em;border-radius:.8em;font-size:10px;}.label-icon img[id^="lbl_"]{width:16px;background-image:url('images/status_icons.png');background-repeat:no-repeat;}.label-icon img[src^="plugins"]{background-image:none;width:16px;}.Icon_Dir{background-image:url('images/status_icons.png');background-position:0 -272px;}.Icon_File{background-image:url('images/status_icons.png');background-position:0 -256px;}#offcanvas-sidepanel{background-color:#222!important;border:1px solid #222!important;}#side-panel{border:1px solid #222;}category-panel::part(heading){font-size:12px}div[part="heading"]{display:flex;background-color:#181818;border-top:1px solid #222;border-bottom:1px solid #222;padding:2px 5px 2px 21px;margin:0;line-height:16px;cursor:pointer;user-select:none;}div[part=heading]::before{content:"";display:block;height:28px!important;background-image:url('../club-QuickBox/images/pnl_open.png')!important;}:host([closed]) div[part="heading"]::before{background-image:url('../club-QuickBox/images/pnl_closed.png')!important;}[part="count"],[part="size"]{color:#fff;background-color:rgba(0,0,0,.2);padding:.1em .3em;border-radius:.8em;font-size:10px;white-space:nowrap;}.nav-tabs{--bs-nav-tabs-border-width:1px;--bs-nav-tabs-border-color:#222;--bs-nav-tabs-border-radius:3px;--bs-nav-tabs-link-hover-border-color:#111 #222 #111;--bs-nav-tabs-link-active-color:#fff;--bs-nav-tabs-link-active-bg:#111;--bs-nav-tabs-link-active-border-color:#222 #111 #222;border-bottom:1px solid #222;}.tabbar li.nav-item a.nav-link{border:1px solid #222;background-color:#333;margin-bottom:0;margin-top:6px;}.tabbar li.nav-item.selected a.nav-link{border-top:2px solid #1e824c;color:unset;}.tabbar li.nav-item a.nav-link:hover{border-top:2px solid #1e824c;color:unset;}div.tab{background-color:#2a2a2a;font-family:inherit;}div.graph_tab,div.table_tab{background-color:#222;color:#aaa;font-family:inherit;}li#tab_lcont{width:fit-content;display:inline-flex;}#list-table{border:1px solid #222;background-color:#2a2a2a;}div#List,div#FileList,div#PeerList,div#Speed,div#TrackerList{--header-border-color:#333;--header-bg-image:none;--row-border-color:#333;--row-odd-bg-color:#333;--row-even-bg-color:#2a2a2a;--row-active-bg-color:#3a3a3a;background-color:#222;border:1px solid #222;margin-right:6px;}div#gcont table{font-family:'Open Sans',sans-serif;font-size:12px;line-height:13px;width:100%;border-spacing:0;margin:0;}div#gcont div.row.Header{font-size:14px;font-weight:bold;background:#333;padding:.5rem;}div#gcont table td.Header{background-color:#222;color:#aaa;padding:8px;}div#gcont table tr{background-color:#2a2a2a;color:#aaa;}div#gcont table tr:nth-child(even){background-color:#222;}div#gcont table tr td{padding:8px;}#modalbg{background-color:#000;}div#modalbg{background-color:#000;opacity:.75;}div.dlg-window{background-color:#2a2a2a;border:1px solid #333;border-radius:6px;color:#aaa;padding:0;}div#stg_c{display:flex;flex-direction:row;background-color:#2a2a2a;}div#stg .lm{flex:0 0 auto;padding:.25rem .5rem;background-color:#222;border:1px solid #333;border-radius:0 0 0 6px;overflow:hidden auto;}.lm li a{color:#ddd;padding:1px 2px;flex-grow:1;}.lm li a.focus{background-color:#111;border-radius:3px;}div#stg-pages{padding:0 .5rem;height:550px;flex:1 1 auto;display:flex;flex-direction:column;overflow-x:auto;background-color:#222;border:1px solid #333;}.stg_con{display:none;margin-bottom:auto;background-color:#222;overflow:hidden auto;}.stg_con legend{position:sticky;top:0;background-color:#333;color:#ddd;padding:2px 6px;}div.dlg-header{background-color:#222;border-bottom:1px solid #333;font-family:'Open Sans',sans-serif;font-size:14px;padding:.75rem .75rem .75rem 3rem;color:#fff;}#StatusBar{background-color:#2a2a2a;border-top:1px solid #2a2a2a;color:#ddd;font-family:inherit;padding:0 10px;margin-top:0;}#StatusBar table{width:100%;border-collapse:collapse;}#StatusBar table tr td{background-color:#2a2a2a;border:none;padding-right:5px;}.statuscell td:not(:last-child){padding-right:5px;}#st_up .icon{background:url('images/status.png') no-repeat 6px -2px;height:21px;width:21px;}#st_down .icon{background:url('images/status.png') no-repeat 6px -20px;height:21px;width:21px;}#stup_speed{color:#03a678!important;}#stdown_speed{color:#4183d7!important;}#stup_total,#stdown_total{color:#fde3a7;}.stable-icon{background-image:url('images/status_icons.png');background-repeat:no-repeat;}.Icon_Torrent{background:transparent url('images/torrent.png') no-repeat left center!important;}.Icon_Vid{background:transparent url('images/video.png') no-repeat left center!important;}.Icon_Mp3{background:transparent url('images/mp3.png') no-repeat left center!important;}.Icon_Img{background:transparent url('images/image.png') no-repeat left center!important;}.Icon_Nfo{background:transparent url('images/nfo.png') no-repeat left center!important;}.Icon_Sfv{background:transparent url('images/text.png') no-repeat left center!important;}.Icon_UpD{background:transparent url('images/up.png') no-repeat left center!important}.Icon_Rar,.Icon_Zip{background:transparent url('images/archive.zip') no-repeat left center!important;}.Status_Up{background-position:0px -16px;}span#dl,span#ds{color:#178fd1;}span#ra{color:#00b16a;}span#ul,span#us{color:#2ecc71;}span.det{color:#6c7a89;}::-webkit-scrollbar{width:12px;height:12px;}::-webkit-scrollbar-button{display:none;}::-webkit-scrollbar-track-piece{background-color:#1b1b1b;border:1px solid #1c1c1c;border-radius:6px;}::-webkit-scrollbar-thumb{background-color:#343434;border-radius:6px;}.noty_bar.noty_theme_default.noty_error{background-color:#d24d57;border-color:#8b0000;color:#fff;}.meter-value-start-color{background-color:#96281b!important;}.meter-value-end-color{background-color:#1e824c!important;}#meter-disk-value,#qmeter-band-value,#qmeter-disk-value{border:inset 1px #212121}#meter-band-text,#meter-disk-text,#qmeter-disk-text{color:#6c7a89;font-family:inherit;font-size:11px;text-shadow:0 0 2px #6c7a89;z-index:1;}#traf_graph_ctrl{margin-top:-5px;}.legendLabel{color:#999!important;}legend{color:#999;}#PluginList{margin-top:0;}#maincont{margin:0;}li.cat.tracker{padding:3px 4px!important;}#tskConsole{width:620px;height:auto;}button:not(:disabled):hover,input[type=button]:not(:disabled):hover,a.Button:not(:disabled):hover{background-color:#333;}button,input[type=button],input[type=submit],.Button{border:1px solid #222;border-radius:3px;margin:.25rem;padding:1px 10px;background:#333;width:80px;text-wrap:nowrap;font-size:12px;} -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800'); 2 | 3 | body, 4 | html { 5 | background-color: #2a2a2a; 6 | color: #ccc; 7 | font-family: 'Open Sans', sans-serif; 8 | text-shadow: none; 9 | margin: 0; 10 | padding: 0; 11 | line-height: 1.5; 12 | } 13 | 14 | /* Global Styles */ 15 | 16 | :root { 17 | --text-color: #ccc; 18 | --text-header-color: var(--text-color); 19 | --menu-color: #ccc; 20 | --menu-background-color: #2a2a2a; 21 | --menu-border-color: #333; 22 | --menu-disabled-color: #777; 23 | --menu-disabled-background-color: #2a2a2a; 24 | --menu-highlight-color: #fff; 25 | --menu-highlight-background-color: #1e824c; 26 | --menu-active-color: #ccc; 27 | --menu-connect-line-color: #555; 28 | --menu-connect-line-style: dotted; 29 | --container-bg-color: #2a2a2a; 30 | --container-border-color: #333; 31 | --btn-bg-color: #222; 32 | --header-bg-color: #222; 33 | --header-border-color: #333; 34 | --footer-height: 25px; 35 | --footer-bg-color: #2a2a2a; 36 | --footer-bg-image: none; 37 | --footer-border-color: #333; 38 | --dialog-bg-color: #2a2a2a; 39 | --dialog-border-color: #333; 40 | --navbar-height: 36px; 41 | --navbar-bg-color: #222; 42 | /* --navbar-bg-image: url(../images/t_bg.png); */ /* optional: dark bg image? */ 43 | --navbar-border-color: #333; 44 | --navbar-item-bg-color: #2a2a2a; 45 | --navbar-item-border-color: #333; 46 | --loading-indicator-icon: url(images/ajax-loader-dark.gif); /* you may want a darker loader */ 47 | --loading-indicator-side-length: 32px; 48 | } 49 | 50 | category-panel { 51 | color: #dcdcdc; 52 | --open-background-image: url('../club-QuickBox/images/pnl_open.png'); 53 | --close-background-image: url('../club-QuickBox/images/pnl_close.png'); 54 | --heading-background-color: #1A1A1A; 55 | --heading-border-color: transparent; 56 | } 57 | 58 | /* Panel Labels */ 59 | panel-label { 60 | color: #fff; 61 | border: none; 62 | padding: 4px; 63 | background-color: #2a2a2a; 64 | --prefix-color: #fff; 65 | --prefix-fontsize: 21px; 66 | --badge-color: #d4d6c9; 67 | --icon-letter-color: #d4d6c9; 68 | --badge-background-color: rgba(0, 0, 0, 0.2); 69 | --status-image: url('../plugins/theme/themes/club-QuickBox/images/status_icons.png'); 70 | } 71 | 72 | panel-label:hover { 73 | background-color: #222; 74 | } 75 | 76 | panel-label[selected] { 77 | background-color: #222; 78 | color: #1e824c; 79 | text-shadow: 0 -1px 0 #000; 80 | --badge-color: #1e824c; 81 | } 82 | 83 | panel-label[selected]:hover { 84 | background-color: #181818; 85 | } 86 | 87 | panel-label[icon="file"] { 88 | --icon-offset: 0 -256px; 89 | } 90 | 91 | panel-label[icon="directory"] { 92 | --icon-offset: 0 -272px; 93 | } 94 | 95 | panel-label[icon="config"] { 96 | --icon-offset: 0 -288px; 97 | } 98 | 99 | panel-label[icon="tag"] { 100 | --icon-offset: 0 -304px; 101 | } 102 | 103 | panel-label[icon="measure"] { 104 | --icon-offset: 0 -320px; 105 | } 106 | 107 | panel-label[icon="storage"] { 108 | --icon-offset: 0 -336px; 109 | } 110 | 111 | panel-label[icon="search"] { 112 | --icon-offset: 0 -352px; 113 | } 114 | 115 | /* Preload Images */ 116 | #preload { 117 | display: none; 118 | background-image: url('images/menus.png'), url('images/toolbar.png'), url('images/status_icons.png'), 119 | url('images/r_bg.gif'), url('images/asc.gif'), url('images/desc.gif'), 120 | url('images/pnl_open.gif'), url('images/pnl_close.gif'), url('images/headers.png'); 121 | background-repeat: no-repeat; 122 | } 123 | 124 | /* Loading Indicator */ 125 | #ind { 126 | background: transparent url('images/ajax-loader.png') no-repeat 0px center; 127 | width: 32px; 128 | height: 32px; 129 | cursor: default; 130 | } 131 | 132 | /* Dialog Close Button */ 133 | a.dlg-close { 134 | background: transparent url('images/close.png') no-repeat left center; 135 | border: none; 136 | float: right; 137 | height: 14px; 138 | margin: 5px; 139 | width: 14px; 140 | } 141 | 142 | a.dlg-close:hover { 143 | background-position: -14px center; 144 | } 145 | 146 | /* General Links */ 147 | a { 148 | color: #686868; 149 | font-family: 'Open Sans', Tahoma, Arial, Helvetica, sans-serif; 150 | font-size: 12px; 151 | text-decoration: none; 152 | } 153 | 154 | a:hover, 155 | a:focus { 156 | color: #3498db; 157 | text-decoration: underline; 158 | } 159 | 160 | /* Navbar */ 161 | .navbar-toggler-icon { 162 | background-image: url('data:image/svg+xml,%3csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"%3e%3cpath stroke="rgba(0, 0, 0, 0.5)" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22" /%3e%3c/svg%3e'); 163 | background-color: transparent !important; 164 | } 165 | 166 | .dropdown-menu { 167 | --bs-dropdown-border-color: #333; 168 | --bs-dropdown-bg: #222; 169 | --bs-dropdown-link-color: #ccc; 170 | --bs-dropdown-link-active-color: #fff; 171 | --bs-dropdown-link-active-bg: #111; 172 | --bs-dropdown-link-hover-color: #fff; 173 | --bs-dropdown-link-hover-bg: #111; 174 | } 175 | 176 | .dropdown-menu { 177 | --bs-dropdown-border-color: var(--menu-border-color); 178 | --bs-dropdown-bg: var(--menu-background-color); 179 | --bs-dropdown-link-color: var(--menu-color); 180 | --bs-dropdown-link-active-color: var(--menu-highlight-color); 181 | --bs-dropdown-link-active-bg: var(--menu-highlight-background-color); 182 | --bs-dropdown-link-hover-color: var(--menu-highlight-color); 183 | --bs-dropdown-link-hover-bg: var(--menu-highlight-background-color); 184 | } 185 | .list-group { 186 | --bs-list-group-border-color: transparent; 187 | --bs-list-group-border-width: 0; 188 | --bs-list-group-bg: var(--menu-background-color); 189 | --bs-list-group-color: var(--menu-color); 190 | --bs-list-group-active-color: var(--menu-highlight-color); 191 | --bs-list-group-active-border-color: transparent; 192 | --bs-list-group-active-bg: var(--menu-highlight-background-color); 193 | --bs-list-group-action-hover-color: var(--menu-highlight-color); 194 | --bs-list-group-action-hover-bg: var(--menu-highlight-background-color); 195 | --bs-list-group-action-active-color: var(--menu-highlight-color); 196 | --bs-list-group-action-active-bg: var(--menu-highlight-background-color); 197 | --bs-list-group-item-padding-x: 0.25rem; 198 | --bs-list-group-item-padding-y: 0.25rem; 199 | } 200 | 201 | /* Navigation Links */ 202 | div#t .nav-link { 203 | border: 0px solid #2a2a2a; 204 | border-radius: 3px; 205 | } 206 | 207 | .nav-link { 208 | color: #ccc; 209 | } 210 | 211 | .nav-link:hover { 212 | color: #1e824c; 213 | } 214 | 215 | /* Horizontal Rule */ 216 | hr { 217 | border: none; 218 | border-top: 1px solid #333; 219 | margin: 1em 0; 220 | height: 1px; 221 | } 222 | 223 | /* Containers */ 224 | #cover { 225 | background-color: #181818; 226 | } 227 | 228 | #msg { 229 | background-color: #2a2a2a; 230 | border-top: 1px solid #333; 231 | border-bottom: 1px solid #333; 232 | color: #aaa; 233 | font-size: 12px; 234 | font-weight: 700; 235 | text-shadow: 0 0 3px #000; 236 | padding: 10px; 237 | } 238 | 239 | #sc { 240 | border: 1px solid #333; 241 | background-color: #181818; 242 | } 243 | 244 | #sc li.se_act div { 245 | background-color: #333; 246 | color: #888; 247 | } 248 | 249 | #lng { 250 | background-color: #181818; 251 | border: 1px solid #333; 252 | } 253 | 254 | div#tdetails { 255 | background-color: #222; 256 | } 257 | 258 | div#lcont { 259 | line-height: 1rem; 260 | background: #222; 261 | } 262 | 263 | div#tdcont { 264 | background: #222; 265 | border: 1px solid #333; 266 | } 267 | 268 | /* Context Menu */ 269 | .CMenu li a.sel::before { 270 | background-image: none !important; 271 | } 272 | 273 | .CMenu li a::before, .CMenu li a::after { 274 | content: ""; 275 | display: block; 276 | width: 0px; 277 | height: 1.35rem; 278 | background-size: 0.75rem; 279 | background-position: center; 280 | background-repeat: no-repeat; 281 | } 282 | 283 | ul.CMenu { 284 | background-color: #222; 285 | border: 1px solid #333; 286 | opacity: 0.98; 287 | width: 180px; 288 | padding: 0; 289 | list-style: none; 290 | } 291 | 292 | ul.CMenu li { 293 | background-color: #3a3a3a; 294 | width: 180px; 295 | } 296 | 297 | ul.CMenu li:hover { 298 | background-color: #333; 299 | } 300 | 301 | ul.CMenu li.menuitem:first-child { 302 | border-radius: 5px 5px 0 0; 303 | } 304 | 305 | ul.CMenu li.menuitem:last-child { 306 | border-radius: 0 0 5px 5px; 307 | } 308 | 309 | ul.CMenu li a { 310 | background: transparent url('images/menus.png') no-repeat 0 0; 311 | color: #999; 312 | padding: 3px 18px; 313 | display: flex; 314 | } 315 | 316 | ul.CMenu li a:hover { 317 | color: #757571; 318 | background-color: #cfdeef; 319 | } 320 | 321 | ul.CMenu li a.dis { 322 | color: #333; 323 | } 324 | 325 | ul.CMenu li a.dis:hover { 326 | color: #333; 327 | } 328 | 329 | ul.CMenu li hr { 330 | background-color: #222; 331 | border: none; 332 | border-bottom: 1px solid #222; 333 | height: 1px; 334 | margin: 0; 335 | padding: 0; 336 | } 337 | 338 | ul.CMenu li a.exp { 339 | background-position: right -22px; 340 | } 341 | 342 | ul.CMenu li a.exp:hover { 343 | background-position: right -44px; 344 | } 345 | 346 | ul.CMenu li a.sel { 347 | color: #cacaca; 348 | background-position: 0 -66px; 349 | } 350 | 351 | ul.CMenu li ul li a.sel { 352 | color: #cacaca; 353 | } 354 | 355 | ul.CMenu li a:hover { 356 | background-color: #222; 357 | color: #ccc; 358 | font-family: 'Open Sans', sans-serif; 359 | font-weight: 600; 360 | text-shadow: 0 0 2px #000; 361 | } 362 | 363 | ul.CMenu li:hover ul li a { 364 | background-color: #111; 365 | color: #666; 366 | } 367 | 368 | ul.CMenu li:hover ul li a:hover { 369 | background-color: #222; 370 | color: #ccc; 371 | text-shadow: 0 0 2px #000; 372 | } 373 | 374 | ul.CMenu li ul li a.dis { 375 | color: #333; 376 | } 377 | 378 | ul.CMenu li ul li a.dis:hover { 379 | background-color: #eee; 380 | color: #333; 381 | } 382 | 383 | /* Dividers */ 384 | #VDivider, 385 | #HDivider { 386 | background-color: #444; 387 | cursor: n-resize; 388 | height: 5px; 389 | width: 100%; 390 | } 391 | 392 | #HDivider { 393 | cursor: e-resize; 394 | width: 5px; 395 | height: auto; 396 | } 397 | 398 | #HDivider:hover, 399 | #VDivider:hover { 400 | background-color: #666; 401 | } 402 | 403 | /* Selection */ 404 | #sel { 405 | border: 1px dotted #555; 406 | } 407 | 408 | /* Toolbar */ 409 | #t { 410 | background-color: #2a2a2a; 411 | border-bottom: 1px solid #222; 412 | height: 42px; 413 | white-space: nowrap; 414 | width: 100%; 415 | } 416 | 417 | #t a:hover { 418 | background: none !important; 419 | } 420 | 421 | #t div.TB_Separator { 422 | background-color: #2a2a2a !important 423 | } 424 | 425 | div#t { 426 | background-color: #222; 427 | border-bottom-color: #2a2a2a; 428 | } 429 | 430 | #t div { 431 | cursor: pointer; 432 | float: left; 433 | margin-top: 3px; 434 | /*height: 30px;/* 435 | /*width: 30px;*/ 436 | background-repeat: no-repeat; 437 | background-color: #222 438 | } 439 | 440 | #t div.nav-icon { 441 | height: 30px; 442 | width: 30px; 443 | background-color: transparent; 444 | } 445 | 446 | #t div#add { 447 | background-image: url('images/toolbar.png'); 448 | background-position: 0 0; 449 | } 450 | 451 | #t div#add:hover { 452 | background-position: 0 -30px; 453 | } 454 | 455 | #t div#create { 456 | background-image: url('images/toolbar.png'); 457 | background-position: -30px 0; 458 | } 459 | 460 | #t div#create:hover { 461 | background-position: -30px -30px; 462 | } 463 | 464 | #t div#remove { 465 | background-image: url('images/toolbar.png'); 466 | background-position: -60px 0; 467 | } 468 | 469 | #t div#remove:hover { 470 | background-position: -60px -30px; 471 | } 472 | 473 | #t div#start { 474 | background-image: url('images/toolbar.png'); 475 | background-position: -90px 0; 476 | } 477 | 478 | #t div#start:hover { 479 | background-position: -90px -30px; 480 | } 481 | 482 | #t div#pause { 483 | background-image: url('images/toolbar.png'); 484 | background-position: -120px 0; 485 | } 486 | 487 | #t div#pause:hover { 488 | background-position: -120px -30px; 489 | } 490 | 491 | #t div#stop { 492 | background-image: url('images/toolbar.png'); 493 | background-position: -150px 0; 494 | } 495 | 496 | #t div#stop:hover { 497 | background-position: -150px -30px; 498 | } 499 | 500 | #t div#moveu { 501 | background-image: url('images/toolbar.png'); 502 | background-position: -144px 0; 503 | } 504 | 505 | #t div#moveu:hover { 506 | background-position: -144px -30px; 507 | } 508 | 509 | #t div#moved { 510 | background-image: url('images/toolbar.png'); 511 | background-position: -168px 0; 512 | } 513 | 514 | #t div#moved:hover { 515 | background-position: -168px -30px; 516 | } 517 | 518 | #t div#search { 519 | background-image: url('images/toolbar.png'); 520 | background-position: -241px 0; 521 | } 522 | 523 | #t div#search:hover { 524 | background-position: -241px -30px; 525 | } 526 | 527 | #t div#rss { 528 | background-image: url('images/toolbar.png'); 529 | background-position: -301px 0; 530 | } 531 | 532 | #t div#rss:hover { 533 | background-position: -301px -30px; 534 | } 535 | 536 | #t div#setting { 537 | background-image: url('images/toolbar.png'); 538 | background-position: -330px 0; 539 | } 540 | 541 | #t div#setting:hover { 542 | background-position: -330px -30px; 543 | } 544 | 545 | #t div#help { 546 | background-image: url('images/toolbar.png'); 547 | background-position: -360px 0; 548 | } 549 | 550 | #t div#help:hover { 551 | background-position: -360px -30px; 552 | } 553 | 554 | #t div#plugins, 555 | #t div#chat { 556 | background-image: url('images/toolbar.png'); 557 | background-position: -421px 0; 558 | } 559 | 560 | #t div#plugins:hover, 561 | #t div#chat:hover { 562 | background-position: -421px -30px; 563 | } 564 | 565 | #autodl-tb { 566 | background: transparent url('images/toolbar.png') no-repeat -271px 0 !important; 567 | } 568 | 569 | #autodl-tb:hover { 570 | background-position: -271px -30px !important; 571 | } 572 | 573 | /* Only show on desktop */ 574 | @media (min-width: 769px) { 575 | #t a#mnu_go::before { 576 | content: "GO"; 577 | } 578 | } 579 | 580 | #t a#mnu_go { 581 | margin: 6px 12px 0 6px; 582 | padding: 4px; 583 | background-color: #65878f; 584 | line-height: 12px; 585 | border-radius: 3px; 586 | color: #fff; 587 | font-weight: 400; 588 | text-decoration: none; 589 | } 590 | 591 | #t a#mnu_go:hover { 592 | background-color: #59a9c2 !important; 593 | } 594 | 595 | #go { 596 | background: none !important; 597 | height: 12px !important; 598 | width: 2px !important; 599 | } 600 | 601 | #go:hover { 602 | background: none !important; 603 | } 604 | 605 | /* Input Fields */ 606 | fieldset { 607 | border: 1px solid #333; 608 | border-radius: 6px; 609 | margin: 0.25rem 0; 610 | padding: 0.25rem 0.5rem; 611 | } 612 | 613 | input[type="file"], 614 | input[type="password"], 615 | input[type=number], 616 | input[type="text"], 617 | select { 618 | background-color: #212121; 619 | border: 1px solid #313131; 620 | color: #aaa; 621 | /*padding: 5px;*/ 622 | font-family: 'Open Sans', sans-serif; 623 | font-size: 12px; 624 | border-radius: 3px; 625 | } 626 | 627 | input[type="file"][disabled], 628 | input[type="password"][disabled], 629 | input[type=number][disabled], 630 | input[type="text"][disabled], 631 | select[disabled] { 632 | background-color: #2a2a2a; 633 | color: #000; 634 | } 635 | 636 | input.Button { 637 | background-color: #222; 638 | border: 1px solid #333; 639 | color: #6c7a89; 640 | cursor: pointer; 641 | padding: 6px 12px; 642 | font-weight: 400; 643 | border-radius: 3px; 644 | font-size: 14px; 645 | transition: background-color 0.2s ease; 646 | } 647 | 648 | input.Button:hover, 649 | input.Button:focus { 650 | background-color: #3a3a3a; 651 | color: #999; 652 | text-shadow: 0 0 4px #999; 653 | } 654 | 655 | input:focus-visible, 656 | select:focus-visible { 657 | background-color: #1a1a1a; 658 | outline: 1px solid #2a2a2a; 659 | } 660 | 661 | /* Textarea */ 662 | textarea { 663 | background-color: #000; 664 | border: 1px solid #000; 665 | color: green; 666 | font-family: monospace; 667 | padding: 10px; 668 | border-radius: 5px; 669 | } 670 | 671 | textarea[disabled] { 672 | background-color: #2a2a2a; 673 | color: #555; 674 | } 675 | 676 | /* Categories and Panels */ 677 | #CatList, 678 | category-list { 679 | background-color: #222; 680 | border: 1px solid #222; 681 | } 682 | 683 | #CatList ul { 684 | list-style: none; 685 | padding: 0; 686 | margin: 0; 687 | } 688 | 689 | #CatList ul li { 690 | background-repeat: no-repeat; 691 | border: 1px solid #222; 692 | cursor: pointer; 693 | font-family: 'Open Sans', sans-serif; 694 | font-size: 12px; 695 | line-height: 16px; 696 | padding: 5px 25px; 697 | margin: 0; 698 | } 699 | 700 | #CatList ul li:hover { 701 | background-color: #303030; 702 | } 703 | 704 | #CatList ul li.sel { 705 | background-color: #303030; 706 | border: 1px solid #313131; 707 | color: #009ddd; 708 | } 709 | 710 | #CatList ul li span { 711 | color: #67809f; 712 | } 713 | 714 | #CatList ul li.sel span { 715 | color: #2782cf; 716 | } 717 | 718 | .catpanel { 719 | background-color: #222; 720 | border-top: 1px solid #2a2a2a; 721 | color: #ccc; 722 | font-family: 'Open Sans', sans-serif; 723 | font-size: 14px; 724 | font-weight: 700; 725 | line-height: 25px; 726 | padding: 2px 28px; 727 | text-shadow: none; 728 | } 729 | 730 | /* Label Icons */ 731 | .label-icon { 732 | min-width: 16px; 733 | min-height: 16px; 734 | background-image: url('images/status_icons.png'); 735 | background-repeat: no-repeat; 736 | } 737 | 738 | .label-count, 739 | .label-size { 740 | background-color: rgba(0, 0, 0, 0.2); 741 | padding: 0.1em 0.3em; 742 | border-radius: 0.8em; 743 | font-size: 10px; 744 | } 745 | 746 | .label-icon img[id^="lbl_"] { 747 | width: 16px; 748 | background-image: url('images/status_icons.png'); 749 | background-repeat: no-repeat; 750 | } 751 | 752 | .label-icon img[src^="plugins"] { 753 | background-image: none; 754 | width: 16px; 755 | } 756 | 757 | .Icon_Dir { 758 | background-image: url('images/status_icons.png'); 759 | background-position: 0 -272px; 760 | } 761 | 762 | .Icon_File { 763 | background-image: url('images/status_icons.png'); 764 | background-position: 0 -256px; 765 | } 766 | 767 | /* Panels */ 768 | #offcanvas-sidepanel { 769 | background-color: #222 !important; 770 | border: 1px solid #222 !important; 771 | } 772 | 773 | #side-panel { 774 | border: 1px solid #222; 775 | } 776 | 777 | category-panel::part(heading) { 778 | font-size: 12px; 779 | /*padding: 2px 14px 2px 30px;*/ 780 | /*height: 22px; 781 | line-height: 25px; 782 | font-weight: 700; 783 | text-shadow: 0 -1px 0 #000; 784 | border: none; 785 | background-color: #2a2a2a;*/ 786 | } 787 | 788 | div[part="heading"] { 789 | display: flex; 790 | background-color: #181818; 791 | border-top: 1px solid #222; 792 | border-bottom: 1px solid #222; 793 | padding: 2px 5px 2px 21px; 794 | margin: 0; 795 | line-height: 16px; 796 | cursor: pointer; 797 | user-select: none; 798 | } 799 | 800 | div[part=heading]::before { 801 | content: ""; 802 | display: block; 803 | height: 28px !important; 804 | background-image: url('../club-QuickBox/images/pnl_open.png') !important; 805 | } 806 | 807 | :host([closed]) div[part="heading"]::before { 808 | background-image: url('../club-QuickBox/images/pnl_closed.png') !important; 809 | } 810 | 811 | [part="count"], 812 | [part="size"] { 813 | color: #fff; 814 | background-color: rgba(0, 0, 0, 0.2); 815 | padding: 0.1em 0.3em; 816 | border-radius: 0.8em; 817 | font-size: 10px; 818 | white-space: nowrap; 819 | } 820 | 821 | /* Tabs */ 822 | .nav-tabs { 823 | --bs-nav-tabs-border-width: 1px; 824 | --bs-nav-tabs-border-color: #222; 825 | --bs-nav-tabs-border-radius: 3px; 826 | --bs-nav-tabs-link-hover-border-color: #111 #222 #111; 827 | --bs-nav-tabs-link-active-color: #fff; 828 | --bs-nav-tabs-link-active-bg: #111; 829 | --bs-nav-tabs-link-active-border-color: #222 #111 #222; 830 | border-bottom: 1px solid #222; 831 | } 832 | 833 | .tabbar li.nav-item a.nav-link { 834 | border: 1px solid #222; 835 | background-color: #333; 836 | margin-bottom: 0px; 837 | margin-top: 6px; 838 | } 839 | 840 | .tabbar li.nav-item.selected a.nav-link { 841 | border-top: 2px solid #1e824c; 842 | color: unset; 843 | } 844 | 845 | .tabbar li.nav-item a.nav-link:hover { 846 | border-top: 2px solid #1e824c; 847 | color: unset; 848 | } 849 | 850 | div.tab { 851 | background-color: #2a2a2a; 852 | font-family: inherit; 853 | } 854 | 855 | div.graph_tab, 856 | div.table_tab { 857 | background-color: #222; 858 | color: #aaa; 859 | font-family: inherit; 860 | } 861 | 862 | li#tab_lcont { 863 | width: fit-content; 864 | display: inline-flex; 865 | } 866 | 867 | /* Lists */ 868 | #list-table { 869 | border: 1px solid #222; 870 | background-color: #2a2a2a; 871 | } 872 | 873 | div#List, 874 | div#FileList, 875 | div#PeerList, 876 | div#Speed, 877 | div#TrackerList { 878 | --header-border-color: #333; 879 | --header-bg-image: none; 880 | --row-border-color: #333; 881 | --row-odd-bg-color: #333; 882 | --row-even-bg-color: #2a2a2a; 883 | --row-active-bg-color: #3a3a3a; 884 | background-color: #222; 885 | border: 1px solid #222; 886 | margin-right: 6px; 887 | } 888 | 889 | div#gcont table { 890 | font-family: 'Open Sans', sans-serif; 891 | font-size: 12px; 892 | line-height: 13px; 893 | width: 100%; 894 | border-spacing: 0; 895 | margin: 0; 896 | } 897 | 898 | div#gcont div.row.Header { 899 | font-size: 14px; 900 | font-weight: bold; 901 | background: #333; 902 | padding: 0.5rem; 903 | } 904 | 905 | div#gcont table td.Header { 906 | background-color: #222; 907 | color: #aaa; 908 | padding: 8px; 909 | } 910 | 911 | div#gcont table tr { 912 | background-color: #2a2a2a; 913 | color: #aaa; 914 | } 915 | 916 | div#gcont table tr:nth-child(even) { 917 | background-color: #222; 918 | } 919 | 920 | div#gcont table tr td { 921 | padding: 8px; 922 | } 923 | 924 | /* Modals */ 925 | #modalbg { 926 | background-color: #000; 927 | } 928 | 929 | div#modalbg { 930 | background-color: #000; 931 | opacity: 0.75; 932 | } 933 | 934 | div.dlg-window { 935 | background-color: #2a2a2a; 936 | border: 1px solid #333; 937 | border-radius: 6px; 938 | color: #aaa; 939 | padding: 0; 940 | } 941 | 942 | div#stg_c { 943 | display: flex; 944 | flex-direction: row; 945 | background-color: #2a2a2a; 946 | } 947 | 948 | div#stg .lm { 949 | flex: 0 0 auto; 950 | padding: 0.25rem 0.5rem; 951 | background-color: #222; 952 | border: 1px solid #333; 953 | border-radius: 0 0 0 6px; 954 | overflow: hidden auto; 955 | } 956 | 957 | .lm li a { 958 | color: #ddd; 959 | padding: 1px 2px; 960 | flex-grow: 1; 961 | } 962 | 963 | .lm li a.focus { 964 | background-color: #111; 965 | border-radius: 3px; 966 | } 967 | 968 | div#stg-pages { 969 | padding: 0 0.5rem; 970 | height: 550px; 971 | flex: 1 1 auto; 972 | display: flex; 973 | flex-direction: column; 974 | overflow-x: auto; 975 | background-color: #222; 976 | border: 1px solid #333; 977 | } 978 | 979 | .stg_con { 980 | display: none; 981 | margin-bottom: auto; 982 | background-color: #222; 983 | overflow: hidden auto; 984 | } 985 | 986 | .stg_con legend { 987 | position: sticky; 988 | top: 0; 989 | background-color: #333; 990 | color: #ddd; 991 | padding: 2px 6px; 992 | } 993 | 994 | div.dlg-header { 995 | background-color: #222; 996 | border-bottom: 1px solid #333; 997 | font-family: 'Open Sans', sans-serif; 998 | font-size: 14px; 999 | padding: 0.75rem 0.75rem 0.75rem 3rem; 1000 | color: #fff; 1001 | } 1002 | 1003 | /* Status Bar */ 1004 | #StatusBar { 1005 | background-color: #2a2a2a; 1006 | border-top: 1px solid #2a2a2a; 1007 | color: #ddd; 1008 | font-family: inherit; 1009 | padding: 0px 10px; 1010 | margin-top: 0px; 1011 | } 1012 | 1013 | #StatusBar table { 1014 | width: 100%; 1015 | border-collapse: collapse; 1016 | } 1017 | 1018 | #StatusBar table tr td { 1019 | background-color: #2a2a2a; 1020 | border: none; 1021 | padding-right: 5px; 1022 | } 1023 | 1024 | .statuscell td:not(:last-child) { 1025 | padding-right: 5px; 1026 | } 1027 | 1028 | #st_up .icon { 1029 | background: url('images/status.png') no-repeat 6px -2px; 1030 | height: 21px; 1031 | width: 21px; 1032 | } 1033 | 1034 | #st_down .icon { 1035 | background: url('images/status.png') no-repeat 6px -20px; 1036 | height: 21px; 1037 | width: 21px; 1038 | } 1039 | 1040 | #stup_speed { 1041 | color: #03a678 !important; 1042 | } 1043 | 1044 | #stdown_speed { 1045 | color: #4183d7 !important; 1046 | } 1047 | 1048 | #stup_total, 1049 | #stdown_total { 1050 | color: #fde3a7; 1051 | } 1052 | 1053 | /* Icons */ 1054 | .stable-icon { 1055 | background-image: url('images/status_icons.png'); 1056 | background-repeat: no-repeat; 1057 | } 1058 | 1059 | .Icon_Torrent { 1060 | background: transparent url('images/torrent.png') no-repeat left center !important; 1061 | } 1062 | 1063 | .Icon_Vid { 1064 | background: transparent url('images/video.png') no-repeat left center !important; 1065 | } 1066 | 1067 | .Icon_Mp3 { 1068 | background: transparent url('images/mp3.png') no-repeat left center !important; 1069 | } 1070 | 1071 | .Icon_Img { 1072 | background: transparent url('images/image.png') no-repeat left center !important; 1073 | } 1074 | 1075 | .Icon_Nfo { 1076 | background: transparent url('images/nfo.png') no-repeat left center !important; 1077 | } 1078 | 1079 | .Icon_Sfv { 1080 | background: transparent url('images/text.png') no-repeat left center !important; 1081 | } 1082 | 1083 | .Icon_UpD { 1084 | background: transparent url('images/up.png') no-repeat left center !important 1085 | } 1086 | 1087 | .Icon_Rar, 1088 | .Icon_Zip { 1089 | background: transparent url('images/archive.zip') no-repeat left center !important; 1090 | } 1091 | 1092 | .Status_Up { 1093 | background-position: 0px -16px; 1094 | } 1095 | 1096 | /* Text Colors */ 1097 | span#dl, 1098 | span#ds { 1099 | color: #178fd1; 1100 | } 1101 | 1102 | span#ra { 1103 | color: #00b16a; 1104 | } 1105 | 1106 | span#ul, 1107 | span#us { 1108 | color: #2ecc71; 1109 | } 1110 | 1111 | span.det { 1112 | color: #6c7a89; 1113 | } 1114 | 1115 | /* Scrollbars */ 1116 | ::-webkit-scrollbar { 1117 | width: 12px; 1118 | height: 12px; 1119 | } 1120 | 1121 | ::-webkit-scrollbar-button { 1122 | display: none; 1123 | } 1124 | 1125 | ::-webkit-scrollbar-track-piece { 1126 | background-color: #1b1b1b; 1127 | border: 1px solid #1c1c1c; 1128 | border-radius: 6px; 1129 | } 1130 | 1131 | ::-webkit-scrollbar-thumb { 1132 | background-color: #343434; 1133 | border-radius: 6px; 1134 | } 1135 | 1136 | /* Notifications */ 1137 | .noty_bar.noty_theme_default.noty_error { 1138 | background-color: #d24d57; 1139 | border-color: #8b0000; 1140 | color: #fff; 1141 | } 1142 | 1143 | /* Meter Values */ 1144 | .meter-value-start-color { 1145 | background-color: #96281b !important; 1146 | } 1147 | 1148 | .meter-value-end-color { 1149 | background-color: #1e824c !important; 1150 | } 1151 | 1152 | /* Additional Elements */ 1153 | #meter-disk-value, 1154 | #qmeter-band-value, 1155 | #qmeter-disk-value { 1156 | border: inset 1px #212121; 1157 | /*float: left;*/ 1158 | } 1159 | 1160 | #meter-band-text, 1161 | #meter-disk-text, 1162 | #qmeter-disk-text { 1163 | color: #6c7a89; 1164 | font-family: inherit; 1165 | font-size: 11px; 1166 | /*float: left; 1167 | position: relative; 1168 | left: 40%; 1169 | text-align: left;*/ 1170 | text-shadow: 0 0 2px #6c7a89; 1171 | z-index: 1; 1172 | } 1173 | 1174 | #traf_graph_ctrl { 1175 | margin-top: -5px; 1176 | } 1177 | 1178 | .legendLabel { 1179 | color: #999 !important; 1180 | } 1181 | 1182 | legend { 1183 | color: #999; 1184 | } 1185 | 1186 | #PluginList { 1187 | margin-top: 0; 1188 | } 1189 | 1190 | #maincont { 1191 | margin: 0; 1192 | } 1193 | 1194 | li.cat.tracker { 1195 | padding: 3px 4px !important; 1196 | } 1197 | 1198 | #tskConsole { 1199 | width: 620px; 1200 | height: auto; 1201 | } 1202 | 1203 | /* Buttons (clear) */ 1204 | button:not(:disabled):hover, 1205 | input[type=button]:not(:disabled):hover, 1206 | a.Button:not(:disabled):hover { 1207 | background-color: #333; 1208 | } 1209 | 1210 | button, 1211 | input[type=button], 1212 | input[type=submit], 1213 | .Button { 1214 | border: 1px solid #222; 1215 | border-radius: 3px; 1216 | margin: 0.25rem; 1217 | /*margin: 0.75rem 0.25rem 0 0.25rem;*/ 1218 | padding: 1px 10px; 1219 | background: #333; 1220 | width: 80px; 1221 | text-wrap: nowrap; 1222 | font-size: 12px; 1223 | } --------------------------------------------------------------------------------
"; 1309 | div = "
 
"; 1314 | } 1315 | else 1316 | div = "
"+((String(data[ind]) == "") ? " " : escapeHTML(data[ind]))+"
"; 1317 | if((ind == 0) && (icon != null)) 1318 | span2 = ""; 1319 | if(!this.colsdata[i].enabled && !browser.isIE7x) 1320 | s+=" style='display: none'"; 1321 | s+=">"; 1322 | s+=span1; 1323 | s+=span2; 1324 | s+=div; 1325 | s+="