diff options
| author | Nathan Kinkade <nath@nkinka.de> | 2013-02-14 14:28:46 +0000 | 
|---|---|---|
| committer | Nathan Kinkade <nath@nkinka.de> | 2013-02-14 14:28:46 +0000 | 
| commit | 711651f727e093cc7357a6bbff6bd992fd6dfd80 (patch) | |
| tree | 2dadc1c06acf1ab3d42d3ed5415568535db54416 /modules/organize/views | |
| parent | 0047af90bf4db08b22838e6ded22a7fa70cee98a (diff) | |
| parent | e5ed05004f005bdccdbf68e199ae2324ad97e895 (diff) | |
Merge branch 'master' of git://github.com/gallery/gallery3
Diffstat (limited to 'modules/organize/views')
| -rw-r--r-- | modules/organize/views/organize_frame.html.php | 74 | 
1 files changed, 70 insertions, 4 deletions
| diff --git a/modules/organize/views/organize_frame.html.php b/modules/organize/views/organize_frame.html.php index 51d49104..3a70ccff 100644 --- a/modules/organize/views/organize_frame.html.php +++ b/modules/organize/views/organize_frame.html.php @@ -104,9 +104,33 @@        });      } +    var tag_selected_items = function(tag) { +      var nodes = thumb_data_view.getSelectedNodes(); +      var item_ids = []; +      for (var i = 0; i != nodes.length; i++) { +        var node = Ext.fly(nodes[i]); +        item_ids.push(get_id_from_node(node)); +      } +      start_busy(<?= t("Tagging...")->for_js() ?>); +      Ext.Ajax.request({ +        url: '<?= url::site("organize/tag") ?>', +        method: "post", +        success: function() { +          stop_busy(); +          reload_album_data(); +        }, +        failure: show_generic_error, +        params: { +          item_ids: item_ids.join(","), +          tag_names: tag, +          csrf: '<?= access::csrf_token() ?>' +        } +      }); +    }; +      var delete_selected_items = function() {        var nodes = thumb_data_view.getSelectedNodes(); -      item_ids = []; +      var item_ids = [];        for (var i = 0; i != nodes.length; i++) {          var node = Ext.fly(nodes[i]);          item_ids.push(get_id_from_node(node)); @@ -166,8 +190,10 @@              getDragData: function(e) {                var target = e.getTarget(v.itemSelector, 10);                if (target) { -                if (!v.isSelected(target)) { -                  v.onClick(e); +                if (e.ctrlKey == false) { +                  if (!v.isSelected(target)) { +                    v.onClick(e); +                  }                  }                  var selected_nodes = v.getSelectedNodes();                  var drag_data = { @@ -254,6 +280,7 @@            });          },          "selectionchange": function(v, selections) { +          tag_button.setDisabled(!selections.length || !current_album_editable || !tag_textfield.getValue());            delete_button.setDisabled(!selections.length || !current_album_editable);          }        }, @@ -330,6 +357,31 @@        displayField: "value"      }); +    var tag_textfield = new Ext.form.TextField({ +      flex: 4, +      enableKeyEvents: true, +      listeners: { +        "keyup": function(v, e) { +          var nodes = thumb_data_view.getSelectedNodes(); +          tag_button.setDisabled(!nodes.length || !current_album_editable || !tag_textfield.getValue()); +        } +      } +    }); + +    var tag_button = new Ext.Button({ +      flex: 2, +        text: <?= t("Tag")->for_js() ?>, +        cls: "x-btn-text-icon", +        id: "tag-button", +        disabled: true, +        listeners: { +          "click": function() { +            tag_selected_items(tag_textfield.getValue()); +            return true; +          } +        } +    }); +      var delete_button = new Ext.Button({        flex: 2,        text: <?= t("Delete")->for_js() ?>, @@ -375,10 +427,24 @@              sort_column_combobox,              sort_order_combobox            ] -        }, { +        }, +<? if (module::is_active("tag")): ?> +        { +          xtype: "spacer", +          flex: 3 +        }, +        tag_textfield, +        tag_button, +        { +          xtype: "spacer", +          flex: 1 +        }, +<? else: ?> +        {            xtype: "spacer",            flex: 10          }, +<? endif ?>          delete_button,          {            xtype: "button", | 
