living-documentation 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -71,8 +71,6 @@
|
|
|
71
71
|
"modal.new_folder.location_label": "Location",
|
|
72
72
|
"modal.new_folder.root": "/ (root)",
|
|
73
73
|
"modal.new_folder.browse_btn": "Browse…",
|
|
74
|
-
"modal.new_folder.select_btn": "Select this folder",
|
|
75
|
-
"modal.new_folder.browse_select_btn": "Select",
|
|
76
74
|
"modal.new_folder.enter_name": "(enter a name)",
|
|
77
75
|
"modal.new_folder.will_be_created": "Will be created at",
|
|
78
76
|
"modal.new_folder.create_btn": "Create",
|
|
@@ -93,7 +91,6 @@
|
|
|
93
91
|
"modal.new_doc.create_folder_btn": "+ Create",
|
|
94
92
|
"modal.new_doc.error_empty_title": "Please enter a title.",
|
|
95
93
|
"modal.new_doc.no_subfolders": "No sub-folders",
|
|
96
|
-
"modal.new_doc.use_folder_btn": "✓ Use this folder",
|
|
97
94
|
|
|
98
95
|
"modal.diag_link.title": "◇ Link a diagram",
|
|
99
96
|
"modal.diag_link.existing_radio": "Existing diagram",
|
|
@@ -71,8 +71,6 @@
|
|
|
71
71
|
"modal.new_folder.location_label": "Emplacement",
|
|
72
72
|
"modal.new_folder.root": "/ (racine)",
|
|
73
73
|
"modal.new_folder.browse_btn": "Parcourir…",
|
|
74
|
-
"modal.new_folder.select_btn": "Sélectionner ce dossier",
|
|
75
|
-
"modal.new_folder.browse_select_btn": "Sélectionner",
|
|
76
74
|
"modal.new_folder.enter_name": "(saisir un nom)",
|
|
77
75
|
"modal.new_folder.will_be_created": "Sera créé à",
|
|
78
76
|
"modal.new_folder.create_btn": "Créer",
|
|
@@ -93,7 +91,6 @@
|
|
|
93
91
|
"modal.new_doc.create_folder_btn": "+ Créer",
|
|
94
92
|
"modal.new_doc.error_empty_title": "Veuillez saisir un titre.",
|
|
95
93
|
"modal.new_doc.no_subfolders": "Aucun sous-dossier",
|
|
96
|
-
"modal.new_doc.use_folder_btn": "✓ Utiliser ce dossier",
|
|
97
94
|
|
|
98
95
|
"modal.diag_link.title": "◇ Lier un diagramme",
|
|
99
96
|
"modal.diag_link.existing_radio": "Diagramme existant",
|
|
@@ -736,21 +736,15 @@
|
|
|
736
736
|
<button
|
|
737
737
|
id="new-folder-browse-up"
|
|
738
738
|
onclick="newFolderBrowseUp()"
|
|
739
|
-
|
|
739
|
+
data-i18n="common.up"
|
|
740
|
+
class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"
|
|
740
741
|
>
|
|
741
|
-
↑
|
|
742
|
+
↑ Up
|
|
742
743
|
</button>
|
|
743
744
|
<span
|
|
744
745
|
id="new-folder-browse-path"
|
|
745
746
|
class="text-xs text-gray-500 dark:text-gray-400 font-mono truncate flex-1"
|
|
746
747
|
></span>
|
|
747
|
-
<button
|
|
748
|
-
onclick="newFolderSelectCurrentLocation()"
|
|
749
|
-
data-i18n="modal.new_folder.select_btn"
|
|
750
|
-
class="text-xs text-blue-600 dark:text-blue-400 hover:underline shrink-0"
|
|
751
|
-
>
|
|
752
|
-
Select this folder
|
|
753
|
-
</button>
|
|
754
748
|
</div>
|
|
755
749
|
<div
|
|
756
750
|
id="new-folder-browse-list"
|
|
@@ -874,6 +868,7 @@
|
|
|
874
868
|
<button
|
|
875
869
|
id="new-doc-browse-up"
|
|
876
870
|
onclick="newDocBrowseUp()"
|
|
871
|
+
data-i18n="common.up"
|
|
877
872
|
class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"
|
|
878
873
|
>
|
|
879
874
|
↑ Up
|
|
@@ -78,35 +78,28 @@ async function newDocLoadBrowse(dirPath) {
|
|
|
78
78
|
).then((r) => r.json());
|
|
79
79
|
_newDocBrowseCurrent = data.current;
|
|
80
80
|
_newDocBrowseParent = data.parent;
|
|
81
|
+
_newDocSelectedFolder = _newDocAbsToRel(data.current);
|
|
82
|
+
|
|
81
83
|
document.getElementById("new-doc-browse-path").textContent =
|
|
82
84
|
data.current;
|
|
83
85
|
const atRoot = data.current === _newDocDocsFolder;
|
|
84
86
|
document.getElementById("new-doc-browse-up").disabled = atRoot;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
document.getElementById("new-doc-folder-display").textContent =
|
|
88
|
+
_newDocSelectedFolder ? "/" + _newDocSelectedFolder : "/ (root)";
|
|
89
|
+
newDocUpdatePreview();
|
|
90
|
+
|
|
91
|
+
list.innerHTML = data.dirs.length
|
|
92
|
+
? data.dirs
|
|
93
|
+
.map(
|
|
94
|
+
(dir) => `
|
|
89
95
|
<button data-path="${esc(dir.path)}" onclick="newDocLoadBrowse(this.dataset.path)"
|
|
90
|
-
class="
|
|
96
|
+
class="w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
|
|
91
97
|
<span class="text-gray-400 shrink-0">📁</span>
|
|
92
98
|
<span class="text-gray-700 dark:text-gray-300 truncate">${esc(dir.name)}</span>
|
|
93
|
-
</button
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
</div>`,
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
const selectBtn = `<button onclick="newDocSelectCurrentFolder()"
|
|
101
|
-
class="w-full px-3 py-2 text-xs text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/30 text-left font-medium border-t border-gray-100 dark:border-gray-800">
|
|
102
|
-
${window.t('modal.new_doc.use_folder_btn')}
|
|
103
|
-
</button>`;
|
|
104
|
-
|
|
105
|
-
list.innerHTML =
|
|
106
|
-
(rows.length
|
|
107
|
-
? rows.join("")
|
|
108
|
-
: `<p class="px-3 py-3 text-xs text-gray-400 text-center">${window.t('modal.new_doc.no_subfolders')}</p>`) +
|
|
109
|
-
selectBtn;
|
|
99
|
+
</button>`,
|
|
100
|
+
)
|
|
101
|
+
.join("")
|
|
102
|
+
: `<p class="px-3 py-3 text-xs text-gray-400 text-center">${window.t('modal.new_doc.no_subfolders')}</p>`;
|
|
110
103
|
} catch {
|
|
111
104
|
list.innerHTML =
|
|
112
105
|
`<p class="px-3 py-4 text-xs text-red-400 text-center">${window.t('common.cannot_read_dir')}</p>`;
|
|
@@ -127,19 +120,6 @@ function _newDocAbsToRel(absPath) {
|
|
|
127
120
|
return absPath;
|
|
128
121
|
}
|
|
129
122
|
|
|
130
|
-
function newDocSelectFolder(absPath) {
|
|
131
|
-
_newDocSelectedFolder = _newDocAbsToRel(absPath);
|
|
132
|
-
_newDocBrowseCurrent = absPath;
|
|
133
|
-
document.getElementById("new-doc-folder-display").textContent =
|
|
134
|
-
_newDocSelectedFolder ? "/" + _newDocSelectedFolder : "/ (root)";
|
|
135
|
-
document.getElementById("new-doc-browser").classList.add("hidden");
|
|
136
|
-
newDocUpdatePreview();
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
function newDocSelectCurrentFolder() {
|
|
140
|
-
newDocSelectFolder(_newDocBrowseCurrent || _newDocDocsFolder);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
123
|
function newDocCreateFolder() {
|
|
144
124
|
const name = document
|
|
145
125
|
.getElementById("new-doc-new-folder-name")
|
|
@@ -152,7 +132,6 @@ function newDocCreateFolder() {
|
|
|
152
132
|
document.getElementById("new-doc-folder-display").textContent =
|
|
153
133
|
"/" + newRelPath;
|
|
154
134
|
document.getElementById("new-doc-new-folder-name").value = "";
|
|
155
|
-
document.getElementById("new-doc-browser").classList.add("hidden");
|
|
156
135
|
newDocUpdatePreview();
|
|
157
136
|
}
|
|
158
137
|
|
|
@@ -69,24 +69,32 @@ async function newFolderLoadBrowse(dirPath) {
|
|
|
69
69
|
).then((r) => r.json());
|
|
70
70
|
_newFolderBrowseCurrent = data.current;
|
|
71
71
|
_newFolderBrowseParent = data.parent;
|
|
72
|
+
_newFolderSelectedPath = data.current;
|
|
73
|
+
|
|
72
74
|
document.getElementById("new-folder-browse-path").textContent =
|
|
73
75
|
data.current;
|
|
74
76
|
const atRoot = data.current === _newFolderDocsFolder;
|
|
75
77
|
document.getElementById("new-folder-browse-up").disabled = atRoot;
|
|
76
78
|
|
|
79
|
+
const rel = data.current.startsWith(_newFolderDocsFolder + "/")
|
|
80
|
+
? data.current.slice(_newFolderDocsFolder.length)
|
|
81
|
+
: data.current === _newFolderDocsFolder
|
|
82
|
+
? ""
|
|
83
|
+
: data.current;
|
|
84
|
+
document.getElementById("new-folder-location-display").textContent = rel
|
|
85
|
+
? rel
|
|
86
|
+
: "/ (root)";
|
|
87
|
+
newFolderUpdatePreview();
|
|
88
|
+
|
|
77
89
|
list.innerHTML = data.dirs.length
|
|
78
90
|
? data.dirs
|
|
79
91
|
.map(
|
|
80
92
|
(dir) => `
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
</button>
|
|
87
|
-
<button data-path="${esc(dir.path)}" onclick="newFolderSelectFolder(this.dataset.path)"
|
|
88
|
-
class="px-3 py-2 text-xs text-blue-600 dark:text-blue-400 hover:underline shrink-0">${window.t('modal.new_folder.browse_select_btn')}</button>
|
|
89
|
-
</div>`,
|
|
93
|
+
<button data-path="${esc(dir.path)}" onclick="newFolderLoadBrowse(this.dataset.path)"
|
|
94
|
+
class="w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
|
|
95
|
+
<span class="text-gray-400 shrink-0">📁</span>
|
|
96
|
+
<span class="truncate text-gray-700 dark:text-gray-300">${esc(dir.name)}</span>
|
|
97
|
+
</button>`,
|
|
90
98
|
)
|
|
91
99
|
.join("")
|
|
92
100
|
: `<p class="px-3 py-3 text-xs text-gray-400 text-center">${window.t('modal.new_folder.no_subfolders')}</p>`;
|
|
@@ -100,25 +108,6 @@ function newFolderBrowseUp() {
|
|
|
100
108
|
if (_newFolderBrowseParent) newFolderLoadBrowse(_newFolderBrowseParent);
|
|
101
109
|
}
|
|
102
110
|
|
|
103
|
-
function newFolderSelectCurrentLocation() {
|
|
104
|
-
newFolderSelectFolder(_newFolderBrowseCurrent || _newFolderDocsFolder);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function newFolderSelectFolder(absPath) {
|
|
108
|
-
_newFolderSelectedPath = absPath;
|
|
109
|
-
_newFolderBrowseCurrent = absPath;
|
|
110
|
-
const rel = absPath.startsWith(_newFolderDocsFolder + "/")
|
|
111
|
-
? absPath.slice(_newFolderDocsFolder.length)
|
|
112
|
-
: absPath === _newFolderDocsFolder
|
|
113
|
-
? ""
|
|
114
|
-
: absPath;
|
|
115
|
-
document.getElementById("new-folder-location-display").textContent = rel
|
|
116
|
-
? rel
|
|
117
|
-
: "/ (root)";
|
|
118
|
-
document.getElementById("new-folder-browser").classList.add("hidden");
|
|
119
|
-
newFolderUpdatePreview();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
111
|
function newFolderUpdatePreview() {
|
|
123
112
|
const name = document.getElementById("new-folder-name").value.trim();
|
|
124
113
|
const previewEl = document.getElementById("new-folder-preview");
|