From 553773f2e1d2b8af7da757b7551a436ffc27a129 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Tue, 31 Jul 2012 12:21:06 +0200 Subject: [PATCH] Popup for app specific settings. --- core/css/styles.css | 11 ++++++++++ core/js/js.js | 53 +++++++++++++++++++++++++++++++-------------- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index c61d0a9a1a..d032dcab2e 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -157,3 +157,14 @@ a.bookmarklet { background-color: #ddd; border:1px solid #ccc; padding: 5px;padd #categorylist li { background:#f8f8f8; padding:.3em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 500ms; -moz-transition:background-color 500ms; -o-transition:background-color 500ms; transition:background-color 500ms; } #categorylist li:hover, li:active { background:#eee; } #category_addinput { width: 10em; } + +/* ---- APP SETTINGS ---- */ +.popup { background-color: white; border-radius: 10px 10px 10px 10px; box-shadow: 0 0 20px #888888; color: #333333; padding: 10px; position: absolute; z-index: 200; } +.popup.topright { top: -8px; right: 1em; } +.popup.bottomleft { bottom: 1em; left: 8px; } +.popup .close { position:absolute; top: 0.2em; right:0.2em; height: 20px; width: 20px; background:url('../img/actions/delete.svg') no-repeat center; } +.popup h2 { font-weight: bold; font-size: 1.2em; } +.arrow { border-bottom: 10px solid white; border-left: 10px solid transparent; border-right: 10px solid transparent; display: block; height: 0; position: absolute; width: 0; z-index: 201; } +.arrow.left { left: -13px; bottom: 1.2em; -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -o-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } +.arrow.up { top: -8px; right: 2em; } +.arrow.down { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } diff --git a/core/js/js.js b/core/js/js.js index df834157cd..c5bbc12c0c 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -82,7 +82,7 @@ OC={ if(type){ link+=type+'/'; } - link+=file; + link+=file; } return link; }, @@ -91,9 +91,9 @@ OC={ * @param app the app id to which the image belongs * @param file the name of the image file * @return string - * + * * if no extension is given for the image, it will automatically decide between .png and .svg based on what the browser supports - */ + */ imagePath:function(app,file){ if(file.indexOf('.')==-1){//if no extension is given, use png or svg depending on browser support file+=(SVGSupport())?'.svg':'.png'; @@ -105,7 +105,7 @@ OC={ * @param app the app id to which the script belongs * @param script the filename of the script * @param ready event handeler to be called when the script is loaded - * + * * if the script is already loaded, the event handeler will be called directly */ addScript:function(app,script,ready){ @@ -155,7 +155,28 @@ OC={ var date = new Date(1000*mtime); var ret = date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes(); return ret; - } + }, + + appSettings:function(app) { + var settings = $('#appsettings'); + if(settings.is(':visible')) { + settings.hide().find('.arrow').hide(); + } else { + if($('#journal.settings').length == 0) { + var arrowclass = settings.hasClass('topright') ? 'up' : 'left'; + var jqxhr = $.get(OC.linkTo(app, 'settings.php'), function(data) { + $('#appsettings').html(data).ready(function() { + settings.prepend('

'+t('core', 'Settings')+'

').show(); + settings.find('.close').bind('click', function() { + settings.hide(); + }) + }); + }, 'html'); + } else { + settings.show().find('.arrow').show(); + } + } + } }; OC.search.customResults={}; OC.search.currentResult=-1; @@ -202,7 +223,7 @@ if (!Array.prototype.filter) { var len = this.length >>> 0; if (typeof fun != "function") throw new TypeError(); - + var res = []; var thisp = arguments[1]; for (var i = 0; i < len; i++) { @@ -222,14 +243,14 @@ if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length; - + var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len; - + for (; from < len; from++) { if (from in this && @@ -306,7 +327,7 @@ function replaceSVG(){ /** * prototypal inharitence functions - * + * * usage: * MySubObject=object(MyObject) */ @@ -352,7 +373,7 @@ $(document).ready(function(){ fillWindow($('#rightcontent')); }); $(window).trigger('resize'); - + if(!SVGSupport()){ //replace all svg images with png images for browser that dont support svg replaceSVG(); }else{ @@ -395,7 +416,7 @@ $(document).ready(function(){ } }); - // 'show password' checkbox + // 'show password' checkbox $('#pass2').showPassword(); //use infield labels @@ -462,15 +483,15 @@ $(document).ready(function(){ if (!Array.prototype.map){ Array.prototype.map = function(fun /*, thisp */){ "use strict"; - + if (this === void 0 || this === null) throw new TypeError(); - + var t = Object(this); var len = t.length >>> 0; if (typeof fun !== "function") throw new TypeError(); - + var res = new Array(len); var thisp = arguments[1]; for (var i = 0; i < len; i++){ @@ -478,7 +499,7 @@ if (!Array.prototype.map){ res[i] = fun.call(thisp, t[i], i, t); } } - + return res; }; } @@ -486,7 +507,7 @@ if (!Array.prototype.map){ /** * Filter Jquery selector by attribute value **/ -$.fn.filterAttr = function(attr_name, attr_value) { +$.fn.filterAttr = function(attr_name, attr_value) { return this.filter(function() { return $(this).attr(attr_name) === attr_value; }); };