From 5c3afbf6f40e0800ece88b7aca7d117f3a4b56ad Mon Sep 17 00:00:00 2001
From: d8ahazard
Date: Fri, 25 Nov 2016 09:21:14 -0600
Subject: [PATCH 001/170] Add Tab Colors
Closes mescon/Muximux#92
Re-commit. New PR due to technical issues. Spectrum is minified, debug
commits removed, no references to browser-specific values, new functions
commented.
---
css/spectrum.min.css | 1 +
css/style.css | 19 +++-
index.php | 2 +
js/main.js | 16 ++-
js/spectrum.min.js | 217 +++++++++++++++++++++++++++++++++++++++
muximux.php | 10 +-
settings.ini.php-example | 23 +++++
7 files changed, 282 insertions(+), 6 deletions(-)
create mode 100644 css/spectrum.min.css
create mode 100644 js/spectrum.min.js
diff --git a/css/spectrum.min.css b/css/spectrum.min.css
new file mode 100644
index 0000000..73c7668
--- /dev/null
+++ b/css/spectrum.min.css
@@ -0,0 +1 @@
+.sp-container{position:absolute;top:0;left:0;display:inline-block;*display:inline;*zoom:1;z-index:9999994;overflow:hidden}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20%}.sp-hue{position:absolute;top:0;right:0;bottom:0;left:84%;height:100%}.sp-clear-enabled .sp-hue{top:33px;height:77.5%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:18px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-4px;bottom:-4px;width:6px;left:50%;cursor:pointer;border:1px solid black;background:white;opacity:.8}.sp-alpha{display:none;position:absolute;bottom:-14px;right:0;left:0;height:8px}.sp-alpha-inner{border:solid 1px #333}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:0;right:0;bottom:0;left:84%;height:28px}.sp-container,.sp-replacer,.sp-preview,.sp-dragger,.sp-slider,.sp-alpha,.sp-clear,.sp-alpha-handle,.sp-container.sp-dragging .sp-input,.sp-container button{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-input-disabled .sp-input-container{display:none}.sp-container.sp-buttons-disabled .sp-button-container{display:none}.sp-container.sp-palette-buttons-disabled .sp-palette-button-container{display:none}.sp-palette-only .sp-picker-container{display:none}.sp-palette-disabled .sp-palette-container{display:none}.sp-initial-disabled .sp-initial{display:none}.sp-sat{background-image:-webkit-gradient(linear,0 0,100% 0,from(#FFF),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left,#FFF,rgba(204,154,129,0));background-image:-moz-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-o-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-ms-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:linear-gradient(to right,#fff,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#FFFFFFFF',endColorstr='#00CC9A81')}.sp-val{background-image:-webkit-gradient(linear,0 100%,0 0,from(#000000),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom,#000000,rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-o-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:linear-gradient(to top,#000,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81',endColorstr='#FF000000')}.sp-hue{background:-moz-linear-gradient(top,#ff0000 0%,#ffff00 17%,#00ff00 33%,#00ffff 50%,#0000ff 67%,#ff00ff 83%,#ff0000 100%);background:-ms-linear-gradient(top,#ff0000 0%,#ffff00 17%,#00ff00 33%,#00ffff 50%,#0000ff 67%,#ff00ff 83%,#ff0000 100%);background:-o-linear-gradient(top,#ff0000 0%,#ffff00 17%,#00ff00 33%,#00ffff 50%,#0000ff 67%,#ff00ff 83%,#ff0000 100%);background:-webkit-gradient(linear,left top,left bottom,from(#ff0000),color-stop(.17,#ffff00),color-stop(.33,#00ff00),color-stop(.5,#00ffff),color-stop(.67,#0000ff),color-stop(.83,#ff00ff),to(#ff0000));background:-webkit-linear-gradient(top,#ff0000 0%,#ffff00 17%,#00ff00 33%,#00ffff 50%,#0000ff 67%,#ff00ff 83%,#ff0000 100%);background:linear-gradient(to bottom,#ff0000 0%,#ffff00 17%,#00ff00 33%,#00ffff 50%,#0000ff 67%,#ff00ff 83%,#ff0000 100%)}.sp-1{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000',endColorstr='#ffff00')}.sp-2{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00',endColorstr='#00ff00')}.sp-3{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00',endColorstr='#00ffff')}.sp-4{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff',endColorstr='#0000ff')}.sp-5{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff',endColorstr='#ff00ff')}.sp-6{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff',endColorstr='#ff0000')}.sp-hidden{display:none!important}.sp-cf:before,.sp-cf:after{content:"";display:table}.sp-cf:after{clear:both}.sp-cf{*zoom:1}@media (max-device-width:480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:5px;width:5px;border:1px solid #fff;background:#000;cursor:pointer;position:absolute;top:0;left:0}.sp-slider{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:white;opacity:.8}.sp-container{border-radius:0;background-color:#ECECEC;border:solid 1px #f0c49B;padding:0}.sp-container,.sp-container button,.sp-container input,.sp-color,.sp-hue,.sp-clear{font:normal 12px "Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:3px}.sp-color,.sp-hue,.sp-clear{border:solid 1px #666}.sp-input-container{float:right;width:100px;margin-bottom:4px}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{font-size:12px!important;border:1px inset;padding:4px 5px;margin:0;width:100%;background:transparent;border-radius:3px;color:#222}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-picker-container,.sp-palette-container{float:left;position:relative;padding:10px;padding-bottom:300px;margin-bottom:-290px}.sp-picker-container{width:172px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;width:24px;height:15px;margin:3px;cursor:pointer;border:solid 2px transparent}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:orange}.sp-thumb-el{position:relative}.sp-initial{float:left;border:solid 1px #333}.sp-initial span{width:30px;height:25px;border:none;display:block;float:left;margin:0}.sp-initial .sp-clear-display{background-position:center}.sp-palette-button-container,.sp-button-container{float:right}.sp-replacer{margin:0;overflow:hidden;cursor:pointer;padding:4px;display:inline-block;*zoom:1;*display:inline;border:solid 1px #91765d;background:#eee;color:#333;vertical-align:middle}.sp-replacer:hover,.sp-replacer.sp-active{border-color:#F0C49B;color:#111}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{padding:2px 0;height:16px;line-height:16px;font-size:10px}.sp-preview{position:relative;width:25px;height:20px;border:solid 1px #222;margin-right:5px;z-index:0}.sp-palette{*width:220px;max-width:220px}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:2px 1px;border:solid 1px #d0d0d0}.sp-container{padding-bottom:0}.sp-container button{background-color:#eee;background-image:-webkit-linear-gradient(top,#eeeeee,#cccccc);background-image:-moz-linear-gradient(top,#eeeeee,#cccccc);background-image:-ms-linear-gradient(top,#eeeeee,#cccccc);background-image:-o-linear-gradient(top,#eeeeee,#cccccc);background-image:linear-gradient(to bottom,#eeeeee,#cccccc);border:1px solid #ccc;border-bottom:1px solid #bbb;border-radius:3px;color:#333;font-size:14px;line-height:1;padding:5px 4px;text-align:center;text-shadow:0 1px 0 #eee;vertical-align:middle}.sp-container button:hover{background-color:#ddd;background-image:-webkit-linear-gradient(top,#dddddd,#bbbbbb);background-image:-moz-linear-gradient(top,#dddddd,#bbbbbb);background-image:-ms-linear-gradient(top,#dddddd,#bbbbbb);background-image:-o-linear-gradient(top,#dddddd,#bbbbbb);background-image:linear-gradient(to bottom,#dddddd,#bbbbbb);border:1px solid #bbb;border-bottom:1px solid #999;cursor:pointer;text-shadow:0 1px 0 #ddd}.sp-container button:active{border:1px solid #aaa;border-bottom:1px solid #888;-webkit-box-shadow:inset 0 0 5px 2px #aaaaaa,0 1px 0 0 #eee;-moz-box-shadow:inset 0 0 5px 2px #aaaaaa,0 1px 0 0 #eee;-ms-box-shadow:inset 0 0 5px 2px #aaaaaa,0 1px 0 0 #eee;-o-box-shadow:inset 0 0 5px 2px #aaaaaa,0 1px 0 0 #eee;box-shadow:inset 0 0 5px 2px #aaaaaa,0 1px 0 0 #eee}.sp-cancel{font-size:11px;color:#d93f3f!important;margin:0;padding:2px;margin-right:5px;vertical-align:middle;text-decoration:none}.sp-cancel:hover{color:#d93f3f!important;text-decoration:underline}.sp-palette span:hover,.sp-palette span.sp-thumb-active{border-color:#000}.sp-preview,.sp-alpha,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-preview-inner,.sp-alpha-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==)}
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
index 4a2e05f..98fa650 100644
--- a/css/style.css
+++ b/css/style.css
@@ -349,7 +349,7 @@ body ul {
/*Settings*/
-input[type='text'] {
+input[type='text']:not(.appName) {
width: 300px;
height: 25px;
-webkit-border-radius: 5px 5px 5px 5px;
@@ -357,6 +357,23 @@ input[type='text'] {
margin: 5px 5px 5px 10px;
padding: 2px;
}
+input[type='text']:(.appName) {
+ width: 200px;
+ height: 25px;
+ -webkit-border-radius: 5px 5px 5px 5px;
+ border-radius: 5px 5px 5px 5px;
+ margin: 5px 5px 5px 10px;
+ padding: 2px;
+}
+
+input[type='color'] {
+ width: 20px;
+ height: 25px;
+ -webkit-border-radius: 5px 5px 5px 5px;
+ border-radius: 5px 5px 5px 5px;
+ margin: 5px 5px 5px 10px;
+ padding: 2px;
+}
input[type='text'], select {
color: #000;
diff --git a/index.php b/index.php
index 0b97d49..78acb5a 100644
--- a/index.php
+++ b/index.php
@@ -23,6 +23,7 @@
+
@@ -154,6 +155,7 @@
+
$('#upgradeModal').modal();"; ?>
","","▼
",""].join(''),markup=(function(){var gradientFix="";if(IE){for(var i=1;i<=6;i++){gradientFix+=""}}
+return[""].join("")})();function paletteTemplate(p,color,className,opts){var html=[];for(var i=0;i')}else{var cls='sp-clear-display';html.push($('').append($('').attr('title',opts.noColorSelectedText)).html())}}
+return ""+html.join('')+"
"}
+function hideAll(){for(var i=0;iMath.abs(dragY-oldDragY);shiftMovementDirection=furtherFromX?"x":"y"}
+var setSaturation=!shiftMovementDirection||shiftMovementDirection==="x";var setValue=!shiftMovementDirection||shiftMovementDirection==="y";if(setSaturation){currentSaturation=parseFloat(dragX/dragWidth)}
+if(setValue){currentValue=parseFloat((dragHeight-dragY)/dragHeight)}
+isEmpty=!1;if(!opts.showAlpha){currentAlpha=1}
+move()},dragStart,dragStop);if(!!initialColor){set(initialColor);updateUI();currentPreferredFormat=opts.preferredFormat||tinycolor(initialColor).format;addColorToSelectionPalette(initialColor)}
+else{updateUI()}
+if(flat){show()}
+function paletteElementClick(e){if(e.data&&e.data.ignore){set($(e.target).closest(".sp-thumb-el").data("color"));move()}
+else{set($(e.target).closest(".sp-thumb-el").data("color"));move();updateOriginalInput(!0);if(opts.hideAfterPaletteSelect){hide()}}
+return!1}
+var paletteEvent=IE?"mousedown.spectrum":"click.spectrum touchstart.spectrum";paletteContainer.delegate(".sp-thumb-el",paletteEvent,paletteElementClick);initialColorContainer.delegate(".sp-thumb-el:nth-child(1)",paletteEvent,{ignore:!0},paletteElementClick)}
+function updateSelectionPaletteFromStorage(){if(localStorageKey&&window.localStorage){try{var oldPalette=window.localStorage[localStorageKey].split(",#");if(oldPalette.length>1){delete window.localStorage[localStorageKey];$.each(oldPalette,function(i,c){addColorToSelectionPalette(c)})}}
+catch(e){}
+try{selectionPalette=window.localStorage[localStorageKey].split(";")}
+catch(e){}}}
+function addColorToSelectionPalette(color){if(showSelectionPalette){var rgb=tinycolor(color).toRgbString();if(!paletteLookup[rgb]&&$.inArray(rgb,selectionPalette)===-1){selectionPalette.push(rgb);while(selectionPalette.length>maxSelectionSize){selectionPalette.shift()}}
+if(localStorageKey&&window.localStorage){try{window.localStorage[localStorageKey]=selectionPalette.join(";")}
+catch(e){}}}}
+function getUniqueSelectionPalette(){var unique=[];if(opts.showPalette){for(var i=0;iviewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0);offset.top-=Math.min(offset.top,((offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(dpHeight+inputHeight-extraY):extraY));return offset}
+function noop(){}
+function stopPropagation(e){e.stopPropagation()}
+function bind(func,obj){var slice=Array.prototype.slice;var args=slice.call(arguments,2);return function(){return func.apply(obj,args.concat(slice.call(arguments)))}}
+function draggable(element,onmove,onstart,onstop){onmove=onmove||function(){};onstart=onstart||function(){};onstop=onstop||function(){};var doc=document;var dragging=!1;var offset={};var maxHeight=0;var maxWidth=0;var hasTouch=('ontouchstart' in window);var duringDragEvents={};duringDragEvents.selectstart=prevent;duringDragEvents.dragstart=prevent;duringDragEvents["touchmove mousemove"]=move;duringDragEvents["touchend mouseup"]=stop;function prevent(e){if(e.stopPropagation){e.stopPropagation()}
+if(e.preventDefault){e.preventDefault()}
+e.returnValue=!1}
+function move(e){if(dragging){if(IE&&doc.documentMode<9&&!e.button){return stop()}
+var t0=e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches[0];var pageX=t0&&t0.pageX||e.pageX;var pageY=t0&&t0.pageY||e.pageY;var dragX=Math.max(0,Math.min(pageX-offset.left,maxWidth));var dragY=Math.max(0,Math.min(pageY-offset.top,maxHeight));if(hasTouch){prevent(e)}
+onmove.apply(element,[dragX,dragY,e])}}
+function start(e){var rightclick=(e.which)?(e.which==3):(e.button==2);if(!rightclick&&!dragging){if(onstart.apply(element,arguments)!==!1){dragging=!0;maxHeight=$(element).height();maxWidth=$(element).width();offset=$(element).offset();$(doc).bind(duringDragEvents);$(doc.body).addClass("sp-dragging");move(e);prevent(e)}}}
+function stop(){if(dragging){$(doc).unbind(duringDragEvents);$(doc.body).removeClass("sp-dragging");setTimeout(function(){onstop.apply(element,arguments)},0)}
+dragging=!1}
+$(element).bind("touchstart mousedown",start)}
+function throttle(func,wait,debounce){var timeout;return function(){var context=this,args=arguments;var throttler=function(){timeout=null;func.apply(context,args)};if(debounce)clearTimeout(timeout);if(debounce||!timeout)timeout=setTimeout(throttler,wait)}}
+function inputTypeColorSupport(){return $.fn.spectrum.inputTypeColorSupport()}
+var dataID="spectrum.id";$.fn.spectrum=function(opts,extra){if(typeof opts=="string"){var returnValue=this;var args=Array.prototype.slice.call(arguments,1);this.each(function(){var spect=spectrums[$(this).data(dataID)];if(spect){var method=spect[opts];if(!method){throw new Error("Spectrum: no such method: '"+opts+"'")}
+if(opts=="get"){returnValue=spect.get()}
+else if(opts=="container"){returnValue=spect.container}
+else if(opts=="option"){returnValue=spect.option.apply(spect,args)}
+else if(opts=="destroy"){spect.destroy();$(this).removeData(dataID)}
+else{method.apply(spect,args)}}});return returnValue}
+return this.spectrum("destroy").each(function(){var options=$.extend({},opts,$(this).data());var spect=spectrum(this,options);$(this).data(dataID,spect.id)})};$.fn.spectrum.load=!0;$.fn.spectrum.loadOpts={};$.fn.spectrum.draggable=draggable;$.fn.spectrum.defaults=defaultOpts;$.fn.spectrum.inputTypeColorSupport=function inputTypeColorSupport(){if(typeof inputTypeColorSupport._cachedResult==="undefined"){var colorInput=$("")[0];inputTypeColorSupport._cachedResult=colorInput.type==="color"&&colorInput.value!==""}
+return inputTypeColorSupport._cachedResult};$.spectrum={};$.spectrum.localization={};$.spectrum.palettes={};$.fn.spectrum.processNativeColorInputs=function(){var colorInputs=$("input[type=color]");if(colorInputs.length&&!inputTypeColorSupport()){colorInputs.spectrum({preferredFormat:"hex6"})}};(function(){var trimLeft=/^[\s,#]+/,trimRight=/\s+$/,tinyCounter=0,math=Math,mathRound=math.round,mathMin=math.min,mathMax=math.max,mathRandom=math.random;var tinycolor=function(color,opts){color=(color)?color:'';opts=opts||{};if(color instanceof tinycolor){return color}
+if(!(this instanceof tinycolor)){return new tinycolor(color,opts)}
+var rgb=inputToRGB(color);this._originalInput=color,this._r=rgb.r,this._g=rgb.g,this._b=rgb.b,this._a=rgb.a,this._roundA=mathRound(100*this._a)/100,this._format=opts.format||rgb.format;this._gradientType=opts.gradientType;if(this._r<1){this._r=mathRound(this._r)}
+if(this._g<1){this._g=mathRound(this._g)}
+if(this._b<1){this._b=mathRound(this._b)}
+this._ok=rgb.ok;this._tc_id=tinyCounter++};tinycolor.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var rgb=this.toRgb();return(rgb.r*299+rgb.g*587+rgb.b*114)/1000},setAlpha:function(value){this._a=boundAlpha(value);this._roundA=mathRound(100*this._a)/100;return this},toHsv:function(){var hsv=rgbToHsv(this._r,this._g,this._b);return{h:hsv.h*360,s:hsv.s,v:hsv.v,a:this._a}},toHsvString:function(){var hsv=rgbToHsv(this._r,this._g,this._b);var h=mathRound(hsv.h*360),s=mathRound(hsv.s*100),v=mathRound(hsv.v*100);return(this._a==1)?"hsv("+h+", "+s+"%, "+v+"%)":"hsva("+h+", "+s+"%, "+v+"%, "+this._roundA+")"},toHsl:function(){var hsl=rgbToHsl(this._r,this._g,this._b);return{h:hsl.h*360,s:hsl.s,l:hsl.l,a:this._a}},toHslString:function(){var hsl=rgbToHsl(this._r,this._g,this._b);var h=mathRound(hsl.h*360),s=mathRound(hsl.s*100),l=mathRound(hsl.l*100);return(this._a==1)?"hsl("+h+", "+s+"%, "+l+"%)":"hsla("+h+", "+s+"%, "+l+"%, "+this._roundA+")"},toHex:function(allow3Char){return rgbToHex(this._r,this._g,this._b,allow3Char)},toHexString:function(allow3Char){return '#'+this.toHex(allow3Char)},toHex8:function(){return rgbaToHex(this._r,this._g,this._b,this._a)},toHex8String:function(){return '#'+this.toHex8()},toRgb:function(){return{r:mathRound(this._r),g:mathRound(this._g),b:mathRound(this._b),a:this._a}},toRgbString:function(){return(this._a==1)?"rgb("+mathRound(this._r)+", "+mathRound(this._g)+", "+mathRound(this._b)+")":"rgba("+mathRound(this._r)+", "+mathRound(this._g)+", "+mathRound(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:mathRound(bound01(this._r,255)*100)+"%",g:mathRound(bound01(this._g,255)*100)+"%",b:mathRound(bound01(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return(this._a==1)?"rgb("+mathRound(bound01(this._r,255)*100)+"%, "+mathRound(bound01(this._g,255)*100)+"%, "+mathRound(bound01(this._b,255)*100)+"%)":"rgba("+mathRound(bound01(this._r,255)*100)+"%, "+mathRound(bound01(this._g,255)*100)+"%, "+mathRound(bound01(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){if(this._a===0){return "transparent"}
+if(this._a<1){return!1}
+return hexNames[rgbToHex(this._r,this._g,this._b,!0)]||!1},toFilter:function(secondColor){var hex8String='#'+rgbaToHex(this._r,this._g,this._b,this._a);var secondHex8String=hex8String;var gradientType=this._gradientType?"GradientType = 1, ":"";if(secondColor){var s=tinycolor(secondColor);secondHex8String=s.toHex8String()}
+return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"},toString:function(format){var formatSet=!!format;format=format||this._format;var formattedString=!1;var hasAlpha=this._a<1&&this._a>=0;var needsAlphaFormat=!formatSet&&hasAlpha&&(format==="hex"||format==="hex6"||format==="hex3"||format==="name");if(needsAlphaFormat){if(format==="name"&&this._a===0){return this.toName()}
+return this.toRgbString()}
+if(format==="rgb"){formattedString=this.toRgbString()}
+if(format==="prgb"){formattedString=this.toPercentageRgbString()}
+if(format==="hex"||format==="hex6"){formattedString=this.toHexString()}
+if(format==="hex3"){formattedString=this.toHexString(!0)}
+if(format==="hex8"){formattedString=this.toHex8String()}
+if(format==="name"){formattedString=this.toName()}
+if(format==="hsl"){formattedString=this.toHslString()}
+if(format==="hsv"){formattedString=this.toHsvString()}
+return formattedString||this.toHexString()},_applyModification:function(fn,args){var color=fn.apply(null,[this].concat([].slice.call(args)));this._r=color._r;this._g=color._g;this._b=color._b;this.setAlpha(color._a);return this},lighten:function(){return this._applyModification(lighten,arguments)},brighten:function(){return this._applyModification(brighten,arguments)},darken:function(){return this._applyModification(darken,arguments)},desaturate:function(){return this._applyModification(desaturate,arguments)},saturate:function(){return this._applyModification(saturate,arguments)},greyscale:function(){return this._applyModification(greyscale,arguments)},spin:function(){return this._applyModification(spin,arguments)},_applyCombination:function(fn,args){return fn.apply(null,[this].concat([].slice.call(args)))},analogous:function(){return this._applyCombination(analogous,arguments)},complement:function(){return this._applyCombination(complement,arguments)},monochromatic:function(){return this._applyCombination(monochromatic,arguments)},splitcomplement:function(){return this._applyCombination(splitcomplement,arguments)},triad:function(){return this._applyCombination(triad,arguments)},tetrad:function(){return this._applyCombination(tetrad,arguments)}};tinycolor.fromRatio=function(color,opts){if(typeof color=="object"){var newColor={};for(var i in color){if(color.hasOwnProperty(i)){if(i==="a"){newColor[i]=color[i]}
+else{newColor[i]=convertToPercentage(color[i])}}}
+color=newColor}
+return tinycolor(color,opts)};function inputToRGB(color){var rgb={r:0,g:0,b:0};var a=1;var ok=!1;var format=!1;if(typeof color=="string"){color=stringInputToObject(color)}
+if(typeof color=="object"){if(color.hasOwnProperty("r")&&color.hasOwnProperty("g")&&color.hasOwnProperty("b")){rgb=rgbToRgb(color.r,color.g,color.b);ok=!0;format=String(color.r).substr(-1)==="%"?"prgb":"rgb"}
+else if(color.hasOwnProperty("h")&&color.hasOwnProperty("s")&&color.hasOwnProperty("v")){color.s=convertToPercentage(color.s);color.v=convertToPercentage(color.v);rgb=hsvToRgb(color.h,color.s,color.v);ok=!0;format="hsv"}
+else if(color.hasOwnProperty("h")&&color.hasOwnProperty("s")&&color.hasOwnProperty("l")){color.s=convertToPercentage(color.s);color.l=convertToPercentage(color.l);rgb=hslToRgb(color.h,color.s,color.l);ok=!0;format="hsl"}
+if(color.hasOwnProperty("a")){a=color.a}}
+a=boundAlpha(a);return{ok:ok,format:color.format||format,r:mathMin(255,mathMax(rgb.r,0)),g:mathMin(255,mathMax(rgb.g,0)),b:mathMin(255,mathMax(rgb.b,0)),a:a}}
+function rgbToRgb(r,g,b){return{r:bound01(r,255)*255,g:bound01(g,255)*255,b:bound01(b,255)*255}}
+function rgbToHsl(r,g,b){r=bound01(r,255);g=bound01(g,255);b=bound01(b,255);var max=mathMax(r,g,b),min=mathMin(r,g,b);var h,s,l=(max+min)/2;if(max==min){h=s=0}
+else{var d=max-min;s=l>0.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*(2/3-t)*6;return p}
+if(s===0){r=g=b=l}
+else{var q=l<0.5?l*(1+s):l+s-l*s;var p=2*l-q;r=hue2rgb(p,q,h+1/3);g=hue2rgb(p,q,h);b=hue2rgb(p,q,h-1/3)}
+return{r:r*255,g:g*255,b:b*255}}
+function rgbToHsv(r,g,b){r=bound01(r,255);g=bound01(g,255);b=bound01(b,255);var max=mathMax(r,g,b),min=mathMin(r,g,b);var h,s,v=max;var d=max-min;s=max===0?0:d/max;if(max==min){h=0}
+else{switch(max){case r:h=(g-b)/d+(g>1))+720)%360;--results;){hsl.h=(hsl.h+part)%360;ret.push(tinycolor(hsl))}
+return ret}
+function monochromatic(color,results){results=results||6;var hsv=tinycolor(color).toHsv();var h=hsv.h,s=hsv.s,v=hsv.v;var ret=[];var modification=1/results;while(results--){ret.push(tinycolor({h:h,s:s,v:v}));v=(v+modification)%1}
+return ret}
+tinycolor.mix=function(color1,color2,amount){amount=(amount===0)?0:(amount||50);var rgb1=tinycolor(color1).toRgb();var rgb2=tinycolor(color2).toRgb();var p=amount/100;var w=p*2-1;var a=rgb2.a-rgb1.a;var w1;if(w*a==-1){w1=w}else{w1=(w+a)/(1+w*a)}
+w1=(w1+1)/2;var w2=1-w1;var rgba={r:rgb2.r*w1+rgb1.r*w2,g:rgb2.g*w1+rgb1.g*w2,b:rgb2.b*w1+rgb1.b*w2,a:rgb2.a*p+rgb1.a*(1-p)};return tinycolor(rgba)};tinycolor.readability=function(color1,color2){var c1=tinycolor(color1);var c2=tinycolor(color2);var rgb1=c1.toRgb();var rgb2=c2.toRgb();var brightnessA=c1.getBrightness();var brightnessB=c2.getBrightness();var colorDiff=(Math.max(rgb1.r,rgb2.r)-Math.min(rgb1.r,rgb2.r)+Math.max(rgb1.g,rgb2.g)-Math.min(rgb1.g,rgb2.g)+Math.max(rgb1.b,rgb2.b)-Math.min(rgb1.b,rgb2.b));return{brightness:Math.abs(brightnessA-brightnessB),color:colorDiff}};tinycolor.isReadable=function(color1,color2){var readability=tinycolor.readability(color1,color2);return readability.brightness>125&&readability.color>500};tinycolor.mostReadable=function(baseColor,colorList){var bestColor=null;var bestScore=0;var bestIsReadable=!1;for(var i=0;i125&&readability.color>500;var score=3*(readability.brightness/125)+(readability.color/500);if((readable&&!bestIsReadable)||(readable&&bestIsReadable&&score>bestScore)||((!readable)&&(!bestIsReadable)&&score>bestScore)){bestIsReadable=readable;bestScore=score;bestColor=tinycolor(colorList[i])}}
+return bestColor};var names=tinycolor.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var hexNames=tinycolor.hexNames=flip(names);function flip(o){var flipped={};for(var i in o){if(o.hasOwnProperty(i)){flipped[o[i]]=i}}
+return flipped}
+function boundAlpha(a){a=parseFloat(a);if(isNaN(a)||a<0||a>1){a=1}
+return a}
+function bound01(n,max){if(isOnePointZero(n)){n="100%"}
+var processPercent=isPercentage(n);n=mathMin(max,mathMax(0,parseFloat(n)));if(processPercent){n=parseInt(n*max,10)/100}
+if((math.abs(n-max)<0.000001)){return 1}
+return(n%max)/parseFloat(max)}
+function clamp01(val){return mathMin(1,mathMax(0,val))}
+function parseIntFromHex(val){return parseInt(val,16)}
+function isOnePointZero(n){return typeof n=="string"&&n.indexOf('.')!=-1&&parseFloat(n)===1}
+function isPercentage(n){return typeof n==="string"&&n.indexOf('%')!=-1}
+function pad2(c){return c.length==1?'0'+c:''+c}
+function convertToPercentage(n){if(n<=1){n=(n*100)+"%"}
+return n}
+function convertDecimalToHex(d){return Math.round(parseFloat(d)*255).toString(16)}
+function convertHexToDecimal(h){return(parseIntFromHex(h)/255)}
+var matchers=(function(){var CSS_INTEGER="[-\\+]?\\d+%?";var CSS_NUMBER="[-\\+]?\\d*\\.\\d+%?";var CSS_UNIT="(?:"+CSS_NUMBER+")|(?:"+CSS_INTEGER+")";var PERMISSIVE_MATCH3="[\\s|\\(]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")\\s*\\)?";var PERMISSIVE_MATCH4="[\\s|\\(]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")\\s*\\)?";return{rgb:new RegExp("rgb"+PERMISSIVE_MATCH3),rgba:new RegExp("rgba"+PERMISSIVE_MATCH4),hsl:new RegExp("hsl"+PERMISSIVE_MATCH3),hsla:new RegExp("hsla"+PERMISSIVE_MATCH4),hsv:new RegExp("hsv"+PERMISSIVE_MATCH3),hsva:new RegExp("hsva"+PERMISSIVE_MATCH4),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function stringInputToObject(color){color=color.replace(trimLeft,'').replace(trimRight,'').toLowerCase();var named=!1;if(names[color]){color=names[color];named=!0}
+else if(color=='transparent'){return{r:0,g:0,b:0,a:0,format:"name"}}
+var match;if((match=matchers.rgb.exec(color))){return{r:match[1],g:match[2],b:match[3]}}
+if((match=matchers.rgba.exec(color))){return{r:match[1],g:match[2],b:match[3],a:match[4]}}
+if((match=matchers.hsl.exec(color))){return{h:match[1],s:match[2],l:match[3]}}
+if((match=matchers.hsla.exec(color))){return{h:match[1],s:match[2],l:match[3],a:match[4]}}
+if((match=matchers.hsv.exec(color))){return{h:match[1],s:match[2],v:match[3]}}
+if((match=matchers.hsva.exec(color))){return{h:match[1],s:match[2],v:match[3],a:match[4]}}
+if((match=matchers.hex8.exec(color))){return{a:convertHexToDecimal(match[1]),r:parseIntFromHex(match[2]),g:parseIntFromHex(match[3]),b:parseIntFromHex(match[4]),format:named?"name":"hex8"}}
+if((match=matchers.hex6.exec(color))){return{r:parseIntFromHex(match[1]),g:parseIntFromHex(match[2]),b:parseIntFromHex(match[3]),format:named?"name":"hex"}}
+if((match=matchers.hex3.exec(color))){return{r:parseIntFromHex(match[1]+''+match[1]),g:parseIntFromHex(match[2]+''+match[2]),b:parseIntFromHex(match[3]+''+match[3]),format:named?"name":"hex"}}
+return!1}
+window.tinycolor=tinycolor})();$(function(){if($.fn.spectrum.load){$.fn.spectrum.processNativeColorInputs()}})})
\ No newline at end of file
diff --git a/muximux.php b/muximux.php
index 1f5cea6..03a5190 100644
--- a/muximux.php
+++ b/muximux.php
@@ -138,6 +138,8 @@ function parse_ini()
$pageOutput .= "";
else if ($key == "name") {
$pageOutput .= "";
+ } else if ($key == "color") {
+ $pageOutput .= "
";
} else if ($key == "icon") {
$pageOutput .= "";
} elseif ($key == "default") {
@@ -153,7 +155,7 @@ function parse_ini()
else
$pageOutput .= ">";
} else if ($key == "landingpage") {
- $pageOutput .= "";
@@ -200,9 +202,9 @@ function menuItems()
if (!empty($section["enabled"]) && !($section["enabled"] == "false") && ($section["enabled"] == "true") && (!isset($section["dd"]) || $section["dd"] == "false")) {
if (!empty($section["default"]) && !($section["default"] == "false") && ($section["default"] == "true")) {
- $standardmenu .= " " . $section["name"] . "\n";
+ $standardmenu .= " " . $section["name"] . "\n";
} else {
- $standardmenu .= " " . $section["name"] . "\n";
+ $standardmenu .= " " . $section["name"] . "\n";
}
}
if (isset($section["dd"]) && ($section["dd"] == "true") && !empty($section["enabled"]) && !($section["enabled"] == "false") && ($section["enabled"] == "true") && $section['name'] == "Settings") {
diff --git a/settings.ini.php-example b/settings.ini.php-example
index 49438b6..b28870f 100644
--- a/settings.ini.php-example
+++ b/settings.ini.php-example
@@ -13,10 +13,21 @@ landingpage = "false"
icon = "fa fa-cog"
dd = "true"
+[Diskstation]
+name = "Diskstation"
+url = "http://localhost:5000"
+icon = "fa-hdd-o"
+color="#3d6fae"
+enabled = "true"
+default = "true"
+landingpage = "false"
+dd = "false"
+
[RuTorrent]
name = "RuTorrent"
url = "https://github.com/Novik/ruTorrent"
icon = "fa-globe"
+color="#1a1bfe"
enabled = "true"
default = "false"
landingpage = "false"
@@ -26,6 +37,7 @@ dd = "true"
name = "NZBGet"
url = "https://nzbget.net/"
icon = "fa-download"
+color="#3f8927"
enabled = "true"
default = "false"
landingpage = "false"
@@ -44,6 +56,7 @@ dd = "true"
name = "Pydio"
url = "https://pydio.com/"
icon = "fa-cloud"
+color = "#FF796B"
enabled = "true"
default = "false"
landingpage = "false"
@@ -53,6 +66,7 @@ dd = "true"
name = "Sonarr"
url = "https://sonarr.tv/"
icon = "fa-calendar"
+color = "#35c5f4"
enabled = "true"
default = "true"
landingpage = "false"
@@ -62,6 +76,7 @@ dd = "false"
name = "SickBeard"
url = "http://sickbeard.com/"
icon = "fa-calendar"
+color = "#b6f000"
enabled = "true"
default = "false"
landingpage = "false"
@@ -71,6 +86,7 @@ dd = "false"
name = "CouchPotato"
url = "https://couchpota.to/"
icon = "fa-film"
+color = "#f85c22"
enabled = "true"
default = "false"
landingpage = "false"
@@ -80,6 +96,7 @@ dd = "false"
name = "Headphones"
url = "https://github.com/rembo10/headphones"
icon = "fa-headphones"
+color = "#444444"
enabled = "true"
default = "false"
landingpage = "false"
@@ -89,6 +106,7 @@ dd = "false"
name = "PlexRequests"
url = "https://github.com/lokenx/plexrequests-meteor"
icon = "fa-bullhorn"
+color = "#df691a"
enabled = "true"
default = "false"
landingpage = "false"
@@ -98,6 +116,7 @@ dd = "false"
name = "PlexPy"
url = "https://github.com/drzoidberg33/plexpy"
icon = "fa-list"
+color = "#ba8e36"
enabled = "true"
default = "false"
landingpage = "false"
@@ -107,6 +126,7 @@ dd = "false"
name = "Glances"
url = "https://github.com/nicolargo/glances"
icon = "fa-eye"
+color = "#59D16C"
enabled = "true"
default = "false"
landingpage = "false"
@@ -116,6 +136,7 @@ dd = "false"
name = "NZB Hydra"
url = "https://github.com/theotherp/nzbhydra"
icon = "fa-search"
+color = "#108f34"
enabled = "true"
default = "false"
landingpage = "false"
@@ -125,6 +146,7 @@ dd = "false"
name = "Plex"
url = "https://www.plex.tv/"
icon = "fa-play-circle"
+color = "#f9be03"
enabled = "true"
default = "false"
landingpage = "false"
@@ -134,6 +156,7 @@ dd = "false"
name = "Deluge"
url = "http://deluge-torrent.org/"
icon = "fa-tint"
+color = "#D1DAE5"
enabled = "true"
default = "false"
landingpage = "false"
From 5947538b85bbf70b57d8ae9d88ed273ef87c32fb Mon Sep 17 00:00:00 2001
From: d8ahazard
Date: Fri, 25 Nov 2016 10:27:33 -0600
Subject: [PATCH 002/170] Close dropdown menu on item selection.
Fixes mescon/Muximux#29
Replace CSS hover method with javascript method to detect click on menu
button.
---
css/style.css | 7 ++++++-
js/main.js | 11 +++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/css/style.css b/css/style.css
index 98fa650..912496c 100644
--- a/css/style.css
+++ b/css/style.css
@@ -225,7 +225,7 @@ Main components
.main-nav > li:hover {
color: #f1f3f2;
- background-color: rgba(233, 230, 202, 0.3);
+
}
.main-nav > li {
@@ -306,6 +306,11 @@ Main components
display: block;
}
+*/
+.drop-nav:hide-nav {
+ display: none;
+}
+
.drop-nav > li:hover, .drop-nav > li:hover a {
color: #f1f3f2;
background-color: rgba(233, 230, 202, 0.3);
diff --git a/js/main.js b/js/main.js
index d8658a8..8e13988 100644
--- a/js/main.js
+++ b/js/main.js
@@ -71,6 +71,17 @@ jQuery(document).ready(function ($) {
$('.drop-nav').on('mouseout', function () {
$('.main-nav a span:first').removeClass('dd-active');
});
+
+ $('li.dd').on('click', function () {
+ console.log("Nav: Click");
+ if ($('.drop-nav').hasClass('.open')) {
+ $('.drop-nav').css('display','none');
+ $('.drop-nav').removeClass('.open');
+ } else {
+ $('.drop-nav').css('display','block');
+ $('.drop-nav').addClass('.open');
+ }
+ });
// This fetches the broweser-appropriate box-shadow value so we can set it
From 5d11075e511d2cb17ffebf63e1d830fdcf5b48a1 Mon Sep 17 00:00:00 2001
From: d8ahazard
Date: Fri, 25 Nov 2016 11:59:59 -0600
Subject: [PATCH 003/170] Fix mobile menu (for real)
Initial commit only worked on mobile emulator, not actual mobile device.
This is tested and working on Chrome/android as well as mobile emulator
on desktop.
---
css/style.css | 8 ++++++--
js/main.js | 25 +++++++++++++------------
2 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/css/style.css b/css/style.css
index 912496c..9c8513b 100644
--- a/css/style.css
+++ b/css/style.css
@@ -302,15 +302,19 @@ Main components
border-bottom: 1px solid rgba(255, 255, 255, .2);
}
-.dd:hover > .drop-nav {
+.dd:hover > .drop-nav:not .hide-nav {
display: block;
}
*/
-.drop-nav:hide-nav {
+.hide-nav {
display: none;
}
+.show-nav {
+ display: block;
+}
+
.drop-nav > li:hover, .drop-nav > li:hover a {
color: #f1f3f2;
background-color: rgba(233, 230, 202, 0.3);
diff --git a/js/main.js b/js/main.js
index 8e13988..1d799bf 100644
--- a/js/main.js
+++ b/js/main.js
@@ -12,9 +12,10 @@ jQuery(document).ready(function ($) {
// Set default title to the selected item on load
var activeTitle = $('li .selected').attr("data-title");
setTitle(activeTitle);
- //get appropriate CSS3 box-shadow property
- var boxshadowprop=getsupportedprop(['boxShadow', 'MozBoxShadow', 'WebkitBoxShadow'])
-
+ //get appropriate CSS3 box-shadow property
+ var boxshadowprop=getsupportedprop(['boxShadow', 'MozBoxShadow', 'WebkitBoxShadow'])
+ //Hide the nav to start
+ $('.drop-nav').toggleClass('hide-nav');
tabs.each(function () {
var tab = $(this),
tabItems = tab.find('ul.cd-tabs-navigation, .main-nav'),
@@ -73,14 +74,7 @@ jQuery(document).ready(function ($) {
});
$('li.dd').on('click', function () {
- console.log("Nav: Click");
- if ($('.drop-nav').hasClass('.open')) {
- $('.drop-nav').css('display','none');
- $('.drop-nav').removeClass('.open');
- } else {
- $('.drop-nav').css('display','block');
- $('.drop-nav').addClass('.open');
- }
+ toggleClasses();
});
// This fetches the broweser-appropriate box-shadow value so we can set it
@@ -175,4 +169,11 @@ function muximuxMobileResize() {
$(".drop-nav").children('.cd-tab').appendTo('.cd-tabs-navigation nav');
$('.drop-nav').css('max-height', '');
}
-}
\ No newline at end of file
+}
+
+// Simple method to toggle show/hide classes in navigation
+
+function toggleClasses() {
+ $('.drop-nav').toggleClass('hide-nav');
+ $('.drop-nav').toggleClass('show-nav');
+}
From 3f2cb5fb09a47c895e87b7b80303f4bac6ad8311 Mon Sep 17 00:00:00 2001
From: d8ahazard
Date: Fri, 25 Nov 2016 12:09:50 -0600
Subject: [PATCH 004/170] Add flag for mobile detection.
Will be used to enable a mobile override menu item.
---
js/main.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/js/main.js b/js/main.js
index 1d799bf..b483dd2 100644
--- a/js/main.js
+++ b/js/main.js
@@ -1,3 +1,4 @@
+var isMobile;
jQuery(document).ready(function ($) {
// Custom function to do case-insensitive selector matching
$.extend($.expr[":"], {
@@ -160,12 +161,12 @@ $( window ).resize(muximuxMobileResize);
function muximuxMobileResize() {
if($( window ).width() < 800) {
- // isMobile = true;
+ isMobile = true;
$('.cd-tabs-navigation nav').children().appendTo(".drop-nav");
var menuHeight = $( window ).height() * .80;
$('.drop-nav').css('max-height', menuHeight+'px');
} else {
- // isMobile = false;
+ isMobile = false;
$(".drop-nav").children('.cd-tab').appendTo('.cd-tabs-navigation nav');
$('.drop-nav').css('max-height', '');
}
From b90187031b0284e1437522dcc93c65e898a1dd3c Mon Sep 17 00:00:00 2001
From: d8ahazard
Date: Fri, 25 Nov 2016 16:29:36 -0600
Subject: [PATCH 005/170] More work on Menu, Tab colors
Resolve other strange behavior with new menu toggles.
Set "tab color" to apply to text in mobile menu, show highlight in
destop menu.
Adjust scaling method to handle color switch on re-scale.
Adjust layout of settings menu to better display color picker, create
room for additional WIP settings.
Adjust scaling of settings menu to handle mobile view, render more
uniformly, and minimize unused space.
---
css/style.css | 17 ++++-------
js/main.js | 81 ++++++++++++++++++++++++++++++++++-----------------
muximux.php | 14 ++++-----
3 files changed, 68 insertions(+), 44 deletions(-)
diff --git a/css/style.css b/css/style.css
index 9c8513b..816c214 100644
--- a/css/style.css
+++ b/css/style.css
@@ -358,16 +358,9 @@ body ul {
/*Settings*/
-input[type='text']:not(.appName) {
- width: 300px;
- height: 25px;
- -webkit-border-radius: 5px 5px 5px 5px;
- border-radius: 5px 5px 5px 5px;
- margin: 5px 5px 5px 10px;
- padding: 2px;
-}
-input[type='text']:(.appName) {
- width: 200px;
+input[type='text'] {
+ max-width: 300px;
+ width: 90%;
height: 25px;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
@@ -430,7 +423,8 @@ input[type='button']:hover {
}
.modal-dialog {
- width: 80%;
+ width: 90%;
+ max-width: 550px;
}
.modal-body {
@@ -462,6 +456,7 @@ input[type='button']:hover {
font-size: 16px;
font-size: 1.6rem;
border: 1px solid #FFF;
+ max-width: 500px;
width: 90%;
padding: 10px;
margin-left: auto;
diff --git a/js/main.js b/js/main.js
index b483dd2..d21d9b0 100644
--- a/js/main.js
+++ b/js/main.js
@@ -1,4 +1,5 @@
var isMobile;
+var color;
jQuery(document).ready(function ($) {
// Custom function to do case-insensitive selector matching
$.extend($.expr[":"], {
@@ -12,6 +13,7 @@ jQuery(document).ready(function ($) {
// Set default title to the selected item on load
var activeTitle = $('li .selected').attr("data-title");
+ muximuxMobileResize();
setTitle(activeTitle);
//get appropriate CSS3 box-shadow property
var boxshadowprop=getsupportedprop(['boxShadow', 'MozBoxShadow', 'WebkitBoxShadow'])
@@ -24,10 +26,19 @@ jQuery(document).ready(function ($) {
tabNavigation = tab.find('nav');
tabItems.on('click', 'a:not(#reload, #hamburger)', function (event) {
+
+ // Set up menu for desktip view
+
+ if (!isMobile) {
+ $('.drop-nav').addClass('hide-nav');
+ $('.drop-nav').removeClass('show-nav');
+ $('.main-nav a span:first').removeClass('dd-active');
+ }
+
resizeIframe(); // Call resizeIframe when document is ready
event.preventDefault();
var selectedItem = $(this);
- var color = selectedItem.attr("data-color");
+ color = selectedItem.attr("data-color");
if (!selectedItem.hasClass('selected')) {
var selectedTab = selectedItem.data('content'),
selectedContent = tabContentWrapper.find('li[data-content="' + selectedTab + '"]'),
@@ -41,20 +52,23 @@ jQuery(document).ready(function ($) {
if (sifsrc === undefined || sifsrc === "") {
selectedContent.children('iframe').attr('src', selectedContent.children('iframe').data('src'));
}
- $(".selected").css("Box-Shadow","");
- tabItems.find('a.selected').removeClass('selected');
- selectedItem.addClass('selected');
-
- // Change window title after class "selected" has been added to item
- var activeTitle = selectedItem.attr("data-title");
- setTitle(activeTitle);
-
- selectedContent.addClass('selected').siblings('li').removeClass('selected');
- // animate tabContentWrapper height when content changes
- $(".selected").css("Box-Shadow","inset 0 5px 0 " + color + "");
- tabContentWrapper.animate({
- 'height': selectedContentHeight
- }, 200);
+
+ // Fix issue with color not resetting on settings close
+ if (!(selectedItem.attr("data-title") == "Settings")) {
+ clearColors();
+ tabItems.find('a.selected').removeClass('selected');
+ selectedItem.addClass('selected');
+ setSelectedColor();
+ // Change window title after class "selected" has been added to item
+ var activeTitle = selectedItem.attr("data-title");
+ setTitle(activeTitle);
+
+ selectedContent.addClass('selected').siblings('li').removeClass('selected');
+ // animate tabContentWrapper height when content changes
+ tabContentWrapper.animate({
+ 'height': selectedContentHeight
+ }, 200);
+ }
}
});
@@ -64,15 +78,7 @@ jQuery(document).ready(function ($) {
checkScrolling($(this));
});
});
-
- // Keep hamburger-menu white when hovering items UNDER the hamburger menu.
- $('.drop-nav').on('mouseover', function () {
- $('.main-nav a span:first').addClass('dd-active');
- });
-
- $('.drop-nav').on('mouseout', function () {
- $('.main-nav a span:first').removeClass('dd-active');
- });
+
$('li.dd').on('click', function () {
toggleClasses();
@@ -124,8 +130,7 @@ jQuery(document).ready(function ($) {
jQuery.fn.reverse = [].reverse;
// Move items to the dropdown on mobile devices
- muximuxMobileResize();
-
+
settingsEventHandlers();
scaleFrames();
resizeIframe(); // Call resizeIframe when document is ready
@@ -170,6 +175,8 @@ function muximuxMobileResize() {
$(".drop-nav").children('.cd-tab').appendTo('.cd-tabs-navigation nav');
$('.drop-nav').css('max-height', '');
}
+ clearColors();
+ setSelectedColor();
}
// Simple method to toggle show/hide classes in navigation
@@ -177,4 +184,26 @@ function muximuxMobileResize() {
function toggleClasses() {
$('.drop-nav').toggleClass('hide-nav');
$('.drop-nav').toggleClass('show-nav');
+ $('.main-nav a span:first').toggleClass('dd-active');
+}
+// Clear color values from tabs
+
+function clearColors() {
+
+ $(".selected").children("span").css("color","");
+ $(".selected").css("color","");
+ $(".selected").css("Box-Shadow","");
+
+}
+// Add relevant color value to tabs
+
+function setSelectedColor() {
+
+ color = $('li .selected').attr("data-color");
+ if (isMobile) {
+ $(".selected").children("span").css("color","" + color + "");
+ $(".selected").css("color","" + color + "");
+ } else {
+ $(".selected").css("Box-Shadow","inset 0 5px 0 " + color + "");
+ }
}
diff --git a/muximux.php b/muximux.php
index 03a5190..efe91be 100644
--- a/muximux.php
+++ b/muximux.php
@@ -114,8 +114,8 @@ function parse_ini()
$pageOutput = "
-
-
+
+
@@ -156,15 +157,14 @@
-$('#upgradeModal').modal();"; ?>
get('general', 'updatepopup', 'false') == "true") {
- echo "";
-}
-?>
+
+if ($upgrade) echo ""; ?>
+
-
+