mirror of
https://github.com/silverstripe/silverstripe-dms
synced 2024-10-22 14:05:56 +02:00
9b42effeb5
* Remove "small" class from inline edit form for documents * Swap relationeditor GridFieldConfig for record editor to ensure that document sets can be deleted from a page context rather than unlinked (natively) * Fix to ensure that related documents can be autocompleted via partial matching on filename * Add 2 space indentation rule to editorconfig for .js and .scss files
178 lines
6.7 KiB
JavaScript
178 lines
6.7 KiB
JavaScript
(function($) {
|
|
"use strict";
|
|
|
|
$.entwine('ss', function($) {
|
|
|
|
$('#DocumentTypeID ul li').entwine({
|
|
onadd: function () {
|
|
this.addClass('ui-button ss-ui-button ui-corner-all ui-state-default ui-widget ui-button-text-only');
|
|
this.parents('ul').removeClass('ui-tabs-nav');
|
|
if (this.find('input').is(':checked')) {
|
|
this.addClass('selected');
|
|
}
|
|
},
|
|
onclick: function(e) {
|
|
$('#DocumentTypeID').find('li.selected').removeClass('selected');
|
|
this.find('input').prop("checked", true);
|
|
this.addClass('selected');
|
|
}
|
|
});
|
|
|
|
/* $('#DocumentTypeID input[type=radio]').entwine({
|
|
onadd: function() {
|
|
// Checks to see what radio button is selected
|
|
if (this.is(':checked')) {
|
|
this.change();
|
|
}
|
|
},
|
|
onchange: function(e) {
|
|
// Remove selected class from radio buttons
|
|
$('#DocumentTypeID').find('li').removeClass('selected');
|
|
//If radio button is checked then add the selected class
|
|
if (this.is(':checked')) {
|
|
this.parent('li').addClass('selected');
|
|
}
|
|
}
|
|
});*/
|
|
$('.permissions input[name="CanViewType"], .permissions input[name="CanEditType"]').entwine({
|
|
onchange: function () {
|
|
if (!this.is(':checked')) {
|
|
return;
|
|
}
|
|
|
|
var dropDown = this.closest('.fieldholder-small').next();
|
|
if (this.val() === 'OnlyTheseUsers') {
|
|
dropDown.removeClass('hide');
|
|
} else {
|
|
dropDown.addClass('hide');
|
|
}
|
|
},
|
|
onadd: function () {
|
|
this.trigger('change');
|
|
}
|
|
});
|
|
$('.dmsdocment-actions ul li').entwine({
|
|
onclick: function (e) {
|
|
|
|
//add active state to the current button
|
|
$('.dmsdocment-actions ul li').removeClass('dms-active');
|
|
this.addClass('dms-active');
|
|
//$('li.dms-active').append('<span class="arrow"></span>');
|
|
|
|
//hide all inner field sections
|
|
var panel = $('.dmsdocument-actionspanel:first');
|
|
panel.find('> .fieldgroup > .fieldgroup-field').hide();
|
|
|
|
//show the correct group of controls
|
|
//panel.find('.'+this.data('panel')).closest('div.fieldgroup').show();
|
|
panel.find('.'+this.data('panel')).show().parents('.fieldgroup-field').show();
|
|
|
|
}
|
|
});
|
|
|
|
$('#Form_ItemEditForm_Embargo input, #Form_EditForm_Embargo input').entwine({
|
|
onchange: function () {
|
|
//selected the date options
|
|
if (this.attr('value') === 'Date') {
|
|
$('.embargoDatetime').children().show();
|
|
$('.embargoDatetime').show();
|
|
} else {
|
|
$('.embargoDatetime').hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
$('#Form_ItemEditForm_Expiry input, #Form_EditForm_Expiry input').entwine({
|
|
onchange: function () {
|
|
//selected the date options
|
|
if (this.attr('value') === 'Date') {
|
|
$('.expiryDatetime').children().show();
|
|
$('.expiryDatetime').show();
|
|
} else {
|
|
$('.expiryDatetime').hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
$('.dmsdocument-actionspanel').entwine({
|
|
onadd: function () {
|
|
//do an initial show of the entire panel
|
|
this.show();
|
|
|
|
//add some extra classes to the replace field containers to make it work with drag and drop uploading
|
|
this.find('.replace').closest('div.fieldgroup-field').addClass('ss-upload').addClass('ss-uploadfield');
|
|
|
|
// add class and hide
|
|
$('.dmsdocument-actionspanel .embargo input.date').closest('.fieldholder-small').addClass('embargoDatetime').hide();
|
|
$('.dmsdocument-actionspanel .expiry input.date').closest('.fieldholder-small').addClass('expiryDatetime').hide();
|
|
// We need to duplicate the above functions to work when Adding documents
|
|
// $('#Form_EditForm_EmbargoedUntilDate_date').closest('.fieldholder-small').addClass('embargoDatetime').hide();
|
|
// $('#Form_EditForm_ExpireAtDate_date').closest('.fieldholder-small').addClass('expiryDatetime').hide();
|
|
|
|
//Add placeholder attribute to date and time fields
|
|
$('.dmsdocument-actionspanel .embargo input.date').attr('placeholder', 'dd-mm-yyyy');
|
|
$('.dmsdocument-actionspanel .embargo input.time').attr('placeholder', 'hh:mm:ss');
|
|
$('.dmsdocument-actionspanel .expiry input.date').attr('placeholder', 'dd-mm-yyyy');
|
|
$('.dmsdocument-actionspanel .expiry input.time').attr('placeholder', 'hh:mm:ss');
|
|
// We need to duplicate to work when adding documents
|
|
// $('#Form_EditForm_EmbargoedUntilDate_date').attr('placeholder', 'dd-mm-yyyy');
|
|
// $('#Form_EditForm_EmbargoedUntilDate_time').attr('placeholder', 'hh:mm:ss');
|
|
// $('#Form_EditForm_ExpireAtDate_date').attr('placeholder', 'dd-mm-yyyy');
|
|
// $('#Form_EditForm_ExpireAtDate_time').attr('placeholder', 'hh:mm:ss');
|
|
|
|
//show the embargo panel when the page loads
|
|
$('li[data-panel="embargo"]').click();
|
|
|
|
//set the initial state of the radio button and the associated dropdown hiding
|
|
$('.dmsdocument-actionspanel .embargo input[type="radio"][checked]').change();
|
|
$('.dmsdocument-actionspanel .expiry input[type="radio"][checked]').change();
|
|
//Again we need to duplicate the above function to work when adding documents
|
|
// $('#Form_EditForm_Embargo input[checked]').change();
|
|
// $('#Form_EditForm_Expiry input[checked]').change();
|
|
}
|
|
});
|
|
|
|
$('#Form_ItemEditForm_action_doDelete').entwine({
|
|
onclick: function (e) {
|
|
//work out how many pages are left attached to this document
|
|
var form = this.closest('form');
|
|
var pagesCount = form.data('pages-count');
|
|
var relationCount = form.data('relation-count');
|
|
|
|
//display an appropriate message
|
|
var message = '';
|
|
if (pagesCount > 1 || relationCount > 0) {
|
|
var pages = '';
|
|
if (pagesCount > 1) {
|
|
pages = "\nWarning: doc is attached to a total of "+pagesCount+" pages. ";
|
|
}
|
|
var references = '';
|
|
var referencesWarning = '';
|
|
if (relationCount > 0) {
|
|
var pname = 'pages';
|
|
referencesWarning = "\n\nBefore deleting: please update the content on the pages where this document is referenced, otherwise the links on those pages will break.";
|
|
if (relationCount === 1) {
|
|
pname = 'page';
|
|
referencesWarning = "\n\nBefore deleting: please update the content on the page where this document is referenced, otherwise the links on that page will break.";
|
|
}
|
|
references = "\nWarning: doc is referenced in the text of "+relationCount +" "+pname+".";
|
|
}
|
|
message = "Permanently delete this document and remove it from all pages where it is referenced?\n"+pages+references+"\n\nDeleting it here will permanently delete it from this page and all other pages where it is referenced."+referencesWarning;
|
|
} else {
|
|
message = "Permanently delete this document and remove it from this page?\n\nNotice: this document is only attached to this page, so deleting it won't affect any other pages.";
|
|
}
|
|
|
|
if (!confirm(message)) {
|
|
e.preventDefault();
|
|
return false;
|
|
} else {
|
|
//user says "okay", so go ahead and do the action
|
|
this._super(e);
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
}(jQuery));
|