mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit 1f7edd092eac8c13e048ded11ed272adf988e251
parent b670a7228dff690500ac9f116b5692fe654c67ec
Author: markseu <mark2011@mayberg.se>
Date:   Tue, 19 Aug 2014 11:56:18 +0200

Hello web interface (user experience remix)

Diffstat:
MREADME.md | 2+-
Msystem/config/text.ini | 2+-
Msystem/core/core-webinterface.css | 41+++++++++++++++++++++++++++++++++--------
Msystem/core/core-webinterface.js | 34++++++++++++++++++++++++----------
Msystem/core/core.php | 2+-
5 files changed, 60 insertions(+), 21 deletions(-)

diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -Yellow 0.3.12 +Yellow 0.3.13 ============= Yellow is for people who make websites. [Visit website](http://datenstrom.se/yellow). diff --git a/system/config/text.ini b/system/config/text.ini @@ -12,7 +12,7 @@ webinterfaceCreateButton = Create webinterfaceEditButton = Save webinterfaceDeleteButton = Delete webinterfaceCancelButton = Cancel -webinterfaceEdit = Edit +webinterfaceEdit = Edit page webinterfaceNew = + webinterfaceUserHelp = Help webinterfaceUserHelpUrl = https://github.com/markseu/yellowcms-extensions/blob/master/documentation/english/README.md diff --git a/system/core/core-webinterface.css b/system/core/core-webinterface.css @@ -1,28 +1,47 @@ -/* Yellow web interface 0.3.3 */ +/* Yellow web interface 0.3.5 */ -.yellow-bar { position:relative; overflow:hidden; line-height:2.0em; } +.yellow-bar { position:relative; overflow:hidden; line-height:2em; margin-bottom:10px; } .yellow-bar-left { display:block; float:left; } .yellow-bar-left a { margin-right:1em; } .yellow-bar-right { display:block; float:right; } .yellow-bar-right a { margin-left:1em; } .yellow-body-modal-open { overflow:hidden; } -.yellow-pane { - position:absolute; display:none; z-index:10; - margin:0; padding:5px; +.yellow-pane { + position:absolute; display:none; z-index:100; + margin:10px 0px; padding:5px; background-color:#fff; color:#000; border:1px solid #bbb; - border-radius:4px; + border-radius:4px; box-shadow:2px 4px 10px rgba(0, 0, 0, 0.2); } .yellow-pane a { color:#000; text-decoration:none; } .yellow-pane a:hover { color:#f00; text-decoration:none; } .yellow-pane p { margin:0.5em; } .yellow-pane ul { list-style:none; margin:0 0.5em; padding:0; } .yellow-pane div { overflow:hidden; } -.yellow-pane-bubble { } +.yellow-arrow { position:absolute; top:0; left:0; } +.yellow-arrow:after, .yellow-arrow:before { + position:absolute; + bottom:100%; + height:0; width:0; + border:solid transparent; + content:" "; +} +.yellow-arrow:after { + border-color:rgba(255, 255, 255, 0); + border-bottom-color:#fff; + border-width:10px; + margin-left:-10px; +} +.yellow-arrow:before { + border-color:rgba(187, 187, 187, 0); + border-bottom-color:#bbb; + border-width:11px; + margin-left:-11px; +} .yellow-btn { - margin:0; padding:4px 22px; + margin:0; padding:4px 22px; min-width:7em; display:inline-block; background-color:#eaeaea; color:#333333; background-image:linear-gradient(to bottom, #ffffff, #e1e1e1); @@ -52,6 +71,12 @@ border-color:#31b121 #31b121 #20b020; } .yellow-btn-green:hover, .yellow-btn-green:focus, .yellow-btn-green:active { color:#ffffff; } +.yellow-btn-yellow { + background-color:#f0d000; color:#333333; + background-image:linear-gradient(to bottom, #ffe100, #efc100); + border-color:#d1c121 #d1c121 #ccaa00; +} +.yellow-btn-yellow:hover, .yellow-btn-yellow:focus, .yellow-btn-yellow:active { color:#333333; } #yellow-pane-login { } #yellow-pane-login h1 { margin:0.5em 0.5em; } diff --git a/system/core/core-webinterface.js b/system/core/core-webinterface.js @@ -4,7 +4,7 @@ // Yellow main API var yellow = { - version: "0.3.4", + version: "0.3.5", action: function(text) { yellow.webinterface.action(text); }, onClick: function(e) { yellow.webinterface.hidePanesOnClick(yellow.toolbox.getEventElement(e)); }, onKeydown: function(e) { yellow.webinterface.hidePanesOnKeydown(yellow.toolbox.getEventKeycode(e)); }, @@ -79,24 +79,31 @@ yellow.webinterface = var location = yellow.config.serverBase+yellow.config.pluginLocation; elementBar.innerHTML = "<div class=\"yellow-bar-left\">"+ - "<a href=\"#\" onclick=\"yellow.action('edit'); return false;\">"+this.getText("Edit")+"</a>"+ + "<a href=\"#\" onclick=\"yellow.action('edit'); return false;\" id=\"yellow-pane-edit-link\">"+this.getText("Edit")+"</a>"+ "</div>"+ "<div class=\"yellow-bar-right\">"+ - "<a href=\"#\" onclick=\"yellow.action('new'); return false;\">"+this.getText("New")+"</a>"+ - "<a href=\"#\" onclick=\"yellow.action('user'); return false;\">"+yellow.config.userName+" &#9662;</a>"+ + "<a href=\"#\" onclick=\"yellow.action('new'); return false;\" id=\"yellow-pane-new-link\">"+this.getText("New")+"</a>"+ + "<a href=\"#\" onclick=\"yellow.action('user'); return false;\" id=\"yellow-pane-user-link\">"+yellow.config.userName+" &#9662;</a>"+ "</div>"; } yellow.toolbox.insertBefore(elementBar, elementReference); }, // Create pane - createPane: function(paneId, normal, elementReference) + createPane: function(paneId, bubble, elementReference) { if(yellow.debug) console.log("yellow.webinterface.createPane id:"+paneId); var elementPane = document.createElement("div"); - elementPane.className = normal ? "yellow-pane yellow-pane-bubble" : "yellow-pane"; + elementPane.className = "yellow-pane"; elementPane.setAttribute("id", paneId); elementPane.style.display = "none"; + if(bubble) + { + var elementArrow = document.createElement("span"); + elementArrow.className = "yellow-arrow"; + elementArrow.setAttribute("id", paneId+"-arrow"); + elementPane.appendChild(elementArrow); + } var elementDiv = document.createElement("div"); elementDiv.setAttribute("id", paneId+"-content"); if(paneId == "yellow-pane-login") @@ -123,7 +130,6 @@ yellow.webinterface = "<p><a href=\""+this.getText("UserHelpUrl")+"\">"+this.getText("UserHelp")+"</a></p>" + "<p><a href=\"#\" onclick=\"yellow.action('logout'); return false;\">"+this.getText("UserLogout")+"</a></p>"; } - elementPane.appendChild(elementDiv); yellow.toolbox.insertAfter(elementPane, elementReference); }, @@ -143,7 +149,7 @@ yellow.webinterface = switch(this.getPaneAction(paneId, paneType)) { case "create": key = "CreateButton"; className = "yellow-btn yellow-btn-green"; break; - case "edit": key = "EditButton"; className = "yellow-btn"; break; + case "edit": key = "EditButton"; className = "yellow-btn yellow-btn-yellow"; break; case "delete": key = "DeleteButton"; className = "yellow-btn yellow-btn-red"; break; default: key = "CancelButton"; className = "yellow-btn"; } @@ -193,10 +199,10 @@ yellow.webinterface = if(yellow.debug) console.log("yellow.webinterface.showPane id:"+paneId); element.style.display = "block"; yellow.toolbox.addClass(document.body, "yellow-body-modal-open"); - this.resizePanes(); - this.updatePane(paneId, paneType, true); this.paneId = paneId; this.paneType = paneType; + this.resizePanes(); + this.updatePane(paneId, paneType, true); } }, @@ -268,12 +274,20 @@ yellow.webinterface = var height2 = yellow.toolbox.getOuterHeight(document.getElementById("yellow-pane-edit-content")); var height3 = yellow.toolbox.getOuterHeight(document.getElementById("yellow-pane-edit-page")); yellow.toolbox.setOuterHeight(document.getElementById("yellow-pane-edit-page"), height1 - height2 + height3); + var elementLink = document.getElementById(this.paneType=="new" ? "yellow-pane-new-link" : "yellow-pane-edit-link"); + var position = yellow.toolbox.getOuterLeft(elementLink) + yellow.toolbox.getOuterWidth(elementLink)/2; + position -= yellow.toolbox.getOuterLeft(document.getElementById("yellow-pane-edit")); + yellow.toolbox.setOuterLeft(document.getElementById("yellow-pane-edit-arrow"), position); } if(yellow.toolbox.isVisible(document.getElementById("yellow-pane-user"))) { yellow.toolbox.setOuterTop(document.getElementById("yellow-pane-user"), paneTop); yellow.toolbox.setOuterHeight(document.getElementById("yellow-pane-user"), paneHeight, true); yellow.toolbox.setOuterLeft(document.getElementById("yellow-pane-user"), paneWidth - yellow.toolbox.getOuterWidth(document.getElementById("yellow-pane-user")), true); + var elementLink = document.getElementById("yellow-pane-user-link"); + var position = yellow.toolbox.getOuterLeft(elementLink) + yellow.toolbox.getOuterWidth(elementLink)/2; + position -= yellow.toolbox.getOuterLeft(document.getElementById("yellow-pane-user")); + yellow.toolbox.setOuterLeft(document.getElementById("yellow-pane-user-arrow"), position); } if(yellow.debug) console.log("yellow.webinterface.resizePanes bar:"+elementBar.offsetWidth+"/"+elementBar.offsetHeight); } diff --git a/system/core/core.php b/system/core/core.php @@ -5,7 +5,7 @@ // Yellow main class class Yellow { - const Version = "0.3.12"; + const Version = "0.3.13"; var $page; //current page var $pages; //pages from file system var $config; //configuration