-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
- Loading branch information
1 parent
71463af
commit 272ae1e
Showing
22 changed files
with
698 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
```release-note:improvement | ||
ui: adds a new Variables page to all job pages | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
{{! | ||
Copyright (c) HashiCorp, Inc. | ||
SPDX-License-Identifier: MPL-2.0 | ||
~}} | ||
|
||
{{!-- Either link to a new variable with a pre-filled path, or the existing variable in edit mode, depending if it exists --}} | ||
{{#if (can "write variable")}} | ||
{{#with (editable-variable-link @path existingPaths=@existingPaths namespace=@namespace) as |link|}} | ||
{{#if link.model}} | ||
<LinkTo @route={{link.route}} @model={{link.model}} @query={{link.query}}>{{@path}}</LinkTo> | ||
{{else}} | ||
<LinkTo @route={{link.route}} @query={{link.query}}>{{@path}}</LinkTo> | ||
{{/if}} | ||
{{/with}} | ||
{{else}} | ||
@path | ||
{{/if}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
/** | ||
* Copyright (c) HashiCorp, Inc. | ||
* SPDX-License-Identifier: MPL-2.0 | ||
*/ | ||
|
||
// @ts-check | ||
|
||
import Controller from '@ember/controller'; | ||
import { alias } from '@ember/object/computed'; | ||
// eslint-disable-next-line no-unused-vars | ||
import VariableModel from '../../../models/variable'; | ||
// eslint-disable-next-line no-unused-vars | ||
import JobModel from '../../../models/job'; | ||
// eslint-disable-next-line no-unused-vars | ||
import MutableArray from '@ember/array/mutable'; | ||
|
||
export default class JobsJobVariablesController extends Controller { | ||
/** @type {JobModel} */ | ||
@alias('model.job') job; | ||
|
||
/** @type {MutableArray<VariableModel>} */ | ||
@alias('model.variables') variables; | ||
|
||
get firstFewTaskGroupNames() { | ||
return this.job.taskGroups.slice(0, 2).mapBy('name'); | ||
} | ||
|
||
get firstFewTaskNames() { | ||
return this.job.taskGroups | ||
.map((tg) => tg.tasks.map((task) => `${tg.name}/${task.name}`)) | ||
.flat() | ||
.slice(0, 2); | ||
} | ||
|
||
/** | ||
* Structures the flattened variables in a "path tree" like we use in the main variables routes | ||
* @returns {import("../../../utils/path-tree").VariableFolder} | ||
*/ | ||
get jobRelevantVariables() { | ||
/** | ||
* @type {import("../../../utils/path-tree").VariableFile[]} | ||
*/ | ||
let variableFiles = this.variables.map((v) => { | ||
return { | ||
name: v.path, | ||
path: v.path, | ||
absoluteFilePath: v.path, | ||
variable: v, | ||
}; | ||
}); | ||
|
||
return { | ||
files: variableFiles, | ||
children: {}, | ||
absolutePath: '', | ||
}; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/** | ||
* Copyright (c) HashiCorp, Inc. | ||
* SPDX-License-Identifier: MPL-2.0 | ||
*/ | ||
|
||
// @ts-check | ||
// eslint-disable-next-line no-unused-vars | ||
import VariableModel from '../models/variable'; | ||
// eslint-disable-next-line no-unused-vars | ||
import MutableArray from '@ember/array/mutable'; | ||
|
||
/** | ||
* @typedef LinkToParams | ||
* @property {string} route | ||
* @property {string} model | ||
* @property {Object} query | ||
*/ | ||
|
||
import Helper from '@ember/component/helper'; | ||
|
||
/** | ||
* Either generates a link to edit an existing variable, or else create a new one with a pre-filled path, depending on whether a variable with the given path already exists. | ||
* Returns an object with route, model, and query; all strings. | ||
* @param {Array<string>} positional | ||
* @param {{ existingPaths: MutableArray<VariableModel>, namespace: string }} named | ||
* @returns {LinkToParams} | ||
*/ | ||
export function editableVariableLink( | ||
[path], | ||
{ existingPaths, namespace = 'default' } | ||
) { | ||
if (existingPaths.findBy('path', path)) { | ||
return { | ||
route: 'variables.variable.edit', | ||
model: `${path}@${namespace}`, | ||
query: {}, | ||
}; | ||
} else { | ||
return { | ||
route: 'variables.new', | ||
model: '', | ||
query: { path }, | ||
}; | ||
} | ||
} | ||
|
||
export default Helper.helper(editableVariableLink); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.