mockup/master: Improve the UI and functionality of the find command.

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-28T14:10:54-05:00
Author: Oshane Bailey (b4oshany) <[email protected]>
Commit: https://github.com/plone/mockup/commit/8918bdb40ac9cfe195974c33bf410335f054bf2a

Improve the UI and functionality of the find command.

Files changed:
M mockup/js/bundles/filemanager.js
M mockup/js/ui/templates/dropdown.xml
M mockup/js/ui/views/dropdown.js
M mockup/patterns/filemanager/js/findinfiles.js
M mockup/patterns/filemanager/pattern.filemanager.less
M mockup/patterns/filemanager/pattern.js

diff --git a/mockup/js/bundles/filemanager.js b/mockup/js/bundles/filemanager.js
index 18c3b196..84778497 100644
--- a/mockup/js/bundles/filemanager.js
+++ b/mockup/js/bundles/filemanager.js
@@ -1,6 +1,6 @@
 define([
   'pat-registry',
-  'mockup-patterns-filemanager'
+  'mockup-patterns-filemanager',
 ], function(registry) {
   'use strict';
   // initialize only if we are in top frame
diff --git a/mockup/js/ui/templates/dropdown.xml b/mockup/js/ui/templates/dropdown.xml
index ffb2492a..34c20d25 100644
--- a/mockup/js/ui/templates/dropdown.xml
+++ b/mockup/js/ui/templates/dropdown.xml
@@ -1,5 +1,6 @@
 
-<a style="padding-top: 8px" href="#" class="btn btn-default dropdown-toggle" type="button" id="dropdown-menu-" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
+<a href="#" class="btn btn-default dropdown-toggle" type="button" id="dropdown-menu-" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
+  <span class="glyphicon glyphicon-search"></span>
   <span class="dropdown-title">
 
   </span>
diff --git a/mockup/js/ui/views/dropdown.js b/mockup/js/ui/views/dropdown.js
index 53cddacb..90eb79f9 100644
--- a/mockup/js/ui/views/dropdown.js
+++ b/mockup/js/ui/views/dropdown.js
@@ -9,6 +9,7 @@ define([
   var DropdownView = ButtonGroup.extend({
     idPrefix: 'btngroup-dropdown-',
     template: DropdownTemplate,
+    className: 'btn-group-dropdown',
     itemContainer: "ul.dropdown-content",
     title: null,
 
diff --git a/mockup/patterns/filemanager/js/findinfiles.js b/mockup/patterns/filemanager/js/findinfiles.js
index 904741f9..32b4dd80 100644
--- a/mockup/patterns/filemanager/js/findinfiles.js
+++ b/mockup/patterns/filemanager/js/findinfiles.js
@@ -48,7 +48,10 @@ define([
       var $item = $(file_item);
       $('a', $item).click(function(e) {
         e.preventDefault();
-        self.findinfiles($(this).attr("data-target"));
+        self.findinfiles(
+          $(this).attr("data-target"),
+          parseInt($(this).attr("target-line"))
+        );
       });
       self.$results.append($item);
     },
@@ -115,7 +118,7 @@ define([
       });
       return self;
     },
-    findinfiles: function(resource) {
+    findinfiles: function(resource, line) {
       var self = this;
       self.app.doAction('getFile', {
         data: {
@@ -124,7 +127,7 @@ define([
         dataType: 'json',
         success: function(data) {
           self.app.fileData[resource] = data;
-          self.app.openEditor(resource);
+          self.app.openEditor(resource, {goToLine: line});
         }
       });
     }
diff --git a/mockup/patterns/filemanager/pattern.filemanager.less b/mockup/patterns/filemanager/pattern.filemanager.less
index c37f28ac..85d01cdc 100644
--- a/mockup/patterns/filemanager/pattern.filemanager.less
+++ b/mockup/patterns/filemanager/pattern.filemanager.less
@@ -43,6 +43,10 @@
     .btn-primary:extend(.btn-primary all){}
     .btn-group:extend(.btn-group all){}
     .btn-success:extend(.btn-success all){}
+    .btn-group-dropdown:extend(.btn-group all){
+        display: inline-block;
+        margin: 0 !important;
+    }
     .input-group:extend(.input-group all){}
     .input-group-addon:extend(.input-group-addon all){}
     .input-group-btn:extend(.input-group-btn all){}
@@ -117,6 +121,33 @@
             margin-bottom: 0.5em;
             text-decoration: none;
         }
+        .btn-group > .btn-group-dropdown{
+            float: none;
+            display: inline-block;
+            text-decoration: none;
+
+            & > a.btn {
+                margin-bottom: 0.5em;
+                border-radius: 0;
+                float: none;
+                display: inline-block;
+                text-decoration: none;
+                padding: 5px 5px 8px 5px;
+                line-height: 10px;
+                font-size: 13px;
+            }
+
+            &:last-child > a.btn{
+                border-bottom-right-radius: 4px;
+                border-top-right-radius: 4px;
+            }
+
+            &:first-child > a.btn{
+                border-bottom-left-radius: 4px;
+                border-top-left-radius: 4px;
+            }
+
+        }
     }
     .navbar-default {
         min-height: 250px
diff --git a/mockup/patterns/filemanager/pattern.js b/mockup/patterns/filemanager/pattern.js
index 3bcc6e2a..c36020e7 100644
--- a/mockup/patterns/filemanager/pattern.js
+++ b/mockup/patterns/filemanager/pattern.js
@@ -96,6 +96,7 @@ define([
       self.options.treeConfig = $.extend(true, {}, self.treeConfig, {
         dataUrl: self.options.actionUrl + '?action=dataTree',
         dragAndDrop: true,
+        useContextMenu: true,
         onCreateLi: function(node, li) {
           var imageTypes = ['png', 'jpg', 'jpeg', 'gif', 'ico'];
           var themeTypes = ['css', 'html', 'htm', 'txt', 'xml', 'js', 'cfg', 'less'];
@@ -120,65 +121,73 @@ define([
         icon: 'floppy-disk',
         context: 'primary'
       });
-
-      var newFolderView = new NewFolderView({
-        triggerView: new ButtonView({
+      self.btns = {
+        "newfolder": new ButtonView({
           id: 'newfolder',
           title: _t('New folder'),
           tooltip: _t('Add new folder to current directory'),
           icon: 'folder-open',
           context: 'default'
         }),
-        app: self
-      });
-      var addNewView = new AddNewView({
-        triggerView: new ButtonView({
+        "newfile": new ButtonView({
           id: 'addnew',
           title: _t('Add new file'),
           tooltip: _t('Add new file to current folder'),
           icon: 'file',
           context: 'default'
         }),
-        app: self
-      });
-      var findFileView = new FindFileView({
-        triggerView: new AnchorView({
+        "findfile": new AnchorView({
           id: 'findfile',
           title: _t('Find File'),
           tooltip: _t('Find theme resource in plone'),
           icon: 'file',
           context: 'default'
         }),
-        app: self
-      });
-      var findinFilesView = new FindInFilesView({
-        triggerView: new AnchorView({
+        "findtextinfile": new AnchorView({
           id: 'findinfiles',
           title: _t('Find in Files'),
           tooltip: _t('Find text within theme resource in plone'),
           icon: 'file',
           context: 'default'
         }),
-        app: self
-      });
-      var renameView = new RenameView({
-        triggerView: new ButtonView({
+        "rename": new ButtonView({
           id: 'rename',
           title: _t('Rename'),
           tooltip: _t('Rename currently selected resource'),
           icon: 'random',
           context: 'default'
         }),
-        app: self
-      });
-      var deleteView = new DeleteView({
-        triggerView: new ButtonView({
+        "delete": new ButtonView({
           id: 'delete',
           title: _t('Delete'),
           tooltip: _t('Delete currently selected resource'),
           icon: 'trash',
           context: 'danger'
-        }),
+        })
+      };
+
+      var newFolderView = new NewFolderView({
+        triggerView: self.btns["newfolder"],
+        app: self
+      });
+      var addNewView = new AddNewView({
+        triggerView: self.btns["newfile"],
+        app: self
+      });
+      var findFileView = new FindFileView({
+        triggerView: self.btns["findfile"],
+        app: self
+      });
+      var findinFilesView = new FindInFilesView({
+        triggerView: self.btns["findfile"],
+        app: self
+      });
+      var renameView = new RenameView({
+        triggerView: self.btns["rename"],
+        app: self
+      });
+      var deleteView = new DeleteView({
+        triggerView: self.btns["delete"],
         app: self
       });
 
@@ -582,12 +591,15 @@ define([
         failure: options.failure || function() {}
       });
     },
-    openEditor: function(path) {
+    openEditor: function(path, options) {
       var self = this;
 
       if (path !== undefined) {
         self.updateTabs(path);
       }
+      if (options === undefined) {
+        options = {};
+      }
 
       // first we need to save the current editor content
       if (self.currentPath) {
@@ -624,6 +636,10 @@ define([
       }
 
       self.resizeEditor();
+      if(options.goToLine != undefined){
+        self.ace.editor.gotoLine(options.goToLine, 0, true);
+      }
+
       self.$el.trigger('fileChange');
       self.ace.editor.on('change', function() {
         if (self.ace.editor.curOp && self.ace.editor.curOp.command.name) {



------------------------------------------------------------------------------
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.