mirror of https://github.com/hashicorp/consul
3 Commits (7dd54185d87ab5ba39ba8e6b40b1d220a5fd076b)
Author | SHA1 | Message | Date |
---|---|---|---|
John Cowen |
604de8758b
|
ui: Fix using 'ui-like' KVs when using an empty default nspace (#7734)
When using namespaces, the 'default' namespace is a little special in that we wanted the option for all our URLs to stay the same when using namespaces if you are using the default namespace, with the option of also being able to explicitly specify `~default` as a namespace. In other words both `ui/services/service-name` and `ui/~default/services/service-name` show the same thing. This means that if you switch between OSS and Enterprise, all of your URLs stay the same, but you can still specifically link to the default namespace itself. Our routing configuration is duplicated in order to achieve this: ``` - :dc - :service - :kv - :edit - :nspace - :dc - :service - :kv - :edit ``` Secondly, ember routing resolves/matches routes in the order that you specify them, unless, its seems, when using wildcard routes, like we do in the KV area. When not using the wildcard routes the above routing configuration resolves/matches a `/dc-1/kv/service` to the `dc.kv.edit` route correctly (dc:dc-1, kv:services), that route having been configured in a higher priority than the nspace routes. However when configured with wildcards (required in the KV area), note the asterisk below: ``` - :dc :service - :kv - *edit - :nspace - :dc - :service - :kv - *edit ``` Given something like `/dc-1/kv/services` the router instead matches the `nspace.dc.service` (nspace:dc-1, dc:kv, service:services) route first even though the `dc.kv.edit` route should still match first. Changing the `dc.kv.edit` route back to use a non-wildcard route (:edit instead of *edit), returns the router to match the routes in the correct order. In order to work around this, we catch any incorrectly matched routes (those being directed to the nspace Route but not having a `~` character in the nspace parameter), and then recalculate the correct route name and parameters. Lastly we use this recalculated route to direct the user/app to the correct route. This route recalcation requires walking up the route to gather up all of the required route parameters, and although this feels like something that could already exist in ember, it doesn't seem to. We had already done a lot of this work a while ago when implementing our `href-mut` helper. This commit therefore repurposes that work slighlty and externalizes it outside of the helper itself into a more usable util so we can import it where we need it. Tests have been added before refactoring it down to make the code easier to follow. |
|
John Cowen |
b3b32dc0f6
|
ui: UI Release Merge (ui-staging merge) (#6527)
## HTTPAdapter (#5637) ## Ember upgrade 2.18 > 3.12 (#6448) ### Proxies can no longer get away with not calling _super This means that we can't use create anymore to define dynamic methods. Therefore we dynamically make 2 extended Proxies on demand, and then create from those. Therefore we can call _super in the init method of the extended Proxies. ### We aren't allowed to reset a service anymore We never actually need to now anyway, this is a remnant of the refactor from browser based confirmations. We fix it as simply as possible here but will revisit and remove the old browser confirm functionality at a later date ### Revert classes to use ES5 style to workaround babel transp. probs Using a mixture of ES6 classes (and hence super) and arrow functions means that when babel transpiles the arrow functions down to ES5, a reference to this is moved before the call to super, hence causing a js error. Furthermore, we the testing environment no longer lets use use apply/call on the constructor. These errors only manifests during testing (only in the testing environment), the application itself runs fine with no problems without this change. Using ES5 style class definitions give us freedom to do all of the above without causing any errors, so we reverted these classes back to ES5 class definitions ### Skip test that seems to have changed due to a change in RSVP timing This test tests a usecase/area of the API that will probably never ever be used, it was more testing out the API. We've skipped the test for now as this doesn't affect the application itself, but left a note to come back here later to investigate further ### Remove enumerableContentDidChange Initial testing looks like we don't need to call this function anymore, the function no longer exists ### Rework Changeset.isSaving to take into account new ember APIs Setting/hanging a computedProperty of an instantiated object no longer works. Move to setting it on the prototype/class definition instead ### Change how we detect whether something requires listening New ember API's have changed how you can detect whether something is a computedProperty or not. It's not immediately clear if its even possible now. Therefore we change how we detect whether something should be listened to or not by just looking for presence of `addEventListener` ### Potentially temporary change of ci test scripts to ensure deps exist All our tooling scripts run through a Makefile (for people familiar with only using those), which then call yarn scripts which can be called independently (for people familar with only using yarn). The Makefile targets always check to make sure all the dependencies are installed before running anything that requires them (building, testing etc). The CI scripts/targets didn't follow this same route and called the yarn scripts directly (usually CI builds a cache of the dependencies first). For some reason this cache isn't doing what it usually does, and it looks as though, in CI, ember isn't installed. This commit makes the CI scripts consistently use the same method as all of the other tooling scripts (Makefile target > Install Deps if required > call yarn script). This should install the dependencies if for some reason the CI cache building doesn't complete/isn't successful. Potentially this commit may be reverted if, the root of the problem is elsewhere, although consistency is always good, so it might be a good idea to leave this commit as is even if we need to debug and fix things elsewhere. ### Make test-parallel consistent with the rest of the tooling scripts As we are here making changes for CI purposes (making test-ci consistent), we spotted that test-parallel is also inconsistent and also the README manual instructions won't work without `ember` installed globally. This commit makes everything consistent and changes the manual instructions to use the local ember instance that gets installed via yarn ### Re-wrangle catchable to fit with new ember 3.12 APIs In the upgrade from ember 3.8 > 3.12 the public interfaces for ComputedProperties have changed slightly. `meta` is no longer a public property of ComputedProperty but of a ComputedDecoratorImpl mixin instead. |
|
John Cowen |
c8386ec0cc
|
UI: [BUGFIX] Decode/encode urls (#5206)
In
|