mikuli.cz

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

commit 227fbcacb3457d46add4cf2a6cc169b38377702b
parent f339d03606be33f953f806dcbbc1bc00d0327fcd
Author: markseu <mark2011@mayberg.se>
Date:   Sat, 23 May 2015 19:24:56 +0200

Core update (webinterface)

Diffstat:
MREADME.md | 2+-
Msystem/config/language-en.ini | 4+++-
Msystem/core/core-webinterface.css | 14+++++++-------
Msystem/core/core-webinterface.js | 21++++++++++++---------
Msystem/core/core-webinterface.php | 12+++++-------
Msystem/core/core.php | 6+++---
6 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -Yellow 0.5.14 +Yellow 0.5.15 ============= [![Yellow](https://raw.githubusercontent.com/wiki/datenstrom/yellow/images/yellow.jpg)](http://datenstrom.se/yellow) diff --git a/system/config/language-en.ini b/system/config/language-en.ini @@ -3,6 +3,7 @@ language = en languageDescription = English languageAuthor = Mark Seuffert +languageVersion = 0.5.0 dateMonths = January, February, March, April, May, June, July, August, September, October, November, December dateWeekdays = Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday @@ -20,7 +21,8 @@ webinterfaceEditButton = Save webinterfaceDeleteButton = Delete webinterfaceCancelButton = Cancel webinterfaceEdit = Edit page -webinterfaceNew = + +webinterfaceCreate = + +webinterfaceDelete = - webinterfaceUserHelp = Help webinterfaceUserHelpUrl = https://github.com/datenstrom/yellow/wiki webinterfaceUserAccountUrl = https://github.com/datenstrom/yellow/wiki/How-to-add-a-user-account diff --git a/system/core/core-webinterface.css b/system/core/core-webinterface.css @@ -1,10 +1,11 @@ -/* Yellow web interface 0.5.12 */ +/* Yellow web interface 0.5.15 */ .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-bar-right a { padding-left:0.5em; } +.yellow-bar-right #yellow-pane-create-link { padding:0 0.5em; } +.yellow-bar-right #yellow-pane-delete-link { padding:0 0.5em; } .yellow-body-modal-open { overflow:hidden; } .yellow-pane { @@ -14,8 +15,6 @@ border:1px solid #bbb; 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; } @@ -84,4 +83,6 @@ #yellow-pane-edit-page { margin:0; padding:5px; border:1px solid #bbb; outline:none; resize:none; font-size:0.9em; } #yellow-pane-edit-buttons { margin:8px 0; } #yellow-pane-edit-buttons input { margin-right:5px; } -#yellow-pane-user { cursor:pointer; } -\ No newline at end of file +#yellow-pane-user { cursor:pointer; } +#yellow-pane-user a { text-decoration:none; } +#yellow-pane-user a:hover { text-decoration:underline; } 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.5.12", + version: "0.5.15", 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)); }, @@ -59,8 +59,9 @@ yellow.webinterface = { switch(text) { + case "create": this.togglePane("yellow-pane-edit", "create"); break; case "edit": this.togglePane("yellow-pane-edit", "edit"); break; - case "new": this.togglePane("yellow-pane-edit", "new"); break; + case "delete": this.togglePane("yellow-pane-edit", "delete"); break; case "user": this.togglePane("yellow-pane-user"); break; case "send": this.sendPane(this.paneId, this.paneType); break; case "cancel": this.hidePane(this.paneId); break; @@ -84,7 +85,8 @@ yellow.webinterface = "<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;\" id=\"yellow-pane-new-link\">"+this.getText("New")+"</a>"+ + "<a href=\"#\" onclick=\"yellow.action('create'); return false;\" id=\"yellow-pane-create-link\">"+this.getText("Create")+"</a>"+ + "<a href=\"#\" onclick=\"yellow.action('delete'); return false;\" id=\"yellow-pane-delete-link\">"+this.getText("Delete")+"</a>"+ "<a href=\"#\" onclick=\"yellow.action('user'); return false;\" id=\"yellow-pane-user-link\">"+yellow.config.userName+"</a>"+ "</div>"; } @@ -145,7 +147,7 @@ yellow.webinterface = { if(init) { - var string = paneType=="new" ? yellow.page.rawDataNew : yellow.page.rawDataEdit; + var string = paneType=="create" ? yellow.page.rawDataNew : yellow.page.rawDataEdit; document.getElementById("yellow-pane-edit-page").value = string; } var action = this.getPaneAction(paneId, paneType) @@ -282,7 +284,7 @@ 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 elementLink = document.getElementById("yellow-pane-"+this.paneType+"-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); @@ -310,12 +312,13 @@ yellow.webinterface = if(yellow.page.userPermission) { var string = document.getElementById("yellow-pane-edit-page").value; - if(yellow.page.statusCode==424 || paneType=="new") + switch(paneType) { - action = "create"; - } else { - action = string ? "edit" : "delete"; + case "create": action = "create"; break; + case "edit": action = string ? "edit" : "delete"; break; + case "delete": action = "delete"; break; } + if(yellow.page.statusCode==424 && paneType!="delete") action = "create"; } } return action; diff --git a/system/core/core-webinterface.php b/system/core/core-webinterface.php @@ -5,11 +5,11 @@ // Web interface core plugin class YellowWebinterface { - const Version = "0.5.12"; + const Version = "0.5.15"; var $yellow; //access to API var $active; //web interface is active? (boolean) var $userLoginFailed; //web interface login failed? (boolean) - var $userPermission; //web interface can modify page? (boolean) + var $userPermission; //web interface can change page? (boolean) var $users; //web interface users var $merge; //web interface merge var $rawDataSource; //raw data of page for comparison @@ -356,19 +356,17 @@ class YellowWebinterface return $this->isUser(); } - // Return permission to modify page + // Return permission to change page function getUserPermission($location, $fileName) { - $userPermission = true; + $userPermission = is_dir(dirname($fileName)) && strlenu(basename($fileName))<128; foreach($this->yellow->plugins->plugins as $key=>$value) { if(method_exists($value["obj"], "onUserPermission")) { - $userPermission = $value["obj"]->onUserPermission($location, $fileName, $this->users); - if(!$userPermission) break; + $userPermission &= $value["obj"]->onUserPermission($location, $fileName, $this->users); } } - $userPermission &= is_dir(dirname($fileName)) && strlenu(basename($fileName))<128; return $userPermission; } diff --git a/system/core/core.php b/system/core/core.php @@ -5,7 +5,7 @@ // Yellow main class class Yellow { - const Version = "0.5.14"; + const Version = "0.5.15"; var $page; //current page var $pages; //pages from file system var $files; //files from file system @@ -593,7 +593,7 @@ class YellowPage // Parse template function parseTemplate($name) { - $fileNameTemplate = $this->yellow->config->get("templateDir")."$name.html"; + $fileNameTemplate = $this->yellow->config->get("templateDir").$this->yellow->lookup->normaliseName($name).".html"; if(is_file($fileNameTemplate)) { $this->setLastModified(filemtime($fileNameTemplate)); @@ -609,7 +609,7 @@ class YellowPage function parseSnippet($args) { list($name) = $this->yellow->pages->snippetArgs = $args; - $fileNameSnippet = $this->yellow->config->get("snippetDir")."$name.php"; + $fileNameSnippet = $this->yellow->config->get("snippetDir").$this->yellow->lookup->normaliseName($name).".php"; if(is_file($fileNameSnippet)) { $this->setLastModified(filemtime($fileNameSnippet));