mockup/master: Add file search functionality to the filemanager pattern.

Oshane Bailey <jenkins-z4DKO/[email protected]>
Newsgroups gmane.comp.web.zope.plone.cvs
Message-ID <[email protected]>
Repository: mockup
Branch: refs/heads/master
Date: 2017-06-27T18:40:08-05:00
Author: Oshane Bailey (b4oshany) <[email protected]>
Commit: https://github.com/plone/mockup/commit/613d3cf9b3a4b73c4e9534431c36fd3354d3e72c

Add file search functionality to the filemanager pattern.

Files changed:
A mockup/patterns/filemanager/js/filesearch.js
M mockup/patterns/filemanager/pattern.js

diff --git a/mockup/patterns/filemanager/js/filesearch.js b/mockup/patterns/filemanager/js/filesearch.js
new file mode 100644
index 00000000..be5c35d1
--- /dev/null
+++ b/mockup/patterns/filemanager/js/filesearch.js
@@ -0,0 +1,73 @@
+define([
+  'jquery',
+  'underscore',
+  'mockup-patterns-filemanager-url/js/basepopover',
+  'translate'
+], function($, _, PopoverView, _t) {
+  'use strict';
+
+  var FileSearchView = PopoverView.extend({
+    className: 'popover filesearch',
+    title: _.template('<%= _t("File Search") %>'),
+    content: _.template(
+      '<form>' +
+        '<div class="input-group">' +
+          '<input type="text" class="search form-control" ' +
+                  'id="file-search-field" placeholder="<%= _t("Find theme resource in plone") %>">' +
+          '<span class="input-group-btn">' +
+            '<input type="submit" class="btn btn-primary" value="<%= _t("Search") %>"/>' +
+          '</span>' +
+        '</div>' +
+      '</form>' +
+      '<ul class="results list-group">' +
+      '</ul>'
+    ),
+    render: function() {
+      var self = this;
+      PopoverView.prototype.render.call(this);
+      self.$form = self.$('form');
+      self.$results = self.$('.results');
+      self.$form.submit(function(e) {
+        e.preventDefault();
+        $.ajax({
+          url: self.app.options.resourceSearchUrl,
+          dataType: 'json',
+          success: function(data) {
+            self.$results.empty();
+            _.each(data, function(item) {
+              var $item = $(
+                '<li class="list-group-item" data-id="' + item.id + '">' +
+                  '<span class="badge"><a href=#">' + _t('Customize') + '</a></span>' +
+                  item.id +
+                '</li>');
+              $('a', $item).click(function(e) {
+                e.preventDefault();
+                self.customize($(this).parents('li').eq(0).attr('data-id'));
+              });
+              self.$results.append($item);
+            });
+          }
+        });
+      });
+      return self;
+    },
+    customize: function(resource) {
+      var self = this;
+      self.app.doAction('customize', {
+        type: 'POST',
+        data: {
+          resource: resource
+        },
+        success: function(data) {
+          self.hide();
+          // clear out
+          self.$('input.search').attr('value', '');
+          self.$results.empty();
+          self.app.refreshTree();
+        }
+      });
+    }
+  });
+
+  return FileSearchView;
+});
diff --git a/mockup/patterns/filemanager/pattern.js b/mockup/patterns/filemanager/pattern.js
index 24a14c54..5ab7b96a 100644
--- a/mockup/patterns/filemanager/pattern.js
+++ b/mockup/patterns/filemanager/pattern.js
@@ -42,6 +42,7 @@ define([
   'mockup-ui-url/views/buttongroup',
   'mockup-patterns-filemanager-url/js/addnew',
   'mockup-patterns-filemanager-url/js/newfolder',
+  'mockup-patterns-filemanager-url/js/filesearch',
   'mockup-patterns-filemanager-url/js/delete',
   'mockup-patterns-filemanager-url/js/customize',
   'mockup-patterns-filemanager-url/js/rename',
@@ -51,6 +52,7 @@ define([
   'text!mockup-ui-url/templates/popover.xml'
 ], function($, Base, _, Tree, TextEditor, AppTemplate, Toolbar,
   ButtonView, ButtonGroup, AddNewView, NewFolderView, DeleteView,
+  FileSearchView,
   CustomizeView, RenameView, UploadView, _t, utils) {
   'use strict';
 
@@ -135,6 +137,16 @@ define([
         }),
         app: self
       });
+      var fileSearchView = new FileSearchView({
+        triggerView: new ButtonView({
+          id: 'filesarch',
+          title: _t('File Search'),
+          tooltip: _t('Find theme resource in plone'),
+          icon: 'file',
+          context: 'default'
+        }),
+        app: self
+      });
       var renameView = new RenameView({
         triggerView: new ButtonView({
           id: 'rename',
@@ -159,12 +171,14 @@ define([
       self.views = [
         newFolderView,
         addNewView,
+        fileSearchView,
         renameView,
         deleteView
       ];
       var mainButtons = [
         self.saveBtn,
         newFolderView.triggerView,
+        fileSearchView.triggerView,
         addNewView.triggerView,
         renameView.triggerView,
         deleteView.triggerView



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.