Core update (webinterface)

This commit is contained in:
markseu 2015-05-23 19:24:56 +02:00
parent f339d03606
commit 227fbcacb3
6 changed files with 31 additions and 27 deletions

View file

@ -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)

View file

@ -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

View file

@ -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; }
#yellow-pane-user { cursor:pointer; }
#yellow-pane-user a { text-decoration:none; }
#yellow-pane-user a:hover { text-decoration:underline; }

View file

@ -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;

View file

@ -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;
}

View file

@ -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));