Rename extensionsManager to actionsManager

This commit is contained in:
Mo Bitar
2018-01-18 12:47:05 -06:00
parent 0cf13ad28b
commit 59fb649bd4
9 changed files with 37 additions and 37 deletions

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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);

View File

@@ -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 {

View File

@@ -29,7 +29,7 @@ class PanelResizer {
}
}
controller($scope, $element, modelManager, extensionManager) {
controller($scope, $element, modelManager, actionsManager) {
'ngInject';
let panel = document.getElementById($scope.panelId);

View File

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

View File

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

View File

@@ -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"}

View File

@@ -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"}