diff --git a/media/scripts/app/views/dir.js b/media/scripts/app/views/dir.js index d2380b6a3c..2169caf96a 100644 --- a/media/scripts/app/views/dir.js +++ b/media/scripts/app/views/dir.js @@ -82,9 +82,10 @@ define([ showDir: function(category, repo_id, path) { this.$el.show(); this.$dirent_list.empty(); - var loading_tip = this.$('.loading-tip').show(), - dir = this.dir; + var loading_tip = this.$('.loading-tip').show(); + var dir = this.dir; dir.setPath(category, repo_id, path); + var _this = this; dir.fetch({ reset: true, data: {'p': path}, @@ -95,8 +96,46 @@ define([ loading_tip.hide(); } }, - error: function () { // todo + error: function (collection, response, opts) { loading_tip.hide(); + var $el_con = _this.$('.repo-file-list-topbar, .repo-file-list').hide(); + var $error = _this.$('.error'); + var err_msg; + if (response.responseText) { + err_msg = response.responseJSON.error; + } else { + err_msg = gettext('Please check the network.'); + } + $error.html(err_msg).show(); + + if (response.responseJSON.lib_need_decrypt) { + var form = $($('#repo-decrypt-form-template').html()); + _this.$el.append(form); + form.submit(function() { + var passwd = $.trim($('[name="password"]', form).val()); + if (!passwd) { + $('.error', form).html(gettext("Password is required.")).removeClass('hide'); + return false; + } + Common.ajaxPost({ + form: form, + form_id: form.attr('id'), + post_url: Common.getUrl({'name':'repo_set_password'}), + post_data: { + repo_id: repo_id, + password: passwd, + username: app.pageOptions.username + }, + after_op_success: function() { + form.remove(); + $error.html('').hide(); + $el_con.show(); + _this.showDir(category, repo_id, path); + } + }); + return false; + }); + } } }); }, diff --git a/media/scripts/app/views/dirent.js b/media/scripts/app/views/dirent.js index e962442ce8..829e42f168 100644 --- a/media/scripts/app/views/dirent.js +++ b/media/scripts/app/views/dirent.js @@ -16,7 +16,6 @@ define([ tagName: 'tr', template: _.template(direntTemplate), - shareTemplate: _.template($("#share-popup-template").html()), renameTemplate: _.template($("#rename-form-template").html()), mvcpTemplate: _.template($("#mvcp-form-template").html()), mvProgressTemplate: _.template($("#mv-progress-popup-template").html()), diff --git a/media/scripts/common.js b/media/scripts/common.js index f76a068f02..5fdd4fc1f0 100644 --- a/media/scripts/common.js +++ b/media/scripts/common.js @@ -99,6 +99,8 @@ define([ case 'set_notices_seen': return siteRoot + 'ajax/set_notices_seen/'; case 'get_unseen_notices_num': return siteRoot + 'ajax/unseen-notices-count/'; case 'set_notice_seen_by_id': return siteRoot + 'ajax/set_notice_seen_by_id/'; + + case 'repo_set_password': return siteRoot + 'repo/set_password/'; } }, diff --git a/seahub/templates/js/dir-view.html b/seahub/templates/js/dir-view.html index feb971cc19..8b8e68edde 100644 --- a/seahub/templates/js/dir-view.html +++ b/seahub/templates/js/dir-view.html @@ -1,26 +1,26 @@ {% load i18n %}
-
-

-
-
- - - - - - - - - - - - - - -
- - {% trans "Name"%} {% trans "Size"%}{% trans "Last Update" %}
- {% trans 'Loading...' %} +
+

+
+
+ + + + + + + + + + + + + + +
+ + {% trans "Name"%} {% trans "Size"%}{% trans "Last Update" %}
+ {% trans 'Loading...' %} +

- diff --git a/seahub/templates/js/lib-op-popups.html b/seahub/templates/js/lib-op-popups.html index 067cad69d6..ffacf55717 100644 --- a/seahub/templates/js/lib-op-popups.html +++ b/seahub/templates/js/lib-op-popups.html @@ -103,28 +103,12 @@ -
-

{% trans "Update %(file_name)s" %}

-
{% csrf_token %} - -
- - {% trans "Choose a file" %} - - - {% if max_upload_file_size %} - ({% blocktrans with max_file_size=max_upload_file_size|filesizeformat %}Smaller than {{ max_file_size }}{% endblocktrans %}) - {% endif %} -
-
-
-
-
-
-

{% trans "Saving..." %}

-
-
-
-
- diff --git a/seahub/templates/myhome.html b/seahub/templates/myhome.html index d05d9aadb0..28f5a7f22c 100644 --- a/seahub/templates/myhome.html +++ b/seahub/templates/myhome.html @@ -203,6 +203,7 @@ app["pageOptions"] = { {% endfor %} return groups; })(), + username: "{{request.user.username}}", repo_password_min_length: {{ repo_password_min_length }}, enable_upload_folder: {% if enable_upload_folder %} true {% else %} false {% endif %}, max_upload_file_size: {% if max_upload_file_size %} {{ max_upload_file_size }} {% else %} '' {% endif %}, diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index 3fad725897..bee03f3d56 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -424,7 +424,7 @@ def list_lib_dir(request, repo_id): if repo.encrypted \ and not seafile_api.is_password_set(repo.id, username): err_msg = _(u'Library is encrypted.') - return HttpResponse(json.dumps({'error': err_msg}), + return HttpResponse(json.dumps({'error': err_msg, 'lib_need_decrypt': True}), status=403, content_type=content_type) head_commit = get_commit(repo.id, repo.version, repo.head_cmmt_id)