mikuli.cz

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

commit 9eeede1d5807e824abb67b1ecb0e4932ee45c667
parent 227fbcacb3457d46add4cf2a6cc169b38377702b
Author: markseu <mark2011@mayberg.se>
Date:   Sun, 24 May 2015 17:31:17 +0200

Core update (Smultron remix)

Diffstat:
MREADME.md | 2+-
Mmedia/downloads/yellow.pdf | 0
Msystem/config/language-en.ini | 2++
Msystem/core/core-webinterface.css | 7++++---
Msystem/core/core-webinterface.js | 22++++++++++++++++++++--
Msystem/core/core-webinterface.php | 19+++++++++++++++++--
Msystem/core/core.php | 2+-
7 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -Yellow 0.5.15 +Yellow 0.5.16 ============= [![Yellow](https://raw.githubusercontent.com/wiki/datenstrom/yellow/images/yellow.jpg)](http://datenstrom.se/yellow) diff --git a/media/downloads/yellow.pdf b/media/downloads/yellow.pdf Binary files differ. diff --git a/system/config/language-en.ini b/system/config/language-en.ini @@ -23,6 +23,8 @@ webinterfaceCancelButton = Cancel webinterfaceEdit = Edit page webinterfaceCreate = + webinterfaceDelete = - +webinterfaceCreateTitle = New page +webinterfaceDeleteTitle = Delete page 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,9 +1,9 @@ -/* Yellow web interface 0.5.15 */ +/* Yellow web interface 0.5.16 */ .yellow-bar { position:relative; overflow:hidden; line-height:2em; margin-bottom:10px; } .yellow-bar-left { display:block; float:left; } .yellow-bar-right { display:block; float:right; } -.yellow-bar-right a { padding-left:0.5em; } +.yellow-bar-right a { margin-left:1em; } .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; } @@ -80,8 +80,9 @@ #yellow-pane-login h1 { margin:0.5em 0.5em; } #yellow-pane-login p { margin:0.5em; text-align:right; } #yellow-pane-edit { } +#yellow-pane-edit h1 { margin:4px 0; color:#000; font-size:1.3em; text-align:center; } #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 { margin:4px 0; } #yellow-pane-edit-buttons input { margin-right:5px; } #yellow-pane-user { cursor:pointer; } #yellow-pane-user a { text-decoration:none; } 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.15", + version: "0.5.16", 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)); }, @@ -123,6 +123,7 @@ yellow.webinterface = } else if(paneId == "yellow-pane-edit") { elementDiv.innerHTML = "<form method=\"post\">"+ + "<h1 id=\"yellow-pane-edit-title\">"+this.getText("Edit")+"</h1>"+ "<textarea id=\"yellow-pane-edit-page\" name=\"rawdataedit\"></textarea>"+ "<div id=\"yellow-pane-edit-buttons\">"+ "<input id=\"yellow-pane-edit-send\" class=\"yellow-btn\" type=\"button\" onclick=\"yellow.action('send'); return false;\" value=\""+this.getText("EditButton")+"\" />"+ @@ -147,7 +148,14 @@ yellow.webinterface = { if(init) { - var string = paneType=="create" ? yellow.page.rawDataNew : yellow.page.rawDataEdit; + var title = yellow.page.title; + var string = yellow.page.rawDataEdit; + switch(paneType) + { + case "create": title = this.getText("CreateTitle"); string = yellow.page.rawDataNew; break; + case "delete": title = this.getText("DeleteTitle"); break; + } + document.getElementById("yellow-pane-edit-title").innerHTML = yellow.toolbox.encodeHtml(title); document.getElementById("yellow-pane-edit-page").value = string; } var action = this.getPaneAction(paneId, paneType) @@ -531,6 +539,16 @@ yellow.toolbox = .replace(/[\r]/g, "%0d") .replace(/[\n]/g, "%0a"); }, + + // Encode HTML special characters + encodeHtml: function(string) + { + return string + .replace(/&/g, "&amp;") + .replace(/</g, "&lt;") + .replace(/>/g, "&gt;") + .replace(/"/g, "&quot;"); + }, // Submit form with post method submitForm: function(params, encodeNewline) diff --git a/system/core/core-webinterface.php b/system/core/core-webinterface.php @@ -5,7 +5,7 @@ // Web interface core plugin class YellowWebinterface { - const Version = "0.5.15"; + const Version = "0.5.16"; var $yellow; //access to API var $active; //web interface is active? (boolean) var $userLoginFailed; //web interface login failed? (boolean) @@ -85,10 +85,11 @@ class YellowWebinterface $output .= "// <![CDATA[\n"; if($this->isUser()) { - $output .= "yellow.page.userPermission = ".json_encode($this->userPermission).";\n"; + $output .= "yellow.page.title = ".json_encode($this->getDataTitle($this->rawDataEdit)).";\n"; $output .= "yellow.page.rawDataSource = ".json_encode($this->rawDataSource).";\n"; $output .= "yellow.page.rawDataEdit = ".json_encode($this->rawDataEdit).";\n"; $output .= "yellow.page.rawDataNew = ".json_encode($this->getDataNew()).";\n"; + $output .= "yellow.page.userPermission = ".json_encode($this->userPermission).";\n"; $output .= "yellow.page.parserSafeMode = ".json_encode($this->yellow->page->parserSafeMode).";\n"; $output .= "yellow.page.statusCode = ".json_encode($this->yellow->page->statusCode).";\n"; } @@ -391,6 +392,20 @@ class YellowWebinterface return $rawDataNew; } + // Return page data title + function getDataTitle($rawData) + { + $title = $this->yellow->page->get("title"); + if(preg_match("/^(\xEF\xBB\xBF)?\-\-\-[\r\n]+(.+?)[\r\n]+\-\-\-[\r\n]+/s", $rawData)) + { + foreach($this->yellow->toolbox->getTextLines($rawData) as $line) + { + if(preg_match("/^(\s*Title\s*:\s*)(.*?)(\s*)$/i", $line, $matches)) { $title = $matches[2]; break; } + } + } + return $title; + } + // Return new page function getPageNew($serverScheme, $serverName, $base, $location, $fileName, $rawData) { 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.15"; + const Version = "0.5.16"; var $page; //current page var $pages; //pages from file system var $files; //files from file system