Change Admin Panel "Attachment Settings" and "Cron Settings" options to be tabs, not submenu. Part 2.

Thanks to xet7 !
This commit is contained in:
Lauri Ojansivu 2025-10-12 05:25:44 +03:00
parent e2f3dad779
commit 5a6faafa30
6 changed files with 105 additions and 39 deletions

View file

@ -2,27 +2,27 @@ template(name="attachmentSettings")
.attachment-settings-content
.settings-tabs
ul.tab-nav
li(class="{{#if showStorageSettings.get}}active{{/if}}")
li(class="{{#if showStorageSettings}}active{{/if}}")
a.js-attachment-storage-settings(data-id="storage-settings")
i.fa.fa-cog
| {{_ 'attachment-storage-settings'}}
li(class="{{#if showMigration.get}}active{{/if}}")
li(class="{{#if showMigration}}active{{/if}}")
a.js-attachment-migration(data-id="attachment-migration")
i.fa.fa-arrow-right
| {{_ 'attachment-migration'}}
li(class="{{#if showMonitoring.get}}active{{/if}}")
li(class="{{#if showMonitoring}}active{{/if}}")
a.js-attachment-monitoring(data-id="attachment-monitoring")
i.fa.fa-chart-line
| {{_ 'attachment-monitoring'}}
.tab-content
if loading.get
if loading
+spinner
else if showStorageSettings.get
else if showStorageSettings
+storageSettings
else if showMigration.get
else if showMigration
+attachmentMigration
else if showMonitoring.get
else if showMonitoring
+attachmentMonitoring
template(name="storageSettings")

View file

@ -1,5 +1,21 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
// Template helpers for attachmentSettings
Template.attachmentSettings.helpers({
loading() {
return attachmentSettings.loading.get();
},
showStorageSettings() {
return attachmentSettings.showStorageSettings.get();
},
showMigration() {
return attachmentSettings.showMigration.get();
},
showMonitoring() {
return attachmentSettings.showMonitoring.get();
}
});
import { Meteor } from 'meteor/meteor';
import { Session } from 'meteor/session';
import { Tracker } from 'meteor/tracker';

View file

@ -2,33 +2,33 @@ template(name="cronSettings")
.cron-settings-content
.settings-tabs
ul.tab-nav
li(class="{{#if showMigrations.get}}active{{/if}}")
li(class="{{#if showMigrations}}active{{/if}}")
a.js-cron-migrations(data-id="cron-migrations")
i.fa.fa-database
| {{_ 'cron-migrations'}}
li(class="{{#if showBoardOperations.get}}active{{/if}}")
li(class="{{#if showBoardOperations}}active{{/if}}")
a.js-cron-board-operations(data-id="cron-board-operations")
i.fa.fa-tasks
| {{_ 'board-operations'}}
li(class="{{#if showJobs.get}}active{{/if}}")
li(class="{{#if showJobs}}active{{/if}}")
a.js-cron-jobs(data-id="cron-jobs")
i.fa.fa-clock-o
| {{_ 'cron-jobs'}}
li(class="{{#if showAddJob.get}}active{{/if}}")
li(class="{{#if showAddJob}}active{{/if}}")
a.js-cron-add(data-id="cron-add")
i.fa.fa-plus
| {{_ 'add-cron-job'}}
.tab-content
if loading.get
if loading
+spinner
else if showMigrations.get
else if showMigrations
+cronMigrations
else if showBoardOperations.get
else if showBoardOperations
+cronBoardOperations
else if showJobs.get
else if showJobs
+cronJobs
else if showAddJob.get
else if showAddJob
+cronAddJob
template(name="cronMigrations")

View file

@ -9,70 +9,70 @@ template(name="setting")
.content-body
.side-menu
ul
li(class="{{#if generalSetting.get}}active{{/if}}")
li(class="{{#if generalSetting}}active{{/if}}")
a.js-setting-menu(data-id="registration-setting")
i.fa.fa-sign-in
| {{_ 'registration'}}
unless isSandstorm
li(class="{{#if emailSetting.get}}active{{/if}}")
li(class="{{#if emailSetting}}active{{/if}}")
a.js-setting-menu(data-id="email-setting")
i.fa.fa-envelope
| {{_ 'email'}}
li(class="{{#if accountSetting.get}}active{{/if}}")
li(class="{{#if accountSetting}}active{{/if}}")
a.js-setting-menu(data-id="account-setting")
i.fa.fa-users
| {{_ 'accounts'}}
li(class="{{#if tableVisibilityModeSetting.get}}active{{/if}}")
li(class="{{#if tableVisibilityModeSetting}}active{{/if}}")
a.js-setting-menu(data-id="tableVisibilityMode-setting")
i.fa.fa-eye
| {{_ 'tableVisibilityMode'}}
li(class="{{#if announcementSetting.get}}active{{/if}}")
li(class="{{#if announcementSetting}}active{{/if}}")
a.js-setting-menu(data-id="announcement-setting")
i.fa.fa-bullhorn
| {{_ 'admin-announcement'}}
li(class="{{#if accessibilitySetting.get}}active{{/if}}")
li(class="{{#if accessibilitySetting}}active{{/if}}")
a.js-setting-menu(data-id="accessibility-setting")
i.fa.fa-universal-access
| {{_ 'accessibility'}}
li(class="{{#if layoutSetting.get}}active{{/if}}")
li(class="{{#if layoutSetting}}active{{/if}}")
a.js-setting-menu(data-id="layout-setting")
i.fa.fa-object-group
| {{_ 'layout'}}
li(class="{{#if webhookSetting.get}}active{{/if}}")
li(class="{{#if webhookSetting}}active{{/if}}")
a.js-setting-menu(data-id="webhook-setting")
i.fa.fa-globe
| {{_ 'global-webhook'}}
li(class="{{#if attachmentSettings.get}}active{{/if}}")
li(class="{{#if attachmentSettings}}active{{/if}}")
a.js-setting-menu(data-id="attachment-settings")
i.fa.fa-paperclip
| {{_ 'attachment-settings'}}
li(class="{{#if cronSettings.get}}active{{/if}}")
| {{_ 'attachments'}}
li(class="{{#if cronSettings}}active{{/if}}")
a.js-setting-menu(data-id="cron-settings")
i.fa.fa-clock-o
| {{_ 'cron-settings'}}
| {{_ 'cron'}}
.main-body
if loading.get
if loading
+spinner
else if attachmentSettings.get
else if attachmentSettings
+attachmentSettings
else if cronSettings.get
else if cronSettings
+cronSettings
else if generalSetting.get
else if generalSetting
+general
else if emailSetting.get
else if emailSetting
unless isSandstorm
+email
else if accountSetting.get
else if accountSetting
+accountSettings
else if tableVisibilityModeSetting.get
else if tableVisibilityModeSetting
+tableVisibilityModeSettings
else if announcementSetting.get
else if announcementSetting
+announcementSettings
else if accessibilitySetting.get
else if accessibilitySetting
+accessibilitySettings
else if layoutSetting.get
else if layoutSetting
+layoutSettings
else if webhookSetting.get
else if webhookSetting
+webhookSettings
template(name="webhookSettings")

View file

@ -3,6 +3,54 @@ import { TAPi18n } from '/imports/i18n';
import { ALLOWED_WAIT_SPINNERS } from '/config/const';
import LockoutSettings from '/models/lockoutSettings';
// Template helpers for settingBody
Template.setting.helpers({
generalSetting() {
const instance = Template.instance();
return instance && instance.generalSetting ? instance.generalSetting.get() : false;
},
emailSetting() {
const instance = Template.instance();
return instance && instance.emailSetting ? instance.emailSetting.get() : false;
},
accountSetting() {
const instance = Template.instance();
return instance && instance.accountSetting ? instance.accountSetting.get() : false;
},
tableVisibilityModeSetting() {
const instance = Template.instance();
return instance && instance.tableVisibilityModeSetting ? instance.tableVisibilityModeSetting.get() : false;
},
announcementSetting() {
const instance = Template.instance();
return instance && instance.announcementSetting ? instance.announcementSetting.get() : false;
},
accessibilitySetting() {
const instance = Template.instance();
return instance && instance.accessibilitySetting ? instance.accessibilitySetting.get() : false;
},
layoutSetting() {
const instance = Template.instance();
return instance && instance.layoutSetting ? instance.layoutSetting.get() : false;
},
webhookSetting() {
const instance = Template.instance();
return instance && instance.webhookSetting ? instance.webhookSetting.get() : false;
},
attachmentSettings() {
const instance = Template.instance();
return instance && instance.attachmentSettings ? instance.attachmentSettings.get() : false;
},
cronSettings() {
const instance = Template.instance();
return instance && instance.cronSettings ? instance.cronSettings.get() : false;
},
loading() {
const instance = Template.instance();
return instance && instance.loading ? instance.loading.get() : false;
}
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');

View file

@ -98,6 +98,8 @@
"migration-info-text": "Database migrations are performed once and improve system performance. The process continues in the background even if you close your browser.",
"migration-warning-text": "Please do not close your browser during migration. The process will continue in the background but may take longer to complete.",
"cron-settings": "Cron Settings",
"attachments": "Attachments",
"cron": "Cron",
"back-to-settings": "Back to Settings",
"cron-migrations": "Database Migrations",
"cron-jobs": "Cron Jobs",