e9b6be87e2
* Bones of a component that has job variable awareness * Got vars listed woo * Variables as its own subnav and some pathLinkedVariable perf fixes * Automatic Access to Variables alerter * Helper and component to conditionally render the right link * A bit of cleanup post-template stuff * testfix for looping right-arrow keynav bc we have a new subnav section * A very roundabout way of ensuring that, if a job exists when saving a variable with a pathLinkedEntity of that job, its saved right through to the job itself * hacky but an async version of pathLinkedVariable * model-driven and async fetcher driven with cleanup * Only run the update-job func if jobname is detected in var path * Test cases begun * Management token for variables to appear in tests * Its a management token so it gets to see the clients tab under system jobs * Pre-review cleanup * More tests * Number of requests test and small fix to groups-by-way-or-resource-arrays elsewhere * Variable intro text tests * Variable name re-use * Simplifying our wording a bit * parse json vs plainId * Addressed PR feedback, including de-waterfalling Co-authored-by: Phil Renaud <phil.renaud@hashicorp.com>
74 lines
2.1 KiB
Handlebars
74 lines
2.1 KiB
Handlebars
{{!
|
|
Copyright (c) HashiCorp, Inc.
|
|
SPDX-License-Identifier: MPL-2.0
|
|
~}}
|
|
|
|
<ListTable class="path-tree" @source={{@branch}} as |t|>
|
|
<t.head>
|
|
<th>
|
|
Path
|
|
</th>
|
|
<th>
|
|
Namespace
|
|
</th>
|
|
<th>
|
|
Last Modified
|
|
</th>
|
|
</t.head>
|
|
<tbody>
|
|
{{#each this.folders as |folder|}}
|
|
<tr data-test-folder-row {{on "click" (fn this.handleFolderClick folder.data.absolutePath)}}>
|
|
<td colspan="3"
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(fn this.handleFolderClick folder.data.absolutePath)
|
|
}}
|
|
>
|
|
<span>
|
|
<FlightIcon @name="folder" />
|
|
<LinkTo @route="variables.path" @model={{folder.data.absolutePath}} @query={{hash namespace="*"}}>
|
|
{{trim-path folder.name}}
|
|
</LinkTo>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
{{/each}}
|
|
|
|
{{#each this.files as |file|}}
|
|
<tr
|
|
data-test-file-row="{{file.name}}"
|
|
{{on "click" (fn this.handleFileClick file)}}
|
|
class={{if (can "read variable" path=file.absoluteFilePath namespace=file.variable.namespace) "" "inaccessible"}}
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(fn this.handleFileClick file)
|
|
}}
|
|
>
|
|
<td>
|
|
<FlightIcon @name="file-text" />
|
|
{{#if (can "read variable" path=file.absoluteFilePath namespace=file.variable.namespace)}}
|
|
<LinkTo
|
|
@route="variables.variable"
|
|
@model={{file.variable.id}}
|
|
@query={{hash namespace="*"}}
|
|
>
|
|
{{file.name}}
|
|
</LinkTo>
|
|
{{else}}
|
|
<span title="Your access policy does not allow you to view the contents of {{file.name}}">{{file.name}}</span>
|
|
{{/if}}
|
|
</td>
|
|
<td>
|
|
{{file.variable.namespace}}
|
|
</td>
|
|
<td>
|
|
<span class="tooltip" aria-label="{{format-ts file.variable.modifyTime}}">
|
|
{{moment-from-now file.variable.modifyTime}}
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
{{/each}}
|
|
|
|
</tbody>
|
|
</ListTable>
|