mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge remote-tracking branch 'origin/3.2' into 3
# Conflicts: # admin/javascript/LeftAndMain.BatchActions.js # css/UploadField.css # forms/HtmlEditorField.php
This commit is contained in:
commit
48a30909f3
@ -14,3 +14,9 @@ Injector:
|
|||||||
connector: %$MySQLiConnector
|
connector: %$MySQLiConnector
|
||||||
schemaManager: %$MySQLSchemaManager
|
schemaManager: %$MySQLSchemaManager
|
||||||
queryBuilder: %$MySQLQueryBuilder
|
queryBuilder: %$MySQLQueryBuilder
|
||||||
|
MySQLiConnector:
|
||||||
|
class: 'MySQLiConnector'
|
||||||
|
type: prototype
|
||||||
|
PDOConnector:
|
||||||
|
class: 'PDOConnector'
|
||||||
|
type: prototype
|
||||||
|
@ -1033,7 +1033,7 @@ form.import-form label.left { width: 250px; }
|
|||||||
.tree-holder.jstree li.readonly, .cms-tree.jstree li.readonly { color: #aaa; padding-left: 18px; }
|
.tree-holder.jstree li.readonly, .cms-tree.jstree li.readonly { color: #aaa; padding-left: 18px; }
|
||||||
.tree-holder.jstree li.readonly a, .tree-holder.jstree li.readonly a:link, .cms-tree.jstree li.readonly a, .cms-tree.jstree li.readonly a:link { margin: 0; padding: 0; }
|
.tree-holder.jstree li.readonly a, .tree-holder.jstree li.readonly a:link, .cms-tree.jstree li.readonly a, .cms-tree.jstree li.readonly a:link { margin: 0; padding: 0; }
|
||||||
.tree-holder.jstree li.readonly .jstree-icon, .cms-tree.jstree li.readonly .jstree-icon { display: none; }
|
.tree-holder.jstree li.readonly .jstree-icon, .cms-tree.jstree li.readonly .jstree-icon { display: none; }
|
||||||
.tree-holder.jstree a, .tree-holder.jstree a:link, .cms-tree.jstree a, .cms-tree.jstree a:link { color: #0073C1; padding: 3px 6px 3px 3px; border: none; display: inline-block; margin-right: 5px; }
|
.tree-holder.jstree a, .tree-holder.jstree a:link, .cms-tree.jstree a, .cms-tree.jstree a:link { color: #0073C1; padding: 3px 6px 3px 6px; border: none; display: inline-block; margin-right: 5px; }
|
||||||
.tree-holder.jstree ins, .cms-tree.jstree ins { background-color: transparent; background-image: url(../images/sitetree_ss_default_icons.png); }
|
.tree-holder.jstree ins, .cms-tree.jstree ins { background-color: transparent; background-image: url(../images/sitetree_ss_default_icons.png); }
|
||||||
.tree-holder.jstree span.badge, .cms-tree.jstree span.badge { clear: both; text-transform: uppercase; text-shadow: none; display: inline-block; position: relative; padding: 3px 3px 1px; font-size: 0.75em; line-height: 1em; margin-left: 3px; margin-top: -1px; -moz-border-radius: 2px / 2px; -webkit-border-radius: 2px 2px; border-radius: 2px / 2px; }
|
.tree-holder.jstree span.badge, .cms-tree.jstree span.badge { clear: both; text-transform: uppercase; text-shadow: none; display: inline-block; position: relative; padding: 3px 3px 1px; font-size: 0.75em; line-height: 1em; margin-left: 3px; margin-top: -1px; -moz-border-radius: 2px / 2px; -webkit-border-radius: 2px 2px; border-radius: 2px / 2px; }
|
||||||
.tree-holder.jstree span.comment-count, .cms-tree.jstree span.comment-count { clear: both; position: relative; text-transform: uppercase; display: inline-block; overflow: visible; padding: 0px 3px; font-size: 0.75em; line-height: 1em; margin-left: 3px; margin-right: 6px; -moz-border-radius: 2px / 2px; -webkit-border-radius: 2px 2px; border-radius: 2px / 2px; color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
|
.tree-holder.jstree span.comment-count, .cms-tree.jstree span.comment-count { clear: both; position: relative; text-transform: uppercase; display: inline-block; overflow: visible; padding: 0px 3px; font-size: 0.75em; line-height: 1em; margin-left: 3px; margin-right: 6px; -moz-border-radius: 2px / 2px; -webkit-border-radius: 2px 2px; border-radius: 2px / 2px; color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
|
||||||
@ -1045,9 +1045,9 @@ form.import-form label.left { width: 250px; }
|
|||||||
.tree-holder.filtered-list, .cms-tree.filtered-list { margin-top: 8px; }
|
.tree-holder.filtered-list, .cms-tree.filtered-list { margin-top: 8px; }
|
||||||
.tree-holder.filtered-list li:not(.filtered-item) > a, .cms-tree.filtered-list li:not(.filtered-item) > a { color: #aaa; }
|
.tree-holder.filtered-list li:not(.filtered-item) > a, .cms-tree.filtered-list li:not(.filtered-item) > a { color: #aaa; }
|
||||||
|
|
||||||
.cms-tree.jstree .jstree-no-checkboxes li a { padding-left: 12px; }
|
.cms-tree.jstree.draggable .jstree-no-checkboxes li a { padding-left: 12px; }
|
||||||
.cms-tree.jstree .jstree-no-checkboxes li .jstree-hovered, .cms-tree.jstree .jstree-no-checkboxes li .jstree-clicked, .cms-tree.jstree .jstree-no-checkboxes li a:focus { padding-left: 0; }
|
.cms-tree.jstree.draggable .jstree-no-checkboxes li .jstree-hovered, .cms-tree.jstree.draggable .jstree-no-checkboxes li .jstree-clicked, .cms-tree.jstree.draggable .jstree-no-checkboxes li a:focus { padding-left: 0; }
|
||||||
.cms-tree.jstree .jstree-no-checkboxes li .jstree-hovered .jstree-icon, .cms-tree.jstree .jstree-no-checkboxes li .jstree-clicked .jstree-icon, .cms-tree.jstree .jstree-no-checkboxes li a:focus .jstree-icon { display: block; }
|
.cms-tree.jstree.draggable .jstree-no-checkboxes li .jstree-hovered .jstree-icon, .cms-tree.jstree.draggable .jstree-no-checkboxes li .jstree-clicked .jstree-icon, .cms-tree.jstree.draggable .jstree-no-checkboxes li a:focus .jstree-icon { display: block; }
|
||||||
|
|
||||||
.jstree-default a .jstree-icon, .jstree-default-rtl a .jstree-icon, .jstree-classic a .jstree-icon, .jstree-apple a .jstree-icon { background-position: -60px -19px; }
|
.jstree-default a .jstree-icon, .jstree-default-rtl a .jstree-icon, .jstree-classic a .jstree-icon, .jstree-apple a .jstree-icon { background-position: -60px -19px; }
|
||||||
|
|
||||||
|
@ -171,8 +171,8 @@
|
|||||||
ids = this.getIDs(),
|
ids = this.getIDs(),
|
||||||
allIds = [],
|
allIds = [],
|
||||||
viewMode = $('.cms-content-batchactions-button'),
|
viewMode = $('.cms-content-batchactions-button'),
|
||||||
selectedAction = this.find(':input[name=Action]').val();
|
actionUrl = this.find(':input[name=Action]').val();
|
||||||
|
|
||||||
// Default to refreshing the entire tree
|
// Default to refreshing the entire tree
|
||||||
if(rootNode == null) rootNode = st;
|
if(rootNode == null) rootNode = st;
|
||||||
|
|
||||||
@ -181,7 +181,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If no action is selected, enable all nodes
|
// If no action is selected, enable all nodes
|
||||||
if(!selectedAction || selectedAction == -1 || !viewMode.hasClass('active')) {
|
if(!actionURL || actionURL == -1 || !viewMode.hasClass('active')) {
|
||||||
$(rootNode).find('li').each(function() {
|
$(rootNode).find('li').each(function() {
|
||||||
$(this).setEnabled(true);
|
$(this).setEnabled(true);
|
||||||
});
|
});
|
||||||
@ -195,8 +195,12 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Post to the server to ask which pages can have this batch action applied
|
// Post to the server to ask which pages can have this batch action applied
|
||||||
var applicablePagesURL = selectedAction + '/applicablepages/?csvIDs=' + allIds.join(',');
|
// Retain existing query parameters in URL before appending path
|
||||||
jQuery.getJSON(applicablePagesURL, function(applicableIDs) {
|
var actionUrlParts = $.path.parseUrl(actionUrl);
|
||||||
|
var applicablePagesUrl = actionUrlParts.hrefNoSearch + '/applicablepages/';
|
||||||
|
applicablePagesUrl = $.path.addSearchParams(applicablePagesUrl, actionUrlParts.search);
|
||||||
|
applicablePagesUrl = $.path.addSearchParams(applicablePagesUrl, {csvIDs: allIds.join(',')});
|
||||||
|
jQuery.getJSON(applicablePagesUrl, function(applicableIDs) {
|
||||||
// Set a CSS class on each tree node indicating which can be batch-actioned and which can't
|
// Set a CSS class on each tree node indicating which can be batch-actioned and which can't
|
||||||
jQuery(rootNode).find('li').each(function() {
|
jQuery(rootNode).find('li').each(function() {
|
||||||
$(this).removeClass('treeloading');
|
$(this).removeClass('treeloading');
|
||||||
|
@ -9,7 +9,7 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
|||||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich veröffentlichen?",
|
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich veröffentlichen?",
|
||||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich löschen?",
|
"CMSMAIN.BATCH_DELETE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich löschen?",
|
||||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich archivieren?\n\nDiese Seiten und alle Unterseiten davon werden von der veröffentlichen Seite gelöscht und in das Archiv verschoben.",
|
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich archivieren?\n\nDiese Seiten und alle Unterseiten davon werden von der veröffentlichen Seite gelöscht und in das Archiv verschoben.",
|
||||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
"CMSMAIN.BATCH_RESTORE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\\n\\nWollen Sie diese wirklich wiederherstellen?\\n\\nUnterseiten von archivierten Seiten werden auf der Root-Ebene wiederhergestellt, es sei denn, diese Seiten werden ebenfalls wiederhergestellt.",
|
||||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich von der veröfffentlichten Seite löschen?",
|
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich von der veröfffentlichten Seite löschen?",
|
||||||
"LeftAndMain.CONFIRMUNSAVED": "Sind Sie sicher, dass Sie die Seite verlassen möchten?\n\nWARNUNG: Ihre Änderungen werden nicht gespeichert.\n\nDrücken Sie \"OK\" um fortzufahren, oder \"Abbrechen\" um auf dieser Seite zu bleiben.",
|
"LeftAndMain.CONFIRMUNSAVED": "Sind Sie sicher, dass Sie die Seite verlassen möchten?\n\nWARNUNG: Ihre Änderungen werden nicht gespeichert.\n\nDrücken Sie \"OK\" um fortzufahren, oder \"Abbrechen\" um auf dieser Seite zu bleiben.",
|
||||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNUNG: Ihre Änderungen wurden nicht gespeichert.",
|
"LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNUNG: Ihre Änderungen wurden nicht gespeichert.",
|
||||||
|
@ -4,8 +4,8 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
|||||||
if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined');
|
if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined');
|
||||||
} else {
|
} else {
|
||||||
ss.i18n.addDictionary('ro', {
|
ss.i18n.addDictionary('ro', {
|
||||||
"CMSMAIN.SELECTONEPAGE": "Please select at least one page",
|
"CMSMAIN.SELECTONEPAGE": "Vă rugăm să selectaţi cel puțin o pagină.",
|
||||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish",
|
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Aveti {num} pagina(i) selectate.\n\nDoriti sa le nenublicati",
|
||||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich veröffentlichen?",
|
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich veröffentlichen?",
|
||||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich löschen?",
|
"CMSMAIN.BATCH_DELETE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich löschen?",
|
||||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich archivieren?\n\nDiese Seiten und alle Unterseiten davon werden von der veröffentlichen Seite gelöscht und in das Archiv verschoben.",
|
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich archivieren?\n\nDiese Seiten und alle Unterseiten davon werden von der veröffentlichen Seite gelöscht und in das Archiv verschoben.",
|
||||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
"CMSMAIN.BATCH_RESTORE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\\n\\nWollen Sie diese wirklich wiederherstellen?\\n\\nUnterseiten von archivierten Seiten werden auf der Root-Ebene wiederhergestellt, es sei denn, diese Seiten werden ebenfalls wiederhergestellt.",
|
||||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich von der veröfffentlichten Seite löschen?",
|
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie diese wirklich von der veröfffentlichten Seite löschen?",
|
||||||
"LeftAndMain.CONFIRMUNSAVED": "Sind Sie sicher, dass Sie die Seite verlassen möchten?\n\nWARNUNG: Ihre Änderungen werden nicht gespeichert.\n\nDrücken Sie \"OK\" um fortzufahren, oder \"Abbrechen\" um auf dieser Seite zu bleiben.",
|
"LeftAndMain.CONFIRMUNSAVED": "Sind Sie sicher, dass Sie die Seite verlassen möchten?\n\nWARNUNG: Ihre Änderungen werden nicht gespeichert.\n\nDrücken Sie \"OK\" um fortzufahren, oder \"Abbrechen\" um auf dieser Seite zu bleiben.",
|
||||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNUNG: Ihre Änderungen wurden nicht gespeichert.",
|
"LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNUNG: Ihre Änderungen wurden nicht gespeichert.",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"CMSMAIN.SELECTONEPAGE": "Please select at least one page",
|
"CMSMAIN.SELECTONEPAGE": "Vă rugăm să selectaţi cel puțin o pagină.",
|
||||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish",
|
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Aveti {num} pagina(i) selectate.\n\nDoriti sa le nenublicati",
|
||||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||||
|
@ -483,7 +483,7 @@
|
|||||||
}
|
}
|
||||||
a, a:link {
|
a, a:link {
|
||||||
color: $color-text-blue-link;
|
color: $color-text-blue-link;
|
||||||
padding: 3px 6px 3px 3px;
|
padding: 3px 6px 3px 6px;
|
||||||
border: none;
|
border: none;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
@ -573,7 +573,7 @@
|
|||||||
|
|
||||||
// For drag and drop icons to not appear whilst in multi-selection
|
// For drag and drop icons to not appear whilst in multi-selection
|
||||||
.cms-tree {
|
.cms-tree {
|
||||||
&.jstree {
|
&.jstree.draggable {
|
||||||
.jstree-no-checkboxes {
|
.jstree-no-checkboxes {
|
||||||
li {
|
li {
|
||||||
a {
|
a {
|
||||||
|
@ -16,6 +16,7 @@ class RSSFeed extends ViewableData {
|
|||||||
private static $casting = array(
|
private static $casting = array(
|
||||||
"Title" => "Varchar",
|
"Title" => "Varchar",
|
||||||
"Description" => "Varchar",
|
"Description" => "Varchar",
|
||||||
|
"Link" => "Varchar",
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -389,6 +389,7 @@ class HTTP {
|
|||||||
$responseHeaders["Pragma"] = "";
|
$responseHeaders["Pragma"] = "";
|
||||||
} else {
|
} else {
|
||||||
$cacheControlHeaders['no-cache'] = "true";
|
$cacheControlHeaders['no-cache'] = "true";
|
||||||
|
$cacheControlHeaders['no-store'] = "true";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,14 +188,14 @@ class RequestHandler extends ViewableData {
|
|||||||
user_error("Non-string method name: " . var_export($action, true), E_USER_ERROR);
|
user_error("Non-string method name: " . var_export($action, true), E_USER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
$className = get_class($this);
|
$classMessage = Director::isLive() ? 'on this handler' : 'on class '.get_class($this);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(!$this->hasAction($action)) {
|
if(!$this->hasAction($action)) {
|
||||||
return $this->httpError(404, "Action '$action' isn't available on class $className.");
|
return $this->httpError(404, "Action '$action' isn't available $classMessage.");
|
||||||
}
|
}
|
||||||
if(!$this->checkAccessAction($action) || in_array(strtolower($action), array('run', 'init'))) {
|
if(!$this->checkAccessAction($action) || in_array(strtolower($action), array('run', 'init'))) {
|
||||||
return $this->httpError(403, "Action '$action' isn't allowed on class $className.");
|
return $this->httpError(403, "Action '$action' isn't allowed $classMessage.");
|
||||||
}
|
}
|
||||||
$result = $this->handleAction($request, $action);
|
$result = $this->handleAction($request, $action);
|
||||||
}
|
}
|
||||||
@ -232,7 +232,7 @@ class RequestHandler extends ViewableData {
|
|||||||
|
|
||||||
// But if we have more content on the URL and we don't know what to do with it, return an error.
|
// But if we have more content on the URL and we don't know what to do with it, return an error.
|
||||||
} else {
|
} else {
|
||||||
return $this->httpError(404, "I can't handle sub-URLs of a $this->class object.");
|
return $this->httpError(404, "I can't handle sub-URLs $classMessage.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@ -276,10 +276,10 @@ class RequestHandler extends ViewableData {
|
|||||||
* @return SS_HTTPResponse
|
* @return SS_HTTPResponse
|
||||||
*/
|
*/
|
||||||
protected function handleAction($request, $action) {
|
protected function handleAction($request, $action) {
|
||||||
$className = get_class($this);
|
$classMessage = Director::isLive() ? 'on this handler' : 'on class '.get_class($this);
|
||||||
|
|
||||||
if(!$this->hasMethod($action)) {
|
if(!$this->hasMethod($action)) {
|
||||||
return new SS_HTTPResponse("Action '$action' isn't available on class $className.", 404);
|
return new SS_HTTPResponse("Action '$action' isn't available $classMessage.", 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $this->extend('beforeCallActionHandler', $request, $action);
|
$res = $this->extend('beforeCallActionHandler', $request, $action);
|
||||||
|
@ -41,7 +41,7 @@ body.cms.ss-uploadfield-edit-iframe .fieldholder-small label, .composite.ss-asse
|
|||||||
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info { background-color: #c11f1d; padding-right: 130px; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2MxMWYxZCIvPjxzdG9wIG9mZnNldD0iNCUiIHN0b3AtY29sb3I9IiNiZjFkMWIiLz48c3RvcCBvZmZzZXQ9IjglIiBzdG9wLWNvbG9yPSIjYjcxYjFjIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9IiNiNjFlMWQiLz48c3RvcCBvZmZzZXQ9IjI3JSIgc3RvcC1jb2xvcj0iI2IxMWQxZCIvPjxzdG9wIG9mZnNldD0iMzElIiBzdG9wLWNvbG9yPSIjYWIxZDFjIi8+PHN0b3Agb2Zmc2V0PSI0MiUiIHN0b3AtY29sb3I9IiNhNTFiMWIiLz48c3RvcCBvZmZzZXQ9IjQ2JSIgc3RvcC1jb2xvcj0iIzlmMWIxOSIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjOWYxYjE5Ii8+PHN0b3Agb2Zmc2V0PSI1NCUiIHN0b3AtY29sb3I9IiM5OTFjMWEiLz48c3RvcCBvZmZzZXQ9IjU4JSIgc3RvcC1jb2xvcj0iIzk3MWExOCIvPjxzdG9wIG9mZnNldD0iNjIlIiBzdG9wLWNvbG9yPSIjOTExYjFiIi8+PHN0b3Agb2Zmc2V0PSI2NSUiIHN0b3AtY29sb3I9IiM5MTFiMWIiLz48c3RvcCBvZmZzZXQ9Ijg4JSIgc3RvcC1jb2xvcj0iIzdlMTgxNiIvPjxzdG9wIG9mZnNldD0iOTIlIiBzdG9wLWNvbG9yPSIjNzcxOTE5Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNzMxODE3Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g'); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c11f1d), color-stop(4%, #bf1d1b), color-stop(8%, #b71b1c), color-stop(15%, #b61e1d), color-stop(27%, #b11d1d), color-stop(31%, #ab1d1c), color-stop(42%, #a51b1b), color-stop(46%, #9f1b19), color-stop(50%, #9f1b19), color-stop(54%, #991c1a), color-stop(58%, #971a18), color-stop(62%, #911b1b), color-stop(65%, #911b1b), color-stop(88%, #7e1816), color-stop(92%, #771919), color-stop(100%, #731817)); background-image: -moz-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -webkit-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: linear-gradient(to bottom, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); }
|
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info { background-color: #c11f1d; padding-right: 130px; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2MxMWYxZCIvPjxzdG9wIG9mZnNldD0iNCUiIHN0b3AtY29sb3I9IiNiZjFkMWIiLz48c3RvcCBvZmZzZXQ9IjglIiBzdG9wLWNvbG9yPSIjYjcxYjFjIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9IiNiNjFlMWQiLz48c3RvcCBvZmZzZXQ9IjI3JSIgc3RvcC1jb2xvcj0iI2IxMWQxZCIvPjxzdG9wIG9mZnNldD0iMzElIiBzdG9wLWNvbG9yPSIjYWIxZDFjIi8+PHN0b3Agb2Zmc2V0PSI0MiUiIHN0b3AtY29sb3I9IiNhNTFiMWIiLz48c3RvcCBvZmZzZXQ9IjQ2JSIgc3RvcC1jb2xvcj0iIzlmMWIxOSIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjOWYxYjE5Ii8+PHN0b3Agb2Zmc2V0PSI1NCUiIHN0b3AtY29sb3I9IiM5OTFjMWEiLz48c3RvcCBvZmZzZXQ9IjU4JSIgc3RvcC1jb2xvcj0iIzk3MWExOCIvPjxzdG9wIG9mZnNldD0iNjIlIiBzdG9wLWNvbG9yPSIjOTExYjFiIi8+PHN0b3Agb2Zmc2V0PSI2NSUiIHN0b3AtY29sb3I9IiM5MTFiMWIiLz48c3RvcCBvZmZzZXQ9Ijg4JSIgc3RvcC1jb2xvcj0iIzdlMTgxNiIvPjxzdG9wIG9mZnNldD0iOTIlIiBzdG9wLWNvbG9yPSIjNzcxOTE5Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNzMxODE3Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g'); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c11f1d), color-stop(4%, #bf1d1b), color-stop(8%, #b71b1c), color-stop(15%, #b61e1d), color-stop(27%, #b11d1d), color-stop(31%, #ab1d1c), color-stop(42%, #a51b1b), color-stop(46%, #9f1b19), color-stop(50%, #9f1b19), color-stop(54%, #991c1a), color-stop(58%, #971a18), color-stop(62%, #911b1b), color-stop(65%, #911b1b), color-stop(88%, #7e1816), color-stop(92%, #771919), color-stop(100%, #731817)); background-image: -moz-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -webkit-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: linear-gradient(to bottom, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); }
|
||||||
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name { width: 100%; cursor: default; background: #bcb9b9; background: rgba(201, 198, 198, 0.9); }
|
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name { width: 100%; cursor: default; background: #bcb9b9; background: rgba(201, 198, 198, 0.9); }
|
||||||
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name .name { text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.7); }
|
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name .name { text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.7); }
|
||||||
.ss-assetuploadfield .ss-uploadfield-files .ui-state-warning .ss-uploadfield-item-info { background-color: #E9D104; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U1ZDMzYiIvPjxzdG9wIG9mZnNldD0iOCUiIHN0b3AtY29sb3I9IiNlMmNlMjQiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2QxYmUxYyIvPjxzdG9wIG9mZnNldD0iNTQlIiBzdG9wLWNvbG9yPSIjZDFiYzFiIi8+PHN0b3Agb2Zmc2V0PSI5NiUiIHN0b3AtY29sb3I9IiNkMDlhMWEiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNjZTg3MTkiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e5d33b), color-stop(8%, #e2ce24), color-stop(50%, #d1be1c), color-stop(54%, #d1bc1b), color-stop(96%, #d09a1a), color-stop(100%, #ce8719)); background-image: -moz-linear-gradient(top, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bc1b 54%, #d09a1a 96%, #ce8719 100%); background-image: -webkit-linear-gradient(top, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bc1b 54%, #d09a1a 96%, #ce8719 100%); background-image: linear-gradient(to bottom, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bc1b 54%, #d09a1a 96%, #ce8719 100%); }
|
.ss-assetuploadfield .ss-uploadfield-files .ui-state-warning .ss-uploadfield-item-info { background-color: #E9D104; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U1ZDMzYiIvPjxzdG9wIG9mZnNldD0iOCUiIHN0b3AtY29sb3I9IiNlMmNlMjQiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2QxYmUxYyIvPjxzdG9wIG9mZnNldD0iNTQlIiBzdG9wLWNvbG9yPSIjZDFiZDFjIi8+PHN0b3Agb2Zmc2V0PSI5NiUiIHN0b3AtY29sb3I9IiNkMDlhMWEiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNjZjg3MWEiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e5d33b), color-stop(8%, #e2ce24), color-stop(50%, #d1be1c), color-stop(54%, #d1bd1c), color-stop(96%, #d09a1a), color-stop(100%, #cf871a)); background-image: -moz-linear-gradient(top, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bd1c 54%, #d09a1a 96%, #cf871a 100%); background-image: -webkit-linear-gradient(top, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bd1c 54%, #d09a1a 96%, #cf871a 100%); background-image: linear-gradient(to bottom, #e5d33b 0%, #e2ce24 8%, #d1be1c 50%, #d1bd1c 54%, #d09a1a 96%, #cf871a 100%); }
|
||||||
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name { position: relative; z-index: 1; margin: 3px 0 3px 50px; width: 50%; color: #7f8c97; background: #eeeded; background: rgba(255, 255, 255, 0.8); -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; line-height: 24px; height: 22px; padding: 0 5px; text-align: left; cursor: pointer; display: table; table-layout: fixed; }
|
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name { position: relative; z-index: 1; margin: 3px 0 3px 50px; width: 50%; color: #7f8c97; background: #eeeded; background: rgba(255, 255, 255, 0.8); -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; line-height: 24px; height: 22px; padding: 0 5px; text-align: left; cursor: pointer; display: table; table-layout: fixed; }
|
||||||
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .name { text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5); display: inline; float: left; max-width: 50%; font-weight: normal; padding: 0 5px 0 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; }
|
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .name { text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5); display: inline; float: left; max-width: 50%; font-weight: normal; padding: 0 5px 0 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; }
|
||||||
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .ss-uploadfield-item-status { position: relative; float: right; padding: 0 0 0 5px; max-width: 30%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5); }
|
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-name .ss-uploadfield-item-status { position: relative; float: right; padding: 0 0 0 5px; max-width: 30%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5); }
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["../scss/AssetUploadField.scss","../admin/scss/themes/_default.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-shadow.scss","../admin/scss/_mixins.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_background-clip.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../scss/_elementMixins.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_text-shadow.scss"],
|
"sources": ["../scss/AssetUploadField.scss","../admin/scss/themes/_default.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-shadow.scss","../admin/scss/_mixins.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_background-clip.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../scss/_elementMixins.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_text-shadow.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "AssetUploadField.css"
|
"file": "AssetUploadField.css"
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["../scss/GridField.scss","../admin/scss/themes/_default.scss","../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_text-shadow.scss","../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_inline-block.scss","../admin/scss/_mixins.scss","../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../scss/_elementMixins.scss"],
|
"sources": ["../scss/GridField.scss","../admin/scss/themes/_default.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_text-shadow.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_inline-block.scss","../admin/scss/_mixins.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../scss/_elementMixins.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "GridField.css"
|
"file": "GridField.css"
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["../scss/TreeDropdownField.scss","../admin/scss/_mixins.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-sizing.scss"],
|
"sources": ["../scss/TreeDropdownField.scss","../admin/scss/_mixins.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-sizing.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "TreeDropdownField.css"
|
"file": "TreeDropdownField.css"
|
||||||
}
|
}
|
@ -16,6 +16,7 @@ Used in side panels and action tabs
|
|||||||
.ss-uploadfield .ss-uploadfield-item { margin: 0; padding: 15px; overflow: auto; }
|
.ss-uploadfield .ss-uploadfield-item { margin: 0; padding: 15px; overflow: auto; }
|
||||||
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview { height: 60px; line-height: 60px; width: 80px; text-align: center; font-weight: bold; float: left; overflow: hidden; }
|
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview { height: 60px; line-height: 60px; width: 80px; text-align: center; font-weight: bold; float: left; overflow: hidden; }
|
||||||
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview.ss-uploadfield-dropzone { -moz-box-shadow: #808080 0 0 4px 0 inset; -webkit-box-shadow: #808080 0 0 4px 0 inset; box-shadow: #808080 0 0 4px 0 inset; border: 2px dashed #808080; background: #D2D5D8; display: none; margin-right: 15px; }
|
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview.ss-uploadfield-dropzone { -moz-box-shadow: #808080 0 0 4px 0 inset; -webkit-box-shadow: #808080 0 0 4px 0 inset; box-shadow: #808080 0 0 4px 0 inset; border: 2px dashed #808080; background: #D2D5D8; display: none; margin-right: 15px; }
|
||||||
|
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview img { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJElEQVQYV2O8dOnSfwYkoKenx4jMZ6SDAmT7QGx0K1EcRBsFAJfOHd3Le79RAAAAAElFTkSuQmCC) repeat; }
|
||||||
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info { margin-left: 95px; }
|
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info { margin-left: 95px; }
|
||||||
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name { display: block; line-height: 13px; height: 26px; margin: 0; text-align: left; }
|
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name { display: block; line-height: 13px; height: 26px; margin: 0; text-align: left; }
|
||||||
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .name { max-width: 240px; font-weight: bold; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; display: inline; float: left; }
|
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-info .ss-uploadfield-item-name .name { max-width: 240px; font-weight: bold; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; display: inline; float: left; }
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["../scss/UploadField.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-shadow.scss","../admin/scss/themes/_default.scss","../admin/scss/_mixins.scss"],
|
"sources": ["../scss/UploadField.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-shadow.scss","../admin/scss/themes/_default.scss","../admin/scss/_mixins.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "UploadField.css"
|
"file": "UploadField.css"
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "AAEA,IAAK,GACH,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAC,CAAC,EACR,UAAU,EAAE,MAAM,EAClB,OAAO,EAAC,CAAC,EACT,WAAW,EAAE,0BAA0B;;AAGzC,KAAM,GACL,MAAM,EAAC,SAAS,EAChB,OAAO,EAAE,IAAI,EACb,gBAAgB,EAAE,OAAO,EACzB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,EACjB,KAAK,EAAE,IAAI,ECwDN,gBAAY,EAAE,ioBAAgC,EA2B9C,eAAe,EAAE,IAAI,EA3BrB,gBAAY,EAAE,kJAAgC,EAA9C,gBAAY,EAAE,gEAAgC,EAA9C,gBAAY,EAAE,mEAAgC,EAE9C,gBAAY,EAAE,2DAAO,EDnD1B,OAAO,EAAE,IAAI;AACb,QAAG,GACF,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,aAAyB,EACtC,WAAW,EAAE,IAAI,EAEjB,UAAU,EAAE,uDAAuD;AAGpE,QAAG,GACF,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,MAAM;AAEpB,OAAE,GACD,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI;AAGZ,OAAE,GACD,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,IAAI,EACjB,eAAe,EAAE,IAAI;AAErB,6BACS,GACR,KAAK,EAAE,IAAI,EACX,eAAe,EAAE,SAAS;;AAO7B,OAAQ,GACP,MAAM,EAAE,CAAC,EACT,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,IAAI,EACZ,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,aAAa;;AAGvB,wBAES,GACR,OAAO,EAAC,QAAQ,EAEhB,UAAU,EAAE,eAAe,EAE3B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI;AACb,iCAAG,GACF,SAAS,EAAC,IAAI,EACd,MAAM,EAAC,KAAK;;AAId,CAAE,GACD,KAAK,EAAE,IAAI;AAEX,OAAQ,GACP,KAAK,EAAE,IAAI;AAGZ,QAAS,GACR,KAAK,EAAE,IAAI;;AAIb,CAAE,GACD,aAAa,EAAE,GAAG;;AAGnB,GAAI,GACH,aAAa,EAAE,IAAI,EACnB,gBAAgB,EAAE,OAAO,EACzB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,6BAAyB,EACjC,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,IAAI,EEgPb,kBAAwC,EF9OlB,GAAG,EE8OzB,qBAAwC,EC9Sb,GAAuB,ED8SlD,aAAwC,EF9OlB,GAAG,EE8OzB,eAAwC,EEnT/B,mCAAkD,EFmT3D,kBAAwC,EEnT/B,mCAAkD,EFmT3D,UAAwC,EEnT/B,mCAAkD;AJwE3D,QAAK,GACL,KAAK,EAAC,IAAI;AAEX,UAAO,GACN,KAAK,EAAC,IAAI;;AAIZ,EAAG,GACF,MAAM,EAAE,UAAU;;AAGnB,EAAG,GACF,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,IAAI;;AAGlB,EAAG,GACF,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU;;AAGpB,QAAS,GACR,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,IAAI,EACnB,OAAO,EAAE,IAAI;;AAGd,KAAM,GACL,UAAU,EAAC,IAAI,EAAE,OAAO,EAAC,iBAAiB,EAAE,KAAK,EAAC,OAAO,EAAE,UAAU,EAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EACxG,aAAa,EAAC,GAAG;;AAGlB,KAAM,GACL,UAAU,EAAC,IAAI,EAAE,OAAO,EAAC,iBAAiB,EAAE,KAAK,EAAC,OAAO,EAAE,UAAU,EAAC,OAAO,EAC7E,MAAM,EAAC,iBAAiB,EAAE,aAAa,EAAC,GAAG",
|
"mappings": "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",
|
||||||
"sources": ["../scss/debug.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../usr/local/share/gems/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-shadow.scss"],
|
"sources": ["../scss/debug.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_box-shadow.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "debug.css"
|
"file": "debug.css"
|
||||||
}
|
}
|
@ -140,7 +140,7 @@ This package will maintain your [.gitignore](http://git-scm.com/docs/gitignore)
|
|||||||
|
|
||||||
Include the package in your project by running this command
|
Include the package in your project by running this command
|
||||||
|
|
||||||
composer require gdmedia/ss-auto-git-ignore
|
composer require gdmedia/ss-auto-git-ignore --dev
|
||||||
|
|
||||||
Edit your composer.json and insert
|
Edit your composer.json and insert
|
||||||
|
|
||||||
@ -161,12 +161,12 @@ Full example of composer.json with the SSAutoGitIgnore installed and enabled
|
|||||||
"php": ">=5.3.2",
|
"php": ">=5.3.2",
|
||||||
"silverstripe/cms": "3.0.*",
|
"silverstripe/cms": "3.0.*",
|
||||||
"silverstripe/framework": "3.0.*",
|
"silverstripe/framework": "3.0.*",
|
||||||
"silverstripe-themes/simple": "*",
|
"silverstripe-themes/simple": "*"
|
||||||
"gdmedia/ss-auto-git-ignore": "*"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"silverstripe/compass": "*",
|
"silverstripe/compass": "*",
|
||||||
"silverstripe/docsviewer": "*"
|
"silverstripe/docsviewer": "*",
|
||||||
|
"gdmedia/ss-auto-git-ignore": "*"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-update-cmd": "GDM\\SSAutoGitIgnore\\UpdateScript::Go"
|
"post-update-cmd": "GDM\\SSAutoGitIgnore\\UpdateScript::Go"
|
||||||
|
@ -218,6 +218,18 @@ To refresh a oEmbed cache, append `?flush=1` to a URL.
|
|||||||
|
|
||||||
To disable oEmbed usage, set the `Oembed.enabled` configuration property to "false".
|
To disable oEmbed usage, set the `Oembed.enabled` configuration property to "false".
|
||||||
|
|
||||||
|
## Limiting oembed URLs
|
||||||
|
|
||||||
|
HtmlEditorField can have whitelists set on both the scheme (default http & https) and domains allowed when
|
||||||
|
inserting files for use with oembed.
|
||||||
|
|
||||||
|
This is performed through the config variables `HtmlEditorField_Toolbar::$fileurl_scheme_whitelist` and
|
||||||
|
`HtmlEditorField_Toolbar::$fileurl_domain_whitelist`.
|
||||||
|
|
||||||
|
Setting these configuration variables to empty arrays will disable the whitelist. Setting them to an array of
|
||||||
|
lower case strings will require the scheme or domain respectively to exactly match one of those strings (no
|
||||||
|
wildcards are currently supported).
|
||||||
|
|
||||||
### Doctypes
|
### Doctypes
|
||||||
|
|
||||||
Since TinyMCE generates markup, it needs to know which doctype your documents will be rendered in. You can set this
|
Since TinyMCE generates markup, it needs to know which doctype your documents will be rendered in. You can set this
|
||||||
|
@ -73,7 +73,7 @@ Enable multiple fileuploads by using a many_many (or has_many) relation. Again,
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
class GalleryImageExtension extends DataExtension {
|
class GalleryImageExtension extends DataExtension {
|
||||||
private static $belongs_many_many = array('Galleries' => 'GalleryPage);
|
private static $belongs_many_many = array('Galleries' => 'GalleryPage');
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -110,7 +110,8 @@ This example will save all uploads in the `/assets/customfolder/` folder. If the
|
|||||||
'Root.Upload',
|
'Root.Upload',
|
||||||
$uploadField = new UploadField(
|
$uploadField = new UploadField(
|
||||||
$name = 'GalleryImages',
|
$name = 'GalleryImages',
|
||||||
$title = 'Please upload one or more images' )
|
$title = 'Please upload one or more images'
|
||||||
|
)
|
||||||
);
|
);
|
||||||
$uploadField->setFolderName('customfolder');
|
$uploadField->setFolderName('customfolder');
|
||||||
```
|
```
|
||||||
|
@ -134,9 +134,10 @@ Documentation will use the following format:
|
|||||||
* How to report security vulnerabilities. Note that PSR-9 / PSR-10 may be recommended once released.
|
* How to report security vulnerabilities. Note that PSR-9 / PSR-10 may be recommended once released.
|
||||||
* Security, license, links to more detailed docs.
|
* Security, license, links to more detailed docs.
|
||||||
* CONTRIBUTING.md explaining terms of contribution.
|
* CONTRIBUTING.md explaining terms of contribution.
|
||||||
* A changelog CHANGELOG.md (may link to other more detailed docs or GitHub releases if you want).
|
* A changelog CHANGELOG.md (may link to other more detailed docs or GitHub releases if you want). You could [use a changelog generator](https://github.com/skywinder/Github-Changelog-Generator) to help create this.
|
||||||
* Has a licence (LICENSE.md file) - for SilverStripe supported this needs to be BSD.
|
* Has a licence (LICENSE.md file) - for SilverStripe supported this needs to be BSD.
|
||||||
* Detailed documentation in /docs/en as a nested set of GitHub-compatible Markdown files.
|
* Detailed documentation in /docs/en as a nested set of GitHub-compatible Markdown files.
|
||||||
|
* It is suggested to use a documentation page named `userguide.md` in `docs/en/` that includes documentation of module features that have CMS user functionality (if applicable). For modules with large userguides, this should be in a directory named `userguide` with an `index.md` linking to any other userguide pages.
|
||||||
* Links and image references are relative, and are able to be followed in viewers such as GitHub.
|
* Links and image references are relative, and are able to be followed in viewers such as GitHub.
|
||||||
* Markdown may include non-visible comments or meta-data.
|
* Markdown may include non-visible comments or meta-data.
|
||||||
|
|
||||||
|
@ -1,22 +1,25 @@
|
|||||||
title: Upgrading
|
title: Upgrading
|
||||||
introduction: Keep your SilverStripe installations up to date with the latest fixes, security patches and new features.
|
introduction: Keep your SilverStripe installations up to date with the latest fixes, security patches and new features.
|
||||||
|
|
||||||
# Upgrading
|
# Upgrading to SilverStripe 3.2
|
||||||
|
|
||||||
SilverStripe Applications should be kept up to date with the latest security releases. Usually an update or upgrade to
|
SilverStripe applications should be kept up to date with the latest security releases. Usually an update or upgrade to your SilverStripe installation means overwriting files, flushing the cache and updating your database-schema.
|
||||||
your SilverStripe installation means overwriting files, flushing the cache and updating your database-schema.
|
|
||||||
|
|
||||||
<div class="info" markdown="1">
|
<div class="info" markdown="1">
|
||||||
See our [upgrade notes and changelogs](/changelogs) for release-specific information.
|
See our [upgrade notes and changelogs](/changelogs/3.2.0) for 3.2.0 specific information, bugfixes and API changes.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## Composer
|
## Composer
|
||||||
|
|
||||||
For projects managed through Composer, check the version defined in your `composer.json` file. Update the version
|
For projects managed through Composer, update the version number of `framework` and `cms` to `^3.2` in your `composer.json` file and run `composer update`.
|
||||||
constraints if required and update composer.
|
|
||||||
|
|
||||||
:::bash
|
```json
|
||||||
composer update
|
"require": {
|
||||||
|
"silverstripe/framework": "^3.2",
|
||||||
|
"silverstripe/cms": "^3.2"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
This will also add extra dependencies, the `reports` and `siteconfig` modules. SilverStripe CMS is becoming more modular, and [composer is becoming the preferred way to manage your code](/getting_started/composer).
|
||||||
|
|
||||||
## Manual
|
## Manual
|
||||||
|
|
||||||
@ -27,7 +30,8 @@ constraints if required and update composer.
|
|||||||
* Leave custom folders like *mysite* or *themes* in place.
|
* Leave custom folders like *mysite* or *themes* in place.
|
||||||
* Identify system folders in your webroot (`cms`, `framework` and any additional modules).
|
* Identify system folders in your webroot (`cms`, `framework` and any additional modules).
|
||||||
* Delete existing system folders (or move them outside of your webroot)
|
* Delete existing system folders (or move them outside of your webroot)
|
||||||
* Extract and replace system folders from your download (Deleting instead of "copying over" existing folders ensures that files removed from the new SilverStripe release are not persisting in your installation)
|
* Extract and replace system folders from your download (Deleting instead of "copying over" existing folders ensures that files removed from the new SilverStripe release are not persisting in your installation).
|
||||||
|
* As of SilverStripe CMS 3.2.0 you will also need to include the `reports` and `siteconfig` modules to ensure feature parity with previous versions of the CMS.
|
||||||
* Visit http://yoursite.com/dev/build/?flush=1 to rebuild the website database.
|
* Visit http://yoursite.com/dev/build/?flush=1 to rebuild the website database.
|
||||||
* Check if you need to adapt your code to changed PHP APIs
|
* Check if you need to adapt your code to changed PHP APIs
|
||||||
* Check if you have overwritten any core templates or styles which might need an update.
|
* Check if you have overwritten any core templates or styles which might need an update.
|
||||||
|
40
docs/en/04_Changelogs/3.1.16.md
Normal file
40
docs/en/04_Changelogs/3.1.16.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# 3.1.16
|
||||||
|
|
||||||
|
## Upgrading
|
||||||
|
|
||||||
|
FormField validation messages generated by the `Validator` class will now be automatically XML
|
||||||
|
encoded before being rendered alongside an invalid field.
|
||||||
|
|
||||||
|
If a validation message in a custom `Validator` instance should be rendered as literal HTML,
|
||||||
|
then the $message parameter for `Validator::validationError` should be passed as an instance
|
||||||
|
of `HTMLText`
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
|
||||||
|
:::php
|
||||||
|
class MyCustomValidator extends Validator {
|
||||||
|
public function php($data) {
|
||||||
|
$this->validationError(
|
||||||
|
'EmailAddress',
|
||||||
|
DBField::create_field('HTMLText', "Invalid email. Please sign up at <a href='signup'>this page</a>")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
<!--- Changes below this line will be automatically regenerated -->
|
||||||
|
|
||||||
|
## Change Log
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* 2015-11-11 [245e0aa](https://github.com/silverstripe/silverstripe-framework/commit/245e0aae2f5f3eb0acba1d198ad8e196bb224462) Fix FormField error messages not being encoded safely (Damian Mooyman) - See [ss-2015-026](http://www.silverstripe.org/download/security-releases/ss-2015-026)
|
||||||
|
* 2015-11-09 [53b3bc7](https://github.com/silverstripe/silverstripe-framework/commit/53b3bc707bcccb8f5e5060f85ab1398a0975bba2) Dont expose class on error (Hamish Friedlander) - See [ss-2015-025](http://www.silverstripe.org/download/security-releases/ss-2015-025)
|
||||||
|
* 2015-11-01 [ac4342d](https://github.com/silverstripe/silverstripe-framework/commit/ac4342d81d19201bd8d3814f168240db1ac565fe) XML escape RSSFeed $link parameter (Ingo Schommer) - See [ss-2015-022](http://www.silverstripe.org/download/security-releases/ss-2015-022)
|
||||||
|
* 2015-10-28 [97f21fd](https://github.com/silverstripe/silverstripe-framework/commit/97f21fddb3c565052f19ee3b35366f48e1e9a36f) Fix rewrite hash links XSS (Damian Mooyman) - See [ss-2015-021](http://www.silverstripe.org/download/security-releases/ss-2015-021)
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
|
||||||
|
* 2015-10-20 [b857bdf](https://github.com/silverstripe/silverstripe-framework/commit/b857bdf209d79fc623724e68f6a660354cbd5f93) Fix duplicate files being included in case of flush (Damian Mooyman)
|
||||||
|
* 2015-10-08 [ff6c0a3](https://github.com/silverstripe/silverstripe-cms/commit/ff6c0a3160c5eb3ca624efea6585efb44399dc1c) (v3.1) for #1294 to workaround ErrorPage fatal errors (and undefined var) when publishing. (Patrick Nelson)
|
56
docs/en/04_Changelogs/3.2.1.md
Normal file
56
docs/en/04_Changelogs/3.2.1.md
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# 3.2.1
|
||||||
|
|
||||||
|
## Upgrading
|
||||||
|
|
||||||
|
FormField validation messages generated by the `Validator` class will now be automatically XML
|
||||||
|
encoded before being rendered alongside an invalid field.
|
||||||
|
|
||||||
|
If a validation message in a custom `Validator` instance should be rendered as literal HTML,
|
||||||
|
then the $message parameter for `Validator::validationError` should be passed as an instance
|
||||||
|
of `HTMLText`
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
|
||||||
|
:::php
|
||||||
|
class MyCustomValidator extends Validator {
|
||||||
|
public function php($data) {
|
||||||
|
$this->validationError(
|
||||||
|
'EmailAddress',
|
||||||
|
DBField::create_field('HTMLText', "Invalid email. Please sign up at <a href='signup'>this page</a>")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
<!--- Changes below this line will be automatically regenerated -->
|
||||||
|
|
||||||
|
## Change Log
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* 2015-11-12 [b61d6dc](https://github.com/silverstripe/silverstripe-framework/commit/b61d6dcd57577b0345af7a69e51da409305e1957) HtmlEditorField_Toolbar#viewfile not whitelisting URLs (Hamish Friedlander) - See [ss-2015-027](http://www.silverstripe.org/download/security-releases/ss-2015-027)
|
||||||
|
* 2015-11-11 [bc1b289](https://github.com/silverstripe/silverstripe-framework/commit/bc1b2893accba6401c03f9ea3b0cbc4621c7a02c) Fix FormField error messages not being encoded safely (Damian Mooyman) - See [ss-2015-026](http://www.silverstripe.org/download/security-releases/ss-2015-026)
|
||||||
|
* 2015-11-09 [f290d86](https://github.com/silverstripe/silverstripe-framework/commit/f290d869e01e0087286b4f2bc92e95d15c229c45) Dont expose class on error (Hamish Friedlander) - See [ss-2015-025](http://www.silverstripe.org/download/security-releases/ss-2015-025)
|
||||||
|
* 2015-11-01 [4f55b6a](https://github.com/silverstripe/silverstripe-framework/commit/4f55b6a115ce0de8c5c258fb44eca52b8b112caf) XML escape RSSFeed $link parameter (Ingo Schommer) - See [ss-2015-022](http://www.silverstripe.org/download/security-releases/ss-2015-022)
|
||||||
|
* 2015-10-28 [132e9b3](https://github.com/silverstripe/silverstripe-framework/commit/132e9b3e2fad361ebb4b502b6a37d34d013bfba3) Fix rewrite hash links XSS (Damian Mooyman) - See [ss-2015-021](http://www.silverstripe.org/download/security-releases/ss-2015-021)
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
|
||||||
|
* 2015-11-10 [732e705](https://github.com/silverstripe/silverstripe-framework/commit/732e705bbf548024b123d5160863395f2f74e7d9) Correct behaviour for empty filter array (as per 3.1) (Damian Mooyman)
|
||||||
|
* 2015-11-09 [414ea3d](https://github.com/silverstripe/silverstripe-framework/commit/414ea3de9e87812c5ac96cc15062307c608e0963) prevent UploadField edit form generation for Folders (Damian Mooyman)
|
||||||
|
* 2015-11-05 [c6c650f](https://github.com/silverstripe/silverstripe-cms/commit/c6c650f1366348327d973ca6cc5a5ed33a467786) Ensure CMSMainTest uses correct siteconfig (Damian Mooyman)
|
||||||
|
* 2015-11-02 [0272e44](https://github.com/silverstripe/silverstripe-framework/commit/0272e443f44ebca55b05c14f2a112260ff0df284) Prevent dev/build continually regenerating Number field type (Damian Mooyman)
|
||||||
|
* 2015-10-30 [2813f94](https://github.com/silverstripe/silverstripe-framework/commit/2813f94124c2ba14f1e4a51001e3898b0e0c32aa) Ensure that filters on any fixed field are scoped to the base data table (Damian Mooyman)
|
||||||
|
* 2015-10-30 [38ca963](https://github.com/silverstripe/silverstripe-framework/commit/38ca9632c4e9df0a74eae70cec98fdce242da529) Add missing CMSSecurity route (Damian Mooyman)
|
||||||
|
* 2015-10-29 [daa86d3](https://github.com/silverstripe/silverstripe-framework/commit/daa86d3a4ce75bf8637134726864ae14fbbdf586) Fix regression from #4396 in test fixtures (Damian Mooyman)
|
||||||
|
* 2015-10-28 [db16248](https://github.com/silverstripe/silverstripe-framework/commit/db16248b9ab7677cc4b4e25857a6b6d36f8c35f0) Fix broken InlineFormAction (Damian Mooyman)
|
||||||
|
* 2015-10-27 [293d847](https://github.com/silverstripe/silverstripe-framework/commit/293d84721efafedf3dd3fe69dd1d013a8c07d3ff) for #4712: Dropping in some PHP documentation on return types for dynamically generated image methods. (Patrick Nelson)
|
||||||
|
* 2015-10-20 [b857bdf](https://github.com/silverstripe/silverstripe-framework/commit/b857bdf209d79fc623724e68f6a660354cbd5f93) Fix duplicate files being included in case of flush (Damian Mooyman)
|
||||||
|
* 2015-10-19 [c364158](https://github.com/silverstripe/silverstripe-framework/commit/c3641587a5d5977af4fa053e5813846ce990d86c) only use sethasemptydefault if exists. (Cam Findlay)
|
||||||
|
* 2015-10-08 [ff6c0a3](https://github.com/silverstripe/silverstripe-cms/commit/ff6c0a3160c5eb3ca624efea6585efb44399dc1c) (v3.1) for #1294 to workaround ErrorPage fatal errors (and undefined var) when publishing. (Patrick Nelson)
|
||||||
|
* 2015-10-08 [785f850](https://github.com/silverstripe/silverstripe-cms/commit/785f85047f64b76011c34542362c7f09dbf59021) for #1294 to workaround ErrorPage fatal errors (and undefined var) when publishing. (Patrick Nelson)
|
||||||
|
* 2015-10-01 [75dc391](https://github.com/silverstripe/silverstripe-cms/commit/75dc391df9b396756a6f02c5fca08eafcb53ba31) for #586 and possible fix for #736 and relates to #2449: Don't perform validation upon deletion, since it isn't necessary. Cleaned up type hint. (Patrick Nelson)
|
||||||
|
* 2015-09-17 [e64d73c](https://github.com/silverstripe/silverstripe-framework/commit/e64d73c1f741399412b6015f6602ed707b2e9778) Fix ClassInfo::table_for_object_field (Damian Mooyman)
|
||||||
|
* 2015-08-05 [2901664](https://github.com/silverstripe/silverstripe-framework/commit/29016645e5e759b1ecf49876fa79c357a68c5794) . FulltextFilter requires table identifiers in match query (Elvinas L.)
|
||||||
|
* 2015-07-12 [f192a6e](https://github.com/silverstripe/silverstripe-framework/commit/f192a6ecaf70446ec60f6c7ef2a555395f83ea16) #4392: Ensure headers are checked first before being clobbered by globally maintained state. Also ensuring tests utilize separate responses for isolation. (Patrick Nelson)
|
19
docs/en/04_Changelogs/rc/3.1.16-rc1.md
Normal file
19
docs/en/04_Changelogs/rc/3.1.16-rc1.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# 3.1.16-rc1
|
||||||
|
|
||||||
|
See [3.1.16](/changelogs/3.1.16) changelog for more information on what is new in 3.1.16
|
||||||
|
|
||||||
|
<!--- Changes below this line will be automatically regenerated -->
|
||||||
|
|
||||||
|
## Change Log
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* 2015-11-11 [245e0aa](https://github.com/silverstripe/silverstripe-framework/commit/245e0aae2f5f3eb0acba1d198ad8e196bb224462) Fix FormField error messages not being encoded safely (Damian Mooyman) - See [ss-2015-026](http://www.silverstripe.org/download/security-releases/ss-2015-026)
|
||||||
|
* 2015-11-09 [53b3bc7](https://github.com/silverstripe/silverstripe-framework/commit/53b3bc707bcccb8f5e5060f85ab1398a0975bba2) Dont expose class on error (Hamish Friedlander) - See [ss-2015-025](http://www.silverstripe.org/download/security-releases/ss-2015-025)
|
||||||
|
* 2015-11-01 [ac4342d](https://github.com/silverstripe/silverstripe-framework/commit/ac4342d81d19201bd8d3814f168240db1ac565fe) XML escape RSSFeed $link parameter (Ingo Schommer) - See [ss-2015-022](http://www.silverstripe.org/download/security-releases/ss-2015-022)
|
||||||
|
* 2015-10-28 [97f21fd](https://github.com/silverstripe/silverstripe-framework/commit/97f21fddb3c565052f19ee3b35366f48e1e9a36f) Fix rewrite hash links XSS (Damian Mooyman) - See [ss-2015-021](http://www.silverstripe.org/download/security-releases/ss-2015-021)
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
|
||||||
|
* 2015-10-20 [b857bdf](https://github.com/silverstripe/silverstripe-framework/commit/b857bdf209d79fc623724e68f6a660354cbd5f93) Fix duplicate files being included in case of flush (Damian Mooyman)
|
||||||
|
* 2015-10-08 [ff6c0a3](https://github.com/silverstripe/silverstripe-cms/commit/ff6c0a3160c5eb3ca624efea6585efb44399dc1c) (v3.1) for #1294 to workaround ErrorPage fatal errors (and undefined var) when publishing. (Patrick Nelson)
|
34
docs/en/04_Changelogs/rc/3.2.1-rc1.md
Normal file
34
docs/en/04_Changelogs/rc/3.2.1-rc1.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# 3.2.1-rc1
|
||||||
|
|
||||||
|
See [3.2.1](/changelogs/3.2.1) changelog for more information on what is new in 3.2.1
|
||||||
|
|
||||||
|
<!--- Changes below this line will be automatically regenerated -->
|
||||||
|
|
||||||
|
## Change Log
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* 2015-11-11 [bc1b289](https://github.com/silverstripe/silverstripe-framework/commit/bc1b2893accba6401c03f9ea3b0cbc4621c7a02c) Fix FormField error messages not being encoded safely (Damian Mooyman) - See [ss-2015-026](http://www.silverstripe.org/download/security-releases/ss-2015-026)
|
||||||
|
* 2015-11-09 [f290d86](https://github.com/silverstripe/silverstripe-framework/commit/f290d869e01e0087286b4f2bc92e95d15c229c45) Dont expose class on error (Hamish Friedlander) - See [ss-2015-025](http://www.silverstripe.org/download/security-releases/ss-2015-025)
|
||||||
|
* 2015-11-01 [4f55b6a](https://github.com/silverstripe/silverstripe-framework/commit/4f55b6a115ce0de8c5c258fb44eca52b8b112caf) XML escape RSSFeed $link parameter (Ingo Schommer) - See [ss-2015-022](http://www.silverstripe.org/download/security-releases/ss-2015-022)
|
||||||
|
* 2015-10-28 [132e9b3](https://github.com/silverstripe/silverstripe-framework/commit/132e9b3e2fad361ebb4b502b6a37d34d013bfba3) Fix rewrite hash links XSS (Damian Mooyman) - See [ss-2015-021](http://www.silverstripe.org/download/security-releases/ss-2015-021)
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
|
||||||
|
* 2015-11-10 [732e705](https://github.com/silverstripe/silverstripe-framework/commit/732e705bbf548024b123d5160863395f2f74e7d9) Correct behaviour for empty filter array (as per 3.1) (Damian Mooyman)
|
||||||
|
* 2015-11-09 [414ea3d](https://github.com/silverstripe/silverstripe-framework/commit/414ea3de9e87812c5ac96cc15062307c608e0963) prevent UploadField edit form generation for Folders (Damian Mooyman)
|
||||||
|
* 2015-11-05 [c6c650f](https://github.com/silverstripe/silverstripe-cms/commit/c6c650f1366348327d973ca6cc5a5ed33a467786) Ensure CMSMainTest uses correct siteconfig (Damian Mooyman)
|
||||||
|
* 2015-11-02 [0272e44](https://github.com/silverstripe/silverstripe-framework/commit/0272e443f44ebca55b05c14f2a112260ff0df284) Prevent dev/build continually regenerating Number field type (Damian Mooyman)
|
||||||
|
* 2015-10-30 [2813f94](https://github.com/silverstripe/silverstripe-framework/commit/2813f94124c2ba14f1e4a51001e3898b0e0c32aa) Ensure that filters on any fixed field are scoped to the base data table (Damian Mooyman)
|
||||||
|
* 2015-10-30 [38ca963](https://github.com/silverstripe/silverstripe-framework/commit/38ca9632c4e9df0a74eae70cec98fdce242da529) Add missing CMSSecurity route (Damian Mooyman)
|
||||||
|
* 2015-10-29 [daa86d3](https://github.com/silverstripe/silverstripe-framework/commit/daa86d3a4ce75bf8637134726864ae14fbbdf586) Fix regression from #4396 in test fixtures (Damian Mooyman)
|
||||||
|
* 2015-10-28 [db16248](https://github.com/silverstripe/silverstripe-framework/commit/db16248b9ab7677cc4b4e25857a6b6d36f8c35f0) Fix broken InlineFormAction (Damian Mooyman)
|
||||||
|
* 2015-10-27 [293d847](https://github.com/silverstripe/silverstripe-framework/commit/293d84721efafedf3dd3fe69dd1d013a8c07d3ff) for #4712: Dropping in some PHP documentation on return types for dynamically generated image methods. (Patrick Nelson)
|
||||||
|
* 2015-10-20 [b857bdf](https://github.com/silverstripe/silverstripe-framework/commit/b857bdf209d79fc623724e68f6a660354cbd5f93) Fix duplicate files being included in case of flush (Damian Mooyman)
|
||||||
|
* 2015-10-19 [c364158](https://github.com/silverstripe/silverstripe-framework/commit/c3641587a5d5977af4fa053e5813846ce990d86c) only use sethasemptydefault if exists. (Cam Findlay)
|
||||||
|
* 2015-10-08 [ff6c0a3](https://github.com/silverstripe/silverstripe-cms/commit/ff6c0a3160c5eb3ca624efea6585efb44399dc1c) (v3.1) for #1294 to workaround ErrorPage fatal errors (and undefined var) when publishing. (Patrick Nelson)
|
||||||
|
* 2015-10-08 [785f850](https://github.com/silverstripe/silverstripe-cms/commit/785f85047f64b76011c34542362c7f09dbf59021) for #1294 to workaround ErrorPage fatal errors (and undefined var) when publishing. (Patrick Nelson)
|
||||||
|
* 2015-10-01 [75dc391](https://github.com/silverstripe/silverstripe-cms/commit/75dc391df9b396756a6f02c5fca08eafcb53ba31) for #586 and possible fix for #736 and relates to #2449: Don't perform validation upon deletion, since it isn't necessary. Cleaned up type hint. (Patrick Nelson)
|
||||||
|
* 2015-09-17 [e64d73c](https://github.com/silverstripe/silverstripe-framework/commit/e64d73c1f741399412b6015f6602ed707b2e9778) Fix ClassInfo::table_for_object_field (Damian Mooyman)
|
||||||
|
* 2015-08-05 [2901664](https://github.com/silverstripe/silverstripe-framework/commit/29016645e5e759b1ecf49876fa79c357a68c5794) . FulltextFilter requires table identifiers in match query (Elvinas L.)
|
||||||
|
* 2015-07-12 [f192a6e](https://github.com/silverstripe/silverstripe-framework/commit/f192a6ecaf70446ec60f6c7ef2a555395f83ea16) #4392: Ensure headers are checked first before being clobbered by globally maintained state. Also ensuring tests utilize separate responses for isolation. (Patrick Nelson)
|
11
docs/en/04_Changelogs/rc/3.2.1-rc2.md
Normal file
11
docs/en/04_Changelogs/rc/3.2.1-rc2.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# 3.2.1-rc2
|
||||||
|
|
||||||
|
See [3.2.1](/changelogs/3.2.1) changelog for more information on what is new in 3.2.1
|
||||||
|
|
||||||
|
<!--- Changes below this line will be automatically regenerated -->
|
||||||
|
|
||||||
|
## Change Log
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* 2015-11-12 [b61d6dc](https://github.com/silverstripe/silverstripe-framework/commit/b61d6dcd57577b0345af7a69e51da409305e1957) HtmlEditorField_Toolbar#viewfile not whitelisting URLs (Hamish Friedlander) - See [ss-2015-027](http://www.silverstripe.org/download/security-releases/ss-2015-027)
|
@ -150,6 +150,7 @@ After you have edited the file, GitHub will offer to create a pull request for y
|
|||||||
* Document your code inline through [PHPDoc](http://en.wikipedia.org/wiki/PHPDoc) syntax. See our
|
* Document your code inline through [PHPDoc](http://en.wikipedia.org/wiki/PHPDoc) syntax. See our
|
||||||
[API documentation](http://api.silverstripe.org/3.1/) for good examples.
|
[API documentation](http://api.silverstripe.org/3.1/) for good examples.
|
||||||
* Check and update documentation on [docs.silverstripe.org](http://docs.silverstripe.org). Check for any references to functionality deprecated or extended through your patch. Documentation changes should be included in the patch.
|
* Check and update documentation on [docs.silverstripe.org](http://docs.silverstripe.org). Check for any references to functionality deprecated or extended through your patch. Documentation changes should be included in the patch.
|
||||||
|
* When introducing something "noteworthy" (new feature, API change), [update the release changelog](/changelogs) for the next release this commit will be included in.
|
||||||
* If you get stuck, please post to the [forum](http://silverstripe.org/forum) or for deeper core problems, to the [core mailinglist](https://groups.google.com/forum/#!forum/silverstripe-dev)
|
* If you get stuck, please post to the [forum](http://silverstripe.org/forum) or for deeper core problems, to the [core mailinglist](https://groups.google.com/forum/#!forum/silverstripe-dev)
|
||||||
* When working with the CMS, please read the ["CMS Architecture Guide"](/developer_guides/customising_the_admin_interface/cms_architecture/) first
|
* When working with the CMS, please read the ["CMS Architecture Guide"](/developer_guides/customising_the_admin_interface/cms_architecture/) first
|
||||||
|
|
||||||
|
50
docs/en/05_Contributing/02_Request_for_comment.md
Normal file
50
docs/en/05_Contributing/02_Request_for_comment.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Request for comment (RFC)
|
||||||
|
|
||||||
|
## Why RFCs?
|
||||||
|
This is part of the SilverStripe core decision-making process and addresses the gap between the idea phase and the pull request submission (and merge).
|
||||||
|
|
||||||
|
The rationale behind this process is to:
|
||||||
|
* Encourage visibility on decision making
|
||||||
|
* Clarity on what the proposal is, its rationale and impact
|
||||||
|
* Reduce unnecessary work when coding large features is done without community and core-committers buy-in
|
||||||
|
* Improved likelihood of an optimal solution being merged
|
||||||
|
|
||||||
|
The important thing to understand about the RFCs is that these are NOT a way to request features. Rather, they are a way to bring clarity so people understand what change is being proposed.
|
||||||
|
|
||||||
|
## When to write an RFC?
|
||||||
|
|
||||||
|
We intend RFCs to be the primary mechanisms for proposing major new features, for collecting community input on an issue, and for documenting the design decisions that have gone into SilverStripe. The RFC author is responsible for building consensus within the community and documenting dissenting opinions.
|
||||||
|
|
||||||
|
Before writing the actual summary RFC document, the idea should have already had a wide range of discussion in various community communication channels. Once discussions reach a point where you think most of the difficulties have been worked through then create the RFC using the template provided.
|
||||||
|
|
||||||
|
The benefits of writing an RFC for non-trivial feature proposals are:
|
||||||
|
* Obtaining a preliminary approval from core-committers on an architecture before code is completed, to mitigate the risk of a non-merge after a PR is submitted
|
||||||
|
* Community becomes aware of incoming changes prior to the implementation
|
||||||
|
* RFC can be used as a basis for documentation of the feature
|
||||||
|
|
||||||
|
## How to write an RFC?
|
||||||
|
### Template
|
||||||
|
The following heading can act as a template to starting your RFC.
|
||||||
|
* **Introduction** - include a reference #, title, author
|
||||||
|
* **Metadata** - standardised header containing at least the Author(s), Status and Version fields.
|
||||||
|
* **Purpose and outcome** - the purpose of this document, and the expected outcome.
|
||||||
|
* **Motivation** - why this is a good idea
|
||||||
|
* **Proposal** - how you propose to implement the idea after community discussion
|
||||||
|
* **Alternatives** - what other approaches were considered during the community discussion phase and why they were not chosen
|
||||||
|
* **Impact** - How will this change potentially impact on SilverStripe core? The good and the bad.
|
||||||
|
|
||||||
|
### Submitting
|
||||||
|
Once complete submit the RFC in the prescribed format above as a GitHub issue as markdown. A core committer will add a tag to your RFC to keep track of the submissions and status (see links to filtered GitHub issues at the bottom of this document). The GitHub Issue will be closed once a pull request containing the feature gets merged.
|
||||||
|
|
||||||
|
## What next?
|
||||||
|
The RFC will be raised and discussed by the core committers in the monthly Google Hangout sessions, a vote for accepting the RFC will be taken requiring a majority vote (with at least a quorum of more than half of the core committers present).
|
||||||
|
|
||||||
|
Once approved it will be announced on the [developer list](https://groups.google.com/forum/#!forum/silverstripe-dev) and if relevant, [UserVoice](http://silverstripe.uservoice.com) and [Roadmap](https://www.silverstripe.org/software/roadmap) will be updated. This now means that if a pull request meeting the idea set out in the RFC was raised that it would be merged by the Core Committers (pending the usual code peer review).
|
||||||
|
|
||||||
|
## RFC Archives
|
||||||
|
|
||||||
|
[Proposed RFC drafts](https://github.com/silverstripe/silverstripe-framework/labels/rfc%2Fdraft)
|
||||||
|
|
||||||
|
|
||||||
|
[Accepted by Core Committers](https://github.com/silverstripe/silverstripe-framework/labels/rfc%2Faccepted)
|
||||||
|
|
@ -10,7 +10,7 @@ The current maintainer responsible for planning and performing releases is Ingo
|
|||||||
|
|
||||||
## Release Planning
|
## Release Planning
|
||||||
|
|
||||||
Our most up-to-date release plans are typically in the ["framework" milestone](https://github.com/silverstripe/silverstripe-framework/issues/milestones) and ["cms" milestone](https://github.com/silverstripe/silverstripe-cms/issues/milestones).
|
Our most up-to-date release plans are typically in the ["framework" milestone](https://github.com/silverstripe/silverstripe-framework/milestones) and ["cms" milestone](https://github.com/silverstripe/silverstripe-cms/milestones).
|
||||||
New features and API changes are discussed on the [core mailinglist](http://groups.google.com/group/silverstripe-dev). They are prioritised by the core team as tickets on
|
New features and API changes are discussed on the [core mailinglist](http://groups.google.com/group/silverstripe-dev). They are prioritised by the core team as tickets on
|
||||||
github.com. In addition, we collect community feedback on [silverstripe.uservoice.com](https://silverstripe.uservoice.com).
|
github.com. In addition, we collect community feedback on [silverstripe.uservoice.com](https://silverstripe.uservoice.com).
|
||||||
Any feature ideas we're planning to implement will be flagged there.
|
Any feature ideas we're planning to implement will be flagged there.
|
313
docs/en/05_Contributing/04_Making_A_SilverStripe_Core_Release.md
Normal file
313
docs/en/05_Contributing/04_Making_A_SilverStripe_Core_Release.md
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
title: Making a SilverStripe core release
|
||||||
|
summary: Development guide for core contributors to build and publish a new release
|
||||||
|
|
||||||
|
# Making a SilverStripe core release
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This guide is intended to be followed by core contributors, allowing them to take
|
||||||
|
the latest development branch of each of the core modules, and building a release.
|
||||||
|
The artifacts for this process are typically:
|
||||||
|
|
||||||
|
* A downloadable tar / zip on silverstripe.org
|
||||||
|
* A published announcement
|
||||||
|
* A new composer installable stable tag for silverstripe/installer
|
||||||
|
|
||||||
|
While this document is not normally applicable to normal silverstripe contributors,
|
||||||
|
it is still useful to have it available in a public location so that these users
|
||||||
|
are aware of these processes.
|
||||||
|
|
||||||
|
## First time setup
|
||||||
|
|
||||||
|
As a core contributor it is necessary to have installed the following set of tools:
|
||||||
|
|
||||||
|
### First time setup: Standard releases
|
||||||
|
|
||||||
|
* PHP 5.5+
|
||||||
|
* Python 2.7 / 3.5
|
||||||
|
* [cow release tool](https://github.com/silverstripe/cow#install). This should typically
|
||||||
|
be installed in a global location via the below command. Please see the installation
|
||||||
|
docs on the cow repo for more setup details.
|
||||||
|
- `composer global require silverstripe/cow dev-master`
|
||||||
|
* [transifex client](http://docs.transifex.com/client/). You will also need to ensure that
|
||||||
|
your transifex account has been granted the necessary write permissions on the cms, framework,
|
||||||
|
installer, simple theme, siteconfig and reports modules:
|
||||||
|
- `pip install transifex-client`
|
||||||
|
* [AWS CLI tools](https://aws.amazon.com/cli/):
|
||||||
|
- `pip install awscli`
|
||||||
|
* A good _ss_environment.php setup in your localhost webroot.
|
||||||
|
|
||||||
|
Example `_ss_environment.php`:
|
||||||
|
|
||||||
|
:::php
|
||||||
|
<?php
|
||||||
|
// Environent
|
||||||
|
define('SS_TRUSTED_PROXY_IPS', '*');
|
||||||
|
define('SS_ENVIRONMENT_TYPE', 'dev');
|
||||||
|
|
||||||
|
// DB Credentials
|
||||||
|
define('SS_DATABASE_CLASS', 'MySQLDatabase');
|
||||||
|
define('SS_DATABASE_SERVER', '127.0.0.1');
|
||||||
|
define('SS_DATABASE_USERNAME', 'root');
|
||||||
|
define('SS_DATABASE_PASSWORD', '');
|
||||||
|
|
||||||
|
// Each release will have its own DB
|
||||||
|
define('SS_DATABASE_CHOOSE_NAME', true);
|
||||||
|
|
||||||
|
// So you can test releases
|
||||||
|
define('SS_DEFAULT_ADMIN_USERNAME', 'admin');
|
||||||
|
define('SS_DEFAULT_ADMIN_PASSWORD', 'password');
|
||||||
|
|
||||||
|
// Basic CLI hostname
|
||||||
|
global $_FILE_TO_URL_MAPPING;
|
||||||
|
$_FILE_TO_URL_MAPPING[__DIR__] = "http://localhost";
|
||||||
|
|
||||||
|
|
||||||
|
You will also need to be assigned the following permissions. Contact one of the SS staff from
|
||||||
|
the [core committers](core_committers), who will assist with setting up your credentials.
|
||||||
|
|
||||||
|
* Write permissions on the [silverstripe](https://github.com/silverstripe) and
|
||||||
|
[silverstripe-labs](https://github.com/silverstripe-labs) organisations.
|
||||||
|
* Moderator permissions on the [community forum](http://www.silverstripe.org/community/forums/releases-and-announcements/).
|
||||||
|
* Admin permissions on [transifex](https://www.transifex.com/silverstripe/).
|
||||||
|
* AWS write permissions on the `silverstripe-ssorg-releases` s3 bucket.
|
||||||
|
* Permission on [silverstripe release announcement](https://groups.google.com/forum/#!forum/silverstripe-announce).
|
||||||
|
|
||||||
|
### First time setup: Security releases
|
||||||
|
|
||||||
|
For doing security releases the following additional setup tasks are necessary:
|
||||||
|
|
||||||
|
* Write permissions on the [silverstripe-security](https://github.com/silverstripe-security)
|
||||||
|
organisation.
|
||||||
|
* Permission granted on the [open source security JIRA](https://silverstripe.atlassian.net/secure/RapidBoard.jspa?rapidView=198&view=detail)
|
||||||
|
* Permissions to write to the [security releases page](http://www.silverstripe.org/download/security-releases)
|
||||||
|
and the [silverstripe.org cms](http://www.silverstripe.org/admin).
|
||||||
|
* Permission on [security pre-announcement mailing list](https://groups.google.com/a/silverstripe.com/forum/#!forum/security-preannounce).
|
||||||
|
|
||||||
|
## Security release process
|
||||||
|
|
||||||
|
When doing a security release, typically one or more (or sometimes all) of the below
|
||||||
|
steps will need to be performed manually. As such, this guide should not be followed
|
||||||
|
exactly the same for these.
|
||||||
|
|
||||||
|
Standard practice is to produce an RC for any patched modules on the security
|
||||||
|
forks for cms and framework (see [silverstripe-security](https://github.com/silverstripe-security)).
|
||||||
|
|
||||||
|
<div class="warning" markdown="1">
|
||||||
|
Security issues are never disclosed until a public stable release containing this fix
|
||||||
|
is available, or within a reasonable period of time of such a release.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Producing a security fix follows this general process:
|
||||||
|
|
||||||
|
* When a security issue is disclosed on security@silverstripe.com it should be given
|
||||||
|
a CVE (common vulnerability exposure) code. E.g. ss-2015-020. Make sure you thank
|
||||||
|
anyone who disclosed this issue, and confirm with them as soon as possible whether
|
||||||
|
this issue is a verified security issue.
|
||||||
|
* Log this CVE, along with description, release version, and name of reporter in
|
||||||
|
JIRA at [open source security jira](https://silverstripe.atlassian.net/secure/RapidBoard.jspa?rapidView=198&view=detail).
|
||||||
|
* Create a similar record of this issue on the [security releases page](http://www.silverstripe.org/download/security-releases)
|
||||||
|
in draft mode.
|
||||||
|
* Post a pre-announcement to the [security pre-announcement list](https://groups.google.com/a/silverstripe.com/forum/#!forum/security-preannounce).
|
||||||
|
It's normally ideal to include a [VCSS](https://nvd.nist.gov/CVSS-v2-Calculator)
|
||||||
|
(common vulnerability scoring system) along with this pre-announcement. If the
|
||||||
|
release date of the final stable is not known, then it's ok to give an estimated
|
||||||
|
release schedule.
|
||||||
|
* Push the current upstream target branches (e.g. 3.2) to the corresponding security fork
|
||||||
|
to a new branch named for the target release (e.g. 3.2.4). Security fixes should be
|
||||||
|
applied to this branch only. Once a fix (or fixes) have been applied to this branch, then
|
||||||
|
an RC tag can be applied, and a private release can then be developed in order
|
||||||
|
to test this RC.
|
||||||
|
* Once RC testing is completed and the release is ready for stabilisation, then these fixes
|
||||||
|
can then be pushed to the upstream module fork, and the release completed and published
|
||||||
|
as per normal.
|
||||||
|
|
||||||
|
## Standard release process
|
||||||
|
|
||||||
|
The release process, at a high level, involves creating an RC, publishing it, and
|
||||||
|
reviewing the need for either another RC or a final stable tag within a short period
|
||||||
|
(normally within 3-5 business days).
|
||||||
|
|
||||||
|
During the RC cycle a temporary RC branch is created, and should only receive
|
||||||
|
absolutely critical fixes during the RC cycle. Any changes to this branch should
|
||||||
|
result in the requirement for a new RC, thus a higher level of scrutiny is typically
|
||||||
|
placed on any pull request to these branches.
|
||||||
|
|
||||||
|
When creating a new RC or stable, the following process is broken down into two
|
||||||
|
main sets of commands:
|
||||||
|
|
||||||
|
### Stage 1: Release preparation:
|
||||||
|
|
||||||
|
This is the part of the release that prepares and tests everything locally, but
|
||||||
|
doe not make any upstream changes (so it's safe to run without worrying about
|
||||||
|
any mistakes migrating their way into the public sphere).
|
||||||
|
|
||||||
|
Invoked by running `cow release` in the format as below:
|
||||||
|
|
||||||
|
cow release <version> --from=<prior-version> --branch-auto -vvv
|
||||||
|
|
||||||
|
This command has the following parameters:
|
||||||
|
|
||||||
|
* `<version>` The version that is to be released. E.g. 3.2.4 or 3.2.4-rc1
|
||||||
|
* `<prior-version>` The version from which to compare to generate a changelog.
|
||||||
|
E.g. 3.2.3 (if releasing 3.2.4), or 3.2.5 (if releasing 3.3.0 and that's the
|
||||||
|
newest 3.2.x version). You can normally leave this out for patch releases,
|
||||||
|
and the code will normally be able to guess the right version, but you may
|
||||||
|
as well declare it every time.
|
||||||
|
* `--branch-auto` Will automatically create a new RC branch (e.g. 3.2.4) if
|
||||||
|
one does not exist.
|
||||||
|
|
||||||
|
This can take between 5-15 minutes, and will invoke the following steps,
|
||||||
|
each of which can also be run in isolation (in case the process stalls
|
||||||
|
and needs to be manually advanced):
|
||||||
|
|
||||||
|
* `realease:create` The release version will be created in the `release-<version>`
|
||||||
|
folder directly underneath the folder this command was invoked in. Cow
|
||||||
|
will look at the available versions and branch-aliases of silverstripe/installer
|
||||||
|
to determine the best version to install from. E.g. installing 4.0.0 will
|
||||||
|
know to install dev-master, and installing 3.3.0 will install from 3.x-dev.
|
||||||
|
If installing RC versions for stabilisation, it will use the correct RC
|
||||||
|
branch.
|
||||||
|
* `release:branch` If release:create installed from a non-rc branch, it will
|
||||||
|
create the new RC branch (via `--branch-auto`). You can also customise this branch
|
||||||
|
with `--branch=<branchname>`, but it's best to use the standard.
|
||||||
|
* `release:translate` All upstream transifex strings will be pulled into the
|
||||||
|
local master strings, and then the [api:i18nTextCollector] task will be invoked
|
||||||
|
and will merge these strings together, before pushing all new master strings
|
||||||
|
back up to transifex to make them available for translation. Changes to these
|
||||||
|
files will also be automatically committed to git.
|
||||||
|
* `release:test` Will run all unit tests on this release. Make sure that you
|
||||||
|
setup your `_ss_environment.php` correctly (as above) so that this will work.
|
||||||
|
* `release:changelog` Will compare the current branch head with `--from` parameter
|
||||||
|
version in order to generate a changelog file. This wil be placed into the
|
||||||
|
`./framework/docs/en/04_Changelogs/` folder. If an existing file named after
|
||||||
|
this version is already in that location, then the changes will be automatically
|
||||||
|
regenerated beneath the automatically added line:
|
||||||
|
`<!--- Changes below this line will be automatically regenerated -->`.
|
||||||
|
It may be necessary to edit this file to add details of any upgrading notes
|
||||||
|
or special considerations. If this is a security release, make sure that any
|
||||||
|
links to the security registrar (http://www.silverstripe.org/download/security-releases)
|
||||||
|
match the pages saved in draft.
|
||||||
|
|
||||||
|
Once the release task has completed, it may be ideal to manually test the site out
|
||||||
|
by running it locally (e.g. `http://localhost/release-3.3.4`) to do some smoke-testing
|
||||||
|
and make sure that there are no obvious issues missed.
|
||||||
|
|
||||||
|
It's also ideal to eyeball the git changes generated by the release tool, making sure
|
||||||
|
that no translation strings were unintentionally lost, or that the changelog
|
||||||
|
was generated correctly.
|
||||||
|
|
||||||
|
Once this has been done, then the release is ready to be published live.
|
||||||
|
|
||||||
|
### Stage 2: Release publication
|
||||||
|
|
||||||
|
Once a release has been generated, has its translations updated, changelog generated,
|
||||||
|
and tested, the next step is to publish the release. This involves tagging,
|
||||||
|
building an archive, and uploading to
|
||||||
|
[www.silverstripe.org](http://www.silverstripe.org/software/download/) download page.
|
||||||
|
|
||||||
|
Invoked by running `cow release:publish` in the format as below:
|
||||||
|
|
||||||
|
cow release:publish <version> -vvv
|
||||||
|
|
||||||
|
As with the `cow release` command, this step is broken down into the following
|
||||||
|
subtasks which are invoked in sequence:
|
||||||
|
|
||||||
|
* `release:tag` Each module will have the appropriate tag applied (except the theme).
|
||||||
|
* `release:push` The RC branches and all tags are pushed up to origin on github.
|
||||||
|
* `release:archive` This will generate a new tar.gz and zip archive, each for
|
||||||
|
cms and framework-only installations. These will be copied to the root folder
|
||||||
|
of the release directory, although the actual build will be created in temporary
|
||||||
|
directories (so any temp files generated during testing will not end up in the release).
|
||||||
|
If the tags generated in the prior step are not yet available on packagist (which can
|
||||||
|
take a few minutes at times) then this task will cycle through a retry-cycle,
|
||||||
|
which will re-attempt the archive creation periodically until these tags are available.
|
||||||
|
* `release:upload` This will invoke the AWS CLI command to upload these archives to the
|
||||||
|
s3 bucket `silverstripe-ssorg-releases`. If you have setup your AWS profile
|
||||||
|
for silverstripe releases under a non-default name, you can specify this profile
|
||||||
|
on the command line with the `--aws-profile=<profile>` command.
|
||||||
|
|
||||||
|
Once all of these commands have completed there are a couple of final tasks left that
|
||||||
|
aren't strictly able to be automated:
|
||||||
|
|
||||||
|
* If this is a stable release, it will be necessary to perform a post-release merge
|
||||||
|
on open source. This normally will require you to merge the RC branch into the
|
||||||
|
source branch (e.g. merge 3.2.4 into 3.2), or sometimes create new branches if
|
||||||
|
releasing a new minor version, and bumping up the branch-alias in composer.json.
|
||||||
|
E.g. branching 3.3 from 3, and aliasing 3 as 3.4.x-dev. You can then delete
|
||||||
|
the temporary RC branches. This will need to be done before updating the
|
||||||
|
release documentation in stage 3.
|
||||||
|
* Merging up the changes in this release to newer branches, following the
|
||||||
|
SemVer pattern (e.g. 3.2.4 > 3.2 > 3.3 > 3 > master). The more often this is
|
||||||
|
done the easier it is, but this can sometimes be left for when you have
|
||||||
|
more free time. Branches not receiving regular stable versions anymore (e.g.
|
||||||
|
3.0 or 3.1) should usually be omitted.
|
||||||
|
* Set the github milestones to completed, and create placeholders for the next
|
||||||
|
minor versions. It may be necessary to re-assign any issues assigned to the prior
|
||||||
|
milestones to these new ones. See the below links for each module milestone list:
|
||||||
|
* [installer](https://github.com/silverstripe/silverstripe-installer/milestones)
|
||||||
|
* [framework](https://github.com/silverstripe/silverstripe-framework/milestones)
|
||||||
|
* [cms](https://github.com/silverstripe/silverstripe-cms/milestones)
|
||||||
|
* Make sure that the [releases page](https://github.com/silverstripe/silverstripe-installer/releases)
|
||||||
|
on github shows the new tag.
|
||||||
|
|
||||||
|
### Stage 3: Let the world know
|
||||||
|
|
||||||
|
Once a release has been published there are a few places where user documentation
|
||||||
|
will need to be regularly updated.
|
||||||
|
|
||||||
|
* Make sure that the [download page](http://www.silverstripe.org/download) on
|
||||||
|
silverstripe.org has the release available. If it's a stable, it will appear
|
||||||
|
at the top of the page. If an RC pre-release, it will be available under the
|
||||||
|
[development builds](http://www.silverstripe.org/download#download-releases)
|
||||||
|
section. If it's not available, you might need to check that the release was
|
||||||
|
properly uploaded to aws s3, or that you aren't viewing a cached version of
|
||||||
|
the download page. You can cache-bust this by adding `?release=<version>` to
|
||||||
|
the url. If things aren't working properly (and you have admin permissions)
|
||||||
|
you can run the [CoreReleaseUpdateTask](http://www.silverstripe.org/dev/tasks/CoreReleaseUpdateTask)
|
||||||
|
to synchronise with packagist.
|
||||||
|
* Ensure that [docs.silverstripe.org](http://docs.silverstripe.org) has the
|
||||||
|
updated documentation by running the build task in the root folder. If
|
||||||
|
you do not have ssh access to this server, then contact a SilverStripe staff member
|
||||||
|
to update this for you. Make sure that the download link below links to the
|
||||||
|
correct changelog page. E.g.
|
||||||
|
[https://docs.silverstripe.org/en/3.2/changelogs/3.2.1/](https://docs.silverstripe.org/en/3.2/changelogs/3.2.1/)
|
||||||
|
* Post a release announcement on the [silverstripe release announcement](https://groups.google.com/forum/#!forum/silverstripe-announce)
|
||||||
|
google group.
|
||||||
|
* Create a release announcement forum sticky on the
|
||||||
|
[releases and announcements](http://www.silverstripe.org/community/forums/releases-and-announcements/)
|
||||||
|
forum category. Make this a global read-only sticky, and un-sticky any older release.
|
||||||
|
* Update the IRC topic to include the new release version.
|
||||||
|
|
||||||
|
### Stage 4: Web platform installer release
|
||||||
|
|
||||||
|
The web platform installer is available [on the web app gallery](http://www.microsoft.com/web/gallery/silverstripecms.aspx).
|
||||||
|
|
||||||
|
In order to update this you will need a Microsoft live account, and have it authorised
|
||||||
|
by SilverStripe staff in order to publish these releases.
|
||||||
|
|
||||||
|
To update this release there is an additional download tool at
|
||||||
|
[https://code.platform.silverstripe.com/silverstripe/webpi](https://code.platform.silverstripe.com/silverstripe/webpi)
|
||||||
|
which will guide you through the process of generating a new zip release.
|
||||||
|
|
||||||
|
./make-package 3.2.4 3.2.4
|
||||||
|
aws s3 cp ./silverstripe-3.2.4-webpi.zip s3://silverstripe-ssorg-releases/sssites-ssorg-prod/assets/downloads/webpi/silverstripe-3.2.4-webpi.zip --acl public-read --profile silverstripe
|
||||||
|
|
||||||
|
Once you have a new release, update the necessary details at
|
||||||
|
[http://www.microsoft.com/web/gallery/appsubmit.aspx?id=57](http://www.microsoft.com/web/gallery/appsubmit.aspx?id=57)
|
||||||
|
to submit a new version, including:
|
||||||
|
|
||||||
|
* Set the version number
|
||||||
|
* Update the release date
|
||||||
|
* Submit the package URL
|
||||||
|
* Submit the package SHA
|
||||||
|
|
||||||
|
## See also
|
||||||
|
|
||||||
|
* [Release Process](release_process)
|
||||||
|
* [Translation Process](translation_process)
|
||||||
|
* [Core committers](core_committers)
|
||||||
|
|
||||||
|
If at any time a release runs into an unsolveable problem contact the
|
||||||
|
core committers on the [discussion group](https://groups.google.com/forum/#!forum/silverstripe-committers)
|
||||||
|
to ask for support.
|
@ -31,4 +31,5 @@ With great power comes great responsibility, so we have agreed on certain expect
|
|||||||
* Be inclusive. Ensure a wide range of SilverStripe developers can obtain an understanding of your code and docs, and you're not the only one who can maintain it.
|
* Be inclusive. Ensure a wide range of SilverStripe developers can obtain an understanding of your code and docs, and you're not the only one who can maintain it.
|
||||||
* Avoid `git push --force`, and be careful with your git remotes (no accidental pushes)
|
* Avoid `git push --force`, and be careful with your git remotes (no accidental pushes)
|
||||||
* Use your own forks to create feature branches
|
* Use your own forks to create feature branches
|
||||||
|
* We release using the standard process. See the [Making a SilverStripe Core Release](making_a_silverstripe_core_release)
|
||||||
|
|
@ -39,7 +39,7 @@ Honour the code of conduct whenever you participate formally and informally in o
|
|||||||
* Repeated and deliberate breachings of the code of conduct following this first reminder will be referred on to the team of core committers and may result in the member being asked to leave the community channels.
|
* Repeated and deliberate breachings of the code of conduct following this first reminder will be referred on to the team of core committers and may result in the member being asked to leave the community channels.
|
||||||
* While we have a policy of not removing postings and comments from our digital channels, there may be times in which items are removed if deemed blatantly discriminatory towards individuals, groups or cultures.
|
* While we have a policy of not removing postings and comments from our digital channels, there may be times in which items are removed if deemed blatantly discriminatory towards individuals, groups or cultures.
|
||||||
* If a member behaves inappropriately, politely bring this to their attention and gently remind them of the code of conduct when necessary.
|
* If a member behaves inappropriately, politely bring this to their attention and gently remind them of the code of conduct when necessary.
|
||||||
* Refer to [these helpful guides on conflict resolution](http://www.crnhq.org/pages.php?pID=10) to aid you when dealing with a conflict.
|
* Refer to [this helpful guide on conflict resolution](http://www.crnhq.org/files/66138/files/Handouts%20and%20Posters/ResolveTheConflictGuideposter.pdf) to aid you when dealing with a conflict.
|
||||||
|
|
||||||
## A living document
|
## A living document
|
||||||
* This is a living document. As core committers, we know we don't have all the answers so we want to make the community an innovative and valuable space for everyone that wishes to contribute.
|
* This is a living document. As core committers, we know we don't have all the answers so we want to make the community an innovative and valuable space for everyone that wishes to contribute.
|
@ -451,6 +451,14 @@ class Mailer extends Object {
|
|||||||
return $headers . $file['contents'];
|
return $headers . $file['contents'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated since version 4.0
|
||||||
|
*/
|
||||||
|
public function validEmailAddr($emailAddress) {
|
||||||
|
Deprecation::notice('4.0', 'This method will be removed in 4.0. Use protected method Mailer->validEmailAddress().');
|
||||||
|
return $this->validEmailAddress($emailAddress);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cleans up emails which may be in 'Name <email@silverstripe.com>' format
|
* Cleans up emails which may be in 'Name <email@silverstripe.com>' format
|
||||||
*
|
*
|
||||||
@ -596,8 +604,8 @@ function QuotedPrintable_encode($quotprint) {
|
|||||||
* @deprecated 3.1
|
* @deprecated 3.1
|
||||||
*/
|
*/
|
||||||
function validEmailAddr($emailAddress) {
|
function validEmailAddr($emailAddress) {
|
||||||
Deprecation::notice('4.0', 'Use Email->validEmailAddr() instead');
|
Deprecation::notice('4.0', 'This method will be removed in 4.0. Use protected method Mailer->validEmailAddress().');
|
||||||
|
|
||||||
$mailer = Injector::inst()->create('Mailer');
|
$mailer = Injector::inst()->create('Mailer');
|
||||||
return $mailer->validEmailAddr($emailAddress);
|
return $mailer->validEmailAddr($emailAddress);
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,8 @@ class FieldGroup extends CompositeField {
|
|||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function Message() {
|
public function Message() {
|
||||||
$fs = $this->FieldList();
|
$fs = array();
|
||||||
|
$this->collateDataFields($fs);
|
||||||
|
|
||||||
foreach($fs as $subfield) {
|
foreach($fs as $subfield) {
|
||||||
if($m = $subfield->Message()) $message[] = rtrim($m, ".");
|
if($m = $subfield->Message()) $message[] = rtrim($m, ".");
|
||||||
@ -131,7 +132,8 @@ class FieldGroup extends CompositeField {
|
|||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function MessageType() {
|
public function MessageType() {
|
||||||
$fs = $this->FieldList();
|
$fs = array();
|
||||||
|
$this->collateDataFields($fs);
|
||||||
|
|
||||||
foreach($fs as $subfield) {
|
foreach($fs as $subfield) {
|
||||||
if($m = $subfield->MessageType()) $MessageType[] = $m;
|
if($m = $subfield->MessageType()) $MessageType[] = $m;
|
||||||
|
@ -1303,6 +1303,18 @@ class Form extends RequestHandler {
|
|||||||
// Load errors into session and post back
|
// Load errors into session and post back
|
||||||
$data = $this->getData();
|
$data = $this->getData();
|
||||||
|
|
||||||
|
// Encode validation messages as XML before saving into session state
|
||||||
|
// As per Form::addErrorMessage()
|
||||||
|
$errors = array_map(function($error) {
|
||||||
|
// Encode message as XML by default
|
||||||
|
if($error['message'] instanceof DBField) {
|
||||||
|
$error['message'] = $error['message']->forTemplate();;
|
||||||
|
} else {
|
||||||
|
$error['message'] = Convert::raw2xml($error['message']);
|
||||||
|
}
|
||||||
|
return $error;
|
||||||
|
}, $errors);
|
||||||
|
|
||||||
Session::set("FormInfo.{$this->FormName()}.errors", $errors);
|
Session::set("FormInfo.{$this->FormName()}.errors", $errors);
|
||||||
Session::set("FormInfo.{$this->FormName()}.data", $data);
|
Session::set("FormInfo.{$this->FormName()}.data", $data);
|
||||||
|
|
||||||
|
@ -449,39 +449,98 @@ class HtmlEditorField_Toolbar extends RequestHandler {
|
|||||||
return $form;
|
return $form;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @config
|
||||||
|
* @var array - list of allowed schemes (no wildcard, all lower case) or empty to allow all schemes
|
||||||
|
*/
|
||||||
|
private static $fileurl_scheme_whitelist = array('http', 'https');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @config
|
||||||
|
* @var array - list of allowed domains (no wildcard, all lower case) or empty to allow all domains
|
||||||
|
*/
|
||||||
|
private static $fileurl_domain_whitelist = array();
|
||||||
|
|
||||||
|
protected function viewfile_getLocalFileByID($id) {
|
||||||
|
$file = DataObject::get_by_id('File', $id);
|
||||||
|
|
||||||
|
if ($file && $file->canView()) return array($file, $file->RelativeLink());
|
||||||
|
return array(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function viewfile_getLocalFileByURL($fileUrl) {
|
||||||
|
$filteredUrl = Director::makeRelative($fileUrl);
|
||||||
|
$filteredUrl = Image::strip_resampled_prefix($filteredUrl);
|
||||||
|
|
||||||
|
$file = File::get()->filter('Filename', $filteredUrl)->first();
|
||||||
|
|
||||||
|
if ($file && $file->canView()) return array($file, $filteredUrl);
|
||||||
|
return array(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function viewfile_getRemoteFileByURL($fileUrl) {
|
||||||
|
$scheme = strtolower(parse_url($fileUrl, PHP_URL_SCHEME));
|
||||||
|
$allowed_schemes = self::config()->fileurl_scheme_whitelist;
|
||||||
|
|
||||||
|
if (!$scheme || ($allowed_schemes && !in_array($scheme, $allowed_schemes))) {
|
||||||
|
$exception = new SS_HTTPResponse_Exception("This file scheme is not included in the whitelist", 400);
|
||||||
|
$exception->getResponse()->addHeader('X-Status', $exception->getMessage());
|
||||||
|
throw $exception;
|
||||||
|
}
|
||||||
|
|
||||||
|
$domain = strtolower(parse_url($fileUrl, PHP_URL_HOST));
|
||||||
|
$allowed_domains = self::config()->fileurl_domain_whitelist;
|
||||||
|
|
||||||
|
if (!$domain || ($allowed_domains && !in_array($domain, $allowed_domains))) {
|
||||||
|
$exception = new SS_HTTPResponse_Exception("This file hostname is not included in the whitelist", 400);
|
||||||
|
$exception->getResponse()->addHeader('X-Status', $exception->getMessage());
|
||||||
|
throw $exception;
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
new File(array(
|
||||||
|
'Title' => basename($fileUrl),
|
||||||
|
'Filename' => $fileUrl
|
||||||
|
)),
|
||||||
|
$fileUrl
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* View of a single file, either on the filesystem or on the web.
|
* View of a single file, either on the filesystem or on the web.
|
||||||
*/
|
*/
|
||||||
public function viewfile($request) {
|
public function viewfile($request) {
|
||||||
|
$file = null;
|
||||||
|
$url = null;
|
||||||
|
|
||||||
// TODO Would be cleaner to consistently pass URL for both local and remote files,
|
// TODO Would be cleaner to consistently pass URL for both local and remote files,
|
||||||
// but GridField doesn't allow for this kind of metadata customization at the moment.
|
// but GridField doesn't allow for this kind of metadata customization at the moment.
|
||||||
if($url = $request->getVar('FileURL')) {
|
if($fileUrl = $request->getVar('FileURL')) {
|
||||||
if(Director::is_absolute_url($url) && !Director::is_site_url($url)) {
|
// If this isn't an absolute URL, or is, but is to this site, try and get the File object
|
||||||
$file = new File(array(
|
// that is associated with it
|
||||||
'Title' => basename($url),
|
if(!Director::is_absolute_url($fileUrl) || Director::is_site_url($fileUrl)) {
|
||||||
'Filename' => $url
|
list($file, $url) = $this->viewfile_getLocalFileByURL($fileUrl);
|
||||||
));
|
|
||||||
} else {
|
|
||||||
$url = Director::makeRelative($request->getVar('FileURL'));
|
|
||||||
$url = Image::strip_resampled_prefix($url);
|
|
||||||
$file = File::get()->filter('Filename', $url)->first();
|
|
||||||
if(!$file) $file = new File(array(
|
|
||||||
'Title' => basename($url),
|
|
||||||
'Filename' => $url
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
} elseif($id = $request->getVar('ID')) {
|
// If this is an absolute URL, but not to this site, use as an oembed source (after whitelisting URL)
|
||||||
$file = DataObject::get_by_id('File', $id);
|
else {
|
||||||
$url = $file->RelativeLink();
|
list($file, $url) = $this->viewfile_getRemoteFileByURL($fileUrl);
|
||||||
} else {
|
}
|
||||||
throw new LogicException('Need either "ID" or "FileURL" parameter to identify the file');
|
}
|
||||||
|
// Or we could have been passed an ID directly
|
||||||
|
elseif($id = $request->getVar('ID')) {
|
||||||
|
list($file, $url) = $this->viewfile_getLocalFileByID($id);
|
||||||
|
}
|
||||||
|
// Or we could have been passed nothing, in which case panic
|
||||||
|
else {
|
||||||
|
throw new SS_HTTPResponse_Exception('Need either "ID" or "FileURL" parameter to identify the file', 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Instanciate file wrapper and get fields based on its type
|
// Instanciate file wrapper and get fields based on its type
|
||||||
// Check if appCategory is an image and exists on the local system, otherwise use oEmbed to refference a
|
// Check if appCategory is an image and exists on the local system, otherwise use oEmbed to refference a
|
||||||
// remote image
|
// remote image
|
||||||
if($file && $file->appCategory() == 'image' && Director::is_site_url($url)) {
|
if (!$file || !$url) {
|
||||||
|
throw new SS_HTTPResponse_Exception('Unable to find file to view', 404);
|
||||||
|
} elseif($file->appCategory() == 'image' && Director::is_site_url($url)) {
|
||||||
$fileWrapper = new HtmlEditorField_Image($url, $file);
|
$fileWrapper = new HtmlEditorField_Image($url, $file);
|
||||||
} elseif(!Director::is_site_url($url)) {
|
} elseif(!Director::is_site_url($url)) {
|
||||||
$fileWrapper = new HtmlEditorField_Embed($url, $file);
|
$fileWrapper = new HtmlEditorField_Embed($url, $file);
|
||||||
@ -518,8 +577,8 @@ class HtmlEditorField_Toolbar extends RequestHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Similar to the regex found in HtmlEditorField.js / getAnchors method.
|
// Similar to the regex found in HtmlEditorField.js / getAnchors method.
|
||||||
if (preg_match_all("/name=\"([^\"]+?)\"|name='([^']+?)'/im", $page->Content, $matches)) {
|
if (preg_match_all("/\s(name|id)=\"([^\"]+?)\"|\s(name|id)='([^']+?)'/im", $page->Content, $matches)) {
|
||||||
$anchors = $matches[1];
|
$anchors = array_filter(array_merge($matches[2], $matches[4]));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -53,10 +53,8 @@
|
|||||||
class OptionsetField extends DropdownField {
|
class OptionsetField extends DropdownField {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Array
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected $disabledItems = array();
|
|
||||||
|
|
||||||
public function Field($properties = array()) {
|
public function Field($properties = array()) {
|
||||||
$source = $this->getSource();
|
$source = $this->getSource();
|
||||||
$odd = 0;
|
$odd = 0;
|
||||||
@ -90,31 +88,15 @@ class OptionsetField extends DropdownField {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function performReadonlyTransformation() {
|
|
||||||
// Source and values are DataObject sets.
|
|
||||||
$field = $this->castedCopy('LookupField');
|
|
||||||
$field->setSource($this->getSource());
|
|
||||||
$field->setReadonly(true);
|
|
||||||
|
|
||||||
return $field;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark certain elements as disabled,
|
* {@inheritdoc}
|
||||||
* regardless of the {@link setDisabled()} settings.
|
|
||||||
*
|
|
||||||
* @param array $items Collection of array keys, as defined in the $source array
|
|
||||||
*/
|
*/
|
||||||
public function setDisabledItems($items) {
|
public function validate($validator) {
|
||||||
$this->disabledItems = $items;
|
if (!$this->value) {
|
||||||
return $this;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
return parent::validate($validator);
|
||||||
* @return Array
|
|
||||||
*/
|
|
||||||
public function getDisabledItems() {
|
|
||||||
return $this->disabledItems;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function ExtraOptions() {
|
public function ExtraOptions() {
|
||||||
|
@ -1434,6 +1434,10 @@ class UploadField_ItemHandler extends RequestHandler {
|
|||||||
*/
|
*/
|
||||||
public function EditForm() {
|
public function EditForm() {
|
||||||
$file = $this->getItem();
|
$file = $this->getItem();
|
||||||
|
if(!$file) return $this->httpError(404);
|
||||||
|
if($file instanceof Folder) return $this->httpError(403);
|
||||||
|
if(!$file->canEdit()) return $this->httpError(403);
|
||||||
|
|
||||||
// Get form components
|
// Get form components
|
||||||
$fields = $this->parent->getFileEditFields($file);
|
$fields = $this->parent->getFileEditFields($file);
|
||||||
$actions = $this->parent->getFileEditActions($file);
|
$actions = $this->parent->getFileEditActions($file);
|
||||||
|
@ -186,7 +186,7 @@ class GridFieldPrintButton implements GridField_HTMLProvider, GridField_ActionPr
|
|||||||
$items = $gridField->getManipulatedList();
|
$items = $gridField->getManipulatedList();
|
||||||
$itemRows = new ArrayList();
|
$itemRows = new ArrayList();
|
||||||
|
|
||||||
foreach($items as $item) {
|
foreach($items->limit(null) as $item) {
|
||||||
$itemRow = new ArrayList();
|
$itemRow = new ArrayList();
|
||||||
|
|
||||||
foreach($printColumns as $field => $label) {
|
foreach($printColumns as $field => $label) {
|
||||||
|
@ -716,10 +716,11 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
|||||||
// http://www.w3.org/TR/1999/REC-html401-19991224/struct/links.html#h-12.2
|
// http://www.w3.org/TR/1999/REC-html401-19991224/struct/links.html#h-12.2
|
||||||
|
|
||||||
if(ed) {
|
if(ed) {
|
||||||
var raw = ed.getContent().match(/name="([^"]+?)"|name='([^']+?)'/gim);
|
var raw = ed.getContent().match(/\s(name|id)="([^"]+?)"|\s(name|id)='([^']+?)'/gim);
|
||||||
if (raw && raw.length) {
|
if (raw && raw.length) {
|
||||||
for(var i = 0; i < raw.length; i++) {
|
for(var i = 0; i < raw.length; i++) {
|
||||||
collectedAnchors.push(raw[i].substr(6).replace(/"$/, ''));
|
var indexStart = (raw[i].indexOf('id=') == -1) ? 7 : 5;
|
||||||
|
collectedAnchors.push(raw[i].substr(indexStart).replace(/"$/, ''));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,8 +292,6 @@ cs:
|
|||||||
FROMWEB: 'Z webu'
|
FROMWEB: 'Z webu'
|
||||||
FindInFolder: 'Hledat ve složce'
|
FindInFolder: 'Hledat ve složce'
|
||||||
IMAGEALT: 'Alternativní text (alt)'
|
IMAGEALT: 'Alternativní text (alt)'
|
||||||
IMAGEALTTEXT: 'Alternativní text (alt) - ukáže se, když obrázek nemúže být zobrazen'
|
|
||||||
IMAGEALTTEXTDESC: 'Zobrazeno na obrazovce, anebo když obrázek nemůže být zobrazen'
|
|
||||||
IMAGEDIMENSIONS: Rozměry
|
IMAGEDIMENSIONS: Rozměry
|
||||||
IMAGEHEIGHTPX: Výška
|
IMAGEHEIGHTPX: Výška
|
||||||
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
|
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
|
||||||
@ -328,11 +326,9 @@ cs:
|
|||||||
DELETED: Smazáno.
|
DELETED: Smazáno.
|
||||||
DropdownBatchActionsDefault: Akcie
|
DropdownBatchActionsDefault: Akcie
|
||||||
HELP: Nápověda
|
HELP: Nápověda
|
||||||
PAGETYPE: 'Typ stránky:'
|
|
||||||
PERMAGAIN: 'Byli jste odhlášeni z CMS. Pokud se chcete znovu přihlásit, zadejte níže své uživatelské jméno a heslo.'
|
PERMAGAIN: 'Byli jste odhlášeni z CMS. Pokud se chcete znovu přihlásit, zadejte níže své uživatelské jméno a heslo.'
|
||||||
PERMALREADY: 'Omlouvám se, ale nemůžete vstoupit do této části CMS. Pokud se chcete přihlásit jako někdo jiný, udělejte tak níže.'
|
PERMALREADY: 'Omlouvám se, ale nemůžete vstoupit do této části CMS. Pokud se chcete přihlásit jako někdo jiný, udělejte tak níže.'
|
||||||
PERMDEFAULT: 'Musíte být přihlášen/a k přístup do oblasti administrace, zadejte vaše přihlošovací údaje dole, prosím.'
|
PERMDEFAULT: 'Musíte být přihlášen/a k přístup do oblasti administrace, zadejte vaše přihlošovací údaje dole, prosím.'
|
||||||
PLEASESAVE: 'Uložte stránku, prosím. Tato stránka nemůže být aktualizována, protože ještě nebyla uložena.'
|
|
||||||
PreviewButton: Náhled
|
PreviewButton: Náhled
|
||||||
REORGANISATIONSUCCESSFUL: 'Strom webu reorganizován úspěšně.'
|
REORGANISATIONSUCCESSFUL: 'Strom webu reorganizován úspěšně.'
|
||||||
SAVEDUP: Uloženo.
|
SAVEDUP: Uloženo.
|
||||||
|
@ -260,6 +260,7 @@ de:
|
|||||||
many_many_Members: Mitglieder
|
many_many_Members: Mitglieder
|
||||||
GroupImportForm:
|
GroupImportForm:
|
||||||
Help1: '<p>Eine oder mehrere Gruppen im <em>CSV</em>-Format (kommaseparierte Werte) importieren. <small><a href="#" class="toggle-advanced">Erweiterte Nutzung</a></small></p>'
|
Help1: '<p>Eine oder mehrere Gruppen im <em>CSV</em>-Format (kommaseparierte Werte) importieren. <small><a href="#" class="toggle-advanced">Erweiterte Nutzung</a></small></p>'
|
||||||
|
Help2: '<div class="advanced"><h4>Erweiterte Benutzung</h4><ul><li>Gültige Spalten: <em>%s</em></li><li>Bereits existierende Gruppen werden anhand ihres eindeutigen <em>Code</em> identifiziert und um neue Einträge aus der Importdatei erweitert.</li><li>Gruppenhierarchien können mittels der Spalte <em>ParentCode</em> erstellt werden.</li><li>Berechtigungen können in der Spalte <em>PermissionCode</em> hinzugefügt werden. Schon zugewiesene Berechtigungen werden nicht entfernt.</li></ul></div>'
|
||||||
ResultCreated: '{count} Gruppe(n) wurden erstellt'
|
ResultCreated: '{count} Gruppe(n) wurden erstellt'
|
||||||
ResultDeleted: '%d Gruppe(n) gelöscht'
|
ResultDeleted: '%d Gruppe(n) gelöscht'
|
||||||
ResultUpdated: '%d Gruppe(n) aktualisiert'
|
ResultUpdated: '%d Gruppe(n) aktualisiert'
|
||||||
@ -291,6 +292,7 @@ de:
|
|||||||
FROMWEB: 'Aus dem Web'
|
FROMWEB: 'Aus dem Web'
|
||||||
FindInFolder: 'In Ordner suchen'
|
FindInFolder: 'In Ordner suchen'
|
||||||
IMAGEALT: 'Alternativtext (alt)'
|
IMAGEALT: 'Alternativtext (alt)'
|
||||||
|
IMAGEALTTEXT: 'Alternativtext (alt) - erscheint, falls das Bild nicht angezeigt werden kann.'
|
||||||
IMAGEDIMENSIONS: Dimensionen
|
IMAGEDIMENSIONS: Dimensionen
|
||||||
IMAGEHEIGHTPX: Höhe (px)
|
IMAGEHEIGHTPX: Höhe (px)
|
||||||
IMAGETITLE: 'Titeltext (Tooltip) - für zusätzliche Informationen über das Bild'
|
IMAGETITLE: 'Titeltext (Tooltip) - für zusätzliche Informationen über das Bild'
|
||||||
@ -325,7 +327,11 @@ de:
|
|||||||
DELETED: Gelöscht.
|
DELETED: Gelöscht.
|
||||||
DropdownBatchActionsDefault: Aktionen
|
DropdownBatchActionsDefault: Aktionen
|
||||||
HELP: Hilfe
|
HELP: Hilfe
|
||||||
|
PAGETYPE: 'Seitentyp:'
|
||||||
PERMAGAIN: 'Sie wurden aus dem System ausgeloggt. Falls Sie sich wieder einloggen möchten, geben Sie bitte Benutzernamen und Passwort im untenstehenden Formular an.'
|
PERMAGAIN: 'Sie wurden aus dem System ausgeloggt. Falls Sie sich wieder einloggen möchten, geben Sie bitte Benutzernamen und Passwort im untenstehenden Formular an.'
|
||||||
|
PERMALREADY: 'Leider dürfen Sie diesen Teil des CMS nicht aufrufen. Wenn Sie sich als jemand anderes einloggen wollen, benutzen Sie bitte das nachstehende Formular.'
|
||||||
|
PERMDEFAULT: 'Sie müssen angemeldet sein, um auf diesen Bereich zugreifen zu können. Bitte geben Sie Ihre Zugangsdaten ein.'
|
||||||
|
PLEASESAVE: 'Diese Seite konnte nicht aktualisiert werden weil sie noch nicht gespeichert wurde - bitte speichern.'
|
||||||
PreviewButton: Vorschau
|
PreviewButton: Vorschau
|
||||||
REORGANISATIONSUCCESSFUL: 'Der Seitenbaum wurde erfolgreich sortiert.'
|
REORGANISATIONSUCCESSFUL: 'Der Seitenbaum wurde erfolgreich sortiert.'
|
||||||
SAVEDUP: Gespeichert.
|
SAVEDUP: Gespeichert.
|
||||||
@ -413,6 +419,7 @@ de:
|
|||||||
Toggle: 'Hilfe zur Formatierung anzeigen'
|
Toggle: 'Hilfe zur Formatierung anzeigen'
|
||||||
MemberImportForm:
|
MemberImportForm:
|
||||||
Help1: '<p>Mitglieder im <em>CSV</em>-Format (kommaseparierte Werte) importieren. <small><a href="#" class="toggle-advanced">Erweiterte Nutzung</a></small></p>'
|
Help1: '<p>Mitglieder im <em>CSV</em>-Format (kommaseparierte Werte) importieren. <small><a href="#" class="toggle-advanced">Erweiterte Nutzung</a></small></p>'
|
||||||
|
Help2: '<div class="advanced"><h4>Erweiterte Benutzung</h4><ul><li>Gültige Spalten: <em>%s</em></li><li>Bereits existierende Benutzer werden anhand ihres eindeutigen <em>Code</em> identifiziert und um neue Einträge aus der Importdatei erweitert.</li><li>Gruppen können in der Spalte <em>Gruppen</em> hinzugefügt werden. Gruppen werden anhand ihres <em>Code</em> erkannt. Mehrere Gruppen werden Komma-separiert eingetragen. Schon zugewiesene Gruppen werden nicht entfernt.</li></ul></div>'
|
||||||
ResultCreated: '{count} Mitglied(er) wurde(n) erstellt'
|
ResultCreated: '{count} Mitglied(er) wurde(n) erstellt'
|
||||||
ResultDeleted: '%d Mitglied(er) gelöscht'
|
ResultDeleted: '%d Mitglied(er) gelöscht'
|
||||||
ResultNone: 'Keine Änderungen'
|
ResultNone: 'Keine Änderungen'
|
||||||
|
@ -82,6 +82,7 @@ es:
|
|||||||
CMSSecurity:
|
CMSSecurity:
|
||||||
INVALIDUSER: '<p>Usuario inválido. <a target="_top" href="{link}">Por favor, vuelva a autenticar aquí</a> para continuar.</p>'
|
INVALIDUSER: '<p>Usuario inválido. <a target="_top" href="{link}">Por favor, vuelva a autenticar aquí</a> para continuar.</p>'
|
||||||
LoginMessage: '<p>Si Ud tiene cualquier trabajo sin guardar puede volver donde lo dejó, iniciando sesión más abajo.</p>'
|
LoginMessage: '<p>Si Ud tiene cualquier trabajo sin guardar puede volver donde lo dejó, iniciando sesión más abajo.</p>'
|
||||||
|
SUCCESS: Exito
|
||||||
SUCCESSCONTENT: '<p>Inicio de sesión exitoso. Si Ud no es automáticamente redireccionado, <a target="_top" href="{link}">haga clic aquí</a></p>'
|
SUCCESSCONTENT: '<p>Inicio de sesión exitoso. Si Ud no es automáticamente redireccionado, <a target="_top" href="{link}">haga clic aquí</a></p>'
|
||||||
TimedOutTitleAnonymous: 'Expiró su sesión.'
|
TimedOutTitleAnonymous: 'Expiró su sesión.'
|
||||||
TimedOutTitleMember: 'Eh {name}!<br />Tu sesión expiró.'
|
TimedOutTitleMember: 'Eh {name}!<br />Tu sesión expiró.'
|
||||||
@ -259,6 +260,7 @@ es:
|
|||||||
many_many_Members: Miembros
|
many_many_Members: Miembros
|
||||||
GroupImportForm:
|
GroupImportForm:
|
||||||
Help1: '<p>Importar uno o más grupos en formato <em>CSV</em> (valores separados por coma). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
|
Help1: '<p>Importar uno o más grupos en formato <em>CSV</em> (valores separados por coma). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
|
||||||
|
Help2: '<div class="advanced"><h4>Uso avanzado</h4><ul><li>Columnas permitidas: <em>%s</em></li><li>Grupos existentes son relacionados con su <em>Código único</em> y actualizados con cualquier nuevo valor desde el archivo importado</li><li>Jerarquías de grupo pueden ser creadas utilizando la columna <em>ParentCode</em>.</li><li>Códigos de permiso pueden ser asignados por la columna <em>PermissionCode</em>. Códigos de permisos existentes no son eliminados.</li></ul></div>'
|
||||||
ResultCreated: 'Creados {count} grupos'
|
ResultCreated: 'Creados {count} grupos'
|
||||||
ResultDeleted: 'Se eliminaron %d grupos'
|
ResultDeleted: 'Se eliminaron %d grupos'
|
||||||
ResultUpdated: 'Actualizados grupos %d'
|
ResultUpdated: 'Actualizados grupos %d'
|
||||||
@ -325,6 +327,8 @@ es:
|
|||||||
DropdownBatchActionsDefault: Acciones
|
DropdownBatchActionsDefault: Acciones
|
||||||
HELP: Ayuda
|
HELP: Ayuda
|
||||||
PERMAGAIN: 'Ha sido desconectado del CMS. Si quiere volver a entrar, introduzca su nombre de usuario y contraseña a continuación.'
|
PERMAGAIN: 'Ha sido desconectado del CMS. Si quiere volver a entrar, introduzca su nombre de usuario y contraseña a continuación.'
|
||||||
|
PERMALREADY: 'Lamentablemente no puede acceder a esta parte del CMS. Si quiere entrar como alguien distinto, hágalo a continuación'
|
||||||
|
PERMDEFAULT: 'Debes estar conectado para acceder al área de administración; por favor ingresa tus datos a continuación'
|
||||||
PreviewButton: Vista previa
|
PreviewButton: Vista previa
|
||||||
REORGANISATIONSUCCESSFUL: 'Reorganizado el árbol del sitio con éxito.'
|
REORGANISATIONSUCCESSFUL: 'Reorganizado el árbol del sitio con éxito.'
|
||||||
SAVEDUP: Guardado
|
SAVEDUP: Guardado
|
||||||
@ -412,6 +416,7 @@ es:
|
|||||||
Toggle: 'Cambiar'
|
Toggle: 'Cambiar'
|
||||||
MemberImportForm:
|
MemberImportForm:
|
||||||
Help1: '<p>Importar usuarios en <em>formato CSV</em> (valores separados por coma). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
|
Help1: '<p>Importar usuarios en <em>formato CSV</em> (valores separados por coma). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
|
||||||
|
Help2: '<div class="advanced"><h4>Uso avanzado</h4><ul><li>Columnas permitidas: <em>%s</em></li><li>Usuarios existentes son relacionados con su <em>Código único</em>, y actualizados con cualquier nuevo valor desde el archivo importado.</li><li>Grupos pueden ser asignados por la columna <em>Groups</em>. Grupos son identificados por su propiedad <em>Code</em>, multiples grupos pueden ser separados por una coma. La pertenencia a grupos existentes no se borra.</li></ul></div>'
|
||||||
ResultCreated: 'Creados {count} miembros'
|
ResultCreated: 'Creados {count} miembros'
|
||||||
ResultDeleted: 'Se eliminaron %d miembros'
|
ResultDeleted: 'Se eliminaron %d miembros'
|
||||||
ResultNone: 'No hay cambios'
|
ResultNone: 'No hay cambios'
|
||||||
@ -475,6 +480,7 @@ es:
|
|||||||
SINGULARNAME: Regla
|
SINGULARNAME: Regla
|
||||||
Title: Título
|
Title: Título
|
||||||
PermissionRoleCode:
|
PermissionRoleCode:
|
||||||
|
PLURALNAME: 'Códigos de permiso'
|
||||||
PermsError: 'No se puede asignar permisos privilegiados al código "% s" (requiere acceso de administrador)'
|
PermsError: 'No se puede asignar permisos privilegiados al código "% s" (requiere acceso de administrador)'
|
||||||
SINGULARNAME: 'Códigos de las regla de permisos'
|
SINGULARNAME: 'Códigos de las regla de permisos'
|
||||||
Permissions:
|
Permissions:
|
||||||
|
@ -251,9 +251,9 @@ fr:
|
|||||||
CAPTIONTEXT: 'Légende'
|
CAPTIONTEXT: 'Légende'
|
||||||
CSSCLASS: 'Alignement / Style'
|
CSSCLASS: 'Alignement / Style'
|
||||||
CSSCLASSCENTER: 'Centré'
|
CSSCLASSCENTER: 'Centré'
|
||||||
CSSCLASSLEFT: 'A gauche, avec texte à la ligne.'
|
CSSCLASSLEFT: 'À gauche, avec texte autour.'
|
||||||
CSSCLASSLEFTALONE: 'Sur la gauche seulement'
|
CSSCLASSLEFTALONE: 'Sur la gauche seulement'
|
||||||
CSSCLASSRIGHT: 'a droite, avec texte à la ligne.'
|
CSSCLASSRIGHT: 'À droite, avec texte autour.'
|
||||||
DETAILS: Détails
|
DETAILS: Détails
|
||||||
EMAIL: 'Adresse email'
|
EMAIL: 'Adresse email'
|
||||||
FILE: Fichier
|
FILE: Fichier
|
||||||
|
@ -326,6 +326,8 @@ it:
|
|||||||
DropdownBatchActionsDefault: Azioni
|
DropdownBatchActionsDefault: Azioni
|
||||||
HELP: Aiuto
|
HELP: Aiuto
|
||||||
PERMAGAIN: 'Sei stato disconnesso dal CMS. Se desideri autenticarti nuovamente, inserisci qui sotto nome utente e password.'
|
PERMAGAIN: 'Sei stato disconnesso dal CMS. Se desideri autenticarti nuovamente, inserisci qui sotto nome utente e password.'
|
||||||
|
PERMALREADY: 'Siamo spiacenti, ma non puoi accedere a questa sezione del CMS. Se desideri autenticarti come qualcun altro, fallo qui sotto.'
|
||||||
|
PERMDEFAULT: 'Devi essere autenticato per accedere all''area amministrativa; Per favore inserisci le tue credenziali qui sotto'
|
||||||
PreviewButton: Anteprima
|
PreviewButton: Anteprima
|
||||||
REORGANISATIONSUCCESSFUL: 'Albero del sito riorganizzato con successo.'
|
REORGANISATIONSUCCESSFUL: 'Albero del sito riorganizzato con successo.'
|
||||||
SAVEDUP: Salvato.
|
SAVEDUP: Salvato.
|
||||||
|
@ -292,8 +292,6 @@ sk:
|
|||||||
FROMWEB: 'Z webu'
|
FROMWEB: 'Z webu'
|
||||||
FindInFolder: 'Vyhľadať v priečinku'
|
FindInFolder: 'Vyhľadať v priečinku'
|
||||||
IMAGEALT: 'Atlernatívny text (alt)'
|
IMAGEALT: 'Atlernatívny text (alt)'
|
||||||
IMAGEALTTEXT: 'Atlernatívny text (alt) - zobrazí sa ak obrázok nemože byť zobrazený '
|
|
||||||
IMAGEALTTEXTDESC: 'Zobrazí sa na obrazovke, ak obrázok nemôže byť zobrazený'
|
|
||||||
IMAGEDIMENSIONS: Rozmery
|
IMAGEDIMENSIONS: Rozmery
|
||||||
IMAGEHEIGHTPX: Výška
|
IMAGEHEIGHTPX: Výška
|
||||||
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
|
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
|
||||||
@ -328,11 +326,9 @@ sk:
|
|||||||
DELETED: Zmazané.
|
DELETED: Zmazané.
|
||||||
DropdownBatchActionsDefault: Akcie
|
DropdownBatchActionsDefault: Akcie
|
||||||
HELP: Pomoc
|
HELP: Pomoc
|
||||||
PAGETYPE: 'Typ stránky:'
|
|
||||||
PERMAGAIN: 'Boli ste odhlásený'
|
PERMAGAIN: 'Boli ste odhlásený'
|
||||||
PERMALREADY: 'Je mi ľúto, ale nemáte prístup k tejto časti CMS. Ak sa chcete prihlásiť ako niekto iný, urobte tak nižšie'
|
PERMALREADY: 'Je mi ľúto, ale nemáte prístup k tejto časti CMS. Ak sa chcete prihlásiť ako niekto iný, urobte tak nižšie'
|
||||||
PERMDEFAULT: 'Musíte byť prihlásený/á k prístupu do oblasti administrácie, zadajte vaše prihlasovacie údaje dole, prosím.'
|
PERMDEFAULT: 'Musíte byť prihlásený/á k prístupu do oblasti administrácie, zadajte vaše prihlasovacie údaje dole, prosím.'
|
||||||
PLEASESAVE: 'Uložte stránku, prosím. Táto stránka nemôže byť aktualizovaná, pretože eště nebola uložená.'
|
|
||||||
PreviewButton: Náhľad
|
PreviewButton: Náhľad
|
||||||
REORGANISATIONSUCCESSFUL: 'Strom webu bol reorganizovaný úspešne.'
|
REORGANISATIONSUCCESSFUL: 'Strom webu bol reorganizovaný úspešne.'
|
||||||
SAVEDUP: Uložené.
|
SAVEDUP: Uložené.
|
||||||
|
@ -781,7 +781,10 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
|||||||
return $name;
|
return $name;
|
||||||
} else {
|
} else {
|
||||||
$name = $this->singular_name();
|
$name = $this->singular_name();
|
||||||
if(substr($name,-1) == 'y') $name = substr($name,0,-1) . 'ie';
|
//if the penultimate character is not a vowel, replace "y" with "ies"
|
||||||
|
if (preg_match('/[^aeiou]y$/i', $name)) {
|
||||||
|
$name = substr($name,0,-1) . 'ie';
|
||||||
|
}
|
||||||
return ucfirst($name . 's');
|
return ucfirst($name . 's');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ abstract class SS_ListDecorator extends ViewableData implements SS_List, SS_Sort
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function TotalItems() {
|
public function TotalItems() {
|
||||||
return $this->list->TotalItems();
|
return $this->list->Count();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Count() {
|
public function Count() {
|
||||||
|
@ -407,15 +407,17 @@ class MySQLSchemaManager extends DBSchemaManager {
|
|||||||
$precision = $values['precision'];
|
$precision = $values['precision'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$defaultValue = '';
|
// Fix format of default value to match precision
|
||||||
if (isset($values['default']) && is_numeric($values['default'])) {
|
if (isset($values['default']) && is_numeric($values['default'])) {
|
||||||
$decs = strpos($precision, ',') !== false
|
$decs = strpos($precision, ',') !== false
|
||||||
? (int) substr($precision, strpos($precision, ',') + 1)
|
? (int) substr($precision, strpos($precision, ',') + 1)
|
||||||
: 0;
|
: 0;
|
||||||
$defaultValue = ' default ' . number_format($values['default'], $decs, '.', '');
|
$values['default'] = number_format($values['default'], $decs, '.', '');
|
||||||
|
} else {
|
||||||
|
unset($values['default']);
|
||||||
}
|
}
|
||||||
|
|
||||||
return "decimal($precision) not null $defaultValue";
|
return "decimal($precision) not null" . $this->defaultClause($values);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,6 +48,9 @@
|
|||||||
display: none;
|
display: none;
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
}
|
}
|
||||||
|
img {
|
||||||
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJElEQVQYV2O8dOnSfwYkoKenx4jMZ6SDAmT7QGx0K1EcRBsFAJfOHd3Le79RAAAAAElFTkSuQmCC) repeat;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.ss-uploadfield-item-info {
|
.ss-uploadfield-item-info {
|
||||||
margin-left: 95px;
|
margin-left: 95px;
|
||||||
|
@ -56,6 +56,10 @@ class ExactMatchFilter extends SearchFilter {
|
|||||||
// For queries using the default collation (no explicit case) we can use the WHERE .. IN .. syntax,
|
// For queries using the default collation (no explicit case) we can use the WHERE .. IN .. syntax,
|
||||||
// providing simpler SQL than many WHERE .. OR .. fragments.
|
// providing simpler SQL than many WHERE .. OR .. fragments.
|
||||||
$column = $this->getDbName();
|
$column = $this->getDbName();
|
||||||
|
// If values is an empty array, fall back to 3.1 behaviour and use empty string comparison
|
||||||
|
if(empty($values)) {
|
||||||
|
$values = array('');
|
||||||
|
}
|
||||||
$placeholders = DB::placeholders($values);
|
$placeholders = DB::placeholders($values);
|
||||||
return $query->where(array(
|
return $query->where(array(
|
||||||
"$column IN ($placeholders)" => $values
|
"$column IN ($placeholders)" => $values
|
||||||
@ -109,6 +113,10 @@ class ExactMatchFilter extends SearchFilter {
|
|||||||
// For queries using the default collation (no explicit case) we can use the WHERE .. NOT IN .. syntax,
|
// For queries using the default collation (no explicit case) we can use the WHERE .. NOT IN .. syntax,
|
||||||
// providing simpler SQL than many WHERE .. AND .. fragments.
|
// providing simpler SQL than many WHERE .. AND .. fragments.
|
||||||
$column = $this->getDbName();
|
$column = $this->getDbName();
|
||||||
|
// If values is an empty array, fall back to 3.1 behaviour and use empty string comparison
|
||||||
|
if(empty($values)) {
|
||||||
|
$values = array('');
|
||||||
|
}
|
||||||
$placeholders = DB::placeholders($values);
|
$placeholders = DB::placeholders($values);
|
||||||
return $query->where(array(
|
return $query->where(array(
|
||||||
"$column NOT IN ($placeholders)" => $values
|
"$column NOT IN ($placeholders)" => $values
|
||||||
|
@ -1560,7 +1560,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
|||||||
/**
|
/**
|
||||||
* Validate this member object.
|
* Validate this member object.
|
||||||
*/
|
*/
|
||||||
protected function validate() {
|
public function validate() {
|
||||||
$valid = parent::validate();
|
$valid = parent::validate();
|
||||||
|
|
||||||
if(!$this->ID || $this->isChanged('Password')) {
|
if(!$this->ID || $this->isChanged('Password')) {
|
||||||
|
@ -43,6 +43,13 @@ class RSSFeedTest extends SapphireTest {
|
|||||||
$this->assertContains('<description>ItemC AltContent</description>', $content);
|
$this->assertContains('<description>ItemC AltContent</description>', $content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testLinkEncoding() {
|
||||||
|
$list = new ArrayList();
|
||||||
|
$rssFeed = new RSSFeed($list, "http://www.example.com/?param1=true¶m2=true", "Test RSS Feed");
|
||||||
|
$content = $rssFeed->outputToBrowser();
|
||||||
|
$this->assertContains('<link>http://www.example.com/?param1=true&param2=true', $content);
|
||||||
|
}
|
||||||
|
|
||||||
public function testRSSFeedWithShortcode() {
|
public function testRSSFeedWithShortcode() {
|
||||||
$list = new ArrayList();
|
$list = new ArrayList();
|
||||||
$list->push(new RSSFeedTest_ItemD());
|
$list->push(new RSSFeedTest_ItemD());
|
||||||
|
20
tests/forms/FieldGroupTest.php
Normal file
20
tests/forms/FieldGroupTest.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class FieldGroupTest extends SapphireTest {
|
||||||
|
|
||||||
|
public function testMessagesInsideNestedCompositeFields() {
|
||||||
|
$fieldGroup = new FieldGroup(
|
||||||
|
new CompositeField(
|
||||||
|
$textField = new TextField('TestField', 'Test Field'),
|
||||||
|
$emailField = new EmailField('TestEmailField', 'Test Email Field')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$textField->setError('Test error message', 'warning');
|
||||||
|
$emailField->setError('Test error message', 'error');
|
||||||
|
|
||||||
|
$this->assertEquals('Test error message, Test error message.', $fieldGroup->Message());
|
||||||
|
$this->assertEquals('warning. error', $fieldGroup->MessageType());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -238,6 +238,7 @@ class FormTest extends FunctionalTest {
|
|||||||
'FormTest_Controller/Form',
|
'FormTest_Controller/Form',
|
||||||
array(
|
array(
|
||||||
'Email' => 'invalid',
|
'Email' => 'invalid',
|
||||||
|
'Number' => '<a href="http://mysite.com">link</a>' // XSS attempt
|
||||||
// leaving out "Required" field
|
// leaving out "Required" field
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -256,6 +257,17 @@ class FormTest extends FunctionalTest {
|
|||||||
),
|
),
|
||||||
'Required fields show a notification on field when left blank'
|
'Required fields show a notification on field when left blank'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->assertContains(
|
||||||
|
''<a href="http://mysite.com">link</a>' is not a number, only numbers can be accepted for this field',
|
||||||
|
$response->getBody(),
|
||||||
|
"Validation messages are safely XML encoded"
|
||||||
|
);
|
||||||
|
$this->assertNotContains(
|
||||||
|
'<a href="http://mysite.com">link</a>',
|
||||||
|
$response->getBody(),
|
||||||
|
"Unsafe content is not emitted directly inside the response body"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSessionSuccessMessage() {
|
public function testSessionSuccessMessage() {
|
||||||
@ -688,7 +700,8 @@ class FormTest_Controller extends Controller implements TestOnly {
|
|||||||
new FieldList(
|
new FieldList(
|
||||||
new EmailField('Email'),
|
new EmailField('Email'),
|
||||||
new TextField('SomeRequiredField'),
|
new TextField('SomeRequiredField'),
|
||||||
new CheckboxSetField('Boxes', null, array('1'=>'one','2'=>'two'))
|
new CheckboxSetField('Boxes', null, array('1'=>'one','2'=>'two')),
|
||||||
|
new NumericField('Number')
|
||||||
),
|
),
|
||||||
new FieldList(
|
new FieldList(
|
||||||
new FormAction('doSubmit')
|
new FormAction('doSubmit')
|
||||||
|
71
tests/forms/HtmlEditorFieldToolbarTest.php
Normal file
71
tests/forms/HtmlEditorFieldToolbarTest.php
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class HtmlEditorFieldToolbarTest_Toolbar extends HtmlEditorField_Toolbar {
|
||||||
|
public function viewfile_getLocalFileByID($id) {
|
||||||
|
return parent::viewfile_getLocalFileByID($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function viewfile_getLocalFileByURL($fileUrl) {
|
||||||
|
return parent::viewfile_getLocalFileByURL($fileUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function viewfile_getRemoteFileByURL($fileUrl) {
|
||||||
|
return parent::viewfile_getRemoteFileByURL($fileUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class HtmlEditorFieldToolbarTest extends SapphireTest {
|
||||||
|
|
||||||
|
protected static $fixture_file = 'HtmlEditorFieldToolbarTest.yml';
|
||||||
|
|
||||||
|
protected function getToolbar() {
|
||||||
|
return new HtmlEditorFieldToolbarTest_Toolbar(null, '/');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUp() {
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
Config::nest();
|
||||||
|
Config::inst()->update('HtmlEditorField_Toolbar', 'fileurl_scheme_whitelist', array('http'));
|
||||||
|
Config::inst()->update('HtmlEditorField_Toolbar', 'fileurl_domain_whitelist', array('example.com'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown() {
|
||||||
|
Config::unnest();
|
||||||
|
|
||||||
|
parent::tearDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testValidLocalReference() {
|
||||||
|
list($file, $url) = $this->getToolbar()->viewfile_getLocalFileByURL('folder/subfolder/example.pdf');
|
||||||
|
$this->assertEquals($this->objFromFixture('File', 'example_file'), $file);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testInvalidLocalReference() {
|
||||||
|
list($file, $url) = $this->getToolbar()->viewfile_getLocalFileByURL('folder/subfolder/missing.pdf');
|
||||||
|
$this->assertNull($file);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testValidScheme() {
|
||||||
|
list($file, $url) = $this->getToolbar()->viewfile_getRemoteFileByURL('http://example.com/test.pdf');
|
||||||
|
$this->assertInstanceOf('File', $file);
|
||||||
|
$this->assertEquals($file->Filename, 'http://example.com/test.pdf');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @expectedException SS_HTTPResponse_Exception */
|
||||||
|
public function testInvalidScheme() {
|
||||||
|
list($file, $url) = $this->getToolbar()->viewfile_getRemoteFileByURL('nosuchscheme://example.com/test.pdf');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testValidDomain() {
|
||||||
|
list($file, $url) = $this->getToolbar()->viewfile_getRemoteFileByURL('http://example.com/test.pdf');
|
||||||
|
$this->assertInstanceOf('File', $file);
|
||||||
|
$this->assertEquals($file->Filename, 'http://example.com/test.pdf');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @expectedException SS_HTTPResponse_Exception */
|
||||||
|
public function testInvalidDomain() {
|
||||||
|
list($file, $url) = $this->getToolbar()->viewfile_getRemoteFileByURL('http://evil.com/test.pdf');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
9
tests/forms/HtmlEditorFieldToolbarTest.yml
Normal file
9
tests/forms/HtmlEditorFieldToolbarTest.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
File:
|
||||||
|
example_file:
|
||||||
|
Name: example.pdf
|
||||||
|
Filename: folder/subfolder/example.pdf
|
||||||
|
|
||||||
|
Image:
|
||||||
|
example_image:
|
||||||
|
Name: HTMLEditorFieldTest_example.jpg
|
||||||
|
Filename: tests/forms/images/HTMLEditorFieldTest_example.jpg
|
@ -25,6 +25,35 @@ class OptionsetFieldTest extends SapphireTest {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testValidation() {
|
||||||
|
$field = OptionsetField::create('Test', 'Testing', array(
|
||||||
|
"One" => "One",
|
||||||
|
"Two" => "Two",
|
||||||
|
"Five" => "Five"
|
||||||
|
));
|
||||||
|
$validator = new RequiredFields('Test');
|
||||||
|
$form = new Form($this, 'Form', new FieldList($field), new FieldList(), $validator);
|
||||||
|
|
||||||
|
$field->setValue("One");
|
||||||
|
$this->assertTrue($field->validate($validator));
|
||||||
|
|
||||||
|
//non-existent value should make the field invalid
|
||||||
|
$field->setValue("Three");
|
||||||
|
$this->assertFalse($field->validate($validator));
|
||||||
|
|
||||||
|
//empty string should pass field-level validation...
|
||||||
|
$field->setValue('');
|
||||||
|
$this->assertTrue($field->validate($validator));
|
||||||
|
|
||||||
|
// ... but should not pass "RequiredFields" validation
|
||||||
|
$this->assertFalse($form->validate());
|
||||||
|
|
||||||
|
//disabled items shouldn't validate
|
||||||
|
$field->setDisabledItems(array('Five'));
|
||||||
|
$field->setValue('Five');
|
||||||
|
$this->assertFalse($field->validate($validator));
|
||||||
|
}
|
||||||
|
|
||||||
public function testReadonlyField() {
|
public function testReadonlyField() {
|
||||||
$sourceArray = array(0 => 'No', 1 => 'Yes');
|
$sourceArray = array(0 => 'No', 1 => 'Yes');
|
||||||
$field = new OptionsetField('FeelingOk', 'are you feeling ok?', $sourceArray, 1);
|
$field = new OptionsetField('FeelingOk', 'are you feeling ok?', $sourceArray, 1);
|
||||||
|
46
tests/forms/gridfield/GridFieldPrintButtonTest.php
Normal file
46
tests/forms/gridfield/GridFieldPrintButtonTest.php
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
class GridFieldPrintButtonTest extends SapphireTest {
|
||||||
|
|
||||||
|
protected $extraDataObjects = array(
|
||||||
|
'GridFieldPrintButtonTest_DO'
|
||||||
|
);
|
||||||
|
|
||||||
|
public function setUp() {
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
// 42 items
|
||||||
|
for($i = 1; $i <= 42; $i++) {
|
||||||
|
$obj = new GridFieldPrintButtonTest_DO();
|
||||||
|
$obj->Name = "Object {$i}";
|
||||||
|
$obj->write();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testLimit() {
|
||||||
|
$list = GridFieldPrintButtonTest_DO::get();
|
||||||
|
|
||||||
|
$button = new GridFieldPrintButton();
|
||||||
|
$button->setPrintColumns(array('Name' => 'My Name'));
|
||||||
|
|
||||||
|
// Get paginated gridfield config
|
||||||
|
$config = GridFieldConfig::create()
|
||||||
|
->addComponent(new GridFieldPaginator(10))
|
||||||
|
->addComponent($button);
|
||||||
|
$gridField = new GridField('testfield', 'testfield', $list, $config);
|
||||||
|
$controller = new Controller();
|
||||||
|
$form = new Form($controller, 'Form', new FieldList($gridField), new FieldList());
|
||||||
|
|
||||||
|
// Printed data should ignore pagination limit
|
||||||
|
$printData = $button->generatePrintData($gridField);
|
||||||
|
$rows = $printData->ItemRows;
|
||||||
|
$this->assertEquals(42, $rows->count());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GridFieldPrintButtonTest_DO extends DataObject {
|
||||||
|
private static $db = array(
|
||||||
|
'Name' => 'Varchar'
|
||||||
|
);
|
||||||
|
}
|
@ -897,6 +897,26 @@ class DataListTest extends SapphireTest {
|
|||||||
$this->assertEquals(array('Bob'), $parameters);
|
$this->assertEquals(array('Bob'), $parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test exact match filter with empty array items
|
||||||
|
*/
|
||||||
|
public function testEmptyFilter() {
|
||||||
|
$list = DataObjectTest_TeamComment::get();
|
||||||
|
$list = $list->exclude('Name', array());
|
||||||
|
|
||||||
|
$sql = $list->sql($parameters);
|
||||||
|
$this->assertSQLContains('WHERE (("DataObjectTest_TeamComment"."Name" NOT IN (?)))', $sql);
|
||||||
|
$this->assertEquals(array(''), $parameters);
|
||||||
|
|
||||||
|
|
||||||
|
$list = DataObjectTest_TeamComment::get();
|
||||||
|
$list = $list->filter('Name', array());
|
||||||
|
|
||||||
|
$sql = $list->sql($parameters);
|
||||||
|
$this->assertSQLContains('WHERE ("DataObjectTest_TeamComment"."Name" IN (?))', $sql);
|
||||||
|
$this->assertEquals(array(''), $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* $list->exclude(array('Name'=>'bob, 'Age'=>array(21, 43))); // exclude bob with Age 21 or 43
|
* $list->exclude(array('Name'=>'bob, 'Age'=>array(21, 43))); // exclude bob with Age 21 or 43
|
||||||
*/
|
*/
|
||||||
|
@ -178,6 +178,11 @@ class DataObjectSchemaGenerationTest_DO extends DataObject implements TestOnly {
|
|||||||
private static $db = array(
|
private static $db = array(
|
||||||
'Enum1' => 'Enum("A, B, C, D","")',
|
'Enum1' => 'Enum("A, B, C, D","")',
|
||||||
'Enum2' => 'Enum("A, B, C, D","A")',
|
'Enum2' => 'Enum("A, B, C, D","A")',
|
||||||
|
'NumberField' => 'Decimal',
|
||||||
|
'FloatingField' => 'Decimal(10,3,1.1)',
|
||||||
|
'TextValue' => 'Varchar',
|
||||||
|
'Date' => 'SS_Datetime',
|
||||||
|
'MyNumber' => 'Int'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,9 @@ class DataObjectTest extends SapphireTest {
|
|||||||
'DataObjectTest_Staff',
|
'DataObjectTest_Staff',
|
||||||
'DataObjectTest_CEO',
|
'DataObjectTest_CEO',
|
||||||
'DataObjectTest_Fan',
|
'DataObjectTest_Fan',
|
||||||
|
'DataObjectTest_Play',
|
||||||
|
'DataObjectTest_Ploy',
|
||||||
|
'DataObjectTest_Bogey',
|
||||||
);
|
);
|
||||||
|
|
||||||
public function testDb() {
|
public function testDb() {
|
||||||
@ -1341,7 +1344,10 @@ class DataObjectTest extends SapphireTest {
|
|||||||
$assertions = array(
|
$assertions = array(
|
||||||
'DataObjectTest_Player' => 'Data Object Test Players',
|
'DataObjectTest_Player' => 'Data Object Test Players',
|
||||||
'DataObjectTest_Team' => 'Data Object Test Teams',
|
'DataObjectTest_Team' => 'Data Object Test Teams',
|
||||||
'DataObjectTest_Fixture' => 'Data Object Test Fixtures'
|
'DataObjectTest_Fixture' => 'Data Object Test Fixtures',
|
||||||
|
'DataObjectTest_Play' => 'Data Object Test Plays',
|
||||||
|
'DataObjectTest_Bogey' => 'Data Object Test Bogeys',
|
||||||
|
'DataObjectTest_Ploy' => 'Data Object Test Ploys',
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach($assertions as $class => $expectedPluralName) {
|
foreach($assertions as $class => $expectedPluralName) {
|
||||||
@ -1937,5 +1943,9 @@ class DataObjectTest_ExtendedTeamComment extends DataObjectTest_TeamComment {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DataObjectTest_Play extends DataObject implements TestOnly {}
|
||||||
|
class DataObjectTest_Ploy extends DataObject implements TestOnly {}
|
||||||
|
class DataObjectTest_Bogey extends DataObject implements TestOnly {}
|
||||||
|
|
||||||
DataObjectTest_Team::add_extension('DataObjectTest_Team_Extension');
|
DataObjectTest_Team::add_extension('DataObjectTest_Team_Extension');
|
||||||
|
|
||||||
|
@ -123,4 +123,31 @@ class GroupedListTest extends SapphireTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testTotalItems() {
|
||||||
|
$list = GroupedList::create(
|
||||||
|
ArrayList::create(
|
||||||
|
array(
|
||||||
|
ArrayData::create(array(
|
||||||
|
'Name' => 'AAA',
|
||||||
|
'Number' => '111',
|
||||||
|
)),
|
||||||
|
ArrayData::create(array(
|
||||||
|
'Name' => 'BBB',
|
||||||
|
'Number' => '111',
|
||||||
|
)),
|
||||||
|
ArrayData::create(array(
|
||||||
|
'Name' => 'AAA',
|
||||||
|
'Number' => '222',
|
||||||
|
)),
|
||||||
|
ArrayData::create(array(
|
||||||
|
'Name' => 'BBB',
|
||||||
|
'Number' => '111',
|
||||||
|
))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(4, $list->TotalItems());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
class SSViewerTest extends SapphireTest {
|
class SSViewerTest extends SapphireTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backup of $_SERVER global
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $oldServer = array();
|
||||||
|
|
||||||
protected $extraDataObjects = array(
|
protected $extraDataObjects = array(
|
||||||
'SSViewerTest_Object',
|
'SSViewerTest_Object',
|
||||||
);
|
);
|
||||||
@ -10,6 +17,12 @@ class SSViewerTest extends SapphireTest {
|
|||||||
parent::setUp();
|
parent::setUp();
|
||||||
Config::inst()->update('SSViewer', 'source_file_comments', false);
|
Config::inst()->update('SSViewer', 'source_file_comments', false);
|
||||||
Config::inst()->update('SSViewer_FromString', 'cache_template', false);
|
Config::inst()->update('SSViewer_FromString', 'cache_template', false);
|
||||||
|
$this->oldServer = $_SERVER;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown() {
|
||||||
|
$_SERVER = $this->oldServer;
|
||||||
|
parent::tearDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1156,10 +1169,13 @@ after')
|
|||||||
$orig = Config::inst()->get('SSViewer', 'rewrite_hash_links');
|
$orig = Config::inst()->get('SSViewer', 'rewrite_hash_links');
|
||||||
Config::inst()->update('SSViewer', 'rewrite_hash_links', true);
|
Config::inst()->update('SSViewer', 'rewrite_hash_links', true);
|
||||||
|
|
||||||
$_SERVER['REQUEST_URI'] = 'http://path/to/file?foo"onclick="alert(\'xss\')""';
|
$_SERVER['HTTP_HOST'] = 'www.mysite.com';
|
||||||
|
$_SERVER['REQUEST_URI'] = '//file.com?foo"onclick="alert(\'xss\')""';
|
||||||
|
|
||||||
// Emulate SSViewer::process()
|
// Emulate SSViewer::process()
|
||||||
$base = Convert::raw2att($_SERVER['REQUEST_URI']);
|
// Note that leading double slashes have been rewritten to prevent these being mis-interepreted
|
||||||
|
// as protocol-less absolute urls
|
||||||
|
$base = Convert::raw2att('/file.com?foo"onclick="alert(\'xss\')""');
|
||||||
|
|
||||||
$tmplFile = TEMP_FOLDER . '/SSViewerTest_testRewriteHashlinks_' . sha1(rand()) . '.ss';
|
$tmplFile = TEMP_FOLDER . '/SSViewerTest_testRewriteHashlinks_' . sha1(rand()) . '.ss';
|
||||||
|
|
||||||
@ -1227,10 +1243,11 @@ after')
|
|||||||
$obj = new ViewableData();
|
$obj = new ViewableData();
|
||||||
$obj->InsertedLink = '<a class="inserted" href="#anchor">InsertedLink</a>';
|
$obj->InsertedLink = '<a class="inserted" href="#anchor">InsertedLink</a>';
|
||||||
$result = $tmpl->process($obj);
|
$result = $tmpl->process($obj);
|
||||||
$this->assertContains(
|
|
||||||
'<a class="inserted" href="<?php echo Convert::raw2att(',
|
$code = <<<'EOC'
|
||||||
$result
|
<a class="inserted" href="<?php echo Convert::raw2att(preg_replace("/^(\/)+/", "/", $_SERVER['REQUEST_URI'])); ?>#anchor">InsertedLink</a>
|
||||||
);
|
EOC;
|
||||||
|
$this->assertContains($code, $result);
|
||||||
// TODO Fix inline links in PHP mode
|
// TODO Fix inline links in PHP mode
|
||||||
// $this->assertContains(
|
// $this->assertContains(
|
||||||
// '<a class="inline" href="<?php echo str_replace(',
|
// '<a class="inline" href="<?php echo str_replace(',
|
||||||
|
@ -4681,11 +4681,15 @@ class SSTemplateParser extends Parser implements TemplateParser {
|
|||||||
|
|
||||||
// TODO: This is pretty ugly & gets applied on all files not just html. I wonder if we can make this
|
// TODO: This is pretty ugly & gets applied on all files not just html. I wonder if we can make this
|
||||||
// non-dynamically calculated
|
// non-dynamically calculated
|
||||||
|
$code = <<<'EOC'
|
||||||
|
(\Config::inst()->get('SSViewer', 'rewrite_hash_links')
|
||||||
|
? \Convert::raw2att( preg_replace("/^(\\/)+/", "/", $_SERVER['REQUEST_URI'] ) )
|
||||||
|
: "")
|
||||||
|
EOC;
|
||||||
|
// Because preg_replace replacement requires escaped slashes, addcslashes here
|
||||||
$text = preg_replace(
|
$text = preg_replace(
|
||||||
'/(<a[^>]+href *= *)"#/i',
|
'/(<a[^>]+href *= *)"#/i',
|
||||||
'\\1"\' . (Config::inst()->get(\'SSViewer\', \'rewrite_hash_links\') ?' .
|
'\\1"\' . ' . addcslashes($code, '\\') . ' . \'#',
|
||||||
' Convert::raw2att( $_SERVER[\'REQUEST_URI\'] ) : "") .
|
|
||||||
\'#',
|
|
||||||
$text
|
$text
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1135,11 +1135,15 @@ class SSTemplateParser extends Parser implements TemplateParser {
|
|||||||
|
|
||||||
// TODO: This is pretty ugly & gets applied on all files not just html. I wonder if we can make this
|
// TODO: This is pretty ugly & gets applied on all files not just html. I wonder if we can make this
|
||||||
// non-dynamically calculated
|
// non-dynamically calculated
|
||||||
|
$code = <<<'EOC'
|
||||||
|
(\Config::inst()->get('SSViewer', 'rewrite_hash_links')
|
||||||
|
? \Convert::raw2att( preg_replace("/^(\\/)+/", "/", $_SERVER['REQUEST_URI'] ) )
|
||||||
|
: "")
|
||||||
|
EOC;
|
||||||
|
// Because preg_replace replacement requires escaped slashes, addcslashes here
|
||||||
$text = preg_replace(
|
$text = preg_replace(
|
||||||
'/(<a[^>]+href *= *)"#/i',
|
'/(<a[^>]+href *= *)"#/i',
|
||||||
'\\1"\' . (Config::inst()->get(\'SSViewer\', \'rewrite_hash_links\') ?' .
|
'\\1"\' . ' . addcslashes($code, '\\') . ' . \'#',
|
||||||
' Convert::raw2att( $_SERVER[\'REQUEST_URI\'] ) : "") .
|
|
||||||
\'#',
|
|
||||||
$text
|
$text
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1136,10 +1136,10 @@ class SSViewer implements Flushable {
|
|||||||
$rewrite = Config::inst()->get('SSViewer', 'rewrite_hash_links');
|
$rewrite = Config::inst()->get('SSViewer', 'rewrite_hash_links');
|
||||||
if($this->rewriteHashlinks && $rewrite) {
|
if($this->rewriteHashlinks && $rewrite) {
|
||||||
if(strpos($output, '<base') !== false) {
|
if(strpos($output, '<base') !== false) {
|
||||||
if($rewrite === 'php') {
|
if($rewrite === 'php') {
|
||||||
$thisURLRelativeToBase = "<?php echo Convert::raw2att(\$_SERVER['REQUEST_URI']); ?>";
|
$thisURLRelativeToBase = "<?php echo Convert::raw2att(preg_replace(\"/^(\\\\/)+/\", \"/\", \$_SERVER['REQUEST_URI'])); ?>";
|
||||||
} else {
|
} else {
|
||||||
$thisURLRelativeToBase = Convert::raw2att($_SERVER['REQUEST_URI']);
|
$thisURLRelativeToBase = Convert::raw2att(preg_replace("/^(\\/)+/", "/", $_SERVER['REQUEST_URI']));
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = preg_replace('/(<a[^>]+href *= *)"#/i', '\\1"' . $thisURLRelativeToBase . '#', $output);
|
$output = preg_replace('/(<a[^>]+href *= *)"#/i', '\\1"' . $thisURLRelativeToBase . '#', $output);
|
||||||
|
Loading…
Reference in New Issue
Block a user