nodebb-plugin-customize 4.1.0 → 5.0.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.
@@ -6,17 +6,14 @@ const util_1 = require("util");
6
6
  const fs_extra_1 = require("fs-extra");
7
7
  const pubsub_1 = require("./pubsub");
8
8
  const db = require("./database");
9
- if (!require.main) {
10
- throw Error('[plugin-customize] `require.main` is undefined');
11
- }
12
- const nconf = require.main.require('nconf');
13
- const User = require.main.require('./src/user');
14
- const Languages = require.main.require('./src/languages');
15
- const File = require.main.require('./src/file');
16
- const Translator = require.main.require('./src/translator');
17
- const Utils = require.main.require('./src/utils');
18
- const { setupApiRoute, setupAdminPageRoute } = require.main.require('./src/routes/helpers');
19
- const { formatApiResponse } = require.main.require('./src/controllers/helpers');
9
+ const nconf = nodebb.require('nconf');
10
+ const User = nodebb.require('./src/user');
11
+ const Languages = nodebb.require('./src/languages');
12
+ const File = nodebb.require('./src/file');
13
+ const Translator = nodebb.require('./src/translator');
14
+ const Utils = nodebb.require('./src/utils');
15
+ const { setupApiRoute, setupAdminPageRoute } = nodebb.require('./src/routes/helpers');
16
+ const { formatApiResponse } = nodebb.require('./src/controllers/helpers');
20
17
  const escape = (dirty) => Translator.escape(Utils.escapeHTML(dirty));
21
18
  const listLanguages = (0, util_1.promisify)(Languages.list);
22
19
  const getSettings = (0, util_1.promisify)(User.getSettings);
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../lib/controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../lib/controllers.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,8 @@ const util_1 = require("util");
11
11
  const path_1 = require("path");
12
12
  const fs_extra_1 = require("fs-extra");
13
13
  const diff_1 = require("diff");
14
- if (!require.main) {
15
- throw Error('[plugin-customize] `require.main` is undefined');
16
- }
17
- const db = require.main.require('./src/database');
18
- const nconf = require.main.require('nconf');
14
+ const db = nodebb.require('./src/database');
15
+ const nconf = nodebb.require('nconf');
19
16
  const getSortedSetRange = (0, util_1.promisify)(db.getSortedSetRange);
20
17
  const getObjects = (0, util_1.promisify)(db.getObjects);
21
18
  const sortedSetAdd = (0, util_1.promisify)(db.sortedSetAdd);
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../lib/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../lib/database.ts"],"names":[],"mappings":"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"}
@@ -3,30 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.build = build;
4
4
  const os_1 = require("os");
5
5
  const build_1 = require("./build");
6
- if (!require.main) {
7
- throw Error('[plugin-customize] `require.main` is undefined');
8
- }
9
- const nconf = require.main.require('nconf');
10
- const winston = require.main.require('winston');
11
- const pubsub = require.main.require('./src/pubsub');
6
+ const nconf = nodebb.require('nconf');
7
+ const winston = nodebb.require('winston');
8
+ const pubsub = nodebb.require('./src/pubsub');
12
9
  const primary = nconf.get('isPrimary') === 'true' || nconf.get('isPrimary') === true;
13
10
  async function build() {
11
+ await (0, build_1.build)();
14
12
  pubsub.publish('customize:build', {
15
- hostname: `${(0, os_1.hostname)()}:${nconf.get('port')}`,
13
+ hostname: (0, os_1.hostname)(),
16
14
  });
17
- if (primary) {
18
- await (0, build_1.build)();
19
- }
20
15
  }
21
- const logErrors = (err) => {
22
- if (err) {
23
- winston.error(err);
24
- }
25
- };
26
16
  if (primary) {
27
17
  pubsub.on('customize:build', (data) => {
28
- if (data.hostname !== `${(0, os_1.hostname)()}:${nconf.get('port')}`) {
29
- (0, build_1.build)().catch(logErrors);
18
+ if (data.hostname !== (0, os_1.hostname)()) {
19
+ (0, build_1.build)().catch((err) => {
20
+ winston.error(err);
21
+ });
30
22
  }
31
23
  });
32
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../lib/pubsub.ts"],"names":[],"mappings":";;AAUA,sBAQC;AAlBD,2BAA8B;AAC9B,mCAA+C;AAE/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAAC,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAAC,CAAC;AACrF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAEpD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;AAE9E,KAAK,UAAU,KAAK;IACzB,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;QAChC,QAAQ,EAAE,GAAG,IAAA,aAAQ,GAAE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;KAC/C,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAA,aAAW,GAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAU,EAAQ,EAAE;IACrC,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,OAAO,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAA0B,EAAE,EAAE;QAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAA,aAAQ,GAAE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAC3D,IAAA,aAAW,GAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../lib/pubsub.ts"],"names":[],"mappings":";;AASA,sBAMC;AAfD,2BAA8B;AAC9B,mCAA+C;AAE/C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAE9C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;AAE9E,KAAK,UAAU,KAAK;IACzB,MAAM,IAAA,aAAW,GAAE,CAAC;IAEpB,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;QAChC,QAAQ,EAAE,IAAA,aAAQ,GAAE;KACrB,CAAC,CAAC;AACL,CAAC;AAED,IAAI,OAAO,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAA0B,EAAE,EAAE;QAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAA,aAAQ,GAAE,EAAE,CAAC;YACjC,IAAA,aAAW,GAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,128 +1,166 @@
1
1
  <div class="acp-page-container" style="max-width: 1200px;">
2
2
  <div component="settings/main/header" class="row border-bottom py-2 m-0 sticky-top acp-page-main-header align-items-center">
3
- <div class="col-12 col-md-8 px-0 mb-1 mb-md-0">
4
- <h4 class="fw-bold tracking-tight mb-0">{title}</h4>
5
- </div>
6
- <div class="col-12 col-md-4 px-0 px-md-3">
7
- <button id="build" class="btn btn-primary btn-sm fw-semibold ff-secondary w-100 text-center text-nowrap">[[admin/admin:save-changes]]</button>
8
- </div>
9
- </div>
3
+ <div class="col-12 col-md-8 px-0 mb-1 mb-md-0">
4
+ <h4 class="fw-bold tracking-tight mb-0">{title}</h4>
5
+ </div>
6
+ <div class="col-12 col-md-4 px-0 px-md-3">
7
+ <button id="build" class="btn btn-primary btn-sm fw-semibold ff-secondary w-100 text-center text-nowrap">{{tx("admin/admin:save-changes")}}</button>
8
+ </div>
9
+ </div>
10
10
 
11
11
  <div class="row m-0">
12
12
  <div id="spy-container" class="col-12 px-0 mb-4" tabindex="0">
13
+ <ul class="nav nav-tabs mb-3" role="tablist">
14
+ <li class="nav-item" role="presentation">
15
+ <button
16
+ class="nav-link active fw-semibold"
17
+ id="template-customize-tab"
18
+ data-bs-toggle="tab"
19
+ data-bs-target="#template-customize-pane"
20
+ type="button"
21
+ role="tab"
22
+ aria-controls="template-customize-pane"
23
+ aria-selected="true"
24
+ >
25
+ Template Customizations
26
+ </button>
27
+ </li>
13
28
 
14
- <div class="card">
15
- <div class="card-header">
16
- <h4 class="card-title">Translation Customizations</h4>
17
- </div>
18
- <table class="table">
19
- <thead>
20
- <tr>
21
- <th>Language</th>
22
- <th>Namespace</th>
23
- <th>Key</th>
24
- <th>Original</th>
25
- <th>Replacement</th>
26
- <th></th>
27
- </tr>
28
- </thead>
29
- <tbody id="translations-list">
30
- <!-- IMPORT partials/admin/plugins/customize/translations-list.tpl -->
31
- </tbody>
32
- <tfoot>
33
- <tr id="translation-edit" class="translation">
34
- <td>
35
- <select id="translation-edit-language" class="form-select">
36
- <option value="">---</option>
37
- {{{each languages}}}
38
- <option value="{./code}" {{{if ./selected}}}selected{{{end}}}>{./name} ({./code})</option>
39
- {{{end}}}
40
- </select>
41
- </td>
42
- <td>
43
- <select id="translation-edit-namespace" class="form-select">
44
- <option value="">---</option>
45
- {{{each namespaces}}}
46
- <option value="{./name}">{./name}</option>
47
- {{{end}}}
48
- </select>
49
- </td>
50
- <td>
51
- <select id="translation-edit-key" class="form-select">
52
- <!-- automatically fetch possible keys and autopopulate this -->
53
- </select>
54
- </td>
55
- <td>
56
- <span id="translation-edit-original"><!-- original goes here --></span>
57
- </td>
58
- <td>
59
- <!-- set to original value at first -->
60
- <textarea id="translation-edit-value" class="form-control"></textarea>
61
- </td>
62
- <td>
63
- <button class="btn btn-ghost" id="translation-edit-submit"><i class="fa fa-fw fa-check text-success"></i></button>
64
- </td>
65
- </tr>
66
- </tfoot>
67
- </table>
68
- </div>
29
+ <li class="nav-item" role="presentation">
30
+ <button
31
+ class="nav-link fw-semibold"
32
+ id="translations-customize-tab"
33
+ data-bs-toggle="tab"
34
+ data-bs-target="#translations-customize-pane"
35
+ type="button"
36
+ role="tab"
37
+ aria-controls="translations-customize-pane"
38
+ aria-selected="false"
39
+ >
40
+ Translation Customizations
41
+ </button>
42
+ </li>
43
+ </ul>
69
44
 
70
- <div class="card">
71
- <div class="card-header">
72
- <h4 class="card-title">Template Customizations</h4>
73
- </div>
74
- <table class="table">
75
- <thead>
76
- <tr>
77
- <th>Template</th>
78
- <th>Diff</th>
79
- <th></th>
80
- </tr>
81
- </thead>
82
- <tbody id="templates-list">
83
- <!-- IMPORT partials/admin/plugins/customize/templates-list.tpl -->
84
- </tbody>
85
- <tfoot>
86
- <tr id="template-edit" class="template">
87
- <td>
88
- <select id="template-edit-path" class="form-select">
89
- <option value="">---</option>
90
- {{{each templatePaths}}}
91
- <option value="{@value}">{@value}</option>
92
- {{{end}}}
93
- </select>
94
- </td>
95
- <td>
96
- <pre class="diff-preview"><code id="template-edit-diff"><!-- diff goes here --></code></pre>
97
- </td>
98
- <td>
99
- <div class="d-flex gap-2">
100
- <button class="btn btn-sm btn-primary" id="template-edit-open" data-bs-toggle="modal" data-bs-target="#template-edit-modal"><i class="fa fa-fw fa-pencil"></i></a>
101
- <button class="btn btn-sm btn-success" id="template-edit-submit"><i class="fa fa-fw fa-check"></i></button>
102
- </div>
103
- </td>
104
- </tr>
105
- </tfoot>
106
- </table>
107
- </div>
45
+ <div class="tab-content">
46
+ <div class="tab-pane fade show active"
47
+ id="template-customize-pane"
48
+ role="tabpanel"
49
+ aria-labelledby="template-customize-tab"
50
+ tabindex="0">
51
+ <div class="card">
52
+ <table class="table">
53
+ <thead>
54
+ <tr>
55
+ <th>Template</th>
56
+ <th>Diff</th>
57
+ <th></th>
58
+ </tr>
59
+ </thead>
60
+ <tbody id="templates-list">
61
+ <!-- IMPORT partials/admin/plugins/customize/templates-list.tpl -->
62
+ </tbody>
63
+ <tfoot>
64
+ <tr id="template-edit" class="template">
65
+ <td>
66
+ <select id="template-edit-path" class="form-select">
67
+ <option value="">---</option>
68
+ {{{each templatePaths}}}
69
+ <option value="{@value}">{@value}</option>
70
+ {{{end}}}
71
+ </select>
72
+ </td>
73
+ <td>
74
+ <pre class="diff-preview"><code id="template-edit-diff"><!-- diff goes here --></code></pre>
75
+ </td>
76
+ <td>
77
+ <div class="d-flex gap-2">
78
+ <button class="btn btn-sm btn-primary" id="template-edit-open" data-bs-toggle="modal" data-bs-target="#template-edit-modal"><i class="fa fa-fw fa-pencil"></i></a>
79
+ <button class="btn btn-sm btn-success" id="template-edit-submit"><i class="fa fa-fw fa-check"></i></button>
80
+ </div>
81
+ </td>
82
+ </tr>
83
+ </tfoot>
84
+ </table>
85
+ </div>
86
+ </div>
87
+ <div class="tab-pane fade"
88
+ id="translations-customize-pane"
89
+ role="tabpanel"
90
+ aria-labelledby="translations-customize-tab"
91
+ tabindex="0">
92
+ <div class="card">
93
+ <table class="table">
94
+ <thead>
95
+ <tr>
96
+ <th>Language</th>
97
+ <th>Namespace</th>
98
+ <th>Key</th>
99
+ <th>Original</th>
100
+ <th>Replacement</th>
101
+ <th></th>
102
+ </tr>
103
+ </thead>
104
+ <tbody id="translations-list">
105
+ <!-- IMPORT partials/admin/plugins/customize/translations-list.tpl -->
106
+ </tbody>
107
+ <tfoot>
108
+ <tr id="translation-edit" class="translation">
109
+ <td>
110
+ <select id="translation-edit-language" class="form-select">
111
+ <option value="">---</option>
112
+ {{{each languages}}}
113
+ <option value="{./code}" {{{if ./selected}}}selected{{{end}}}>{./name} ({./code})</option>
114
+ {{{end}}}
115
+ </select>
116
+ </td>
117
+ <td>
118
+ <select id="translation-edit-namespace" class="form-select">
119
+ <option value="">---</option>
120
+ {{{each namespaces}}}
121
+ <option value="{./name}">{./name}</option>
122
+ {{{end}}}
123
+ </select>
124
+ </td>
125
+ <td>
126
+ <select id="translation-edit-key" class="form-select">
127
+ <!-- automatically fetch possible keys and autopopulate this -->
128
+ </select>
129
+ </td>
130
+ <td>
131
+ <span id="translation-edit-original"><!-- original goes here --></span>
132
+ </td>
133
+ <td>
134
+ <!-- set to original value at first -->
135
+ <textarea id="translation-edit-value" class="form-control"></textarea>
136
+ </td>
137
+ <td>
138
+ <button class="btn btn-ghost" id="translation-edit-submit"><i class="fa fa-fw fa-check text-success"></i></button>
139
+ </td>
140
+ </tr>
141
+ </tfoot>
142
+ </table>
143
+ </div>
144
+ </div>
145
+ </div>
108
146
 
109
- <div class="modal fade" id="template-edit-modal" tabindex="-1" role="dialog" aria-labelledby="template-edit-modal-label">
110
- <div class="modal-dialog modal-fullscreen" role="document">
111
- <div class="modal-content">
112
- <div class="modal-header">
113
- <h4 class="modal-title" id="template-edit-modal-label">Edit Template Customization</h4>
114
- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true"></span></button>
115
- </div>
116
- <div class="modal-body row">
117
- <div class="col-md" id="template-edit-old"></div>
118
- <div class="col-md" id="template-edit-value"></div>
119
- </div>
120
- <div class="modal-footer">
121
- <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Done</button>
122
- </div>
123
- </div>
124
- </div>
125
- </div>
147
+ <div class="modal fade" id="template-edit-modal" tabindex="-1" role="dialog" aria-labelledby="template-edit-modal-label">
148
+ <div class="modal-dialog modal-fullscreen" role="document">
149
+ <div class="modal-content">
150
+ <div class="modal-header">
151
+ <h4 class="modal-title" id="template-edit-modal-label">Edit Template Customization</h4>
152
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true"></span></button>
153
+ </div>
154
+ <div class="modal-body row">
155
+ <div class="col-md" id="template-edit-old"></div>
156
+ <div class="col-md" id="template-edit-value"></div>
157
+ </div>
158
+ <div class="modal-footer">
159
+ <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Done</button>
160
+ </div>
161
+ </div>
162
+ </div>
163
+ </div>
126
164
  </div>
127
165
  </div>
128
166
  </div>
@@ -6,15 +6,14 @@ import { readJson } from 'fs-extra';
6
6
  import { build } from './pubsub';
7
7
  import * as db from './database';
8
8
 
9
- if (!require.main) { throw Error('[plugin-customize] `require.main` is undefined'); }
10
- const nconf = require.main.require('nconf');
11
- const User = require.main.require('./src/user');
12
- const Languages = require.main.require('./src/languages');
13
- const File = require.main.require('./src/file');
14
- const Translator = require.main.require('./src/translator');
15
- const Utils = require.main.require('./src/utils');
16
- const { setupApiRoute, setupAdminPageRoute } = require.main.require('./src/routes/helpers');
17
- const { formatApiResponse } = require.main.require('./src/controllers/helpers');
9
+ const nconf = nodebb.require('nconf');
10
+ const User = nodebb.require('./src/user');
11
+ const Languages = nodebb.require('./src/languages');
12
+ const File = nodebb.require('./src/file');
13
+ const Translator = nodebb.require('./src/translator');
14
+ const Utils = nodebb.require('./src/utils');
15
+ const { setupApiRoute, setupAdminPageRoute } = nodebb.require('./src/routes/helpers');
16
+ const { formatApiResponse } = nodebb.require('./src/controllers/helpers');
18
17
 
19
18
  const escape = (dirty: string): string => Translator.escape(Utils.escapeHTML(dirty));
20
19
 
package/lib/database.ts CHANGED
@@ -5,9 +5,8 @@ import { join } from 'path';
5
5
  import { readJson, readFile } from 'fs-extra';
6
6
  import { applyPatch } from 'diff';
7
7
 
8
- if (!require.main) { throw Error('[plugin-customize] `require.main` is undefined'); }
9
- const db = require.main.require('./src/database');
10
- const nconf = require.main.require('nconf');
8
+ const db = nodebb.require('./src/database');
9
+ const nconf = nodebb.require('nconf');
11
10
 
12
11
  const getSortedSetRange: (
13
12
  key: string,
package/lib/pubsub.ts CHANGED
@@ -1,33 +1,26 @@
1
1
  import { hostname } from 'os';
2
2
  import { build as buildAssets } from './build';
3
3
 
4
- if (!require.main) { throw Error('[plugin-customize] `require.main` is undefined'); }
5
- const nconf = require.main.require('nconf');
6
- const winston = require.main.require('winston');
7
- const pubsub = require.main.require('./src/pubsub');
4
+ const nconf = nodebb.require('nconf');
5
+ const winston = nodebb.require('winston');
6
+ const pubsub = nodebb.require('./src/pubsub');
8
7
 
9
8
  const primary = nconf.get('isPrimary') === 'true' || nconf.get('isPrimary') === true;
10
9
 
11
10
  export async function build(): Promise<void> {
11
+ await buildAssets();
12
+
12
13
  pubsub.publish('customize:build', {
13
- hostname: `${hostname()}:${nconf.get('port')}`,
14
+ hostname: hostname(),
14
15
  });
15
-
16
- if (primary) {
17
- await buildAssets();
18
- }
19
16
  }
20
17
 
21
- const logErrors = (err: Error): void => {
22
- if (err) {
23
- winston.error(err);
24
- }
25
- };
26
-
27
18
  if (primary) {
28
19
  pubsub.on('customize:build', (data: { hostname: string }) => {
29
- if (data.hostname !== `${hostname()}:${nconf.get('port')}`) {
30
- buildAssets().catch(logErrors);
20
+ if (data.hostname !== hostname()) {
21
+ buildAssets().catch((err) => {
22
+ winston.error(err);
23
+ });
31
24
  }
32
25
  });
33
26
  }
package/lib/types.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  import { Router, RequestHandler } from 'express';
2
2
 
3
3
  declare global {
4
+ interface NodeBBGlobal {
5
+ require<T = any>(request: string): T;
6
+ }
7
+
8
+ const nodebb: NodeBBGlobal;
9
+
4
10
  type NodeBack<T> = (err?: Error | null, ...args: T[]) => void;
5
11
 
6
12
  namespace Express {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-customize",
3
- "version": "4.1.0",
3
+ "version": "5.0.0",
4
4
  "description": "Customize NodeBB translations and templates",
5
5
  "main": "build/lib",
6
6
  "author": "Peter Jaszkowiak <p.jaszkow@gmail.com> (https://github.com/pitaj)",
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/NodeBB/nodebb-plugin-customize.git"
11
11
  },
12
12
  "nbbpm": {
13
- "compatibility": "^3.2.0 || ^4.0.0"
13
+ "compatibility": "^4.14.0"
14
14
  },
15
15
  "keywords": [
16
16
  "nodebb",
@@ -4,124 +4,163 @@
4
4
  <h4 class="fw-bold tracking-tight mb-0">{title}</h4>
5
5
  </div>
6
6
  <div class="col-12 col-md-4 px-0 px-md-3">
7
- <button id="build" class="btn btn-primary btn-sm fw-semibold ff-secondary w-100 text-center text-nowrap">[[admin/admin:save-changes]]</button>
7
+ <button id="build" class="btn btn-primary btn-sm fw-semibold ff-secondary w-100 text-center text-nowrap">{{tx("admin/admin:save-changes")}}</button>
8
8
  </div>
9
9
  </div>
10
10
 
11
11
  <div class="row m-0">
12
12
  <div id="spy-container" class="col-12 px-0 mb-4" tabindex="0">
13
- <div class="card">
14
- <div class="card-header">
15
- <h4 class="card-title">Translation Customizations</h4>
16
- </div>
17
- <table class="table">
18
- <thead>
19
- <tr>
20
- <th>Language</th>
21
- <th>Namespace</th>
22
- <th>Key</th>
23
- <th>Original</th>
24
- <th>Replacement</th>
25
- <th></th>
26
- </tr>
27
- </thead>
28
- <tbody id="translations-list">
29
- <!-- IMPORT partials/admin/plugins/customize/translations-list.tpl -->
30
- </tbody>
31
- <tfoot>
32
- <tr id="translation-edit" class="translation">
33
- <td>
34
- <select id="translation-edit-language" class="form-select">
35
- <option value="">---</option>
36
- {{{each languages}}}
37
- <option value="{./code}" {{{if ./selected}}}selected{{{end}}}>{./name} ({./code})</option>
38
- {{{end}}}
39
- </select>
40
- </td>
41
- <td>
42
- <select id="translation-edit-namespace" class="form-select">
43
- <option value="">---</option>
44
- {{{each namespaces}}}
45
- <option value="{./name}">{./name}</option>
46
- {{{end}}}
47
- </select>
48
- </td>
49
- <td>
50
- <select id="translation-edit-key" class="form-select">
51
- <!-- automatically fetch possible keys and autopopulate this -->
52
- </select>
53
- </td>
54
- <td>
55
- <span id="translation-edit-original"><!-- original goes here --></span>
56
- </td>
57
- <td>
58
- <!-- set to original value at first -->
59
- <textarea id="translation-edit-value" class="form-control"></textarea>
60
- </td>
61
- <td>
62
- <button class="btn btn-ghost" id="translation-edit-submit"><i class="fa fa-fw fa-check text-success"></i></button>
63
- </td>
64
- </tr>
65
- </tfoot>
66
- </table>
67
- </div>
13
+ <ul class="nav nav-tabs mb-3" role="tablist">
14
+ <li class="nav-item" role="presentation">
15
+ <button
16
+ class="nav-link active fw-semibold"
17
+ id="template-customize-tab"
18
+ data-bs-toggle="tab"
19
+ data-bs-target="#template-customize-pane"
20
+ type="button"
21
+ role="tab"
22
+ aria-controls="template-customize-pane"
23
+ aria-selected="true"
24
+ >
25
+ Template Customizations
26
+ </button>
27
+ </li>
68
28
 
69
- <div class="card">
70
- <div class="card-header">
71
- <h4 class="card-title">Template Customizations</h4>
72
- </div>
73
- <table class="table">
74
- <thead>
75
- <tr>
76
- <th>Template</th>
77
- <th>Diff</th>
78
- <th></th>
79
- </tr>
80
- </thead>
81
- <tbody id="templates-list">
82
- <!-- IMPORT partials/admin/plugins/customize/templates-list.tpl -->
83
- </tbody>
84
- <tfoot>
85
- <tr id="template-edit" class="template">
86
- <td>
87
- <select id="template-edit-path" class="form-select">
88
- <option value="">---</option>
89
- {{{each templatePaths}}}
90
- <option value="{@value}">{@value}</option>
91
- {{{end}}}
92
- </select>
93
- </td>
94
- <td>
95
- <pre class="diff-preview"><code id="template-edit-diff"><!-- diff goes here --></code></pre>
96
- </td>
97
- <td>
98
- <div class="d-flex gap-2">
99
- <button class="btn btn-sm btn-primary" id="template-edit-open" data-bs-toggle="modal" data-bs-target="#template-edit-modal"><i class="fa fa-fw fa-pencil"></i></a>
100
- <button class="btn btn-sm btn-success" id="template-edit-submit"><i class="fa fa-fw fa-check"></i></button>
29
+ <li class="nav-item" role="presentation">
30
+ <button
31
+ class="nav-link fw-semibold"
32
+ id="translations-customize-tab"
33
+ data-bs-toggle="tab"
34
+ data-bs-target="#translations-customize-pane"
35
+ type="button"
36
+ role="tab"
37
+ aria-controls="translations-customize-pane"
38
+ aria-selected="false"
39
+ >
40
+ Translation Customizations
41
+ </button>
42
+ </li>
43
+ </ul>
44
+
45
+ <div class="tab-content">
46
+ <div class="tab-pane fade show active"
47
+ id="template-customize-pane"
48
+ role="tabpanel"
49
+ aria-labelledby="template-customize-tab"
50
+ tabindex="0">
51
+ <div class="card">
52
+ <table class="table">
53
+ <thead>
54
+ <tr>
55
+ <th>Template</th>
56
+ <th>Diff</th>
57
+ <th></th>
58
+ </tr>
59
+ </thead>
60
+ <tbody id="templates-list">
61
+ <!-- IMPORT partials/admin/plugins/customize/templates-list.tpl -->
62
+ </tbody>
63
+ <tfoot>
64
+ <tr id="template-edit" class="template">
65
+ <td>
66
+ <select id="template-edit-path" class="form-select">
67
+ <option value="">---</option>
68
+ {{{each templatePaths}}}
69
+ <option value="{@value}">{@value}</option>
70
+ {{{end}}}
71
+ </select>
72
+ </td>
73
+ <td>
74
+ <pre class="diff-preview"><code id="template-edit-diff"><!-- diff goes here --></code></pre>
75
+ </td>
76
+ <td>
77
+ <div class="d-flex gap-2">
78
+ <button class="btn btn-sm btn-primary" id="template-edit-open" data-bs-toggle="modal" data-bs-target="#template-edit-modal"><i class="fa fa-fw fa-pencil"></i></a>
79
+ <button class="btn btn-sm btn-success" id="template-edit-submit"><i class="fa fa-fw fa-check"></i></button>
80
+ </div>
81
+ </td>
82
+ </tr>
83
+ </tfoot>
84
+ </table>
101
85
  </div>
102
- </td>
103
- </tr>
104
- </tfoot>
105
- </table>
86
+ </div>
87
+ <div class="tab-pane fade"
88
+ id="translations-customize-pane"
89
+ role="tabpanel"
90
+ aria-labelledby="translations-customize-tab"
91
+ tabindex="0">
92
+ <div class="card">
93
+ <table class="table">
94
+ <thead>
95
+ <tr>
96
+ <th>Language</th>
97
+ <th>Namespace</th>
98
+ <th>Key</th>
99
+ <th>Original</th>
100
+ <th>Replacement</th>
101
+ <th></th>
102
+ </tr>
103
+ </thead>
104
+ <tbody id="translations-list">
105
+ <!-- IMPORT partials/admin/plugins/customize/translations-list.tpl -->
106
+ </tbody>
107
+ <tfoot>
108
+ <tr id="translation-edit" class="translation">
109
+ <td>
110
+ <select id="translation-edit-language" class="form-select">
111
+ <option value="">---</option>
112
+ {{{each languages}}}
113
+ <option value="{./code}" {{{if ./selected}}}selected{{{end}}}>{./name} ({./code})</option>
114
+ {{{end}}}
115
+ </select>
116
+ </td>
117
+ <td>
118
+ <select id="translation-edit-namespace" class="form-select">
119
+ <option value="">---</option>
120
+ {{{each namespaces}}}
121
+ <option value="{./name}">{./name}</option>
122
+ {{{end}}}
123
+ </select>
124
+ </td>
125
+ <td>
126
+ <select id="translation-edit-key" class="form-select">
127
+ <!-- automatically fetch possible keys and autopopulate this -->
128
+ </select>
129
+ </td>
130
+ <td>
131
+ <span id="translation-edit-original"><!-- original goes here --></span>
132
+ </td>
133
+ <td>
134
+ <!-- set to original value at first -->
135
+ <textarea id="translation-edit-value" class="form-control"></textarea>
136
+ </td>
137
+ <td>
138
+ <button class="btn btn-ghost" id="translation-edit-submit"><i class="fa fa-fw fa-check text-success"></i></button>
139
+ </td>
140
+ </tr>
141
+ </tfoot>
142
+ </table>
143
+ </div>
144
+ </div>
106
145
  </div>
107
146
 
108
147
  <div class="modal fade" id="template-edit-modal" tabindex="-1" role="dialog" aria-labelledby="template-edit-modal-label">
109
- <div class="modal-dialog modal-fullscreen" role="document">
110
- <div class="modal-content">
111
- <div class="modal-header">
112
- <h4 class="modal-title" id="template-edit-modal-label">Edit Template Customization</h4>
113
- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true"></span></button>
114
- </div>
115
- <div class="modal-body row">
116
- <div class="col-md" id="template-edit-old"></div>
117
- <div class="col-md" id="template-edit-value"></div>
118
- </div>
119
- <div class="modal-footer">
120
- <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Done</button>
121
- </div>
148
+ <div class="modal-dialog modal-fullscreen" role="document">
149
+ <div class="modal-content">
150
+ <div class="modal-header">
151
+ <h4 class="modal-title" id="template-edit-modal-label">Edit Template Customization</h4>
152
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true"></span></button>
153
+ </div>
154
+ <div class="modal-body row">
155
+ <div class="col-md" id="template-edit-old"></div>
156
+ <div class="col-md" id="template-edit-value"></div>
157
+ </div>
158
+ <div class="modal-footer">
159
+ <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Done</button>
160
+ </div>
161
+ </div>
122
162
  </div>
123
163
  </div>
124
- </div>
125
164
  </div>
126
165
  </div>
127
166
  </div>
package/tsconfig.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "include": [
3
- "./lib/*.ts"
3
+ "./lib/**/*.ts",
4
+ "./lib/**/*.d.ts"
4
5
  ],
5
6
  "compilerOptions": {
6
7
  "outDir": "build/lib",
@@ -1,13 +0,0 @@
1
- <div class="alert alert-danger">
2
- <strong>[[global:400.title]]</strong>
3
- <!-- IF error -->
4
- <p>{error}</p>
5
- <!-- ELSE -->
6
- <p>[[global:400.message, {config.relative_path}]]</p>
7
- <!-- ENDIF error -->
8
-
9
- <!-- IF returnLink -->
10
- <p>[[error:goback]]</p>
11
- <!-- ENDIF returnLink -->
12
- </div>
13
- asdasd
@@ -1,12 +0,0 @@
1
- <div class="flex-fill">
2
- <h2 class="fw-semibold tracking-tight text-center">[[global:404.title]]</h2>
3
- it works
4
- <div class="mx-auto">
5
- <div class="d-flex flex-column gap-3 justify-content-center text-center">
6
- <div class="mx-auto p-4 bg-light border rounded">
7
- <i class="text-secondary fa fa-fw fa-4x {{{ if icon }}}{icon}{{{ else }}}fa-otter{{{ end }}}"></i>
8
- </div>
9
- {{{ if error }}}{error}{{{ else }}}[[global:404.message, {config.relative_path}]]{{{ end }}}
10
- </div>
11
- </div>
12
- </div>