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