mirror of
https://github.com/status-im/consul.git
synced 2025-02-19 17:14:37 +00:00
* Add data layer for discovery chain (model/adapter/serializer/repo) * Add routing plus template for routing tab * Add extra deps - consul-api-double upgrade plus ngraph for graphing * Add discovery-chain and related components and helpers: 1. discovery-chain to orchestrate/view controller 2. route-card, splitter-card, resolver card to represent the 3 different node types. 3. route-match helper for easy formatting of route rules 4. dom-position to figure out where things are in order to draw lines 5. svg-curve, simple wrapper around svg's <path d=""> attribute format. 6. data-structs service. This isn't super required but we are using other data-structures provided by other third party npm modules in other yet to be merged PRs. All of these types of things will live here for easy access/injection/changability 7. Some additions to our css-var 'polyfill' for a couple of extra needed rules * Related CSS for discovery chain 1. We add a %card base component here, eventually this will go into our base folder and %stats-card will also use it for a base component. 2. New icon for failovers * ui: Discovery Chain Continued (#6939) 1. Add in the things we use for the animations 2 Use IntersectionObserver so we know when the tab is visible, otherwise the dom-position helper won't work as the dom elements don't have any display. 3. Add some base work for animations and use them a little 4. Try to detect if a resolver is a redirect. Right now this works for datacenters and namespaces, but it can't work for services and subsets - we are awaiting backend support for doing this properly. 5. Add a fake 'this service has no routes' route that says 'Default' 6. redirect icon 7. Add CSS.escape polyfill for Edge
59 lines
2.1 KiB
Handlebars
59 lines
2.1 KiB
Handlebars
{{#app-view class="service show"}}
|
|
{{#block-slot 'notification' as |status type|}}
|
|
{{partial 'dc/services/notifications'}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'breadcrumbs'}}
|
|
<ol>
|
|
<li><a data-test-back href={{href-to 'dc.services'}}>All Services</a></li>
|
|
</ol>
|
|
{{/block-slot}}
|
|
{{#block-slot 'header'}}
|
|
<h1>
|
|
{{ item.Service.Service }}
|
|
{{#with (service/external-source item.Service) as |externalSource| }}
|
|
{{#with (css-var (concat '--' externalSource '-color-svg') 'none') as |bg| }}
|
|
{{#if (not-eq bg 'none') }}
|
|
<span data-test-external-source="{{externalSource}}" style={{{ concat 'background-image:' bg }}} data-tooltip="Registered via {{externalSource}}">Registered via {{externalSource}}</span>
|
|
{{/if}}
|
|
{{/with}}
|
|
{{/with}}
|
|
{{#if (eq item.Service.Kind 'connect-proxy')}}
|
|
<span class="kind-proxy">Proxy</span>
|
|
{{else if (eq item.Service.Kind 'mesh-gateway')}}
|
|
<span class="kind-proxy">Mesh Gateway</span>
|
|
{{/if}}
|
|
</h1>
|
|
<label for="toolbar-toggle"></label>
|
|
{{tab-nav
|
|
items=(compact
|
|
(array
|
|
'Instances'
|
|
'Routing'
|
|
'Tags'
|
|
)
|
|
)
|
|
selected=selectedTab
|
|
}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'actions'}}
|
|
{{#if urls.service}}
|
|
{{#templated-anchor data-test-dashboard-anchor href=urls.service vars=(hash Datacenter=dc Service=(hash Name=item.Service.Service)) rel="external"}}Open Dashboard{{/templated-anchor}}
|
|
{{/if}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'content'}}
|
|
{{#each
|
|
(compact
|
|
(array
|
|
(hash id=(slugify 'Instances') partial='dc/services/instances')
|
|
(hash id=(slugify 'Routing') partial='dc/services/routing')
|
|
(hash id=(slugify 'Tags') partial='dc/services/tags')
|
|
)
|
|
) as |panel|
|
|
}}
|
|
{{#tab-section id=panel.id selected=(eq (if selectedTab selectedTab '') panel.id) onchange=(action "change")}}
|
|
{{partial panel.partial}}
|
|
{{/tab-section}}
|
|
{{/each}}
|
|
{{/block-slot}}
|
|
{{/app-view}}
|