mirror of
https://github.com/silverstripe/silverstripe-blog
synced 2024-10-22 09:05:58 +00:00
4cf470baa0
Changed from using the message class which is by all messages on the page to just using the id which can only be used by one element
122 lines
2.9 KiB
JavaScript
122 lines
2.9 KiB
JavaScript
(function ($) {
|
|
|
|
$.entwine('ss', function ($) {
|
|
|
|
/**
|
|
* Register expandable help text functions with fields.
|
|
*/
|
|
$('.toggle-description').entwine({
|
|
'onadd': function () {
|
|
var $this = $(this);
|
|
|
|
/**
|
|
* Prevent multiple events being added.
|
|
*/
|
|
if ($this.hasClass('toggle-description-enabled')) {
|
|
return;
|
|
}
|
|
|
|
$this.addClass('toggle-description-enabled');
|
|
|
|
/**
|
|
* Toggle next description when button is clicked.
|
|
*/
|
|
var shown = false;
|
|
|
|
$this.on('click', function() {
|
|
$this.parent().next('.description')[shown ? 'hide' : 'show']();
|
|
|
|
$this.toggleClass('toggle-description-shown');
|
|
|
|
shown = !shown;
|
|
});
|
|
|
|
/**
|
|
* Hide next description by default.
|
|
*/
|
|
$this.parent().next('.description').hide();
|
|
|
|
/**
|
|
* Add classes to correct inherited layout issues in a small context.
|
|
*/
|
|
$this.parent().addClass('toggle-description-correct-right');
|
|
$this.parent().prev('.middleColumn').addClass('toggle-description-correct-middle');
|
|
$this.parent().next('.description').addClass('toggle-description-correct-description');
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Custom merge actions for tags and categories
|
|
*/
|
|
$('.MergeAction').entwine({
|
|
'onadd': function() {
|
|
var $this = $(this);
|
|
|
|
$this.on('click', 'select', function() {
|
|
return false;
|
|
});
|
|
|
|
$this.children('button').each(function(i, button) {
|
|
var $button = $(button);
|
|
var $select = $button.prev('select');
|
|
|
|
$button.before('<input type="hidden" name="' + $button.attr('data-target') + '" value="' + $select.val() + '" />');
|
|
});
|
|
|
|
$this.on('change', 'select', function(e) {
|
|
var $target = $(e.target);
|
|
|
|
$target.next('input').val($target.val());
|
|
});
|
|
|
|
$this.children('button, select').hide();
|
|
|
|
$this.on('click', '.MergeActionReveal', function(e) {
|
|
var $target = $(e.target);
|
|
|
|
$target.parent().children('button, select').show();
|
|
$target.hide();
|
|
|
|
return false;
|
|
});
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Customise the cms-panel behaviour for blog sidebar
|
|
*
|
|
* see LeftAndMain.Panel.js for base behaviour
|
|
*/
|
|
$('.blog-admin-sidebar.cms-panel').entwine({
|
|
minInnerWidth: 620,
|
|
onadd: function() {
|
|
// Adding margin to prevent post options from overlaping message box
|
|
$('#Form_EditForm_error ').attr('style', 'margin-right: 56px');
|
|
|
|
this._super();
|
|
this.updateLayout();
|
|
|
|
// If this panel is open and the left hand column is smaller than the minimum, contract it instead
|
|
if(!this.hasClass('collapsed') && ($(".blog-admin-outer").width() < this.getminInnerWidth())) {
|
|
this.collapsePanel();
|
|
}
|
|
},
|
|
togglePanel: function(bool, silent) {
|
|
this._super(bool, silent);
|
|
this.updateLayout();
|
|
},
|
|
/**
|
|
* Adjust minimum width of content to account for extra panel
|
|
*
|
|
* @returns {undefined}
|
|
*/
|
|
updateLayout: function() {
|
|
$('.cms-container').updateLayoutOptions({
|
|
minContentWidth: 820 + this.width()
|
|
});
|
|
}
|
|
});
|
|
|
|
});
|
|
})(jQuery);
|