diff --git a/src/public/app/services/bulk_action.js b/src/public/app/services/bulk_action.js
index ea7841cf8..81c11e72d 100644
--- a/src/public/app/services/bulk_action.js
+++ b/src/public/app/services/bulk_action.js
@@ -1,27 +1,27 @@
import server from "./server.js";
import ws from "./ws.js";
-import MoveNoteSearchAction from "../widgets/search_actions/move_note.js";
-import DeleteNoteSearchAction from "../widgets/search_actions/delete_note.js";
-import DeleteNoteRevisionsSearchAction from "../widgets/search_actions/delete_note_revisions.js";
-import DeleteLabelSearchAction from "../widgets/search_actions/delete_label.js";
-import DeleteRelationSearchAction from "../widgets/search_actions/delete_relation.js";
-import RenameLabelSearchAction from "../widgets/search_actions/rename_label.js";
-import RenameRelationSearchAction from "../widgets/search_actions/rename_relation.js";
-import SetLabelValueSearchAction from "../widgets/search_actions/set_label_value.js";
-import SetRelationTargetSearchAction from "../widgets/search_actions/set_relation_target.js";
-import ExecuteScriptSearchAction from "../widgets/search_actions/execute_script.js";
+import MoveNoteBulkAction from "../widgets/bulk_actions/move_note.js";
+import DeleteNoteBulkAction from "../widgets/bulk_actions/delete_note.js";
+import DeleteNoteRevisionsBulkAction from "../widgets/bulk_actions/delete_note_revisions.js";
+import DeleteLabelBulkAction from "../widgets/bulk_actions/delete_label.js";
+import DeleteRelationBulkAction from "../widgets/bulk_actions/delete_relation.js";
+import RenameLabelBulkAction from "../widgets/bulk_actions/rename_label.js";
+import RenameRelationBulkAction from "../widgets/bulk_actions/rename_relation.js";
+import SetLabelValueBulkAction from "../widgets/bulk_actions/set_label_value.js";
+import SetRelationTargetSearchAction from "../widgets/bulk_actions/set_relation_target.js";
+import ExecuteScriptBulkAction from "../widgets/bulk_actions/execute_script.js";
const ACTION_CLASSES = [
- MoveNoteSearchAction,
- DeleteNoteSearchAction,
- DeleteNoteRevisionsSearchAction,
- DeleteLabelSearchAction,
- DeleteRelationSearchAction,
- RenameLabelSearchAction,
- RenameRelationSearchAction,
- SetLabelValueSearchAction,
+ MoveNoteBulkAction,
+ DeleteNoteBulkAction,
+ DeleteNoteRevisionsBulkAction,
+ DeleteLabelBulkAction,
+ DeleteRelationBulkAction,
+ RenameLabelBulkAction,
+ RenameRelationBulkAction,
+ SetLabelValueBulkAction,
SetRelationTargetSearchAction,
- ExecuteScriptSearchAction
+ ExecuteScriptBulkAction
];
async function addAction(noteId, actionName) {
@@ -65,4 +65,4 @@ export default {
addAction,
parseActions,
ACTION_CLASSES
-};
\ No newline at end of file
+};
diff --git a/src/public/app/widgets/search_actions/abstract_search_action.js b/src/public/app/widgets/bulk_actions/abstract_bulk_action.js
similarity index 97%
rename from src/public/app/widgets/search_actions/abstract_search_action.js
rename to src/public/app/widgets/bulk_actions/abstract_bulk_action.js
index 3966d9355..a863cf395 100644
--- a/src/public/app/widgets/search_actions/abstract_search_action.js
+++ b/src/public/app/widgets/bulk_actions/abstract_bulk_action.js
@@ -3,7 +3,7 @@ import ws from "../../services/ws.js";
import Component from "../component.js";
import utils from "../../services/utils.js";
-export default class AbstractSearchAction {
+export default class AbstractBulkAction {
constructor(attribute, actionDef) {
this.attribute = attribute;
this.actionDef = actionDef;
diff --git a/src/public/app/widgets/bulk_actions/add_label.js b/src/public/app/widgets/bulk_actions/add_label.js
new file mode 100644
index 000000000..515a8ae36
--- /dev/null
+++ b/src/public/app/widgets/bulk_actions/add_label.js
@@ -0,0 +1,65 @@
+import SpacedUpdate from "../../services/spaced_update.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
+
+const TPL = `
+
+
+
+ Set label
+
+
+
+ to value
+
+
+
+ |
+
+
+
+
+
+
+
+ |
+
`;
+
+export default class AddLabelBulkAction extends AbstractBulkAction {
+ static get actionName() { return "setLabelValue"; }
+ static get actionTitle() { return "Set label value"; }
+
+ doRender() {
+ const $action = $(TPL);
+
+ const $labelName = $action.find('.label-name');
+ $labelName.val(this.actionDef.labelName || "");
+
+ const $labelValue = $action.find('.label-value');
+ $labelValue.val(this.actionDef.labelValue || "");
+
+ const spacedUpdate = new SpacedUpdate(async () => {
+ await this.saveAction({
+ labelName: $labelName.val(),
+ labelValue: $labelValue.val()
+ });
+ }, 1000)
+
+ $labelName.on('input', () => spacedUpdate.scheduleUpdate());
+ $labelValue.on('input', () => spacedUpdate.scheduleUpdate());
+
+ return $action;
+ }
+}
diff --git a/src/public/app/widgets/search_actions/delete_label.js b/src/public/app/widgets/bulk_actions/delete_label.js
similarity index 87%
rename from src/public/app/widgets/search_actions/delete_label.js
rename to src/public/app/widgets/bulk_actions/delete_label.js
index cf2916849..6c81d5615 100644
--- a/src/public/app/widgets/search_actions/delete_label.js
+++ b/src/public/app/widgets/bulk_actions/delete_label.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -18,7 +18,7 @@ const TPL = `
`;
-export default class DeleteLabelSearchAction extends AbstractSearchAction {
+export default class DeleteLabelBulkAction extends AbstractBulkAction {
static get actionName() { return "deleteLabel"; }
static get actionTitle() { return "Delete label"; }
diff --git a/src/public/app/widgets/search_actions/delete_note.js b/src/public/app/widgets/bulk_actions/delete_note.js
similarity index 74%
rename from src/public/app/widgets/search_actions/delete_note.js
rename to src/public/app/widgets/bulk_actions/delete_note.js
index 9e65e861b..20bf83bc0 100644
--- a/src/public/app/widgets/search_actions/delete_note.js
+++ b/src/public/app/widgets/bulk_actions/delete_note.js
@@ -1,4 +1,4 @@
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -12,7 +12,7 @@ const TPL = `
`;
-export default class DeleteNoteSearchAction extends AbstractSearchAction {
+export default class DeleteNoteBulkAction extends AbstractBulkAction {
static get actionName() { return "deleteNote"; }
static get actionTitle() { return "Delete note"; }
diff --git a/src/public/app/widgets/search_actions/delete_note_revisions.js b/src/public/app/widgets/bulk_actions/delete_note_revisions.js
similarity index 85%
rename from src/public/app/widgets/search_actions/delete_note_revisions.js
rename to src/public/app/widgets/bulk_actions/delete_note_revisions.js
index 3305780ee..40ed8123b 100644
--- a/src/public/app/widgets/search_actions/delete_note_revisions.js
+++ b/src/public/app/widgets/bulk_actions/delete_note_revisions.js
@@ -1,4 +1,4 @@
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -19,7 +19,7 @@ const TPL = `
`;
-export default class DeleteNoteRevisionsSearchAction extends AbstractSearchAction {
+export default class DeleteNoteRevisionsBulkAction extends AbstractBulkAction {
static get actionName() { return "deleteNoteRevisions"; }
static get actionTitle() { return "Delete note revisions"; }
diff --git a/src/public/app/widgets/search_actions/delete_relation.js b/src/public/app/widgets/bulk_actions/delete_relation.js
similarity index 89%
rename from src/public/app/widgets/search_actions/delete_relation.js
rename to src/public/app/widgets/bulk_actions/delete_relation.js
index aace37fc2..59ef5b913 100644
--- a/src/public/app/widgets/search_actions/delete_relation.js
+++ b/src/public/app/widgets/bulk_actions/delete_relation.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -20,7 +20,7 @@ const TPL = `
`;
-export default class DeleteRelationSearchAction extends AbstractSearchAction {
+export default class DeleteRelationBulkAction extends AbstractBulkAction {
static get actionName() { return "deleteRelation"; }
static get actionTitle() { return "Delete relation"; }
diff --git a/src/public/app/widgets/search_actions/execute_script.js b/src/public/app/widgets/bulk_actions/execute_script.js
similarity index 92%
rename from src/public/app/widgets/search_actions/execute_script.js
rename to src/public/app/widgets/bulk_actions/execute_script.js
index 088fc379c..62ba11f74 100644
--- a/src/public/app/widgets/search_actions/execute_script.js
+++ b/src/public/app/widgets/bulk_actions/execute_script.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -33,7 +33,7 @@ const TPL = `
`;
-export default class ExecuteScriptSearchAction extends AbstractSearchAction {
+export default class ExecuteScriptBulkAction extends AbstractBulkAction {
static get actionName() { return "executeScript"; }
static get actionTitle() { return "Execute script"; }
diff --git a/src/public/app/widgets/search_actions/move_note.js b/src/public/app/widgets/bulk_actions/move_note.js
similarity index 94%
rename from src/public/app/widgets/search_actions/move_note.js
rename to src/public/app/widgets/bulk_actions/move_note.js
index fffcae00f..03a49b8bb 100644
--- a/src/public/app/widgets/search_actions/move_note.js
+++ b/src/public/app/widgets/bulk_actions/move_note.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
import noteAutocompleteService from "../../services/note_autocomplete.js";
const TPL = `
@@ -33,7 +33,7 @@ const TPL = `
`;
-export default class MoveNoteSearchAction extends AbstractSearchAction {
+export default class MoveNoteBulkAction extends AbstractBulkAction {
static get actionName() { return "moveNote"; }
static get actionTitle() { return "Move note"; }
diff --git a/src/public/app/widgets/search_actions/rename_label.js b/src/public/app/widgets/bulk_actions/rename_label.js
similarity index 92%
rename from src/public/app/widgets/search_actions/rename_label.js
rename to src/public/app/widgets/bulk_actions/rename_label.js
index 6253159c5..99f458c24 100644
--- a/src/public/app/widgets/search_actions/rename_label.js
+++ b/src/public/app/widgets/bulk_actions/rename_label.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -27,7 +27,7 @@ const TPL = `
`;
-export default class RenameLabelSearchAction extends AbstractSearchAction {
+export default class RenameLabelBulkAction extends AbstractBulkAction {
static get actionName() { return "renameLabel"; }
static get actionTitle() { return "Rename label"; }
diff --git a/src/public/app/widgets/search_actions/rename_relation.js b/src/public/app/widgets/bulk_actions/rename_relation.js
similarity index 92%
rename from src/public/app/widgets/search_actions/rename_relation.js
rename to src/public/app/widgets/bulk_actions/rename_relation.js
index 93d13aee1..c5e2094a2 100644
--- a/src/public/app/widgets/search_actions/rename_relation.js
+++ b/src/public/app/widgets/bulk_actions/rename_relation.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -27,7 +27,7 @@ const TPL = `
`;
-export default class RenameRelationSearchAction extends AbstractSearchAction {
+export default class RenameRelationBulkAction extends AbstractBulkAction {
static get actionName() { return "renameRelation"; }
static get actionTitle() { return "Rename relation"; }
diff --git a/src/public/app/widgets/search_actions/set_label_value.js b/src/public/app/widgets/bulk_actions/set_label_value.js
similarity index 94%
rename from src/public/app/widgets/search_actions/set_label_value.js
rename to src/public/app/widgets/bulk_actions/set_label_value.js
index 745b2af20..76063f693 100644
--- a/src/public/app/widgets/search_actions/set_label_value.js
+++ b/src/public/app/widgets/bulk_actions/set_label_value.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
const TPL = `
@@ -37,7 +37,7 @@ const TPL = `
`;
-export default class SetLabelValueSearchAction extends AbstractSearchAction {
+export default class SetLabelValueBulkAction extends AbstractBulkAction {
static get actionName() { return "setLabelValue"; }
static get actionTitle() { return "Set label value"; }
diff --git a/src/public/app/widgets/search_actions/set_relation_target.js b/src/public/app/widgets/bulk_actions/set_relation_target.js
similarity index 97%
rename from src/public/app/widgets/search_actions/set_relation_target.js
rename to src/public/app/widgets/bulk_actions/set_relation_target.js
index 4ab121d81..a6cdf8718 100644
--- a/src/public/app/widgets/search_actions/set_relation_target.js
+++ b/src/public/app/widgets/bulk_actions/set_relation_target.js
@@ -1,5 +1,5 @@
import SpacedUpdate from "../../services/spaced_update.js";
-import AbstractSearchAction from "./abstract_search_action.js";
+import AbstractBulkAction from "./abstract_bulk_action.js";
import noteAutocompleteService from "../../services/note_autocomplete.js";
const TPL = `
@@ -39,7 +39,7 @@ const TPL = `
`;
-export default class SetRelationTargetSearchAction extends AbstractSearchAction {
+export default class SetRelationTargetSearchAction extends AbstractBulkAction {
static get actionName() { return "setRelationTarget"; }
static get actionTitle() { return "Set relation target"; }
diff --git a/src/public/app/widgets/type_widgets/canvas.js b/src/public/app/widgets/type_widgets/canvas.js
index 932adac56..924c0931a 100644
--- a/src/public/app/widgets/type_widgets/canvas.js
+++ b/src/public/app/widgets/type_widgets/canvas.js
@@ -8,7 +8,7 @@ const {sleep} = utils;
const TPL = `
-