Browse Source

[indexer] Edit existing alias

Romain Rigaux 10 năm trước cách đây
mục cha
commit
d0c0a5b

+ 4 - 3
desktop/libs/indexer/src/indexer/controller2.py

@@ -75,15 +75,16 @@ class CollectionController(object):
       if self.is_solr_cloud_mode():
         collections = self.api.collections2()
         for name in collections:
-          indexes.append({'name': name, 'type': 'collection', 'collections': ''})
+          indexes.append({'name': name, 'type': 'collection', 'collections': []})
 
       solr_cores = self.api.cores()
       for name in solr_cores:
-        indexes.append({'name': name, 'type': 'core', 'collections': ''})
+        indexes.append({'name': name, 'type': 'core', 'collections': []})
 
       solr_aliases = self.api.aliases()
       for name in solr_aliases:
-        indexes.append({'name': name, 'type': 'alias', 'collections': solr_aliases[name]})
+        collections = solr_aliases[name].split()
+        indexes.append({'name': name, 'type': 'alias', 'collections': collections})
 
     except Exception, e:
       msg = _('Solr server could not be contacted properly: %s') % e

+ 14 - 4
desktop/libs/indexer/src/indexer/templates/indexes.mako

@@ -70,9 +70,12 @@ ${ commonheader(_("Solr Indexes"), "spark", user, "60px") | n,unicode }
         <td data-bind="text: type"></td>
         <td>
           <span data-bind="text: collections"></span>
+          <a data-bind="click: $root.alias.edit, visible: type() == 'alias'">
+            <i class="fa fa-pencil"></i> ${ _('Edit') }
+          </a>
           <a data-bind="click: $root.alias.delete, visible: type() == 'alias'">
             <i class="fa fa-times"></i> ${ _('Delete') }
-          </a>          
+          </a>
         </td>
       </tr>
     </tbody>
@@ -87,10 +90,10 @@ ${ commonheader(_("Solr Indexes"), "spark", user, "60px") | n,unicode }
   <div class="snippet-settings" data-bind="visible: alias.showCreateModal">
 
     <input data-bind="value: alias.name"></input>
-    <select data-bind="options: alias.availableCollections, selectedOptions: alias.chosenCollections, optionsText: 'name'" size="5" multiple="true"></select>
+    <select data-bind="options: alias.availableCollections, selectedOptions: alias.chosenCollections, optionsText: 'name', optionsValue: 'name'" size="5" multiple="true"></select>
 
-    <a href="javascript:void(0)" class="btn" data-bind="click: alias.create">
-      <i class="fa fa-plus-circle"></i> ${ _('Create alias') }
+    <a href="javascript:void(0)" class="btn" data-bind="click: alias.create, visible: alias.chosenCollections().length > 0">
+      <i class="fa fa-plus-circle"></i> ${ _('Create or edit') }
     </a>
     <a href="javascript:void(0)" class="btn" data-bind="click: function() { alias.showCreateModal(false) }">
       <i class="fa fa-plus-circle"></i> ${ _('Cancel') }
@@ -176,6 +179,13 @@ ${ commonheader(_("Solr Indexes"), "spark", user, "60px") | n,unicode }
       });
     }
     
+    self.edit = function(alias) {
+      self.name(alias.name());console.log(alias.collections());
+      self.chosenCollections(alias.collections());
+
+      self.showCreateModal(true);
+    }
+    
     self.delete = function(alias) {
       $.post("${ url('indexer:delete_alias') }", {
         "alias": alias.name()

+ 1 - 1
desktop/libs/libsolr/src/libsolr/api.py

@@ -442,7 +442,7 @@ class SolrApi(object):
 
   def aliases(self):
     try:
-      params = self._get_params() + (
+      params = self._get_params() + ( # Waiting for SOLR-4968
           ('detail', 'true'),
           ('path', '/aliases.json'),
       )