Merge remote-tracking branch 'origin/feature/client_typescript_port1' into feature/client_typescript_port2

This commit is contained in:
Elian Doran 2024-12-21 21:59:18 +02:00
commit 3df585c72a
No known key found for this signature in database
10 changed files with 6170 additions and 4400 deletions

10436
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -52,14 +52,13 @@
"ci-update-nightly-version": "tsx ./bin/update-nightly-version.ts"
},
"dependencies": {
"@braintree/sanitize-url": "7.1.0",
"@braintree/sanitize-url": "7.1.1",
"@electron/remote": "2.1.2",
"@excalidraw/excalidraw": "0.17.6",
"@highlightjs/cdn-assets": "11.11.0",
"@mermaid-js/layout-elk": "0.1.7",
"@mind-elixir/node-menu": "1.0.3",
"@triliumnext/express-partial-content": "1.0.1",
"@types/bootstrap": "5.2.10",
"@triliumnext/express-partial-content": "1.0.1",
"archiver": "7.0.1",
"async-mutex": "0.5.0",
"autocomplete.js": "0.38.1",
@ -68,7 +67,7 @@
"bootstrap": "5.3.3",
"boxicons": "2.1.4",
"cheerio": "1.0.0",
"chokidar": "4.0.2",
"chokidar": "4.0.3",
"cls-hooked": "4.2.2",
"codemirror": "5.65.18",
"compression": "1.7.5",
@ -94,7 +93,7 @@
"html2plaintext": "2.1.4",
"http-proxy-agent": "7.0.2",
"https-proxy-agent": "7.0.6",
"i18next": "24.1.2",
"i18next": "24.2.0",
"i18next-fs-backend": "2.6.0",
"i18next-http-backend": "3.0.1",
"image-type": "5.2.0",
@ -108,7 +107,7 @@
"jquery.fancytree": "2.38.3",
"jsdom": "25.0.1",
"jsplumb": "2.15.6",
"katex": "0.16.17",
"katex": "0.16.18",
"knockout": "3.5.1",
"mark.js": "8.11.1",
"marked": "15.0.4",
@ -126,7 +125,7 @@
"request": "2.88.2",
"safe-compare": "1.1.4",
"sanitize-filename": "1.6.3",
"sanitize-html": "2.13.1",
"sanitize-html": "2.14.0",
"sax": "1.4.1",
"semver": "7.6.3",
"serve-favicon": "2.5.0",
@ -155,6 +154,7 @@
"@playwright/test": "1.49.1",
"@types/archiver": "6.0.3",
"@types/better-sqlite3": "7.6.12",
"@types/bootstrap": "5.2.10",
"@types/cheerio": "0.22.35",
"@types/cls-hooked": "4.3.9",
"@types/compression": "1.7.5",
@ -206,7 +206,7 @@
"typedoc": "0.27.5",
"typescript": "5.7.2",
"webpack": "5.97.1",
"webpack-cli": "5.1.4",
"webpack-cli": "6.0.1",
"webpack-dev-middleware": "7.4.2"
}
}

View File

@ -222,7 +222,6 @@ export default class CalendarWidget extends RightDropdownButtonWidget {
}
async createMonth() {
console.log(new Error());
const month = utils.formatDateISO(this.date).substr(0, 7);
const dateNotesForMonth = await server.get(`special-notes/notes-for-month/${month}`);

View File

@ -176,7 +176,7 @@ const TAB_ROW_TPL = `
bottom: 0;
right: 0;
left: 0;
z-index: 1000;
z-index: 50;
}
.tab-row-widget .note-tab .note-tab-close {

View File

@ -61,7 +61,9 @@ export default class OptionsWidget extends NoteContextAwareWidget {
async refreshWithNote(note) {
const options = await server.get('options');
this.optionsLoaded(options);
if (options) {
this.optionsLoaded(options);
}
}
async entitiesReloadedEvent({loadResults}) {

View File

@ -7,7 +7,8 @@
"sync_version": "Versiune sincronizare:",
"build_date": "Data compilării:",
"build_revision": "Revizia compilării:",
"data_directory": "Directorul de date:"
"data_directory": "Directorul de date:",
"close": "Închide"
},
"abstract_bulk_action": {
"remove_this_search_action": "Înlătură acesată acțiune la căutare"
@ -339,7 +340,8 @@
"notes_to_clone": "Notițe de clonat",
"prefix_optional": "Prefix (opțional)",
"search_for_note_by_its_name": "căutați notița după nume acesteia",
"target_parent_note": "Notița părinte țintă"
"target_parent_note": "Notița părinte țintă",
"close": "Închide"
},
"close_pane_button": {
"close_this_pane": "Închide acest panou"
@ -365,7 +367,8 @@
"cancel": "Anulează",
"confirmation": "Confirm",
"if_you_dont_check": "Dacă această opțiune nu este bifată, notița va fi ștearsă doar din harta de relații.",
"ok": "OK"
"ok": "OK",
"close": "Închide"
},
"consistency_checks": {
"find_and_fix_button": "Caută și repară probleme de consistență",
@ -431,7 +434,8 @@
"no_note_to_delete": "Nicio notiță nu va fi ștearsă (doar clonele).",
"notes_to_be_deleted": "Următoarele notițe vor fi șterse ({{- noteCount}})",
"ok": "OK",
"deleted_relation_text": "Notița {{- note}} ce va fi ștearsă este referențiată de relația {{- relation}}, originând din {{- source}}."
"deleted_relation_text": "Notița {{- note}} ce va fi ștearsă este referențiată de relația {{- relation}}, originând din {{- source}}.",
"close": "Închide"
},
"delete_relation": {
"allowed_characters": "Se permit caractere alfanumerice, underline și două puncte.",
@ -716,7 +720,8 @@
"button_include": "Include notița",
"dialog_title": "Includere notița",
"label_note": "Notiță",
"placeholder_search": "căutați notița după denumirea ei"
"placeholder_search": "căutați notița după denumirea ei",
"close": "Închide"
},
"info": {
"closeButton": "Închide",
@ -729,7 +734,8 @@
},
"jump_to_note": {
"search_button": "Caută în întregul conținut <kbd>Ctrl+Enter</kbd>",
"search_placeholder": "căutați o notiță după denumirea ei"
"search_placeholder": "căutați o notiță după denumirea ei",
"close": "Închide"
},
"left_pane_toggle": {
"hide_panel": "Ascunde panoul",
@ -743,7 +749,8 @@
"dialog_title": "Importă Markdown",
"import_button": "Importă Ctrl+Enter",
"import_success": "Conținutul Markdown a fost importat în document.",
"modal_body_text": "Din cauza limitărilor la nivel de navigator, nu este posibilă citirea clipboard-ului din JavaScript. Inserați Markdown-ul pentru a-l importa în caseta de mai jos și dați clic pe butonul Import"
"modal_body_text": "Din cauza limitărilor la nivel de navigator, nu este posibilă citirea clipboard-ului din JavaScript. Inserați Markdown-ul pentru a-l importa în caseta de mai jos și dați clic pe butonul Import",
"close": "Închide"
},
"max_content_width": {
"apply_changes_description": "Pentru a aplica schimbările de lățime a conținutului, dați click pe",
@ -779,7 +786,8 @@
"move_success_message": "Notițele selectate au fost mutate în",
"notes_to_move": "Notițe de mutat",
"search_placeholder": "căutați notița după denumirea ei",
"target_parent_note": "Notița părinte destinație"
"target_parent_note": "Notița părinte destinație",
"close": "Închide"
},
"native_title_bar": {
"disabled": "dezactivată",
@ -851,7 +859,8 @@
"note_type_chooser": {
"modal_body": "Selectați tipul notiței/șablonul pentru noua notiță:",
"modal_title": "Selectați tipul notiței",
"templates": "Șabloane:"
"templates": "Șabloane:",
"close": "Închide"
},
"onclick_button": {
"no_click_handler": "Butonul „{{componentId}}” nu are nicio acțiune la clic definită"
@ -906,7 +915,8 @@
"password_not_set": {
"body1": "Notițele protejate sunt criptate utilizând parola de utilizator, dar nu a fost setată nicio parolă.",
"body2": "Pentru a putea să protejați notițe, clic <a class=\"open-password-options-button\" href=\"javascript:\">aici</a> pentru a deschide ecranul de opțiuni și pentru a seta parola.",
"title": "Parola nu este setată"
"title": "Parola nu este setată",
"close": "Închide"
},
"promoted_attributes": {
"add_new_attribute": "Adaugă un nou atribut",
@ -920,7 +930,8 @@
"prompt": {
"defaultTitle": "Aviz",
"ok": "OK <kbd>enter</kbd>",
"title": "Aviz"
"title": "Aviz",
"close": "Închide"
},
"protected_session": {
"enter_password_instruction": "Afișarea notițelor protejate necesită introducerea parolei:",
@ -951,7 +962,8 @@
"erase_notes_button": "Elimină notițele șterse",
"no_changes_message": "Încă nicio schimbare...",
"title": "Modificări recente",
"undelete_link": "restaurare"
"undelete_link": "restaurare",
"close": "Închide"
},
"relation_map": {
"cannot_match_transform": "Nu s-a putut identifica transformarea: {{transform}}",
@ -1030,7 +1042,8 @@
"revisions_deleted": "Notița reviziei a fost ștearsă.",
"maximum_revisions": "Numărul maxim de revizii pentru notița curentă: {{number}}.",
"settings": "Setări revizii ale notițelor",
"snapshot_interval": "Intervalul de creare a reviziilor pentru notițe: {{seconds}}s."
"snapshot_interval": "Intervalul de creare a reviziilor pentru notițe: {{seconds}}s.",
"close": "Închide"
},
"revisions_button": {
"note_revisions": "Revizii ale notiței"
@ -1146,7 +1159,8 @@
"sorting_criteria": "Criterii de ordonare",
"sorting_direction": "Direcția de ordonare",
"the_language_code_for_natural_sort": "Codul limbii pentru ordonarea naturală, e.g. „zn-CN” pentru chineză.",
"title": "titlu"
"title": "titlu",
"close": "Închide"
},
"spellcheck": {
"available_language_codes_label": "Coduri de limbă disponibile:",
@ -1259,7 +1273,8 @@
"shrink_images": "Micșorează imaginile",
"tooltip": "Dacă această opțiune este bifată, Trilium va încerca micșorarea imaginilor încărcate prin scalarea și optimizarea lor, aspect ce va putea afecta calitatea imaginilor. Dacă nu este bifată, imaginile vor fi încărcate fără nicio schimbare.",
"upload": "Încărcare",
"upload_attachments_to_note": "Încarcă atașamentele la notiță"
"upload_attachments_to_note": "Încarcă atașamentele la notiță",
"close": "Închide"
},
"vacuum_database": {
"button_text": "Compactează baza de date",
@ -1555,7 +1570,8 @@
"fixed": {
"title": "Editor cu bară fixă",
"description": "uneltele de editare vor apărea în tab-ul „Formatare” din panglică."
}
},
"multiline-toolbar": "Afișează bara de unelte pe mai multe rânduri dacă nu încape."
}
},
"editor": {

View File

@ -20,38 +20,15 @@ async function register(app: express.Application) {
if (env.isDev()) {
const webpack = (await import("webpack")).default;
const webpackMiddleware = (await import("webpack-dev-middleware")).default;
const productionConfig = (await import("../../webpack.config.js")).default;
const frontendCompiler = webpack({
mode: "development",
entry: {
setup: './src/public/app/setup.js',
mobile: './src/public/app/mobile.js',
desktop: './src/public/app/desktop.js',
},
devtool: 'source-map',
target: 'electron-renderer',
module: {
rules: [
{
test: /\.ts$/,
use: [{
loader: 'ts-loader',
options: {
configFile: path.join(srcRoot, "..", "tsconfig.webpack.json")
}
}],
exclude: /node_modules/,
},
]
},
resolve: {
extensions: ['.ts', '.js'],
extensionAlias: {
".js": [".js", ".ts"],
".cjs": [".cjs", ".cts"],
".mjs": [".mjs", ".mts"]
}
}
entry: productionConfig.entry,
module: productionConfig.module,
resolve: productionConfig.resolve,
devtool: productionConfig.devtool,
target: productionConfig.target
});
app.use(`/${assetPath}/app`, webpackMiddleware(frontendCompiler));

View File

@ -27,6 +27,7 @@ import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../be
import TaskContext from "./task_context.js";
import { NoteParams } from './note-interface.js';
import imageService from "./image.js";
import { t } from "i18next";
interface FoundLink {
name: "imageLink" | "internalLink" | "includeNoteLink" | "relationMapLink",
@ -95,7 +96,7 @@ function copyChildAttributes(parentNote: BNote, childNote: BNote) {
}
function getNewNoteTitle(parentNote: BNote) {
let title = "new note";
let title = t("notes.new-note");
const titleTemplate = parentNote.getLabelValue('titleTemplate');

View File

@ -240,5 +240,8 @@
"other": "Other",
"advanced-title": "Advanced",
"visible-launchers-title": "Visible Launchers"
},
"notes": {
"new-note": "New note"
}
}

View File

@ -15,6 +15,28 @@ export default {
path: path.resolve(rootDir, 'src/public/app-dist'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.ts$/,
use: [{
loader: 'ts-loader',
options: {
configFile: path.join(rootDir, "tsconfig.webpack.json")
}
}],
exclude: /node_modules/,
},
]
},
resolve: {
extensions: ['.ts', '.js'],
extensionAlias: {
".js": [".js", ".ts"],
".cjs": [".cjs", ".cts"],
".mjs": [".mjs", ".mts"]
}
},
devtool: 'source-map',
target: 'electron-renderer',
};