diff options
Diffstat (limited to 'resources/assets/javascripts')
| -rw-r--r-- | resources/assets/javascripts/bootstrap/application.js | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/bootstrap/multi_select.js | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/chunks/vue.js | 2 | ||||
| -rw-r--r-- | resources/assets/javascripts/init.js | 4 | ||||
| -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 | ||||
| -rw-r--r-- | resources/assets/javascripts/studip-ui.js | 2 |
12 files changed, 53 insertions, 15 deletions
diff --git a/resources/assets/javascripts/bootstrap/application.js b/resources/assets/javascripts/bootstrap/application.js index f97dd90..1f0561e 100644 --- a/resources/assets/javascripts/bootstrap/application.js +++ b/resources/assets/javascripts/bootstrap/application.js @@ -1,5 +1,5 @@ import { $gettext } from '../lib/gettext.js'; -import eventBus from "../lib/event-bus"; +import eventBus from "../lib/event-bus.ts"; /* ------------------------------------------------------------------------ * application.js diff --git a/resources/assets/javascripts/bootstrap/multi_select.js b/resources/assets/javascripts/bootstrap/multi_select.js index 38fa362..9e817b8 100644 --- a/resources/assets/javascripts/bootstrap/multi_select.js +++ b/resources/assets/javascripts/bootstrap/multi_select.js @@ -1,5 +1,5 @@ import { $gettext } from '../lib/gettext.js'; -import eventBus from "../lib/event-bus"; +import eventBus from "../lib/event-bus.ts"; eventBus.on('studip:set-locale', () => { $.extend($.ui.multiselect, { diff --git a/resources/assets/javascripts/chunks/vue.js b/resources/assets/javascripts/chunks/vue.js index 53748c9..cf95ed3 100644 --- a/resources/assets/javascripts/chunks/vue.js +++ b/resources/assets/javascripts/chunks/vue.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import Vuex from 'vuex'; import Router from "vue-router"; -import eventBus from '../lib/event-bus.js'; +import eventBus from '../lib/event-bus.ts'; import GetTextPlugin from 'vue-gettext'; import { getLocale, getVueConfig } from '../lib/gettext.js'; import PortalVue from 'portal-vue'; diff --git a/resources/assets/javascripts/init.js b/resources/assets/javascripts/init.js index e01f84e..a37a466 100644 --- a/resources/assets/javascripts/init.js +++ b/resources/assets/javascripts/init.js @@ -16,13 +16,13 @@ import CalendarDialog from './lib/calendar_dialog.js'; import Clipboard from './lib/clipboard.js'; import Cookie from './lib/cookie.js'; import CourseWizard from './lib/course_wizard.js'; -import createURLHelper from './lib/url_helper.js'; +import { createURLHelper } from './lib/url_helper.ts'; import CSS from './lib/css.js'; import Dates from './lib/dates.js'; import Dialog from './lib/dialog.js'; import DragAndDropUpload from './lib/drag_and_drop_upload.js'; import enrollment from './lib/enrollment.js'; -import eventBus from './lib/event-bus.js'; +import eventBus from './lib/event-bus.ts'; import extractCallback from './lib/extract_callback.js'; import Files from './lib/files.js'; import FilesDashboard from './lib/files_dashboard.js'; 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); } diff --git a/resources/assets/javascripts/studip-ui.js b/resources/assets/javascripts/studip-ui.js index fdb3255..41897b2 100644 --- a/resources/assets/javascripts/studip-ui.js +++ b/resources/assets/javascripts/studip-ui.js @@ -1,5 +1,5 @@ import { $gettext } from './lib/gettext.js'; -import eventBus from "./lib/event-bus"; +import eventBus from "./lib/event-bus.ts"; /** * This file contains extensions/adjustments for jQuery UI. |
