Files
nomad/ui/app/components/variable-paths.hbs
Phil Renaud 9f51a5deb2 UI variables made to be unique by namespace and path (#14072)
* Starting on namespaced id

* Traversal for variables uniqued by namespace

* Delog

* Basic CRUD complete w namespaces included

* Correct secvar breadcrumb joining and testfix now that namespaces are included

* Testfixes with namespaces in place

* Namespace-aware duplicate path warning

* Duplicate path warning test additions

* Trimpath reimplemented on dupe check

* Solves a bug where slash was not being passed to the can write check

* PR fixes

* variable paths integration test fix now uses store

* Seems far less hacky in retrospect

* PR feedback addressed

* test fixes after inclusion of path as local non-model var

* Prevent confusion by dropping namespace from QPs on PUT, since its already in .data

* Solves a harsh bug where you have namespace access but no secvars access (#14098)

* Solves a harsh bug where you have namespace access but no secvars access

* Lint cleanup

* Remove unneeded condition
2022-08-15 11:56:09 -04:00

60 lines
1.7 KiB
Handlebars

<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">
<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
{{on "click" (fn this.handleFileClick file)}}
class={{if (can "read variable" path=file.absoluteFilePath namespace=file.variable.namespace) "" "inaccessible"}}
>
<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>