diff --git a/media/assets/scripts/app/views/add-pub-repo.ac498abbbfa6.js b/media/assets/scripts/app/views/add-pub-repo.ac498abbbfa6.js new file mode 100644 index 0000000000..4243475be3 --- /dev/null +++ b/media/assets/scripts/app/views/add-pub-repo.ac498abbbfa6.js @@ -0,0 +1,84 @@ +define([ + 'jquery', + 'simplemodal', + 'underscore', + 'backbone', + 'common', + 'app/collections/repos', + 'app/views/add-pubrepo-item' +], function($, simplemodal, _, Backbone, Common, + RepoCollection, AddPubrepoItem) { + 'use strict'; + + var AddPubRepoView = Backbone.View.extend({ + id: 'add-pubrepo-popup', + + template: _.template($('#add-pubrepo-popup-tmpl').html()), + + initialize: function(pubRepos) { + this.$el.html(this.template()).modal({}); + $('#simplemodal-container').css({'width':'auto', 'height':'auto'}); + + this.$table = this.$('table'); + this.$tableBody = this.$('tbody'); + this.$loadingTip = this.$('.loading-tip'); + + this.myRepos = new RepoCollection(); + this.pubRepos = pubRepos; + + this.listenTo(this.myRepos, 'reset', this.reset); + this.myRepos.fetch({reset: true}); + }, + + events: { + 'click .submit': 'submit' + }, + + submit: function () { + var myRepos = this.myRepos.where({'selected':true}), + _this = this, + requests = []; + + _.each(myRepos, function (repo){ + var repo_id = repo.id, + perm = 'rw'; + + if (repo.has('pub_perm')) { + perm = repo.get('pub_perm'); + } + + requests.push( + $.ajax({ + url: Common.getUrl({'name':'shared_repos', 'repo_id': repo_id}) + '?share_type=public&permission=' + perm, + type: 'PUT', + beforeSend: Common.prepareCSRFToken, + dataType: 'json', + error: function(xhr, textStatus, errorThrown) { + Common.ajaxErrorHandler(xhr, textStatus, errorThrown); + } + }) + ); + }) + + var defer = $.when.apply($, requests); + defer.done(function () { + // when all ajax request complete + $.modal.close(); + _this.pubRepos.fetch({reset: true}); + }); + }, + + addOne: function(model) { + var view = new AddPubrepoItem({model: model}); + this.$tableBody.append(view.render().el); + }, + + reset: function() { + this.$loadingTip.hide(); + this.$table.show() + this.myRepos.each(this.addOne, this); + } + + }); + return AddPubRepoView; +}); diff --git a/media/assets/scripts/app/views/add-pub-repo.js b/media/assets/scripts/app/views/add-pub-repo.js index 8108af011c..4243475be3 100644 --- a/media/assets/scripts/app/views/add-pub-repo.js +++ b/media/assets/scripts/app/views/add-pub-repo.js @@ -4,24 +4,81 @@ define([ 'underscore', 'backbone', 'common', - 'app/views/add-repo' -], function($, simplemodal, _, Backbone, Common, AddRepoView) { + 'app/collections/repos', + 'app/views/add-pubrepo-item' +], function($, simplemodal, _, Backbone, Common, + RepoCollection, AddPubrepoItem) { 'use strict'; - var AddPubRepoView = AddRepoView.extend({ - templateData: function() { - return { - showSharePerm: true - }; + var AddPubRepoView = Backbone.View.extend({ + id: 'add-pubrepo-popup', + + template: _.template($('#add-pubrepo-popup-tmpl').html()), + + initialize: function(pubRepos) { + this.$el.html(this.template()).modal({}); + $('#simplemodal-container').css({'width':'auto', 'height':'auto'}); + + this.$table = this.$('table'); + this.$tableBody = this.$('tbody'); + this.$loadingTip = this.$('.loading-tip'); + + this.myRepos = new RepoCollection(); + this.pubRepos = pubRepos; + + this.listenTo(this.myRepos, 'reset', this.reset); + this.myRepos.fetch({reset: true}); }, - newAttributes: function() { - var baseAttrs = AddRepoView.prototype.newAttributes.apply(this); - - return _.extend(baseAttrs, {'permission': $('select[name=permission]', this.$el).val()}); + events: { + 'click .submit': 'submit' }, + submit: function () { + var myRepos = this.myRepos.where({'selected':true}), + _this = this, + requests = []; + + _.each(myRepos, function (repo){ + var repo_id = repo.id, + perm = 'rw'; + + if (repo.has('pub_perm')) { + perm = repo.get('pub_perm'); + } + + requests.push( + $.ajax({ + url: Common.getUrl({'name':'shared_repos', 'repo_id': repo_id}) + '?share_type=public&permission=' + perm, + type: 'PUT', + beforeSend: Common.prepareCSRFToken, + dataType: 'json', + error: function(xhr, textStatus, errorThrown) { + Common.ajaxErrorHandler(xhr, textStatus, errorThrown); + } + }) + ); + }) + + var defer = $.when.apply($, requests); + defer.done(function () { + // when all ajax request complete + $.modal.close(); + _this.pubRepos.fetch({reset: true}); + }); + }, + + addOne: function(model) { + var view = new AddPubrepoItem({model: model}); + this.$tableBody.append(view.render().el); + }, + + reset: function() { + this.$loadingTip.hide(); + this.$table.show() + this.myRepos.each(this.addOne, this); + } + }); - return AddPubRepoView; }); diff --git a/media/assets/scripts/app/views/add-pubrepo-item.b45a3bf4456b.js b/media/assets/scripts/app/views/add-pubrepo-item.b45a3bf4456b.js new file mode 100644 index 0000000000..983cf27a4c --- /dev/null +++ b/media/assets/scripts/app/views/add-pubrepo-item.b45a3bf4456b.js @@ -0,0 +1,45 @@ +define([ + 'jquery', + 'underscore', + 'backbone', + 'common' +], function($, _, Backbone, Common) { + 'use strict'; + + var AddPubrepoItem = Backbone.View.extend({ + tagName: 'tr', + + template: _.template($('#add-pubrepo-item-tmpl').html()), + + events: { + 'click .select': 'select', + 'change .share-permission-select': 'selectPerm' + }, + + initialize: function () { + }, + + selectPerm: function (e) { + var perm = $(e.currentTarget).val(); + this.model.set({'pub_perm': perm}, {silent:true}); + }, + + select: function () { + var checkbox = this.$('.checkbox'); + checkbox.toggleClass('checkbox-checked'); + if (checkbox.hasClass('checkbox-checked')) { + this.model.set({'selected':true}, {silent:true}); + } else { + this.model.set({'selected':false}, {silent:true}); + } + }, + + render: function () { + this.$el.html(this.template(this.model.toJSON())); + return this; + }, + + }); + + return AddPubrepoItem; +}); diff --git a/media/assets/scripts/app/views/add-pubrepo-item.js b/media/assets/scripts/app/views/add-pubrepo-item.js new file mode 100644 index 0000000000..983cf27a4c --- /dev/null +++ b/media/assets/scripts/app/views/add-pubrepo-item.js @@ -0,0 +1,45 @@ +define([ + 'jquery', + 'underscore', + 'backbone', + 'common' +], function($, _, Backbone, Common) { + 'use strict'; + + var AddPubrepoItem = Backbone.View.extend({ + tagName: 'tr', + + template: _.template($('#add-pubrepo-item-tmpl').html()), + + events: { + 'click .select': 'select', + 'change .share-permission-select': 'selectPerm' + }, + + initialize: function () { + }, + + selectPerm: function (e) { + var perm = $(e.currentTarget).val(); + this.model.set({'pub_perm': perm}, {silent:true}); + }, + + select: function () { + var checkbox = this.$('.checkbox'); + checkbox.toggleClass('checkbox-checked'); + if (checkbox.hasClass('checkbox-checked')) { + this.model.set({'selected':true}, {silent:true}); + } else { + this.model.set({'selected':false}, {silent:true}); + } + }, + + render: function () { + this.$el.html(this.template(this.model.toJSON())); + return this; + }, + + }); + + return AddPubrepoItem; +}); diff --git a/media/assets/scripts/app/views/add-repo.14400988204f.js b/media/assets/scripts/app/views/add-repo.1267fce1273a.js similarity index 98% rename from media/assets/scripts/app/views/add-repo.14400988204f.js rename to media/assets/scripts/app/views/add-repo.1267fce1273a.js index 44993dbe3c..72f62250ec 100644 --- a/media/assets/scripts/app/views/add-repo.14400988204f.js +++ b/media/assets/scripts/app/views/add-repo.1267fce1273a.js @@ -65,7 +65,7 @@ define([ prepend: true, // show newly created repo at first line success: function() { if (repos.length == 1) { - repos.fetch({reset: true}); + repos.reset(repos.models); } }, error: function(xhr, textStatus, errorThrown) { diff --git a/media/assets/scripts/app/views/add-repo.js b/media/assets/scripts/app/views/add-repo.js index 44993dbe3c..72f62250ec 100644 --- a/media/assets/scripts/app/views/add-repo.js +++ b/media/assets/scripts/app/views/add-repo.js @@ -65,7 +65,7 @@ define([ prepend: true, // show newly created repo at first line success: function() { if (repos.length == 1) { - repos.fetch({reset: true}); + repos.reset(repos.models); } }, error: function(xhr, textStatus, errorThrown) { diff --git a/media/assets/scripts/app/views/add-pub-repo.31eb194e78d8.js b/media/assets/scripts/app/views/create-pub-repo.6982b6e82634.js similarity index 87% rename from media/assets/scripts/app/views/add-pub-repo.31eb194e78d8.js rename to media/assets/scripts/app/views/create-pub-repo.6982b6e82634.js index 8108af011c..8c87f8a304 100644 --- a/media/assets/scripts/app/views/add-pub-repo.31eb194e78d8.js +++ b/media/assets/scripts/app/views/create-pub-repo.6982b6e82634.js @@ -8,7 +8,7 @@ define([ ], function($, simplemodal, _, Backbone, Common, AddRepoView) { 'use strict'; - var AddPubRepoView = AddRepoView.extend({ + var CreatePubRepoView = AddRepoView.extend({ templateData: function() { return { showSharePerm: true @@ -23,5 +23,5 @@ define([ }); - return AddPubRepoView; + return CreatePubRepoView; }); diff --git a/media/assets/scripts/app/views/create-pub-repo.js b/media/assets/scripts/app/views/create-pub-repo.js new file mode 100644 index 0000000000..8c87f8a304 --- /dev/null +++ b/media/assets/scripts/app/views/create-pub-repo.js @@ -0,0 +1,27 @@ +define([ + 'jquery', + 'simplemodal', + 'underscore', + 'backbone', + 'common', + 'app/views/add-repo' +], function($, simplemodal, _, Backbone, Common, AddRepoView) { + 'use strict'; + + var CreatePubRepoView = AddRepoView.extend({ + templateData: function() { + return { + showSharePerm: true + }; + }, + + newAttributes: function() { + var baseAttrs = AddRepoView.prototype.newAttributes.apply(this); + + return _.extend(baseAttrs, {'permission': $('select[name=permission]', this.$el).val()}); + }, + + }); + + return CreatePubRepoView; +}); diff --git a/media/assets/scripts/app/views/dir.532398c75086.js b/media/assets/scripts/app/views/dir.48e6bfde5c61.js similarity index 98% rename from media/assets/scripts/app/views/dir.532398c75086.js rename to media/assets/scripts/app/views/dir.48e6bfde5c61.js index 28cd77bf3a..03b7262486 100644 --- a/media/assets/scripts/app/views/dir.532398c75086.js +++ b/media/assets/scripts/app/views/dir.48e6bfde5c61.js @@ -322,6 +322,7 @@ define([ var new_dirent = dir.add({ 'is_dir': true, 'obj_name': data['name'], + 'perm': 'rw', 'last_modified': new Date().getTime() / 1000, 'last_update': gettext("Just now"), 'p_dpath': data['p_dpath'] @@ -388,6 +389,7 @@ define([ 'obj_id': '0000000000000000000000000000000000000000', 'file_icon': 'file.png', 'starred': false, + 'perm': 'rw', 'last_modified': new Date().getTime() / 1000, 'last_update': gettext("Just now") }, {silent: true}); @@ -550,7 +552,7 @@ define([ _this.$('#multi-dirents-op').hide(); } else { $(selected_dirents).each(function() { - if (this.get('obj_name') in data['deleted']) { + if (data['deleted'].indexOf(this.get('obj_name')) != -1) { dirents.remove(this); } }); @@ -567,11 +569,11 @@ define([ } if (not_del_len > 0) { if (not_del_len == 1) { - msg_f = gettext("Internal error. Failed to delete %(name)s."); + msg_f = gettext("Failed to delete %(name)s."); } else if (not_del_len == 2) { - msg_f = gettext("Internal error. Failed to delete %(name)s and 1 other item."); + msg_f = gettext("Failed to delete %(name)s and 1 other item."); } else { - msg_f = gettext("Internal error. Failed to delete %(name)s and %(amount)s other items."); + msg_f = gettext("Failed to delete %(name)s and %(amount)s other items."); } msg_f = msg_f.replace('%(name)s', Common.HTMLescape(data['undeleted'][0])).replace('%(amount)s', not_del_len - 1); Common.feedback(msg_f, 'error'); diff --git a/media/assets/scripts/app/views/dir.js b/media/assets/scripts/app/views/dir.js index 28cd77bf3a..03b7262486 100644 --- a/media/assets/scripts/app/views/dir.js +++ b/media/assets/scripts/app/views/dir.js @@ -322,6 +322,7 @@ define([ var new_dirent = dir.add({ 'is_dir': true, 'obj_name': data['name'], + 'perm': 'rw', 'last_modified': new Date().getTime() / 1000, 'last_update': gettext("Just now"), 'p_dpath': data['p_dpath'] @@ -388,6 +389,7 @@ define([ 'obj_id': '0000000000000000000000000000000000000000', 'file_icon': 'file.png', 'starred': false, + 'perm': 'rw', 'last_modified': new Date().getTime() / 1000, 'last_update': gettext("Just now") }, {silent: true}); @@ -550,7 +552,7 @@ define([ _this.$('#multi-dirents-op').hide(); } else { $(selected_dirents).each(function() { - if (this.get('obj_name') in data['deleted']) { + if (data['deleted'].indexOf(this.get('obj_name')) != -1) { dirents.remove(this); } }); @@ -567,11 +569,11 @@ define([ } if (not_del_len > 0) { if (not_del_len == 1) { - msg_f = gettext("Internal error. Failed to delete %(name)s."); + msg_f = gettext("Failed to delete %(name)s."); } else if (not_del_len == 2) { - msg_f = gettext("Internal error. Failed to delete %(name)s and 1 other item."); + msg_f = gettext("Failed to delete %(name)s and 1 other item."); } else { - msg_f = gettext("Internal error. Failed to delete %(name)s and %(amount)s other items."); + msg_f = gettext("Failed to delete %(name)s and %(amount)s other items."); } msg_f = msg_f.replace('%(name)s', Common.HTMLescape(data['undeleted'][0])).replace('%(amount)s', not_del_len - 1); Common.feedback(msg_f, 'error'); diff --git a/media/assets/scripts/app/views/dirent.d6898efae7ba.js b/media/assets/scripts/app/views/dirent.ec9bbaa906dc.js similarity index 99% rename from media/assets/scripts/app/views/dirent.d6898efae7ba.js rename to media/assets/scripts/app/views/dirent.ec9bbaa906dc.js index af965e8a29..ddfad60101 100644 --- a/media/assets/scripts/app/views/dirent.d6898efae7ba.js +++ b/media/assets/scripts/app/views/dirent.ec9bbaa906dc.js @@ -37,7 +37,6 @@ define([ encoded_path: Common.encodePath(dirent_path), category: dir.category, repo_id: dir.repo_id, - user_perm: dir.user_perm, is_repo_owner: dir.is_repo_owner, repo_encrypted: dir.encrypted })); @@ -167,8 +166,9 @@ define([ var options = { 'is_repo_owner': dir.is_repo_owner, 'is_virtual': dir.is_virtual, - 'user_perm': dir.user_perm, + 'user_perm': this.model.get('perm'), 'repo_id': dir.repo_id, + 'repo_encrypted': false, 'is_dir': this.model.get('is_dir') ? true : false, 'dirent_path': dirent_path, 'obj_name': obj_name diff --git a/media/assets/scripts/app/views/dirent.js b/media/assets/scripts/app/views/dirent.js index af965e8a29..ddfad60101 100644 --- a/media/assets/scripts/app/views/dirent.js +++ b/media/assets/scripts/app/views/dirent.js @@ -37,7 +37,6 @@ define([ encoded_path: Common.encodePath(dirent_path), category: dir.category, repo_id: dir.repo_id, - user_perm: dir.user_perm, is_repo_owner: dir.is_repo_owner, repo_encrypted: dir.encrypted })); @@ -167,8 +166,9 @@ define([ var options = { 'is_repo_owner': dir.is_repo_owner, 'is_virtual': dir.is_virtual, - 'user_perm': dir.user_perm, + 'user_perm': this.model.get('perm'), 'repo_id': dir.repo_id, + 'repo_encrypted': false, 'is_dir': this.model.get('is_dir') ? true : false, 'dirent_path': dirent_path, 'obj_name': obj_name diff --git a/media/assets/scripts/app/views/fileupload.0268aa292267.js b/media/assets/scripts/app/views/fileupload.1165f0ca390e.js similarity index 99% rename from media/assets/scripts/app/views/fileupload.0268aa292267.js rename to media/assets/scripts/app/views/fileupload.1165f0ca390e.js index e371e3d158..537660ee3a 100644 --- a/media/assets/scripts/app/views/fileupload.0268aa292267.js +++ b/media/assets/scripts/app/views/fileupload.1165f0ca390e.js @@ -294,6 +294,7 @@ define([ 'file_size': Common.fileSizeFormat(file.size, 1), 'obj_id': file.id, 'file_icon': 'file.png', + 'perm': 'rw', 'last_update': gettext("Just now"), 'starred': false }, {silent: true}); @@ -306,6 +307,7 @@ define([ var new_dirent = dirents.add({ 'is_dir': true, 'obj_name': new_name, + 'perm': 'rw', 'last_modified': now, 'last_update': gettext("Just now"), 'p_dpath': path + new_name diff --git a/media/assets/scripts/app/views/fileupload.js b/media/assets/scripts/app/views/fileupload.js index e371e3d158..537660ee3a 100644 --- a/media/assets/scripts/app/views/fileupload.js +++ b/media/assets/scripts/app/views/fileupload.js @@ -294,6 +294,7 @@ define([ 'file_size': Common.fileSizeFormat(file.size, 1), 'obj_id': file.id, 'file_icon': 'file.png', + 'perm': 'rw', 'last_update': gettext("Just now"), 'starred': false }, {silent: true}); @@ -306,6 +307,7 @@ define([ var new_dirent = dirents.add({ 'is_dir': true, 'obj_name': new_name, + 'perm': 'rw', 'last_modified': now, 'last_update': gettext("Just now"), 'p_dpath': path + new_name diff --git a/media/assets/scripts/app/views/organization.88806cc007ce.js b/media/assets/scripts/app/views/organization.6af5e065b34e.js similarity index 95% rename from media/assets/scripts/app/views/organization.88806cc007ce.js rename to media/assets/scripts/app/views/organization.6af5e065b34e.js index 4024c4f9f8..fd52366502 100644 --- a/media/assets/scripts/app/views/organization.88806cc007ce.js +++ b/media/assets/scripts/app/views/organization.6af5e065b34e.js @@ -5,9 +5,10 @@ define([ 'common', 'app/collections/pub-repos', 'app/views/organization-repo', + 'app/views/create-pub-repo', 'app/views/add-pub-repo' ], function($, _, Backbone, Common, PubRepoCollection, OrganizationRepoView, - AddPubRepoView) { + CreatePubRepoView, AddPubRepoView) { 'use strict'; var OrganizationView = Backbone.View.extend({ @@ -34,11 +35,16 @@ define([ events: { 'click #organization-repos .repo-create': 'createRepo', + 'click #organization-repos .add-pub-repo': 'addRepo', 'click #organization-repos .by-name': 'sortByName', 'click #organization-repos .by-time': 'sortByTime' }, createRepo: function() { + new CreatePubRepoView(this.repos); + }, + + addRepo: function() { new AddPubRepoView(this.repos); }, diff --git a/media/assets/scripts/app/views/organization.js b/media/assets/scripts/app/views/organization.js index 4024c4f9f8..fd52366502 100644 --- a/media/assets/scripts/app/views/organization.js +++ b/media/assets/scripts/app/views/organization.js @@ -5,9 +5,10 @@ define([ 'common', 'app/collections/pub-repos', 'app/views/organization-repo', + 'app/views/create-pub-repo', 'app/views/add-pub-repo' ], function($, _, Backbone, Common, PubRepoCollection, OrganizationRepoView, - AddPubRepoView) { + CreatePubRepoView, AddPubRepoView) { 'use strict'; var OrganizationView = Backbone.View.extend({ @@ -34,11 +35,16 @@ define([ events: { 'click #organization-repos .repo-create': 'createRepo', + 'click #organization-repos .add-pub-repo': 'addRepo', 'click #organization-repos .by-name': 'sortByName', 'click #organization-repos .by-time': 'sortByTime' }, createRepo: function() { + new CreatePubRepoView(this.repos); + }, + + addRepo: function() { new AddPubRepoView(this.repos); }, diff --git a/media/assets/scripts/app/views/repo.ddaeff40f80b.js b/media/assets/scripts/app/views/repo.d9ea664e60db.js similarity index 98% rename from media/assets/scripts/app/views/repo.ddaeff40f80b.js rename to media/assets/scripts/app/views/repo.d9ea664e60db.js index da1fc16934..2c5a80f4e1 100644 --- a/media/assets/scripts/app/views/repo.ddaeff40f80b.js +++ b/media/assets/scripts/app/views/repo.d9ea664e60db.js @@ -92,6 +92,7 @@ define([ 'is_virtual': this.model.get('virtual'), 'user_perm': this.model.get('permission'), 'repo_id': this.model.get('id'), + 'repo_encrypted': this.model.get('encrypted'), 'is_dir': true, 'dirent_path': '/', 'obj_name': this.model.get('name') diff --git a/media/assets/scripts/app/views/repo.js b/media/assets/scripts/app/views/repo.js index da1fc16934..2c5a80f4e1 100644 --- a/media/assets/scripts/app/views/repo.js +++ b/media/assets/scripts/app/views/repo.js @@ -92,6 +92,7 @@ define([ 'is_virtual': this.model.get('virtual'), 'user_perm': this.model.get('permission'), 'repo_id': this.model.get('id'), + 'repo_encrypted': this.model.get('encrypted'), 'is_dir': true, 'dirent_path': '/', 'obj_name': this.model.get('name') diff --git a/media/assets/scripts/app/views/share.0e1c98b78501.js b/media/assets/scripts/app/views/share.94e9b1add9da.js similarity index 97% rename from media/assets/scripts/app/views/share.0e1c98b78501.js rename to media/assets/scripts/app/views/share.94e9b1add9da.js index df5bca2efa..be2a926cb2 100644 --- a/media/assets/scripts/app/views/share.0e1c98b78501.js +++ b/media/assets/scripts/app/views/share.94e9b1add9da.js @@ -18,6 +18,7 @@ define([ this.is_virtual = options.is_virtual; this.user_perm = options.user_perm; this.repo_id = options.repo_id; + this.repo_encrypted = options.repo_encrypted; this.dirent_path = options.dirent_path; this.obj_name = options.obj_name; this.is_dir = options.is_dir; @@ -33,12 +34,14 @@ define([ this.$("#share-tabs").tabs(); - this.downloadLinkPanelInit(); + if (!this.repo_encrypted) { + this.downloadLinkPanelInit(); + } if (!this.is_dir && this.is_repo_owner) { this.filePrivateSharePanelInit(); } if (this.is_dir) { - if (this.user_perm == 'rw') { + if (this.user_perm == 'rw' && !this.repo_encrypted) { this.uploadLinkPanelInit(); } if (!this.is_virtual && this.is_repo_owner) { @@ -55,7 +58,8 @@ define([ is_repo_owner: this.is_repo_owner, is_virtual: this.is_virtual, user_perm: this.user_perm, - repo_id: this.repo_id + repo_id: this.repo_id, + repo_encrypted: this.repo_encrypted })); return this; @@ -110,6 +114,7 @@ define([ _this.download_link = data["download_link"]; // for 'link send' _this.download_link_token = data["token"]; // for 'link delete' _this.$('#download-link').html(data['download_link']); // TODO: + _this.$('#direct-dl-link').html(data['download_link']+'?raw=1'); // TODO: _this.$('#download-link-operations').removeClass('hide'); } else { _this.$('#generate-download-link-form').removeClass('hide'); @@ -472,6 +477,7 @@ define([ }); form.removeClass('hide'); + this.$('.loading-tip').hide(); }, dirPrivateShare: function () { diff --git a/media/assets/scripts/app/views/share.js b/media/assets/scripts/app/views/share.js index df5bca2efa..be2a926cb2 100644 --- a/media/assets/scripts/app/views/share.js +++ b/media/assets/scripts/app/views/share.js @@ -18,6 +18,7 @@ define([ this.is_virtual = options.is_virtual; this.user_perm = options.user_perm; this.repo_id = options.repo_id; + this.repo_encrypted = options.repo_encrypted; this.dirent_path = options.dirent_path; this.obj_name = options.obj_name; this.is_dir = options.is_dir; @@ -33,12 +34,14 @@ define([ this.$("#share-tabs").tabs(); - this.downloadLinkPanelInit(); + if (!this.repo_encrypted) { + this.downloadLinkPanelInit(); + } if (!this.is_dir && this.is_repo_owner) { this.filePrivateSharePanelInit(); } if (this.is_dir) { - if (this.user_perm == 'rw') { + if (this.user_perm == 'rw' && !this.repo_encrypted) { this.uploadLinkPanelInit(); } if (!this.is_virtual && this.is_repo_owner) { @@ -55,7 +58,8 @@ define([ is_repo_owner: this.is_repo_owner, is_virtual: this.is_virtual, user_perm: this.user_perm, - repo_id: this.repo_id + repo_id: this.repo_id, + repo_encrypted: this.repo_encrypted })); return this; @@ -110,6 +114,7 @@ define([ _this.download_link = data["download_link"]; // for 'link send' _this.download_link_token = data["token"]; // for 'link delete' _this.$('#download-link').html(data['download_link']); // TODO: + _this.$('#direct-dl-link').html(data['download_link']+'?raw=1'); // TODO: _this.$('#download-link-operations').removeClass('hide'); } else { _this.$('#generate-download-link-form').removeClass('hide'); @@ -472,6 +477,7 @@ define([ }); form.removeClass('hide'); + this.$('.loading-tip').hide(); }, dirPrivateShare: function () { diff --git a/media/assets/scripts/common.506c22f2f4e4.js b/media/assets/scripts/common.893089883048.js similarity index 99% rename from media/assets/scripts/common.506c22f2f4e4.js rename to media/assets/scripts/common.893089883048.js index 96ae4514ec..a3eeb0b1c5 100644 --- a/media/assets/scripts/common.506c22f2f4e4.js +++ b/media/assets/scripts/common.893089883048.js @@ -111,18 +111,18 @@ define([ case 'set_user_folder_perm': return siteRoot + 'ajax/repo/' + options.repo_id + '/set-user-folder-perm/'; case 'set_group_folder_perm': return siteRoot + 'ajax/repo/' + options.repo_id + '/set-group-folder-perm/'; case 'starred_files': return siteRoot + 'api2/starredfiles/'; + case 'shared_repos': return siteRoot + 'api2/shared-repos/' + options.repo_id + '/'; } }, showConfirm: function(title, content, yesCallback) { var $popup = $("#confirm-popup"); var $cont = $('#confirm-con'); - var $container = $('#simplemodal-container'); var $yesBtn = $('#confirm-yes'); $cont.html('
' + content + '
'); $popup.modal({appendTo: '#main'}); - $container.css({'height':'auto'}); + $('#simplemodal-container').css({'height':'auto'}); $yesBtn.click(yesCallback); }, @@ -133,7 +133,7 @@ define([ feedback: function(con, type, time) { var time = time || 5000; - if ($('.messages')[0]) { + if ($('.messages').length > 0) { $('.messages').html('' + content + '
'); $popup.modal({appendTo: '#main'}); - $container.css({'height':'auto'}); + $('#simplemodal-container').css({'height':'auto'}); $yesBtn.click(yesCallback); }, @@ -133,7 +133,7 @@ define([ feedback: function(con, type, time) { var time = time || 5000; - if ($('.messages')[0]) { + if ($('.messages').length > 0) { $('.messages').html('$2>")+c[2],i=c[0];while(i--)u=u.lastChild;!l.leadingWhitespace&&ut.test(s)&&v.push(t.createTextNode(ut.exec(s)[0]));if(!l.tbody){s=a==="table"&&!lt.test(s)?u.firstChild:c[1]==="
t |
"+n+"
"),i.modal({appendTo:"#main"}),o.css({height:"auto"}),u.click(r)},closeModal:function(){e.modal.close()},feedback:function(t,n,r){var r=r||5e3;if(e(".messages")[0])e(".messages").html(''+o+"
"):e(".error",t).removeClass("hide")}}})}}),e(window).resize(function(){var t=e("#notice-popup");t.hasClass("hide")||e(".con",t).css({"max-height":e(window).height()-e("#header").outerHeight()-e(".hd",t).outerHeight()-3})}),e("#notice-popup .close").click(function(){e("#notice-popup").addClass("hide"),e("#notice-list .unread").length>0&&e.ajax({url:_this.getUrl({name:"set_notices_seen"}),dataType:"json",success:function(){e(".num",t).html(0).addClass("hide"),document.title=n}})}),e(document).click(function(t){_this.closePopup(t,e("#notice-popup"),e("#notice-icon"))})},getContacts:function(){this.ajaxGet({get_url:this.getUrl({name:"get_user_contacts"}),after_op_success:function(e){app.pageOptions.contacts=e.contacts}})},closeTopNoticeBar:function(){if(!app.pageOptions.cur_note)return!1;var t=app.pageOptions.cur_note.id;e("#info-bar").addClass("hide");if(navigator.cookieEnabled){var n=new Date,r=document.cookie.split("; "),i=!1;n.setTime(n.getTime()+12096e5),t+="; expires="+n.toGMTString()+"; path="+app.config.siteRoot;for(var s=0,o=r.length;s