var $ = jQuery, WPAM = { Utils : { padDate : function (digit) { 'use strict'; return (10 > digit) ? '0' + digit : digit; }, getFormattedNowDate: function () { 'use strict'; var date = new Date(); return date.getFullYear() + '-' + WPAM.Utils.padDate(date.getMonth() + 1) + '-' + WPAM.Utils.padDate(date.getDate()); }, getAssetMeta : function (asset, duplicate) { 'use strict'; var timeLen = parseInt($('.timeLen', asset).val()), timeTerm = $('.timeTerm', asset).val(); return { id : $(asset).attr('id').replace(/^\D+/g, ''), name : $('.niceName input', asset).val(), ext : $('.fileExt', asset).text(), expires : ('never' !== timeTerm) ? timeLen + ' ' + timeTerm : timeTerm, secure : $('.secureFile', asset).prop('checked') ? 'true' : 'false', enabled : $('.enableFile', asset).prop('checked') ? 'true' : 'false', base_date: ($('.extendFile input', asset).prop('checked')) ? WPAM.Utils.getFormattedNowDate() : $('.baseDate', asset).val(), order : $(asset).closest('#attached_assets').length ? $('#attached_assets li').index(asset) : 0 } }, getOrder : function () { 'use strict'; var order = []; $('#attached_assets .assets li').each(function (i, asset) { order[i] = asset.getAttribute('id').replace(/^\D+/g, ''); }); return order; }, isDraft : function () { 'use strict'; return 'Draft' === $('#post-status-display').text().trim(); }, isNewPost : function () { 'use strict'; return -1 !== window.location.href.indexOf('post-new.php'); }, redirectToEditPost : function () { 'use strict'; var newEditPostPath = location.pathname.replace('post-new.php', 'post.php') + '?post=' + $('#post_ID').val() + '&action=edit'; if (history.pushState) { history.pushState(null, '', newEditPostPath); } else { window.location.href = newEditPostPath; } }, alreadyAttached : function (asset_id) { return $('#attached_assets li#asset_' + asset_id).length > 0; } }, Ajax : { reOrderAssets : function () { 'use strict'; var params = { action : 'order_assets', id : document.getElementById('post_ID').value, order : WPAM.Utils.getOrder(), amNonce: AM_Ajax.amNonce }; $.post(AM_Ajax.ajaxurl, params, function (response) { $.each(response, function (i, asset_id) { var asset = document.getElementById('asset_' + asset_id); WPAM.UI.onUpdateEffect(asset); }); }); }, trashAsset : function (asset) { 'use strict'; var params = { action : 'trash_asset', id : asset.attr('id').replace(/^\D+/g, ''), amNonce: AM_Ajax.amNonce }; $.post(AM_Ajax.ajaxurl, params, function (response) { if ('success' === response) { $(asset).remove(); } }); }, checkAssetParent: function (asset) { 'use strict'; var params = { action : 'parent_asset', ID : asset.id, amNonce: AM_Ajax.amNonce }; $.post(AM_Ajax.ajaxurl, params, function (response) { var post_id = document.getElementById('post_ID').value, note; if (parseInt(response) > 0) { if (parseInt(post_id) === parseInt(response) && WPAM.Utils.alreadyAttached(asset.id)) { note = '
'; $('#pending_' + asset.id + ' .obfuscateFilename') .after(note); $('#pending_' + asset.id + ' .obfuscateFilename').prop('checked', true); } else if (parseInt(response) > 0 && parseInt(post_id) !== parseInt(response)) { note = ''; $('#pending_' + asset.id + ' .obfuscateFilename') .prop('checked', true) .prop('readonly', true) .prop('disabled', true) .after(note); } } }); }, updateAsset : function (asset) { 'use strict'; var params = { action : 'update_asset', post_id : $('#post_ID').val(), meta : WPAM.Utils.getAssetMeta(asset), duplicate: false, amNonce : AM_Ajax.amNonce }; WPAM.UI.removeEditControls(asset); $.post(AM_Ajax.ajaxurl, params, function (response) { WPAM.UI.updateDateExpiry(asset, response); WPAM.UI.onUpdateEffect(asset); }); WPAM.UI.disableEditFields(asset); }, attachAsset : function (asset) { 'use strict'; var params = { action : 'attach_asset', post_id : $('#post_ID').val(), isNew : WPAM.Utils.isNewPost() ? 'true' : 'false', meta : WPAM.Utils.getAssetMeta(asset), duplicate: $('.obfuscateFilename', asset).prop('checked'), amNonce : AM_Ajax.amNonce }; $.post(AM_Ajax.ajaxurl, params, function (response) { var asset_elem = document.getElementById($(asset).attr('id')); asset_elem.parentNode.removeChild(asset_elem); asset_elem = WPAM.UI.updateAssetElement(asset_elem, response); if ($('#attached_assets #' + $(asset_elem).attr('id')).length) { $('#attached_assets #' + $(asset_elem).attr('id')).replaceWith(asset_elem); } else { $('#attached_assets .assets ul').append(asset_elem); } WPAM.Ajax.reOrderAssets(); if (WPAM.Utils.isNewPost()) { WPAM.Utils.redirectToEditPost(); } }); } }, UI : { updateAssetElement : function (asset_elem, data) { 'use strict'; var link = ( WPAM.Utils.isDraft() ) ? 'Please publish to activate links' : data.post_vals.url; asset_elem.id = 'asset_' + data.asset_vals.id; $('.remove.corner', asset_elem).removeClass('remove').addClass('edit').text('edit'); $('.duplicate', asset_elem).remove(); $('.assetVal', asset_elem).prop('disabled', true); $(asset_elem).append(WPAM.UI.getAssetUrlElem(link)); return asset_elem; }, getAssetUrlElem : function (link) { 'use strict'; return 'Link:' + '' + 'view
' + 'When should this file expire? ' + timeLen + ' ' + timeUnit + '' + baseDate + '
', secureFile = 'Secure this file? ', enableFile = 'Enable this file? ', obfuscateFilename = 'Duplicate and obfuscate file on server?
', removeBtn = '×'; return '' + secureFile + enableFile + '
' + obfuscateFilename + '