gridftp ui: clear selection for hidden items
[qcg-portal.git] / filex / static / filex / filex.js
index 396064e..7eabdd2 100644 (file)
@@ -126,7 +126,7 @@ $(function(){
         initialize: function(options) {
             this.view = options.view;
 
-            this.listenTo(this.model, 'change', this.render);
+            this.listenTo(this.model, 'change:checked', this.toggleChecked);
             this.listenTo(this.model, 'remove', this.remove);
             this.listenTo(this.model, 'hidden', this.toggleHidden);
         },
@@ -141,8 +141,7 @@ $(function(){
             var data = this.model.toJSON();
             data['url_params'] = $.param({
                 host: this.view.host,
-                path: this.view.path.full(),
-                name: this.model.get('name')
+                path: this.view.path.full() + '/' + this.model.get('name')
             });
             data['cid'] = this.model.cid;
 
@@ -153,7 +152,16 @@ $(function(){
         },
 
         toggleHidden: function() {
-            this.$el.toggleClass('hidden', this.model.isHidden() && !this.view.showHidden());
+            var isHidden = this.model.isHidden() && !this.view.showHidden();
+            this.$el.toggleClass('hidden', isHidden);
+
+            if (isHidden && this.model.get('checked'))
+                this.model.toggle();
+        },
+
+        toggleChecked: function(obj, value) {
+            this.$el.toggleClass('active', value);
+            this.$el.find('input[type="checkbox"]').prop('checked', value);
         },
 
         click: function(e) {
@@ -345,7 +353,7 @@ $(function(){
                 error: function(collection, response) {
                     view.files.reset();
 
-                    var msg = (response.responseJSON || {}).msg || 'Błąd serwera';
+                    var msg = (response.responseJSON || {}).error || 'Błąd serwera';
 
                     view.$noItems.hide();
                     view.$error.find('.msg').text(msg);