refactor: use Laravel route() helper for shared variable URLs

- Replace hardcoded URL paths in getScopeUrl() with Laravel's route() helper
- Add scopeUrls property to EnvVarInput component with named routes
- Pass projectUuid and environmentUuid to enable context-specific environment links
- Environment scope link now navigates to the specific project/environment shared variables page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Andras Bacsai
2025-11-25 10:11:49 +01:00
parent 01d3f07934
commit 4147cfa537
3 changed files with 23 additions and 10 deletions
@@ -18,6 +18,7 @@
currentScope: null,
availableScopes: ['team', 'project', 'environment'],
availableVars: @js($availableVars),
scopeUrls: @js($scopeUrls),
isAutocompleteDisabled() {
const hasAnyVars = Object.values(this.availableVars).some(vars => vars.length > 0);
@@ -28,13 +29,14 @@
const input = this.$refs.input;
if (!input) return;
const value = input.value || '';
if (this.isAutocompleteDisabled()) {
this.showDropdown = false;
return;
}
this.cursorPosition = input.selectionStart || 0;
const value = input.value || '';
const textBeforeCursor = value.substring(0, this.cursorPosition);
const openBraces = '{' + '{';
@@ -107,14 +109,7 @@
},
getScopeUrl(scope) {
if (scope === 'team') {
return '/shared-variables/team';
} else if (scope === 'project') {
return '/shared-variables/projects';
} else if (scope === 'environment') {
return '/shared-variables/environments';
}
return '/shared-variables';
return this.scopeUrls[scope] || this.scopeUrls['default'];
},
selectSuggestion(suggestion) {
@@ -3,7 +3,9 @@
<x-forms.textarea x-show="$wire.is_multiline === true" x-cloak id="value" label="Value" required />
<x-forms.env-var-input x-show="$wire.is_multiline === false" x-cloak placeholder="production" id="value"
x-bind:label="$wire.is_multiline === false && 'Value'" required
:availableVars="$shared ? [] : $this->availableSharedVariables" />
:availableVars="$shared ? [] : $this->availableSharedVariables"
:projectUuid="data_get($parameters, 'project_uuid')"
:environmentUuid="data_get($parameters, 'environment_uuid')" />
@if (!$shared)
<div x-show="$wire.is_multiline === false" x-cloak class="text-xs text-neutral-500 dark:text-neutral-400 -mt-1">