diff options
Diffstat (limited to 'resources/assets/javascripts/lib')
| -rw-r--r-- | resources/assets/javascripts/lib/calendar.js | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/event-bus.d.ts | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/event-bus.ts (renamed from resources/assets/javascripts/lib/event-bus.js) | 0 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/forum.js | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/gettext.js | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/url_helper.d.ts | 33 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/url_helper.ts (renamed from resources/assets/javascripts/lib/url_helper.js) | 15 |
7 files changed, 47 insertions, 9 deletions
diff --git a/resources/assets/javascripts/lib/calendar.js b/resources/assets/javascripts/lib/calendar.js index bfe0054..2f1cd67 100644 --- a/resources/assets/javascripts/lib/calendar.js +++ b/resources/assets/javascripts/lib/calendar.js @@ -1,5 +1,5 @@ import { $gettext } from '../lib/gettext.js'; -import eventBus from "./event-bus"; +import eventBus from "./event-bus.ts"; eventBus.on('studip:set-locale', () => { Calendar.day_names = [ diff --git a/resources/assets/javascripts/lib/event-bus.d.ts b/resources/assets/javascripts/lib/event-bus.d.ts new file mode 100644 index 0000000..812c738 --- /dev/null +++ b/resources/assets/javascripts/lib/event-bus.d.ts @@ -0,0 +1,2 @@ +declare const eventBus: import("mitt").Emitter; +export default eventBus; diff --git a/resources/assets/javascripts/lib/event-bus.js b/resources/assets/javascripts/lib/event-bus.ts index 3f6a58d..3f6a58d 100644 --- a/resources/assets/javascripts/lib/event-bus.js +++ b/resources/assets/javascripts/lib/event-bus.ts diff --git a/resources/assets/javascripts/lib/forum.js b/resources/assets/javascripts/lib/forum.js index fbada1f..8dcc076 100644 --- a/resources/assets/javascripts/lib/forum.js +++ b/resources/assets/javascripts/lib/forum.js @@ -1,5 +1,5 @@ import { $gettext } from "./gettext.js"; -import eventBus from "./event-bus"; +import eventBus from "./event-bus.ts"; eventBus.on('studip:set-locale', () => { Forum.warning_text = $gettext('Wenn Sie die Seite verlassen, gehen ihre Änderungen verloren!'); diff --git a/resources/assets/javascripts/lib/gettext.js b/resources/assets/javascripts/lib/gettext.js index 0e3eb9a..5742466 100644 --- a/resources/assets/javascripts/lib/gettext.js +++ b/resources/assets/javascripts/lib/gettext.js @@ -1,6 +1,6 @@ import { translate } from 'vue-gettext'; import defaultTranslations from '../../../../locale/de/LC_MESSAGES/js-resources.json'; -import eventBus from './event-bus.js'; +import eventBus from './event-bus.ts'; const DEFAULT_LANG = 'de_DE'; const DEFAULT_LANG_NAME = 'Deutsch'; diff --git a/resources/assets/javascripts/lib/url_helper.d.ts b/resources/assets/javascripts/lib/url_helper.d.ts new file mode 100644 index 0000000..ec8920e --- /dev/null +++ b/resources/assets/javascripts/lib/url_helper.d.ts @@ -0,0 +1,33 @@ +/** + * This class helps to handle URLs of hyperlinks and change their parameters. + * For example a javascript-page may open an item and the user expects other links + * on the same page to "know" that this item is now open. But because we don't use + * PHP session-variables here, this is difficult to use. This class can help. You + * can overwrite the href-attribute of the link by: + * + * [code] + * link.href = STUDIP.URLHelper.getURL("adresse.php?hello=world#anchor"); + * [/code] + * Returns something like: + * "http://uni-adresse.de/studip/adresse.php?hello=world&mandatory=parameter#anchor" + */ +declare class URLHelper { + base_url: string; + parameters: Record<string, string>; + constructor(base_url?: string, parameters?: {}); + /** + * returns a readily encoded URL with the mandatory parameters and additionally passed + * parameters. + * + * @param url string: any url-string + * @param param_object map: associative object for extra values + * @param ignore_params boolean: ignore previously bound parameters + * @return: url with all necessary and additional parameters, encoded + */ + getURL(url: string, param_object: any, ignore_params: boolean): string; +} +export declare function createURLHelper(config: { + base_url?: string; + parameters?: Record<string, string>; +}): URLHelper; +export {}; diff --git a/resources/assets/javascripts/lib/url_helper.js b/resources/assets/javascripts/lib/url_helper.ts index 0aa08c3..b9ebbf6 100644 --- a/resources/assets/javascripts/lib/url_helper.js +++ b/resources/assets/javascripts/lib/url_helper.ts @@ -13,7 +13,10 @@ */ class URLHelper { - constructor(base_url = null, parameters = {}) { + base_url: string; + parameters: Record<string, string>; + + constructor(base_url = "", parameters = {}) { //the base url for all links this.base_url = base_url; @@ -30,7 +33,7 @@ class URLHelper { * @param ignore_params boolean: ignore previously bound parameters * @return: url with all necessary and additional parameters, encoded */ - getURL(url, param_object, ignore_params) { + getURL(url: string, param_object: any, ignore_params: boolean): string { let result; if (url === '' || url.match(/^[?#]/)) { @@ -40,14 +43,14 @@ class URLHelper { } if (!ignore_params) { - for (let key in this.parameters) { + for (const key in this.parameters) { if (!result.searchParams.has(key)) { result.searchParams.set(key, this.parameters[key]); } } } - for (let key in param_object) { + for (const key in param_object) { if (param_object[key] !== null) { result.searchParams.set(key, param_object[key]); } else { @@ -59,6 +62,6 @@ class URLHelper { } } -export default function createURLHelper(config) { - return new URLHelper(config && config.base_url, config && config.parameters); +export function createURLHelper(config: { base_url?: string, parameters?: Record<string, string>}): URLHelper { + return new URLHelper(config?.base_url, config?.parameters); } |
