diff --git a/core/js/tags.js b/core/js/tags.js deleted file mode 100644 index b4c2c220df..0000000000 --- a/core/js/tags.js +++ /dev/null @@ -1,371 +0,0 @@ -OC.Tags= { - edit:function(type, cb) { - if(!type && !this.type) { - throw { - name: 'MissingParameter', - message: t( - 'core', - 'The object type is not specified.' - ) - }; - } - type = type ? type : this.type; - var self = this; - $.when(this._getTemplate()).then(function($tmpl) { - if(self.$dialog) { - self.$dialog.ocdialog('close'); - } - self.$dialog = $tmpl.octemplate({ - addText: t('core', 'Enter new') - }); - $('body').append(self.$dialog); - - self.$dialog.ready(function() { - self.$taglist = self.$dialog.find('.taglist'); - self.$taginput = self.$dialog.find('.addinput'); - self.$taglist.on('change', 'input:checkbox', function(event) { - self._handleChanges(self.$taglist, self.$taginput); - }); - self.$taginput.on('input', function(event) { - self._handleChanges(self.$taglist, self.$taginput); - }); - self.deleteButton = { - text: t('core', 'Delete'), - click: function() { - self._deleteTags( - self, - type, - self._selectedIds() - ); - } - }; - self.addButton = { - text: t('core', 'Add'), - click: function() { - self._addTag( - self, - type, - self.$taginput.val() - ); - } - }; - - self._fillTagList(type, self.$taglist); - }); - - self.$dialog.ocdialog({ - title: t('core', 'Edit tags'), - closeOnEscape: true, - width: 250, - height: 'auto', - modal: true, - //buttons: buttonlist, - close: function(event, ui) { - try { - $(this).ocdialog('destroy').remove(); - } catch(e) {console.warn(e);} - self.$dialog = null; - } - }); - }) - .fail(function(status, error) { - // If the method is called while navigating away - // from the page, it is probably not needed ;) - if(status !== 0) { - alert(t('core', 'Error loading dialog template: {error}', {error: error})); - } - }); - }, - /** - * @param {string} type - * @param {string} tag - * @return jQuery.Promise which resolves with an array of ids - */ - getIdsForTag:function(type, tag) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/ids', {type: type}); - $.getJSON(url, {tag: tag}, function(response) { - if(response.status === 'success') { - defer.resolve(response.ids); - } else { - defer.reject(response); - } - }); - return defer.promise(); - }, - /** - * @param {string} type - * @return {*} jQuery.Promise which resolves with an array of ids - */ - getFavorites:function(type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/favorites', {type: type}); - $.getJSON(url, function(response) { - if(response.status === 'success') { - defer.resolve(response.ids); - } else { - defer.reject(response); - } - }); - return defer.promise(); - }, - /** - * @param {string} type - * @return {*} jQuery.Promise which resolves with an array of id/name objects - */ - getTags:function(type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}', {type: type}); - $.getJSON(url, function(response) { - if(response.status === 'success') { - defer.resolve(response.tags); - } else { - defer.reject(response); - } - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} tag - * @param {string} type - * @return {*} jQuery.Promise - */ - tagAs:function(id, tag, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/tag/{id}/', {type: type, id: id}); - $.post(url, {tag: tag}, function(response) { - if(response.status === 'success') { - defer.resolve(response); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} tag - * @param {string} type - * @return {*} jQuery.Promise - */ - unTag:function(id, tag, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - self = this, - url = OC.generateUrl('/tags/{type}/untag/{id}/', {type: type, id: id}); - $.post(url, {tag: tag}, function(response) { - if(response.status === 'success') { - defer.resolve(response); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} type - * @return {*} jQuery.Promise - */ - addToFavorites:function(id, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl( - '/tags/{type}/favorite/{id}/', - {type: type, id: id} - ); - $.post(url, function(response) { - if(response.status === 'success') { - defer.resolve(response); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} type - * @return {*} jQuery.Promise - */ - removeFromFavorites:function(id, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl( - '/tags/{type}/unfavorite/{id}/', - {type: type, id: id} - ); - $.post(url, function(response) { - if(response.status === 'success') { - defer.resolve(); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {string} tag - * @param {string} type - * @return {*} jQuery.Promise which resolves with an object with the name and the new id - */ - addTag:function(tag, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/add', {type: type}); - $.post(url,{tag:tag}, function(response) { - if(typeof cb == 'function') { - cb(response); - } - if(response.status === 'success') { - defer.resolve({id:response.id, name: tag}); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {array} tags - * @param {string} type - * @return {*} jQuery.Promise - */ - deleteTags:function(tags, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/delete', {type: type}); - if(!tags || !tags.length) { - throw new Error(t('core', 'No tags selected for deletion.')); - } - $.post(url, {tags:tags}, function(response) { - if(response.status === 'success') { - defer.resolve(response.tags); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - _update:function(tags, type) { - if(!this.$dialog) { - return; - } - var $taglist = this.$dialog.find('.taglist'), - self = this; - $taglist.empty(); - $.each(tags, function(idx, tag) { - var $item = self.$listTmpl.octemplate({id: tag.id, name: tag.name}); - $item.appendTo($taglist); - }); - $(this).trigger('change', {type: type, tags: tags}); - if(typeof this.changed === 'function') { - this.changed(tags); - } - }, - _getTemplate: function() { - var defer = $.Deferred(); - if(!this.$template) { - var self = this; - $.get(OC.filePath('core', 'templates', 'tags.html'), function(tmpl) { - self.$template = $(tmpl); - self.$listTmpl = self.$template.find('.taglist li:first-child').detach(); - defer.resolve(self.$template); - }) - .fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - } else { - defer.resolve(this.$template); - } - return defer.promise(); - }, - _fillTagList: function(type) { - var self = this; - $.when(this.getTags(type)) - .then(function(tags) { - self._update(tags, type); - }) - .fail(function(response) { - console.warn(response); - }); - }, - _selectedIds: function() { - return $.map(this.$taglist.find('input:checked'), function(b) {return $(b).val();}); - }, - _handleChanges: function($list, $input) { - var ids = this._selectedIds(); - var buttons = []; - if($input.val().length) { - buttons.push(this.addButton); - } - if(ids.length) { - buttons.push(this.deleteButton); - } - this.$dialog.ocdialog('option', 'buttons', buttons); - }, - _deleteTags: function(self, type, ids) { - $.when(self.deleteTags(ids, type)) - .then(function() { - self._fillTagList(type); - self.$dialog.ocdialog('option', 'buttons', []); - }) - .fail(function(response) { - console.warn(response); - }); - }, - _addTag: function(self, type, tag) { - $.when(self.addTag(tag, type)) - .then(function(tag) { - self._fillTagList(type); - self.$taginput.val('').trigger('input'); - }) - .fail(function(response) { - console.warn(response); - }); - } -}; -