Core update (Smultron remix)

This commit is contained in:
markseu 2015-05-26 10:27:28 +02:00
parent 9eeede1d58
commit 914a1fc285
8 changed files with 86 additions and 61 deletions

View file

@ -1,4 +1,4 @@
Yellow 0.5.16
Yellow 0.5.17
=============
[![Yellow](https://raw.githubusercontent.com/wiki/datenstrom/yellow/images/yellow.jpg)](http://datenstrom.se/yellow)

View file

@ -3,5 +3,5 @@ Title: Home
---
Your website works!
You can now [edit this page](@pageedit) or use your text editor.
You can now [edit this page] or use your text editor.
For more information see [Yellow documentation](https://github.com/datenstrom/yellow/wiki).

View file

@ -1,16 +1,16 @@
/* Yellow web interface 0.5.16 */
/* Yellow web interface 0.5.17 */
.yellow-bar { position:relative; overflow:hidden; line-height:2em; margin-bottom:10px; }
.yellow-bar { position:relative; overflow:hidden; height:2em; margin-bottom:10px; }
.yellow-bar-left { display:block; float:left; }
.yellow-bar-right { display:block; float:right; }
.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; }
.yellow-body-modal-open { overflow:hidden; background-color:rgba(128, 128, 128, 0.1); transition:background-color 100ms; }
.yellow-pane {
position:absolute; display:none; z-index:100;
margin:10px 0px; padding:5px;
margin:10px 0px; padding:10px;
background-color:#fff; color:#000;
border:1px solid #bbb;
border-radius:4px; box-shadow:2px 4px 10px rgba(0, 0, 0, 0.2);
@ -18,6 +18,8 @@
.yellow-pane p { margin:0.5em; }
.yellow-pane ul { list-style:none; margin:0 0.5em; padding:0; }
.yellow-pane div { overflow:hidden; }
.yellow-cancel { display:block; float:right; padding:0 0.5em; color:#bbb; }
.yellow-cancel:hover { text-decoration:none; color:#000; }
.yellow-arrow { position:absolute; top:0; left:0; }
.yellow-arrow:after, .yellow-arrow:before {
position:absolute;
@ -39,51 +41,62 @@
margin-left:-11px;
}
.yellow-btn {
margin:0; padding:4px 22px; min-width:7em;
.yellow-form-control {
margin:0; padding:2px 4px;
display:inline-block;
background-color:#fff; color:#000;
background-image:linear-gradient(to bottom, #fff, #fff);
border:1px solid #bbb;
border-radius:4px;
font-size:0.9em; font-family:inherit; font-weight:normal; line-height:normal;
}
.yellow-btn {
margin:0; padding:4px 22px;
display:inline-block; min-width:7em;
background-color:#eaeaea; color:#333333;
background-image:linear-gradient(to bottom, #f8f8f8, #e1e1e1);
border:1px solid #bbb;
border-color:#c1c1c1 #c1c1c1 #aaaaaa;
border-radius:4px;
outline-offset:-2px;
border-radius:4px;
outline-offset:-2px;
font-size:0.9em; font-family:inherit; font-weight:normal; line-height:1;
text-align:center; text-decoration:none;
}
.yellow-btn:hover, .yellow-btn:focus, .yellow-btn:active {
.yellow-btn:hover, .yellow-btn:focus, .yellow-btn:active {
color:#333333;
background-image:none;
background-image:none;
text-decoration:none;
}
.yellow-btn:active { box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.1); }
.yellow-btn-red {
background-color:#c33c35; color:#ffffff;
background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);
border-color:#b13121 #b13121 #802020;
}
.yellow-btn-red:hover, .yellow-btn-red:focus, .yellow-btn-red:active { color:#ffffff; }
.yellow-btn-green {
.yellow-btn-create {
background-color:#3cc335; color:#ffffff;
background-image:linear-gradient(to bottom, #5fee5b, #36bd2f);
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-create:hover, .yellow-btn-create:focus, .yellow-btn-create:active { color:#ffffff; }
.yellow-btn-edit {
background-color:#3cc335; color:#ffffff;
background-image:linear-gradient(to bottom, #5fee5b, #36bd2f);
border-color:#31b121 #31b121 #20b020;
}
.yellow-btn-yellow:hover, .yellow-btn-yellow:focus, .yellow-btn-yellow:active { color:#333333; }
.yellow-btn-edit:hover, .yellow-btn-edit:focus, .yellow-btn-edit:active { color:#ffffff; }
.yellow-btn-delete {
background-color:#c33c35; color:#ffffff;
background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);
border-color:#b13121 #b13121 #802020;
}
.yellow-btn-delete:hover, .yellow-btn-delete:focus, .yellow-btn-delete:active { color:#ffffff; }
#yellow-pane-login { }
#yellow-pane-login h1 { margin:0.5em 0.5em; }
#yellow-pane-login p { margin:0.5em; text-align:right; }
#yellow-pane-login { text-align:center; }
#yellow-pane-login h1 { margin:0 0.5em; color:#000; font-size:2em; }
#yellow-pane-login p { margin:1em 0.5em; }
#yellow-pane-login-fields { width:12em; text-align:left; margin:0 auto; }
#yellow-pane-login input { width:12em; box-sizing:border-box; }
#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:4px 0; }
#yellow-pane-edit-buttons input { margin-right:5px; }
#yellow-pane-edit h1 { margin:0 0 10px 0; color:#000; font-size:1.5em; }
#yellow-pane-edit-page { padding:5px; outline:none; resize:none; }
#yellow-pane-edit-buttons { margin-top:5px; }
#yellow-pane-edit-buttons input { margin-right:10px; }
#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.16",
version: "0.5.17",
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,9 +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 "delete": this.togglePane("yellow-pane-edit", "delete"); break;
case "create": this.togglePane("yellow-pane-edit", "create", true); break;
case "edit": this.togglePane("yellow-pane-edit", "edit", true); break;
case "delete": this.togglePane("yellow-pane-edit", "delete", true); 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;
@ -113,18 +113,21 @@ yellow.webinterface =
if(paneId == "yellow-pane-login")
{
elementDiv.innerHTML =
"<h1>"+this.getText("LoginText")+"</h1>"+
"<form method=\"post\">"+
"<a href=\"#\" onclick=\"yellow.action('cancel'); return false;\" class=\"yellow-cancel\">x</a>"+
"<h1>"+this.getText("LoginText")+"</h1>"+
"<div id=\"yellow-pane-login-fields\">"+
"<input type=\"hidden\" name=\"action\" value=\"login\" />"+
"<p><label for=\"email\">"+this.getText("LoginEmail")+"</label> <input name=\"email\" id=\"email\" maxlength=\"64\" value=\""+yellow.config.loginEmail+"\" /></p>"+
"<p><label for=\"password\">"+this.getText("LoginPassword")+"</label> <input type=\"password\" name=\"password\" id=\"password\" maxlength=\"64\" value=\""+yellow.config.loginPassword+"\" /></p>"+
"<p><label for=\"email\">"+this.getText("LoginEmail")+"</label><br /><input class=\"yellow-form-control\" name=\"email\" id=\"email\" maxlength=\"64\" value=\""+yellow.config.loginEmail+"\" /></p>"+
"<p><label for=\"password\">"+this.getText("LoginPassword")+"</label><br /><input class=\"yellow-form-control\" type=\"password\" name=\"password\" id=\"password\" maxlength=\"64\" value=\""+yellow.config.loginPassword+"\" /></p>"+
"<p><input class=\"yellow-btn\" type=\"submit\" value=\""+this.getText("LoginButton")+"\" /></p>"+
"</div>"+
"</form>";
} 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>"+
"<textarea id=\"yellow-pane-edit-page\" class=\"yellow-form-control\" 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")+"\" />"+
"<input id=\"yellow-pane-edit-cancel\" class=\"yellow-btn\" type=\"button\" onclick=\"yellow.action('cancel'); return false;\" value=\""+this.getText("CancelButton")+"\" />"+
@ -164,9 +167,9 @@ yellow.webinterface =
var key, className;
switch(action)
{
case "create": key = "CreateButton"; className = "yellow-btn yellow-btn-green"; break;
case "edit": key = "EditButton"; className = "yellow-btn yellow-btn-yellow"; break;
case "delete": key = "DeleteButton"; className = "yellow-btn yellow-btn-red"; break;
case "create": key = "CreateButton"; className = "yellow-btn yellow-btn-create"; break;
case "edit": key = "EditButton"; className = "yellow-btn yellow-btn-edit"; break;
case "delete": key = "DeleteButton"; className = "yellow-btn yellow-btn-delete"; break;
}
document.getElementById("yellow-pane-edit-send").value = this.getText(key);
document.getElementById("yellow-pane-edit-send").className = className;
@ -197,26 +200,26 @@ yellow.webinterface =
},
// Show or hide pane
togglePane: function(paneId, paneType)
togglePane: function(paneId, paneType, modal)
{
if(this.paneId!=paneId || this.paneType!=paneType)
{
this.hidePane(this.paneId);
this.showPane(paneId, paneType);
this.showPane(paneId, paneType, modal);
} else {
this.hidePane(paneId);
}
},
// Show pane
showPane: function(paneId, paneType)
showPane: function(paneId, paneType, modal)
{
var element = document.getElementById(paneId);
if(!yellow.toolbox.isVisible(element))
{
if(yellow.debug) console.log("yellow.webinterface.showPane id:"+paneId);
element.style.display = "block";
yellow.toolbox.addClass(document.body, "yellow-body-modal-open");
if(modal) yellow.toolbox.addClass(document.body, "yellow-body-modal-open");
this.paneId = paneId;
this.paneType = paneType;
this.resizePanes();
@ -280,6 +283,7 @@ yellow.webinterface =
var paneHeight = yellow.toolbox.getWindowHeight() - paneTop - yellow.toolbox.getOuterHeight(elementBar);
if(yellow.toolbox.isVisible(document.getElementById("yellow-pane-login")))
{
yellow.toolbox.setOuterTop(document.getElementById("yellow-pane-login"), paneTop);
yellow.toolbox.setOuterWidth(document.getElementById("yellow-pane-login"), paneWidth);
}
if(yellow.toolbox.isVisible(document.getElementById("yellow-pane-edit")))

View file

@ -5,7 +5,7 @@
// Web interface core plugin
class YellowWebinterface
{
const Version = "0.5.16";
const Version = "0.5.17";
var $yellow; //access to API
var $active; //web interface is active? (boolean)
var $userLoginFailed; //web interface login failed? (boolean)
@ -72,6 +72,19 @@ class YellowWebinterface
}
}
// Handle page content parsing of custom block
function onParseContentBlock($page, $name, $text, $typeShortcut)
{
$output = NULL;
if($name=="edit" && $typeShortcut)
{
$editText = "$name $text";
if(substru($text, 0, 2)=="- ") $editText = trim(substru($text, 2));
$output = "<a href=\"".$page->get("pageEdit")."\">".htmlspecialchars($editText)."</a>";
}
return $output;
}
// Handle page extra HTML data
function onExtra($name)
{
@ -89,6 +102,7 @@ class YellowWebinterface
$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.pageFile = ".json_encode($this->yellow->page->get("pageFile")).";\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";

View file

@ -5,7 +5,7 @@
// Yellow main class
class Yellow
{
const Version = "0.5.16";
const Version = "0.5.17";
var $page; //current page
var $pages; //pages from file system
var $files; //files from file system
@ -532,13 +532,6 @@ class YellowPage
if(!is_null($output)) break;
}
}
if(is_null($output) && $name=="snippet" && $typeShortcut && !$this->parserSafeMode)
{
ob_start();
$this->parseSnippet($this->yellow->toolbox->getTextArgs($text));
$output = ob_get_contents();
ob_end_clean();
}
if(defined("DEBUG") && DEBUG>=3 && !empty($name)) echo "YellowPage::parseContentBlock name:$name shortcut:$typeShortcut<br/>\n";
return $output;
}

View file

@ -5,7 +5,7 @@
// Markdown plugin
class YellowMarkdown
{
const Version = "0.5.3";
const Version = "0.5.4";
var $yellow; //access to API
// Handle initialisation
@ -51,6 +51,7 @@ class YellowMarkdownParser extends MarkdownExtraParser
$text = preg_replace("/@pageRead/i", $this->page->get("pageRead"), $text);
$text = preg_replace("/@pageEdit/i", $this->page->get("pageEdit"), $text);
$text = preg_replace("/@pageError/i", $this->page->get("pageError"), $text);
$text = preg_replace("/@pageFile/i", $this->page->get("pageFile"), $text);
return parent::transform($text);
}

View file

@ -1,4 +1,4 @@
/* Flatsite theme 0.5.4 */
/* Flatsite theme 0.5.5 */
/* Designer: Mark Mayberg */
@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,700);
@ -87,18 +87,18 @@ a, img { border:none; text-decoration:none; }
background-image:linear-gradient(to bottom, #fff, #fff);
border:1px solid #bbb;
border-radius:4px;
font-size:0.9em; font-family:inherit; font-weight:normal; line-height:1;
font-size:0.9em; font-family:inherit; font-weight:normal; line-height:normal;
}
.btn {
margin:0; padding:4px 22px;
display:inline-block; min-width:8em;
display:inline-block; min-width:7em;
background-color:#eaeaea; color:#333333;
background-image:linear-gradient(to bottom, #f8f8f8, #e1e1e1);
border:1px solid #bbb;
border-color:#c1c1c1 #c1c1c1 #aaaaaa;
border-radius:4px;
outline-offset:-2px;
font-size:0.9em; font-family:inherit; font-weight:normal; line-height:1;
font-size:0.9em; font-family:inherit; font-weight:normal; line-height:1;
text-align:center; text-decoration:none;
}
.btn:hover, .btn:focus, .btn:active {