define([ 'jquery', 'underscore', 'backbone', 'common', 'app/views/widgets/hl-item-view' ], function($, _, Backbone, Common, HLItemView) { 'use strict'; var StarredFileView = HLItemView.extend({ tagName: 'tr', template: _.template($('#starred-file-item-tmpl').html()), mobileTemplate: _.template($('#starred-file-item-mobile-tmpl').html()), events: { 'click .unstar': 'removeShare' }, initialize: function() { HLItemView.prototype.initialize.call(this); this.listenTo(this.model, "change", this.render); }, render: function () { var data = this.model.toJSON(); data['is_img'] = Common.imageCheck(data['file_name']); data['encoded_path'] = Common.encodePath(data['path']); data.encoded_thumbnail_src = this.model.get('encoded_thumbnail_src') || ''; var tmpl = $(window).width() >= 768 ? this.template : this.mobileTemplate; this.$el.html(tmpl(data)); if (app.pageOptions.enable_thumbnail) { this.$('.img-name-link').attr('data-mfp-src', Common.getUrl({ 'name': 'thumbnail_get', 'repo_id': data.repo_id, 'size': 1024, 'path': data.encoded_path })); } return this; }, removeShare: function() { var _this = this, repo_id = this.model.get('repo_id'), file_name = this.model.get('file_name'), path = this.model.get('path'); $.ajax({ url: Common.getUrl({name: 'starred_files'}) + '?p=' + encodeURIComponent(path) + '&repo_id=' + encodeURIComponent(repo_id), type: 'DELETE', beforeSend: Common.prepareCSRFToken, success: function() { _this.remove(); Common.feedback(gettext("Successfully unstared {placeholder}").replace('{placeholder}', file_name), 'success'); }, error: function (xhr) { Common.ajaxErrorHandler(xhr); } }); return false; } }); return StarredFileView; });