From 59fb649bd4b8bd08b7cd2e13179805f47637b808 Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Thu, 18 Jan 2018 12:47:05 -0600 Subject: [PATCH] Rename extensionsManager to actionsManager --- .../app/frontend/controllers/editor.js | 4 ++-- ...{extensionManager.js => actionsManager.js} | 6 +++--- ...extualExtensionsMenu.js => actionsMenu.js} | 20 ++++++++----------- .../directives/views/globalExtensionsMenu.js | 12 +++++------ .../services/directives/views/panelResizer.js | 2 +- ...-menu.html.haml => actions-menu.html.haml} | 14 ++++++++----- .../frontend/directives/editor-menu.html.haml | 2 +- .../global-extensions-menu.html.haml | 10 +++++----- .../templates/frontend/editor.html.haml | 4 ++-- 9 files changed, 37 insertions(+), 37 deletions(-) rename app/assets/javascripts/app/services/{extensionManager.js => actionsManager.js} (97%) rename app/assets/javascripts/app/services/directives/views/{contextualExtensionsMenu.js => actionsMenu.js} (70%) rename app/assets/templates/frontend/directives/{contextual-menu.html.haml => actions-menu.html.haml} (73%) diff --git a/app/assets/javascripts/app/frontend/controllers/editor.js b/app/assets/javascripts/app/frontend/controllers/editor.js index 4dddf3867..ddc6e83ef 100644 --- a/app/assets/javascripts/app/frontend/controllers/editor.js +++ b/app/assets/javascripts/app/frontend/controllers/editor.js @@ -23,7 +23,7 @@ angular.module('app.frontend') } } }) - .controller('EditorCtrl', function ($sce, $timeout, authManager, $rootScope, extensionManager, syncManager, modelManager, themeManager, componentManager, storageManager) { + .controller('EditorCtrl', function ($sce, $timeout, authManager, $rootScope, actionsManager, syncManager, modelManager, themeManager, componentManager, storageManager) { this.componentManager = componentManager; this.componentStack = []; @@ -146,7 +146,7 @@ angular.module('app.frontend') }.bind(this) this.hasAvailableExtensions = function() { - return extensionManager.extensionsInContextOfItem(this.note).length > 0; + return actionsManager.extensionsInContextOfItem(this.note).length > 0; } this.focusEditor = function(delay) { diff --git a/app/assets/javascripts/app/services/extensionManager.js b/app/assets/javascripts/app/services/actionsManager.js similarity index 97% rename from app/assets/javascripts/app/services/extensionManager.js rename to app/assets/javascripts/app/services/actionsManager.js index ff7b66cd1..f976dd2ae 100644 --- a/app/assets/javascripts/app/services/extensionManager.js +++ b/app/assets/javascripts/app/services/actionsManager.js @@ -1,4 +1,4 @@ -class ExtensionManager { +class ActionsManager { constructor(httpManager, modelManager, authManager, syncManager, storageManager) { this.httpManager = httpManager; @@ -8,7 +8,7 @@ class ExtensionManager { this.syncManager = syncManager; this.storageManager = storageManager; - modelManager.addItemSyncObserver("extensionManager", "Extension", function(allItems, validItems, deletedItems){ + modelManager.addItemSyncObserver("actionsManager", "Extension", function(allItems, validItems, deletedItems){ for (var ext of validItems) { for (var action of ext.actions) { if(_.includes(this.enabledRepeatActionUrls, action.url)) { @@ -334,4 +334,4 @@ class ExtensionManager { } -angular.module('app.frontend').service('extensionManager', ExtensionManager); +angular.module('app.frontend').service('actionsManager', ActionsManager); diff --git a/app/assets/javascripts/app/services/directives/views/contextualExtensionsMenu.js b/app/assets/javascripts/app/services/directives/views/actionsMenu.js similarity index 70% rename from app/assets/javascripts/app/services/directives/views/contextualExtensionsMenu.js rename to app/assets/javascripts/app/services/directives/views/actionsMenu.js index 3825aed6e..d395dd69f 100644 --- a/app/assets/javascripts/app/services/directives/views/contextualExtensionsMenu.js +++ b/app/assets/javascripts/app/services/directives/views/actionsMenu.js @@ -1,27 +1,23 @@ -class ContextualExtensionsMenu { +class ActionsMenu { constructor() { this.restrict = "E"; - this.templateUrl = "frontend/directives/contextual-menu.html"; + this.templateUrl = "frontend/directives/actions-menu.html"; this.scope = { item: "=" }; } - controller($scope, modelManager, extensionManager) { + controller($scope, modelManager, actionsManager) { 'ngInject'; $scope.renderData = {}; - $scope.extensions = _.map(extensionManager.extensionsInContextOfItem($scope.item), function(ext){ - // why are we cloning deep? commenting out because we want original reference so that extension.hide is saved between menu opens - // return _.cloneDeep(ext); - return ext; - }); + $scope.extensions = actionsManager.extensions; for(let ext of $scope.extensions) { ext.loading = true; - extensionManager.loadExtensionInContextOfItem(ext, $scope.item, function(scopedExtension) { + actionsManager.loadExtensionInContextOfItem(ext, $scope.item, function(scopedExtension) { ext.loading = false; }) } @@ -36,12 +32,12 @@ class ContextualExtensionsMenu { return; } action.running = true; - extensionManager.executeAction(action, extension, $scope.item, function(response){ + actionsManager.executeAction(action, extension, $scope.item, function(response){ action.running = false; $scope.handleActionResponse(action, response); // reload extension actions - extensionManager.loadExtensionInContextOfItem(extension, $scope.item, function(ext){ + actionsManager.loadExtensionInContextOfItem(extension, $scope.item, function(ext){ // keep nested state if(parentAction) { var matchingAction = _.find(ext.actions, {label: parentAction.label}); @@ -83,4 +79,4 @@ class ContextualExtensionsMenu { } -angular.module('app.frontend').directive('contextualExtensionsMenu', () => new ContextualExtensionsMenu); +angular.module('app.frontend').directive('actionsMenu', () => new ActionsMenu); diff --git a/app/assets/javascripts/app/services/directives/views/globalExtensionsMenu.js b/app/assets/javascripts/app/services/directives/views/globalExtensionsMenu.js index 01653a67c..f2dc67cef 100644 --- a/app/assets/javascripts/app/services/directives/views/globalExtensionsMenu.js +++ b/app/assets/javascripts/app/services/directives/views/globalExtensionsMenu.js @@ -7,19 +7,19 @@ class GlobalExtensionsMenu { }; } - controller($scope, extensionManager, syncManager, modelManager, themeManager, componentManager, packageManager) { + controller($scope, actionsManager, syncManager, modelManager, themeManager, componentManager, packageManager) { 'ngInject'; $scope.formData = {}; - $scope.extensionManager = extensionManager; + $scope.actionsManager = actionsManager; $scope.themeManager = themeManager; $scope.componentManager = componentManager; $scope.serverExtensions = modelManager.itemsForContentType("SF|Extension"); $scope.selectedAction = function(action, extension) { - extensionManager.executeAction(action, extension, null, function(response){ + actionsManager.executeAction(action, extension, null, function(response){ if(response && response.error) { action.error = true; alert("There was an error performing this action. Please try again."); @@ -38,13 +38,13 @@ class GlobalExtensionsMenu { $scope.deleteActionExtension = function(extension) { if(confirm("Are you sure you want to delete this extension?")) { - extensionManager.deleteExtension(extension); + actionsManager.deleteExtension(extension); } } $scope.reloadExtensionsPressed = function() { if(confirm("For your security, reloading extensions will disable any currently enabled repeat actions.")) { - extensionManager.refreshExtensionsFromServer(); + actionsManager.refreshExtensionsFromServer(); } } @@ -198,7 +198,7 @@ class GlobalExtensionsMenu { $scope.handleActionLink = function(link, completion) { if(link) { - extensionManager.addExtension(link, function(response){ + actionsManager.addExtension(link, function(response){ if(!response) { alert("Unable to register this extension. Make sure the link is valid and try again."); } else { diff --git a/app/assets/javascripts/app/services/directives/views/panelResizer.js b/app/assets/javascripts/app/services/directives/views/panelResizer.js index 3b6d9e87e..62226c107 100644 --- a/app/assets/javascripts/app/services/directives/views/panelResizer.js +++ b/app/assets/javascripts/app/services/directives/views/panelResizer.js @@ -29,7 +29,7 @@ class PanelResizer { } } - controller($scope, $element, modelManager, extensionManager) { + controller($scope, $element, modelManager, actionsManager) { 'ngInject'; let panel = document.getElementById($scope.panelId); diff --git a/app/assets/templates/frontend/directives/contextual-menu.html.haml b/app/assets/templates/frontend/directives/actions-menu.html.haml similarity index 73% rename from app/assets/templates/frontend/directives/contextual-menu.html.haml rename to app/assets/templates/frontend/directives/actions-menu.html.haml index 3f3c35a7f..59eb519c7 100644 --- a/app/assets/templates/frontend/directives/contextual-menu.html.haml +++ b/app/assets/templates/frontend/directives/actions-menu.html.haml @@ -1,16 +1,20 @@ .sn-component .menu-panel.dropdown-menu + + %a.no-decoration{"ng-if" => "extensions.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"} + %menu-row{"title" => "'Download Actions'"} + .section{"ng-repeat" => "extension in extensions"} - .header{"ng-click" => "extension.hide = !extension.hide"} + .header{"ng-click" => "extension.hide = !extension.hide; $event.stopPropagation();"} .column %h4.title {{extension.name}} .subtitle Will submit your note %strong {{accessTypeForExtension(extension)}} - .spinner.loading{"ng-if" => "extension.loading"} + .spinner.small.loading{"ng-if" => "extension.loading"} %div{"ng-if" => "extension.hide"} … - %menu-row{"ng-if" => "!extension.hide", "ng-repeat" => "action in extension.actionsWithContextForItem(item)", "ng-click" => "executeAction(action, extension);", + %menu-row{"ng-if" => "!extension.hide", "ng-repeat" => "action in extension.actionsWithContextForItem(item)", "ng-click" => "executeAction(action, extension); $event.stopPropagation();", "ng-class" => "{'faded' : !isActionEnabled(action, extension)}", "title" => "action.label", "subtitle" => "action.desc"} .small.normal{"ng-if" => "!isActionEnabled(action, extension)"} Requires {{action.access_type}} access to this note. @@ -21,10 +25,10 @@ %label.menu-item-title {{subaction.label}} .menu-item-subtitle {{subaction.desc}} %span{"ng-if" => "subaction.running"} - .spinner{"style" => "margin-top: 3px;"} + .spinner.small{"style" => "margin-top: 3px;"} %span{"ng-if" => "action.running"} - .spinner{"style" => "margin-top: 3px;"} + .spinner.small{"style" => "margin-top: 3px;"} .extension-render-modal{"ng-if" => "renderData.showRenderModal", "ng-click" => "renderData.showRenderModal = false"} .content diff --git a/app/assets/templates/frontend/directives/editor-menu.html.haml b/app/assets/templates/frontend/directives/editor-menu.html.haml index 73fe7b68c..4e0796e6b 100644 --- a/app/assets/templates/frontend/directives/editor-menu.html.haml +++ b/app/assets/templates/frontend/directives/editor-menu.html.haml @@ -16,7 +16,7 @@ Available Offline %a.no-decoration{"ng-if" => "editors.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"} - %menu-row{"title" => "'Download More Editors'", "ng-click" => "moreEditors()"} + %menu-row{"title" => "'Download More Editors'"} .section{"ng-if" => "stack.length > 0"} .header %h4.title Editor Stack diff --git a/app/assets/templates/frontend/directives/global-extensions-menu.html.haml b/app/assets/templates/frontend/directives/global-extensions-menu.html.haml index e663efc81..04af90463 100644 --- a/app/assets/templates/frontend/directives/global-extensions-menu.html.haml +++ b/app/assets/templates/frontend/directives/global-extensions-menu.html.haml @@ -4,7 +4,7 @@ .float-group.h20 %h1.tinted.pull-left Extensions %a.block.pull-right.dashboard-link{"href" => "https://dashboard.standardnotes.org", "target" => "_blank"} Open Dashboard - %div.clear{"ng-if" => "!extensionManager.extensions.length && !themeManager.themes.length && !componentManager.components.length"} + %div.clear{"ng-if" => "!actionsManager.extensions.length && !themeManager.themes.length && !componentManager.components.length"} %p Customize your experience with editors, themes, and actions. .tinted-box.mt-10 %h3 Available as part of the Extended subscription. @@ -35,13 +35,13 @@ {{theme.url}} - %div{"ng-if" => "extensionManager.extensions.length"} + %div{"ng-if" => "actionsManager.extensions.length"} .header.container.section-margin %h2 Actions %p{"style" => "margin-top: 3px;"} Choose "Actions" in the note editor to use installed actions. %ul - %li{"ng-repeat" => "extension in extensionManager.extensions | orderBy: 'name'", "ng-init" => "extension.formData = {}", "ng-click" => "clickedExtension(extension)"} + %li{"ng-repeat" => "extension in actionsManager.extensions | orderBy: 'name'", "ng-init" => "extension.formData = {}", "ng-click" => "clickedExtension(extension)"} .container %h3 %input.bold{"ng-if" => "extension.rename", "ng-model" => "extension.tempName", "ng-keyup" => "$event.keyCode == 13 && submitExtensionRename(extension);", "sn-autofocus" => "true", "should-focus" => "true"} @@ -75,8 +75,8 @@ %div .mt-5{"ng-if" => "action.repeat_mode"} - %button.light.tinted{"ng-if" => "extensionManager.isRepeatActionEnabled(action)", "ng-click" => "extensionManager.disableRepeatAction(action, extension); $event.stopPropagation();"} Disable - %button.light.tinted{"ng-if" => "!extensionManager.isRepeatActionEnabled(action)", "ng-click" => "extensionManager.enableRepeatAction(action, extension); $event.stopPropagation();"} Enable + %button.light.tinted{"ng-if" => "actionsManager.isRepeatActionEnabled(action)", "ng-click" => "actionsManager.disableRepeatAction(action, extension); $event.stopPropagation();"} Disable + %button.light.tinted{"ng-if" => "!actionsManager.isRepeatActionEnabled(action)", "ng-click" => "actionsManager.enableRepeatAction(action, extension); $event.stopPropagation();"} Enable %button.light.mt-10{"ng-if" => "!action.running && !action.repeat_mode", "ng-click" => "selectedAction(action, extension); $event.stopPropagation();"} Perform Action .spinner.mb-5.block{"ng-if" => "action.running"} diff --git a/app/assets/templates/frontend/editor.html.haml b/app/assets/templates/frontend/editor.html.haml index b62442073..9e782e135 100644 --- a/app/assets/templates/frontend/editor.html.haml +++ b/app/assets/templates/frontend/editor.html.haml @@ -35,9 +35,9 @@ .label Editor %editor-menu{"ng-if" => "ctrl.showEditorMenu", "callback" => "ctrl.editorMenuOnSelect", "selected-editor" => "ctrl.selectedEditor"} - .item{"ng-click" => "ctrl.showExtensions = !ctrl.showExtensions; ctrl.showMenu = false; ctrl.showEditorMenu = false;", "ng-class" => "{'selected' : ctrl.showExtensions}", "ng-if" => "ctrl.hasAvailableExtensions()", "click-outside" => "ctrl.showExtensions = false;", "is-open" => "ctrl.showExtensions"} + .item{"ng-click" => "ctrl.showExtensions = !ctrl.showExtensions; ctrl.showMenu = false; ctrl.showEditorMenu = false;", "ng-class" => "{'selected' : ctrl.showExtensions}", "click-outside" => "ctrl.showExtensions = false;", "is-open" => "ctrl.showExtensions"} .label Actions - %contextual-extensions-menu{"ng-if" => "ctrl.showExtensions", "item" => "ctrl.note"} + %actions-menu{"ng-if" => "ctrl.showExtensions", "item" => "ctrl.note"} .editor-content#editor-content{"ng-if" => "ctrl.noteReady && !ctrl.note.errorDecrypting"} %panel-resizer.left{"panel-id" => "'editor-content'", "on-resize-finish" => "ctrl.onPanelResizeFinish","control" => "ctrl.resizeControl", "min-width" => 300, "property" => "'left'", "hoverable" => "true"}