2012-07-31 08:16:54 +02:00
( function ( $ ) {
2012-08-06 08:14:45 +02:00
"use strict" ;
2012-07-31 08:16:54 +02:00
$ . entwine ( 'ss' , function ( $ ) {
2012-08-03 02:18:55 +02:00
$ ( '#DocumentTypeID ul li' ) . entwine ( {
2012-08-06 07:33:52 +02:00
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' ) ;
2012-08-22 05:34:11 +02:00
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' ) ;
2012-08-06 08:14:45 +02:00
}
2012-08-06 07:33:52 +02:00
} ) ;
2012-08-03 02:18:55 +02:00
2012-08-22 05:34:11 +02:00
/ * $ ( ' # D o c u m e n t T y p e I D i n p u t [ t y p e = r a d i o ] ' ) . e n t w i n e ( {
2012-08-06 07:33:52 +02:00
onadd : function ( ) {
2012-08-08 02:17:20 +02:00
// Checks to see what radio button is selected
2012-08-06 07:33:52 +02:00
if ( this . is ( ':checked' ) ) {
this . change ( ) ;
2012-08-03 02:18:55 +02:00
}
} ,
2012-08-06 07:33:52 +02:00
onchange : function ( e ) {
2012-08-08 02:17:20 +02:00
// Remove selected class from radio buttons
2012-08-06 07:33:52 +02:00
$ ( '#DocumentTypeID' ) . find ( 'li' ) . removeClass ( 'selected' ) ;
2012-08-08 02:17:20 +02:00
//If radio button is checked then add the selected class
2012-08-06 07:33:52 +02:00
if ( this . is ( ':checked' ) ) {
this . parent ( 'li' ) . addClass ( 'selected' ) ;
}
}
2012-08-22 05:34:11 +02:00
} ) ; * /
2012-08-03 02:18:55 +02:00
$ ( '#Actions ul li' ) . entwine ( {
onclick : function ( e ) {
2012-08-13 06:41:43 +02:00
//add active state to the current button
$ ( '#Actions ul li' ) . removeClass ( 'dms-active' ) ;
this . addClass ( 'dms-active' ) ;
2012-08-13 07:51:59 +02:00
//$('li.dms-active').append('<span class="arrow"></span>');
2012-08-13 06:41:43 +02:00
//hide all inner field sections
var panel = $ ( '#ActionsPanel' ) ;
panel . find ( 'div.fieldgroup-field' ) . hide ( ) ;
//show the correct group of controls
panel . find ( '.' + this . data ( 'panel' ) ) . closest ( 'div.fieldgroup-field' ) . show ( ) ;
}
} ) ;
2012-08-16 07:01:57 +02:00
$ ( '#Form_ItemEditForm_Embargo input, #Form_EditForm_Embargo input' ) . entwine ( {
2012-08-13 08:28:15 +02:00
onchange : function ( ) {
//selected the date options
2012-08-14 05:05:23 +02:00
if ( this . attr ( 'value' ) === 'Date' ) {
2013-05-09 00:19:30 +02:00
$ ( '.embargoDatetime' ) . children ( ) . show ( ) ;
2012-08-13 08:28:15 +02:00
$ ( '.embargoDatetime' ) . show ( ) ;
} else {
$ ( '.embargoDatetime' ) . hide ( ) ;
}
}
} ) ;
2012-08-16 07:01:57 +02:00
$ ( '#Form_ItemEditForm_Expiry input, #Form_EditForm_Expiry input' ) . entwine ( {
2012-08-13 08:28:15 +02:00
onchange : function ( ) {
//selected the date options
2012-08-14 05:05:23 +02:00
if ( this . attr ( 'value' ) === 'Date' ) {
2013-05-09 00:19:30 +02:00
$ ( '.expiryDatetime' ) . children ( ) . show ( ) ;
2012-08-13 08:28:15 +02:00
$ ( '.expiryDatetime' ) . show ( ) ;
} else {
$ ( '.expiryDatetime' ) . hide ( ) ;
}
}
} ) ;
2012-08-13 06:41:43 +02:00
$ ( '#ActionsPanel' ) . entwine ( {
onadd : function ( ) {
//do an initial show of the entire panel
this . show ( ) ;
2012-08-13 08:28:15 +02:00
//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' ) ;
2012-08-21 04:48:18 +02:00
//Add placeholder attribute to date and time fields
$ ( '#Form_ItemEditForm_EmbargoedUntilDate-date' ) . attr ( 'placeholder' , 'dd-mm-yyyy' ) ;
$ ( '#Form_ItemEditForm_EmbargoedUntilDate-time' ) . attr ( 'placeholder' , 'hh:mm:ss' ) ;
$ ( '#Form_ItemEditForm_ExpireAtDate-date' ) . attr ( 'placeholder' , 'dd-mm-yyyy' ) ;
$ ( '#Form_ItemEditForm_ExpireAtDate-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' ) ;
2012-08-13 08:28:15 +02:00
$ ( '#Form_ItemEditForm_EmbargoedUntilDate-date' ) . closest ( '.fieldholder-small' ) . addClass ( 'embargoDatetime' ) . hide ( ) ;
$ ( '#Form_ItemEditForm_ExpireAtDate-date' ) . closest ( '.fieldholder-small' ) . addClass ( 'expiryDatetime' ) . hide ( ) ;
2012-08-16 07:01:57 +02:00
// 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 ( ) ;
2012-08-13 06:41:43 +02:00
//show the replace panel when the page loads
2012-08-13 08:28:15 +02:00
$ ( 'li[data-panel="embargo"]' ) . click ( ) ;
2012-08-14 01:44:12 +02:00
//set the initial state of the radio button and the associated dropdown hiding
2012-08-14 04:22:39 +02:00
$ ( '#Form_ItemEditForm_Embargo input[checked]' ) . change ( ) ;
$ ( '#Form_ItemEditForm_Expiry input[checked]' ) . change ( ) ;
2012-08-16 07:01:57 +02:00
//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 ( ) ;
2012-08-03 02:18:55 +02:00
}
} ) ;
2012-08-06 08:14:45 +02:00
$ ( '#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' ) ;
2012-08-21 07:57:06 +02:00
var relationCount = form . data ( 'relation-count' ) ;
2012-08-06 08:14:45 +02:00
//display an appropriate message
var message = '' ;
2012-08-21 07:57:06 +02:00
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 ;
2012-08-06 08:14:45 +02:00
} 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 ) ;
}
}
} ) ;
2012-07-31 08:16:54 +02:00
} ) ;
2012-08-03 02:18:55 +02:00
} ( jQuery ) ) ;