mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-05 19:24:39 +00:00
bump(version): 3.4.9
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "betterseqtaplus",
|
"name": "betterseqtaplus",
|
||||||
"version": "3.4.8.1",
|
"version": "3.4.9",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
|
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
|
||||||
"browserslist": "> 0.5%, last 2 versions, not dead",
|
"browserslist": "> 0.5%, last 2 versions, not dead",
|
||||||
|
|||||||
-126
@@ -1,126 +0,0 @@
|
|||||||
--- a/Users/sethburkart/Documents/Coding/betterseqta-plus/src/plugins/core/settings.ts
|
|
||||||
+++ b/Users/sethburkart/Documents/Coding/betterseqta-plus/src/plugins/core/settings.ts
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
|
|
||||||
// Base interfaces for our settings
|
|
||||||
interface BaseSettingOptions {
|
|
||||||
- title: string;
|
|
||||||
+ readonly title: string; // Mark as readonly where appropriate
|
|
||||||
description?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -11,21 +11,21 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
interface StringSettingOptions extends BaseSettingOptions {
|
|
||||||
- default: string;
|
|
||||||
+ readonly default: string;
|
|
||||||
maxLength?: number;
|
|
||||||
pattern?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface NumberSettingOptions extends BaseSettingOptions {
|
|
||||||
- default: number;
|
|
||||||
+ readonly default: number;
|
|
||||||
min?: number;
|
|
||||||
max?: number;
|
|
||||||
step?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface SelectSettingOptions<T extends string> extends BaseSettingOptions {
|
|
||||||
- default: T;
|
|
||||||
- options: readonly T[];
|
|
||||||
+ readonly default: T;
|
|
||||||
+ readonly options: readonly T[];
|
|
||||||
}
|
|
||||||
|
|
||||||
// The actual decorators
|
|
||||||
@@ -34,14 +34,16 @@
|
|
||||||
// Ensure the settings property exists on the constructor's prototype
|
|
||||||
const proto = target.constructor.prototype;
|
|
||||||
if (!proto.hasOwnProperty('settings')) {
|
|
||||||
- proto.settings = {};
|
|
||||||
+ // Initialize with a base type that can be extended
|
|
||||||
+ Object.defineProperty(proto, 'settings', {
|
|
||||||
+ value: {},
|
|
||||||
+ writable: true, // Allows adding properties
|
|
||||||
+ configurable: true,
|
|
||||||
+ enumerable: true
|
|
||||||
+ });
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+
|
|
||||||
// Add the setting to the prototype's settings object with const assertion
|
|
||||||
proto.settings[propertyKey] = {
|
|
||||||
type: 'boolean' as const,
|
|
||||||
...options
|
|
||||||
};
|
|
||||||
- };
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-export function StringSetting(options: StringSettingOptions): PropertyDecorator {
|
|
||||||
- return (target: Object, propertyKey: string | symbol) => {
|
|
||||||
- // Ensure the settings property exists on the constructor's prototype
|
|
||||||
- const proto = target.constructor.prototype;
|
|
||||||
- if (!proto.hasOwnProperty('settings')) {
|
|
||||||
- proto.settings = {};
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // Add the setting to the prototype's settings object with const assertion
|
|
||||||
- proto.settings[propertyKey] = {
|
|
||||||
- type: 'string' as const,
|
|
||||||
- ...options
|
|
||||||
- };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -50,14 +52,16 @@
|
|
||||||
// Ensure the settings property exists on the constructor's prototype
|
|
||||||
const proto = target.constructor.prototype;
|
|
||||||
if (!proto.hasOwnProperty('settings')) {
|
|
||||||
- proto.settings = {};
|
|
||||||
+ Object.defineProperty(proto, 'settings', {
|
|
||||||
+ value: {},
|
|
||||||
+ writable: true,
|
|
||||||
+ configurable: true,
|
|
||||||
+ enumerable: true
|
|
||||||
+ });
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+
|
|
||||||
// Add the setting to the prototype's settings object with const assertion
|
|
||||||
proto.settings[propertyKey] = {
|
|
||||||
type: 'number' as const,
|
|
||||||
...options
|
|
||||||
};
|
|
||||||
- };
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-export function SelectSetting<T extends string>(options: SelectSettingOptions<T>): PropertyDecorator {
|
|
||||||
- return (target: Object, propertyKey: string | symbol) => {
|
|
||||||
- // Ensure the settings property exists on the constructor's prototype
|
|
||||||
- const proto = target.constructor.prototype;
|
|
||||||
- if (!proto.hasOwnProperty('settings')) {
|
|
||||||
- proto.settings = {};
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // Add the setting to the prototype's settings object with const assertion
|
|
||||||
- proto.settings[propertyKey] = {
|
|
||||||
- type: 'select' as const,
|
|
||||||
- ...options
|
|
||||||
- };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Base plugin class that handles settings
|
|
||||||
export abstract class BasePlugin<T extends PluginSettings = PluginSettings> {
|
|
||||||
// The settings property will be populated by decorators
|
|
||||||
- settings!: T;
|
|
||||||
-
|
|
||||||
+ // Keep the instance property and constructor logic as is,
|
|
||||||
+ // as changing it would require changing animated-background/index.ts
|
|
||||||
+ settings!: T; // Use definite assignment assertion
|
|
||||||
+
|
|
||||||
constructor() {
|
|
||||||
// Copy settings from the prototype to the instance
|
|
||||||
// This ensures that each instance has its own settings object
|
|
||||||
@@ -24,6 +24,8 @@ import loading from "@/seqta/ui/Loading";
|
|||||||
import { SendNewsPage } from "@/seqta/utils/SendNewsPage";
|
import { SendNewsPage } from "@/seqta/utils/SendNewsPage";
|
||||||
import { loadHomePage } from "@/seqta/utils/Loaders/LoadHomePage";
|
import { loadHomePage } from "@/seqta/utils/Loaders/LoadHomePage";
|
||||||
import { OpenWhatsNewPopup } from "@/seqta/utils/Whatsnew";
|
import { OpenWhatsNewPopup } from "@/seqta/utils/Whatsnew";
|
||||||
|
//import { OpenMinecraftServerPopup } from "@/seqta/utils/AboutMinecraftServer";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
updateTimetableTimes,
|
updateTimetableTimes,
|
||||||
} from "@/seqta/utils/updateTimetableTimes";
|
} from "@/seqta/utils/updateTimetableTimes";
|
||||||
@@ -36,7 +38,6 @@ import IconFamily from "@/resources/fonts/IconFamily.woff";
|
|||||||
|
|
||||||
// Stylesheets
|
// Stylesheets
|
||||||
import iframeCSS from "@/css/iframe.scss?raw";
|
import iframeCSS from "@/css/iframe.scss?raw";
|
||||||
import { OpenMinecraftServerPopup } from "@/seqta/utils/AboutMinecraftServer";
|
|
||||||
|
|
||||||
function SetDisplayNone(ElementName: string) {
|
function SetDisplayNone(ElementName: string) {
|
||||||
return `li[data-key=${ElementName}]{display:var(--menuHidden) !important; transition: 1s;}`;
|
return `li[data-key=${ElementName}]{display:var(--menuHidden) !important; transition: 1s;}`;
|
||||||
@@ -96,8 +97,7 @@ export async function finishLoad() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (settingsState.justupdated && !document.getElementById("whatsnewbk")) {
|
if (settingsState.justupdated && !document.getElementById("whatsnewbk")) {
|
||||||
OpenMinecraftServerPopup();
|
OpenWhatsNewPopup();
|
||||||
//OpenWhatsNewPopup();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,12 @@ export function OpenWhatsNewPopup() {
|
|||||||
|
|
||||||
let text = stringToHTML(/* html */ `
|
let text = stringToHTML(/* html */ `
|
||||||
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: scroll;">
|
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: scroll;">
|
||||||
|
<h1>3.4.9 - Bug Fixes and Performance Improvements</h1>
|
||||||
|
<li>Fixed performance issues with large notices on the homepage</li>
|
||||||
|
<li>Improved performance when global search is disabled</li>
|
||||||
|
<li>Improved performance of storage handling</li>
|
||||||
|
<li>Other bug fixes and improvements</li>
|
||||||
|
|
||||||
<h1>3.4.8 - Improvements!</h1>
|
<h1>3.4.8 - Improvements!</h1>
|
||||||
<li>Added new assessments kanban overview</li>
|
<li>Added new assessments kanban overview</li>
|
||||||
<li>Added custom profile pictures</li>
|
<li>Added custom profile pictures</li>
|
||||||
|
|||||||
Reference in New Issue
Block a user