Merge remote-tracking branch 'origin/3.1'

Conflicts:
	.travis.yml
This commit is contained in:
Ingo Schommer 2013-10-20 13:51:19 +02:00
commit 0a1ffd3e1a
6 changed files with 66 additions and 31 deletions

View File

@ -4,7 +4,13 @@ php:
- 5.3
env:
- DB=MYSQL CORE_RELEASE=master
global:
- "ARTIFACTS_AWS_REGION=us-east-1"
- "ARTIFACTS_S3_BUCKET=silverstripe-travis-artifacts"
- secure: "7V20Qk3bIG2AlTJaA5D/uzB8vUVvRwQp+xjRYUxlahtj9FcuqEV3HIyjwwJe0T6Z1bnRYuu28ZnCT2CfP9BBZ3FE7AwSZbPase9c0/at2qDJNqkvIdC1xZ1H6Fcy2LSwNB9wLQPe613ItVdanitEuwE41iowxBPslxUUTnwx7eY="
- secure: "f/GWlbnNri2YpCOrJfZl7tkhpMmcRVUbCdmb+beAY90gFBJQPHtljzf8M4KaCP0OkLOtRFuGoMFdIcpadl4J6IG1XP18IJNz+nKzCL/sJj/FF9y77RdMHWE9jr21G9ar5tywkn7JM6vrnTCY89OnHeQx67SKvxqX5CpVx+rdcEU="
matrix:
- DB=MYSQL CORE_RELEASE=master
matrix:
include:
@ -16,28 +22,37 @@ matrix:
env: DB=MYSQL CORE_RELEASE=master
- php: 5.5
env: DB=MYSQL CORE_RELEASE=master
- php: 5.4
env: DB=MYSQL CORE_RELEASE=master BEHAT_TEST=1
allow_failures:
- php: 5.5
env: DB=MYSQL CORE_RELEASE=master
before_script:
- composer self-update
- phpenv rehash
- git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support
- php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss
- "if [ \"$BEHAT_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss; fi"
- "if [ \"$BEHAT_TEST\" = \"1\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension; fi"
- cd ~/builds/ss
- php ~/travis-support/travis_setup_selenium.php --if-env BEHAT_TEST
- php ~/travis-support/travis_setup_php54_webserver.php --if-env BEHAT_TEST
script:
- phpunit cms/tests/
- "if [ \"$BEHAT_TEST\" = \"\" ]; then phpunit cms/tests; fi"
- "if [ \"$BEHAT_TEST\" = \"1\" ]; then vendor/bin/behat @cms; fi"
after_failure:
- php ~/travis-support/travis_upload_artifacts.php --if-env BEHAT_TEST,ARTIFACTS_AWS_SECRET_ACCESS_KEY --target-path $TRAVIS_REPO_SLUG/$TRAVIS_BUILD_ID/$TRAVIS_JOB_ID --artifacts-base-url https://s3.amazonaws.com/$ARTIFACTS_S3_BUCKET/
branches:
except:
- 2.1
- 2.2
- 2.3
- 2.4
- post-2.4
- translation-staging
notifications:
irc:
channels:
- "irc.freenode.org#silverstripe"
- "irc.freenode.org#silverstripe"

View File

@ -446,6 +446,8 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
}
$this->extend('updateSiteTreeHints', $def);
$json = Convert::raw2json($def);
$cache->save($json, $cacheKey);
}

View File

@ -53,7 +53,11 @@ class SiteConfig extends DataObject implements PermissionProvider {
*/
public function getCMSFields() {
$groupsMap = Group::get()->map('ID', 'Breadcrumbs')->toArray();
$groupsMap = array();
foreach(Group::get() as $group) {
// Listboxfield values are escaped, use ASCII char instead of »
$groupsMap[$group->ID] = $group->getBreadcrumbs(' > ');
}
asort($groupsMap);
$fields = new FieldList(

View File

@ -1978,7 +1978,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return FieldList
*/
public function getSettingsFields() {
$groupsMap = Group::get()->map('ID', 'Breadcrumbs')->toArray();
$groupsMap = array();
foreach(Group::get() as $group) {
// Listboxfield values are escaped, use ASCII char instead of »
$groupsMap[$group->ID] = $group->getBreadcrumbs(' > ');
}
asort($groupsMap);
$fields = new FieldList(

View File

@ -15,20 +15,20 @@
var menus = $('#vakata-contextmenu').find("ul ul");
menus.each(function(i){
var col = "1",
var col = "1",
count = $(menus[i]).find('li').length;
//Assign columns to menus over 10 items long
if(count > 20){
col = "3";
col = "3";
}else if(count > 10){
col = "2";
col = "2";
}
$(menus[i]).addClass('col-' + col).removeClass('right');
//Remove "right" class that jstree adds on mouseenter
$(menus[i]).find('li').on("mouseenter", function (e) {
$(menus[i]).find('li').on("mouseenter", function (e) {
$(this).parent('ul').removeClass("right");
});
});
@ -38,7 +38,7 @@
config.plugins.push('contextmenu');
config.contextmenu = {
'items': function(node) {
var menuitems = {
'edit': {
'label': ss.i18n._t('Tree.EditPage', 'Edit page', 100, 'Used in the context menu when right-clicking on a page node in the CMS tree'),
@ -64,7 +64,7 @@
}
};
}
// Build a list for allowed children as submenu entries
var pagetype = node.data('pagetype'),
id = node.data('id'),
@ -100,13 +100,13 @@
}
};
});
if(hasAllowedChildren) {
menuitems['addsubpage'] = {
'label': ss.i18n._t('Tree.AddSubPage', 'Add page under this page', 100, 'Used in the context menu when right-clicking on a page node in the CMS tree'),
'submenu': menuAllowedChildren
};
}
}
menuitems['duplicate'] = {
'label': ss.i18n._t('Tree.Duplicate'),
@ -116,7 +116,7 @@
'action': function(obj) {
$('.cms-container').entwine('.ss').loadPanel(
$.path.addSearchParams(
ss.i18n.sprintf(self.data('urlDuplicate'), obj.data('id')),
ss.i18n.sprintf(self.data('urlDuplicate'), obj.data('id')),
self.data('extraParams')
)
);
@ -126,7 +126,7 @@
'action': function(obj) {
$('.cms-container').entwine('.ss').loadPanel(
$.path.addSearchParams(
ss.i18n.sprintf(self.data('urlDuplicatewithchildren'), obj.data('id')),
ss.i18n.sprintf(self.data('urlDuplicatewithchildren'), obj.data('id')),
self.data('extraParams')
)
);
@ -136,23 +136,33 @@
};
return menuitems;
}
}
};
return config;
}
});
// Scroll tree down to context of the current page
$('.cms-tree a.jstree-clicked').entwine({
onmatch: function(){
var self = this,
panel = self.parents('.cms-panel-content');
panel.animate({
scrollTop: self.offset().top - (panel.height() / 2)
}, 'slow');
}
});
// Scroll tree down to context of the current page, if it isn't
// already visible
$('.cms-tree a.jstree-clicked').entwine({
onmatch: function(){
var self = this,
panel = self.parents('.cms-panel-content'),
scrollTo;
if(self.offset().top < 0 ||
self.offset().top > panel.height() - self.height()) {
// Current scroll top + our current offset top is our
// position in the panel
scrollTo = panel.scrollTop() + self.offset().top
+ (panel.height() / 2);
panel.animate({
scrollTop: scrollTo
}, 'slow');
}
}
});
});
}(jQuery));

View File

@ -19,7 +19,7 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
'CMSMAIN.ERRORREVERTING': 'Błąd podczas powrotu do opublikowanej strony',
'CMSMAIN.SAVING' : 'Zapisywanie...',
'CMSMAIN.SELECTMOREPAGES' : "Zaznaczono %s stron.\n\nCzy na pewno chcesz wykonać tę akcje?",
'CMSMAIN.ALERTCLASSNAME': 'Ta strona zostanie zaktualizowana po jej zapisani\'ur',
'CMSMAIN.ALERTCLASSNAME': 'Ta strona zostanie zaktualizowana po jej zapisaniu',
'CMSMAIN.URLSEGMENTVALIDATION': 'Adres URL może składać się tylko z liter, cyfr i łączników.',
'AssetAdmin.BATCHACTIONSDELETECONFIRM': "Czy na pewno usunąć %s folderów?",
'AssetTableField.REALLYDELETE': 'Czy na pewno usunąć zaznaczone pliki??',