commit 227fbcacb3457d46add4cf2a6cc169b38377702b
parent f339d03606be33f953f806dcbbc1bc00d0327fcd
Author: markseu <mark2011@mayberg.se>
Date: Sat, 23 May 2015 19:24:56 +0200
Core update (webinterface)
Diffstat:
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
=============
[](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));