diff --git a/src/public/javascripts/services/app_context.js b/src/public/javascripts/services/app_context.js
index b00ea20f2..cac3d6b9e 100644
--- a/src/public/javascripts/services/app_context.js
+++ b/src/public/javascripts/services/app_context.js
@@ -7,7 +7,7 @@ import noteDetailService from "./note_detail.js";
import TabContext from "./tab_context.js";
import server from "./server.js";
import keyboardActionService from "./keyboard_actions.js";
-import TabRowWidget from "./tab_row.js";
+import TabRowWidget from "../widgets/tab_row.js";
import NoteTitleWidget from "../widgets/note_title.js";
import PromotedAttributesWidget from "../widgets/promoted_attributes.js";
import NoteDetailWidget from "../widgets/note_detail.js";
diff --git a/src/public/javascripts/services/note_detail.js b/src/public/javascripts/services/note_detail.js
index ffef9b76e..05a7ed247 100644
--- a/src/public/javascripts/services/note_detail.js
+++ b/src/public/javascripts/services/note_detail.js
@@ -5,7 +5,7 @@ import ws from "./ws.js";
import treeCache from "./tree_cache.js";
import NoteFull from "../entities/note_full.js";
import treeUtils from "./tree_utils.js";
-import tabRow from "./tab_row.js";
+import tabRow from "../widgets/tab_row.js";
import appContext from "./app_context.js";
const $tabContentsContainer = $("#note-tab-container");
diff --git a/src/public/javascripts/services/note_detail_book.js b/src/public/javascripts/widgets/detail/note_detail_book.js
similarity index 97%
rename from src/public/javascripts/services/note_detail_book.js
rename to src/public/javascripts/widgets/detail/note_detail_book.js
index 2a6d9bea8..12f0a04bb 100644
--- a/src/public/javascripts/services/note_detail_book.js
+++ b/src/public/javascripts/widgets/detail/note_detail_book.js
@@ -1,6 +1,6 @@
-import linkService from "./link.js";
-import treeCache from "./tree_cache.js";
-import noteContentRenderer from "./note_content_renderer.js";
+import linkService from "../../services/link.js";
+import treeCache from "../../services/tree_cache.js";
+import noteContentRenderer from "../../services/note_content_renderer.js";
const MIN_ZOOM_LEVEL = 1;
const MAX_ZOOM_LEVEL = 6;
diff --git a/src/public/javascripts/services/note_detail_code.js b/src/public/javascripts/widgets/detail/note_detail_code.js
similarity index 92%
rename from src/public/javascripts/services/note_detail_code.js
rename to src/public/javascripts/widgets/detail/note_detail_code.js
index 67ffa967f..4b5acc10b 100644
--- a/src/public/javascripts/services/note_detail_code.js
+++ b/src/public/javascripts/widgets/detail/note_detail_code.js
@@ -1,9 +1,9 @@
-import libraryLoader from "./library_loader.js";
-import bundleService from "./bundle.js";
-import toastService from "./toast.js";
-import server from "./server.js";
-import noteDetailService from "./note_detail.js";
-import keyboardActionService from "./keyboard_actions.js";
+import libraryLoader from "../../services/library_loader.js";
+import bundleService from "../../services/bundle.js";
+import toastService from "../../services/toast.js";
+import server from "../../services/server.js";
+import noteDetailService from "../../services/note_detail.js";
+import keyboardActionService from "../../services/keyboard_actions.js";
const TPL = `
diff --git a/src/public/javascripts/services/note_detail_empty.js b/src/public/javascripts/widgets/detail/note_detail_empty.js
similarity index 88%
rename from src/public/javascripts/services/note_detail_empty.js
rename to src/public/javascripts/widgets/detail/note_detail_empty.js
index 5a452f339..8ad1ebdb6 100644
--- a/src/public/javascripts/services/note_detail_empty.js
+++ b/src/public/javascripts/widgets/detail/note_detail_empty.js
@@ -1,5 +1,5 @@
-import noteAutocompleteService from '../services/note_autocomplete.js';
-import treeService from "./tree.js";
+import noteAutocompleteService from '../../services/note_autocomplete.js';
+import treeService from "../../services/tree.js";
class NoteDetailEmpty {
/**
diff --git a/src/public/javascripts/services/note_detail_file.js b/src/public/javascripts/widgets/detail/note_detail_file.js
similarity index 94%
rename from src/public/javascripts/services/note_detail_file.js
rename to src/public/javascripts/widgets/detail/note_detail_file.js
index 4f91dceb1..69321da7b 100644
--- a/src/public/javascripts/services/note_detail_file.js
+++ b/src/public/javascripts/widgets/detail/note_detail_file.js
@@ -1,7 +1,7 @@
-import utils from "./utils.js";
-import server from "./server.js";
-import toastService from "./toast.js";
-import noteDetailService from "./note_detail.js";
+import utils from "../../services/utils.js";
+import server from "../../services/server.js";
+import toastService from "../../services/toast.js";
+import noteDetailService from "../../services/note_detail.js";
class NoteDetailFile {
/**
diff --git a/src/public/javascripts/services/note_detail_image.js b/src/public/javascripts/widgets/detail/note_detail_image.js
similarity index 95%
rename from src/public/javascripts/services/note_detail_image.js
rename to src/public/javascripts/widgets/detail/note_detail_image.js
index c0216a40e..456a45f07 100644
--- a/src/public/javascripts/services/note_detail_image.js
+++ b/src/public/javascripts/widgets/detail/note_detail_image.js
@@ -1,7 +1,7 @@
-import utils from "./utils.js";
-import toastService from "./toast.js";
-import server from "./server.js";
-import noteDetailService from "./note_detail.js";
+import utils from "../../services/utils.js";
+import toastService from "../../services/toast.js";
+import server from "../../services/server.js";
+import noteDetailService from "../../services/note_detail.js";
class NoteDetailImage {
/**
diff --git a/src/public/javascripts/services/note_detail_protected_session.js b/src/public/javascripts/widgets/detail/note_detail_protected_session.js
similarity index 92%
rename from src/public/javascripts/services/note_detail_protected_session.js
rename to src/public/javascripts/widgets/detail/note_detail_protected_session.js
index 52e77a0eb..ac3af78a5 100644
--- a/src/public/javascripts/services/note_detail_protected_session.js
+++ b/src/public/javascripts/widgets/detail/note_detail_protected_session.js
@@ -1,4 +1,4 @@
-import protectedSessionService from './protected_session.js';
+import protectedSessionService from '../../services/protected_session.js';
class NoteDetailProtectedSession {
/**
diff --git a/src/public/javascripts/services/note_detail_relation_map.js b/src/public/javascripts/widgets/detail/note_detail_relation_map.js
similarity index 95%
rename from src/public/javascripts/services/note_detail_relation_map.js
rename to src/public/javascripts/widgets/detail/note_detail_relation_map.js
index c46ffde32..705c00f7a 100644
--- a/src/public/javascripts/services/note_detail_relation_map.js
+++ b/src/public/javascripts/widgets/detail/note_detail_relation_map.js
@@ -1,11 +1,11 @@
-import server from "./server.js";
-import noteDetailService from "./note_detail.js";
-import linkService from "./link.js";
-import libraryLoader from "./library_loader.js";
-import treeService from "./tree.js";
-import contextMenuWidget from "./context_menu.js";
-import toastService from "./toast.js";
-import attributeAutocompleteService from "./attribute_autocomplete.js";
+import server from "../../services/server.js";
+import noteDetailService from "../../services/note_detail.js";
+import linkService from "../../services/link.js";
+import libraryLoader from "../../services/library_loader.js";
+import treeService from "../../services/tree.js";
+import contextMenuWidget from "../../services/context_menu.js";
+import toastService from "../../services/toast.js";
+import attributeAutocompleteService from "../../services/attribute_autocomplete.js";
const uniDirectionalOverlays = [
[ "Arrow", {
@@ -122,7 +122,7 @@ class NoteDetailRelationMap {
this.clipboard = null;
this.$createChildNote.on('click', async () => {
- const promptDialog = await import('../dialogs/prompt.js');
+ const promptDialog = await import('../../dialogs/prompt.js');
const title = await promptDialog.ask({ message: "Enter title of new note", defaultValue: "new note" });
if (!title.trim()) {
@@ -163,7 +163,7 @@ class NoteDetailRelationMap {
noteDetailService.openInTab(noteId, false);
}
else if (cmd === "remove") {
- const confirmDialog = await import('../dialogs/confirm.js');
+ const confirmDialog = await import('../../dialogs/confirm.js');
if (!await confirmDialog.confirmDeleteNoteBoxWithNote($title.text())) {
return;
@@ -185,7 +185,7 @@ class NoteDetailRelationMap {
this.saveData();
}
else if (cmd === "edit-title") {
- const promptDialog = await import("../dialogs/prompt.js");
+ const promptDialog = await import("../../dialogs/prompt.js");
const title = await promptDialog.ask({
message: "Enter new note title:",
defaultValue: $title.text()
@@ -426,7 +426,7 @@ class NoteDetailRelationMap {
},
selectContextMenuItem: async (event, cmd) => {
if (cmd === 'remove') {
- const confirmDialog = await import('../dialogs/confirm.js');
+ const confirmDialog = await import('../../dialogs/confirm.js');
if (!await confirmDialog.confirm("Are you sure you want to remove the relation?")) {
return;
@@ -450,7 +450,7 @@ class NoteDetailRelationMap {
return;
}
- const promptDialog = await import("../dialogs/prompt.js");
+ const promptDialog = await import("../../dialogs/prompt.js");
const name = await promptDialog.ask({
message: "Specify new relation name:",
shown: ({ $answer }) =>
@@ -476,7 +476,7 @@ class NoteDetailRelationMap {
&& rel.name === name);
if (relationExists) {
- const infoDialog = await import('../dialogs/info.js');
+ const infoDialog = await import('../../dialogs/info.js');
await infoDialog.info("Connection '" + name + "' between these notes already exists.");
this.jsPlumbInstance.deleteConnection(connection);
diff --git a/src/public/javascripts/services/note_detail_render.js b/src/public/javascripts/widgets/detail/note_detail_render.js
similarity index 95%
rename from src/public/javascripts/services/note_detail_render.js
rename to src/public/javascripts/widgets/detail/note_detail_render.js
index cb6292a68..eabe98805 100644
--- a/src/public/javascripts/services/note_detail_render.js
+++ b/src/public/javascripts/widgets/detail/note_detail_render.js
@@ -1,4 +1,4 @@
-import renderService from "./render.js";
+import renderService from "../../services/render.js";
class NoteDetailRender {
/**
diff --git a/src/public/javascripts/services/note_detail_search.js b/src/public/javascripts/widgets/detail/note_detail_search.js
similarity index 90%
rename from src/public/javascripts/services/note_detail_search.js
rename to src/public/javascripts/widgets/detail/note_detail_search.js
index cedade2e9..61b088c44 100644
--- a/src/public/javascripts/services/note_detail_search.js
+++ b/src/public/javascripts/widgets/detail/note_detail_search.js
@@ -1,5 +1,5 @@
-import noteDetailService from "./note_detail.js";
-import searchNotesService from "./search_notes.js";
+import noteDetailService from "../../services/note_detail.js";
+import searchNotesService from "../../services/search_notes.js";
class NoteDetailSearch {
/**
diff --git a/src/public/javascripts/services/note_detail_text.js b/src/public/javascripts/widgets/detail/note_detail_text.js
similarity index 95%
rename from src/public/javascripts/services/note_detail_text.js
rename to src/public/javascripts/widgets/detail/note_detail_text.js
index df770d459..7e8e32d1b 100644
--- a/src/public/javascripts/services/note_detail_text.js
+++ b/src/public/javascripts/widgets/detail/note_detail_text.js
@@ -1,7 +1,7 @@
-import libraryLoader from "./library_loader.js";
-import treeService from './tree.js';
-import noteAutocompleteService from './note_autocomplete.js';
-import mimeTypesService from './mime_types.js';
+import libraryLoader from "../../services/library_loader.js";
+import treeService from '../../services/tree.js';
+import noteAutocompleteService from '../../services/note_autocomplete.js';
+import mimeTypesService from '../../services/mime_types.js';
const ENABLE_INSPECTOR = false;
diff --git a/src/public/javascripts/widgets/note_detail.js b/src/public/javascripts/widgets/note_detail.js
index bfa45a481..a63a8cd56 100644
--- a/src/public/javascripts/widgets/note_detail.js
+++ b/src/public/javascripts/widgets/note_detail.js
@@ -17,16 +17,16 @@ const TPL = `
`;
const componentClasses = {
- 'empty': "../services/note_detail_empty.js",
- 'text': "../services/note_detail_text.js",
- 'code': "../services/note_detail_code.js",
- 'file': "../services/note_detail_file.js",
- 'image': "../services/note_detail_image.js",
- 'search': "../services/note_detail_search.js",
- 'render': "../services/note_detail_render.js",
- 'relation-map': "../services/note_detail_relation_map.js",
- 'protected-session': "../services/note_detail_protected_session.js",
- 'book': "../services/note_detail_book.js"
+ 'empty': "./detail/note_detail_empty.js",
+ 'text': "./detail/note_detail_text.js",
+ 'code': "./detail/note_detail_code.js",
+ 'file': "./detail/note_detail_file.js",
+ 'image': "./detail/note_detail_image.js",
+ 'search': "./detail/note_detail_search.js",
+ 'render': "./detail/note_detail_render.js",
+ 'relation-map': "./detail/note_detail_relation_map.js",
+ 'protected-session': "./detail/note_detail_protected_session.js",
+ 'book': "./detail/note_detail_book.js"
};
export default class NoteDetailWidget extends TabAwareWidget {
diff --git a/src/public/javascripts/services/tab_row.js b/src/public/javascripts/widgets/tab_row.js
similarity index 99%
rename from src/public/javascripts/services/tab_row.js
rename to src/public/javascripts/widgets/tab_row.js
index 5d6d7ab6e..e5872e6cf 100644
--- a/src/public/javascripts/services/tab_row.js
+++ b/src/public/javascripts/widgets/tab_row.js
@@ -5,8 +5,8 @@
* MIT license
*/
-import BasicWidget from "../widgets/basic_widget.js";
-import contextMenuService from "./context_menu.js";
+import BasicWidget from "./basic_widget.js";
+import contextMenuService from "../services/context_menu.js";
!function(i, e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(t){return e(i,t)}):"object"==typeof module&&module.exports?module.exports=e(i,require("jquery")):i.jQueryBridget=e(i,i.jQuery)}(window,function(t, i){"use strict";var c=Array.prototype.slice,e=t.console,p=void 0===e?function(){}:function(t){e.error(t)};function n(d, o, u){(u=u||i||t.jQuery)&&(o.prototype.option||(o.prototype.option=function(t){u.isPlainObject(t)&&(this.options=u.extend(!0,this.options,t))}),u.fn[d]=function(t){if("string"==typeof t){var i=c.call(arguments,1);return s=i,a="$()."+d+'("'+(r=t)+'")',(e=this).each(function(t, i){var e=u.data(i,d);if(e){var n=e[r];if(n&&"_"!=r.charAt(0)){var o=n.apply(e,s);h=void 0===h?o:h}else p(a+" is not a valid method")}else p(d+" not initialized. Cannot call methods, i.e. "+a)}),void 0!==h?h:e}var e,r,s,h,a,n;return n=t,this.each(function(t, i){var e=u.data(i,d);e?(e.option(n),e._init()):(e=new o(i,n),u.data(i,d,e))}),this},r(u))}function r(t){!t||t&&t.bridget||(t.bridget=n)}return r(i||t.jQuery),n}),function(t, i){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return i()}):"object"==typeof module&&module.exports?module.exports=i():t.getSize=i()}(window,function(){"use strict";function m(t){var i=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(i)&&i}var e="undefined"==typeof console?function(){}:function(t){console.error(t)},y=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],b=y.length;function E(t){var i=getComputedStyle(t);return i||e("Style returned "+i+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),i}var _,x=!1;function P(t){if(function(){if(!x){x=!0;var t=document.createElement("div");t.style.width="200px",t.style.padding="1px 2px 3px 4px",t.style.borderStyle="solid",t.style.borderWidth="1px 2px 3px 4px",t.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(t);var e=E(t);P.isBoxSizeOuter=_=200==m(e.width),i.removeChild(t)}}(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var i=E(t);if("none"==i.display)return function(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},i=0; i