diff options
author | dizzy <diosmosis@users.noreply.github.com> | 2021-11-19 17:18:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-19 17:18:57 +0300 |
commit | 5ae81f880dbbd7ab3fc0d223d7a9b4409ae548eb (patch) | |
tree | a6f43d9984f62ac579acf970334aae13346b817d /plugins/CoreVue | |
parent | 45d8528596500769ae2587b780cb43b5f7f303dd (diff) |
[Vue] migrate siteselector directive and quick-access directive (#18292)
* migrating RateFeature and ReviewLinks + adding AjaxHelper.fetch utility method (all untested)
* get ratefeature component to work, modify matomodialog component to use v-model, add event parameters to createAngularAdapter, allow translate to use variadic args or one string array + rebuild
* remove ratefeature angularjs files
* rebuild + make vue mapping property optional in createANgularJsAdapter
* migrate enrichedheadline and get to work
* fix test
* fix translate
* fix another translate issue & migrate contentblock directive
* fix anchor links, not including the "/" causes angularjs to fail (also on 4.x-dev)
* update expected screenshots
* fix ui test
* fix some test failures
* fix nested transclude issue
* remove content block files
* fix icon spacing that occurs due to angularjs inserting empty comments in between nodes while vue 3 does not
* update some screenshots
* update screenshot (actually fixes an alignment issue)
* update screenshot
* first pass at converting comparisons service/component
* get new code to build and load without error in the UI
* debugging
* getting basic functionaltiy to work
* Update _dataTable.twig
* fix UI test failure + URL encoding/angularjs issue causing back button to not work
* fix order of operations issue
* built vue files
* using ref in setup() is not needed to access this.$refs
* Convert comparisons service angularjs tests to comparison store typescript tests.
* migrate piwik-date-picker directive
* migrate date range picker component (changed invalid date in input handling to just reset back to the previous date since it was easier in vue to do that)
* migrate period-date-picker component (using composition api more when easier for migration)
* convert piwik-expand-onclick directive to vue directive
* migrate expand on hover directive to vue directive
* fix variable reference
* build
* Add materialize-css @types and migrate piwik-dropdown-menu.
* migrate focus-anywhere-but-here directive to vue directive
* migrate focus-if directive
* migrate menudropdown directive
* forgot to remove old files
* built vue files
* first pass at migrating notification directive, notification service and parts of UI.Notification to Vue
* rewrite URL handling to use computed properties in a URL store + do the same for other dependent data in the comparison store to allow vues to subscribe to the properties for changes to global state
* fix some tests
* some more fixes
* more fixes + disallow modifications to MatomoUrl state
* get angularjs unit tests to pass + fix a couple more issues
* another fix
* fix bad merge
* self review + fixes
* remove old fix as it may not be needed anymore
* empty string is not a valid date + do not report invalid date exception just rethrow
* update screenshots and try to fix random failure
* use jquery $destroy event instead of scope one since the scope one is broadcasted
* rangeChange event must be triggered once on mount
* initialize startDateText/endDateText correctly
* use jquery $destroy event instead of angularjs one
* built vue files
* fix menudropdown.directive.js reference
* load vue in installation/updater & correctly make focusanywherebuthere stateful
* correctly implement stateful directives for ExpandOnClick/ExpandOnHover
* less tweak (angularjs comment removal)
* fix submenu check
* quick type fix
* load vue in installation workflow
* add broadcast.js to Installation workflow + do not fail in pk_translate if no translations are loaded
* update expected screenshots (spacing of arrow changed because of angularjs comment no longer being there)
* start moving Notification class code to notifications store
* fix prop type
* fix html escaping
* built vue files
* get toast and other transitions to work + fix broken toast
* move all of notification.js to NotificationStore
* wait for angular to be initialized to post events to avoid loading race condition
* get scroll to notification to work + get initialization of notification groups to work
* correct unmount + remove notifications service file
* fix some test failures
* re add accidentally removed (?) file
* remove no longer needed file
* Add CoreHome UMD in CoreUpdater/Installation.
* self review
* fix type + add default value
* remove file from JS list
* fix test
* fix UI tests
* set correct type in users manager notification and allow scope values to be transformed in createAngularAdapter
* start migrating siteselector
* small addition
* migrate rest of site selector code + make some breaking changes to function signatures in createAngularJsAdapter
* disable webpack asset size hints/warnings + get siteselector code to build
* fixing some bugs
* fix some more issues (allow specifing require in createAngularJsAdapter and make AjaxHelper promises abortable)
* get npm test to pass
* a couple more fixes
* remove existing files
* convert quick-access directive and use shared code/state with site selector
* remove site selector model
* fix more issues and get UI tests to pass for quickaccess
* remove debugging code / todo
* fix initial value
* add back a $timeout()
* fixing tests, the post blur scope.$apply()s are apparently required for angularjs to function properly
* fixing more UI test failures
* rebuild
* fix vue build
* why were these deleted?
* remove debug code
* fix css class issue + update expected screenshots
* rebuild CoreHome
* revert styling change
* built vue files
* get focus-if to work and remove debugging return;
* rebuilt vue
* should not need to specify type there
* built CoreHome
* built vue files
* apply review feedback
* get auto clearing behavior to work in site selector
* fix a couple more bugs
* rebuild vue
* escape htmle entities in site name
* tweak
Co-authored-by: sgiehl <stefan@matomo.org>
Diffstat (limited to 'plugins/CoreVue')
-rw-r--r-- | plugins/CoreVue/polyfills/vue.config.js | 2 | ||||
-rw-r--r-- | plugins/CoreVue/types/index.d.ts | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/plugins/CoreVue/polyfills/vue.config.js b/plugins/CoreVue/polyfills/vue.config.js index f722a0337d..c5d7a70950 100644 --- a/plugins/CoreVue/polyfills/vue.config.js +++ b/plugins/CoreVue/polyfills/vue.config.js @@ -13,5 +13,5 @@ module.exports = { const rel = path.relative(context, info.absoluteResourcePath) return `webpack:///${rel}` }); - } + }, }; diff --git a/plugins/CoreVue/types/index.d.ts b/plugins/CoreVue/types/index.d.ts index 1d727de8eb..cb9ac2d5df 100644 --- a/plugins/CoreVue/types/index.d.ts +++ b/plugins/CoreVue/types/index.d.ts @@ -7,6 +7,7 @@ import jqXHR = JQuery.jqXHR; import { IAngularStatic } from 'angular'; +import { ExtendedKeyboardEvent } from 'mousetrap'; declare global { type ParameterValue = string | number | null | undefined | ParameterValue[]; @@ -16,6 +17,10 @@ declare global { wrapper?: (evt: Event) => void; } + interface AbortablePromise<T = any> extends Promise<T> { + abort(): void; + } + /** * global ajax queue * @@ -70,6 +75,7 @@ declare global { isAngularRenderingThePage(): boolean; setMarginLeftToBeInViewport(elementToPosition: JQuery|JQLite|HTMLElement|string); lazyScrollTo(element: JQuery|JQLite|HTMLElement|string, time: number, forceScroll?: boolean); + registerShortcut(key: string, description: string, callback: (event: ExtendedKeyboardEvent) => void): void; } let piwikHelper: PiwikHelperGlobal; @@ -80,7 +86,7 @@ declare global { getValueFromHash(paramName: string, url?: string): string; isWidgetizeRequestWithoutSession(): boolean; updateParamValue(newParamValue: string, urlStr: string): string; - propagateNewPage(str: string, showAjaxLoading?: boolean, strHash?: string, paramsToRemove?: string[]); + propagateNewPage(str?: string, showAjaxLoading?: boolean, strHash?: string, paramsToRemove?: string[], wholeNewUrl?: string); } let broadcast: BroadcastGlobal; @@ -113,6 +119,7 @@ declare global { maxDateYear: number; maxDateMonth: number; maxDateDay: number; + config: Record<string, string|number|string[]>; updatePeriodParamsFromUrl(): void; updateDateInTitle(date: string, period: string): void; @@ -138,5 +145,6 @@ declare global { _pk_translate(translationStringId: string, values: string[]): string; require(p: string): any; + initTopControls(): void; } } |