modulejs.define('ext/delete', ['_', '$', 'core/settings', 'core/event', 'core/resource', 'core/refresh', 'core/server'], function (_, $, allsettings, event, resource, refresh, server) { var settings = _.extend({ enabled: false }, allsettings['delete']), deleteBtnTemplate = '
  • ' + '' + 'delete' + '' + '' + '
  • ', selectedHrefsStr = '', $delete, $img, failed = function () { $delete.addClass('failed'); setTimeout(function () { $delete.removeClass('failed'); }, 1000); }, handleResponse = function (json) { $delete.removeClass('current'); $img.attr('src', resource.image('delete')); if (!json || json.code) { failed(); } refresh(); }, requestDeletion = function (hrefsStr) { $delete.addClass('current'); $img.attr('src', resource.image('loading.gif', true)); server.request({action: 'delete', hrefs: hrefsStr}, handleResponse); }, onSelection = function (entries) { selectedHrefsStr = ''; if (entries.length) { selectedHrefsStr = _.map(entries, function (entry) { return entry.absHref; }).join(':'); $delete.appendTo('#navbar').show(); } else { $delete.hide(); } }, init = function () { if (!settings.enabled || !server.api) { return; } $delete = $(deleteBtnTemplate) .find('a').on('click', function (event) { event.preventDefault(); requestDeletion(selectedHrefsStr); }).end() .appendTo('#navbar'); $img = $delete.find('img'); event.sub('selection', onSelection); }; init(); });