Some checks failed
Build and Release / Create Release (push) Has been skipped
Build and Release / Unit Tests (push) Successful in 3m22s
Build and Release / Build Binaries (amd64, darwin, macos) (push) Has been cancelled
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Has been cancelled
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Has been cancelled
Build and Release / Build Binaries (arm64, darwin, macos) (push) Has been cancelled
Build and Release / Build Binary (linux/arm64) (push) Has been cancelled
Build and Release / Lint (push) Has been cancelled
Build and Release / Integration Tests (PostgreSQL) (push) Has been cancelled
Include loaded plugin details (name, version, description) in /api/v2/version response when plugins are enabled. Also add page class to AI learning admin templates for consistent styling.
101 lines
5.1 KiB
Handlebars
101 lines
5.1 KiB
Handlebars
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin ai-learning")}}
|
|
<div class="admin ai-learning-edit">
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "admin.ai_learning.edit"}} - {{.Pattern.Pattern}}
|
|
</h4>
|
|
|
|
<div class="ui attached segment">
|
|
<form class="ui form" method="post" action="{{AppSubUrl}}/-/admin/ai-learning/{{.Pattern.ID}}">
|
|
{{.CsrfTokenHtml}}
|
|
|
|
<div class="two fields">
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.pattern"}}</label>
|
|
<input type="text" name="pattern" value="{{.Pattern.Pattern}}" required>
|
|
<small>{{ctx.Locale.Tr "admin.ai_learning.pattern_help"}}</small>
|
|
</div>
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.pattern_regex"}}</label>
|
|
<input type="text" name="pattern_regex" value="{{.Pattern.PatternRegex}}">
|
|
<small>{{ctx.Locale.Tr "admin.ai_learning.pattern_regex_help"}}</small>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="three fields">
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.runner_type"}}</label>
|
|
<select class="ui dropdown" name="runner_type">
|
|
<option value="any" {{if or (eq .Pattern.RunnerType "") (eq .Pattern.RunnerType "any")}}selected{{end}}>Any</option>
|
|
<option value="linux" {{if eq .Pattern.RunnerType "linux"}}selected{{end}}>Linux</option>
|
|
<option value="windows" {{if eq .Pattern.RunnerType "windows"}}selected{{end}}>Windows</option>
|
|
<option value="macos" {{if eq .Pattern.RunnerType "macos"}}selected{{end}}>macOS</option>
|
|
</select>
|
|
</div>
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.project_type"}}</label>
|
|
<input type="text" name="project_type" value="{{.Pattern.ProjectType}}" placeholder="e.g., dotnet-maui, go, node">
|
|
</div>
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.framework"}}</label>
|
|
<input type="text" name="framework" value="{{.Pattern.Framework}}" placeholder="e.g., net10.0-android">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.error_message"}}</label>
|
|
<textarea name="error_message" rows="3" placeholder="Full error message example">{{.Pattern.ErrorMessage}}</textarea>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.diagnosis"}}</label>
|
|
<textarea name="diagnosis" rows="3" placeholder="What this error means">{{.Pattern.Diagnosis}}</textarea>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.solution"}}</label>
|
|
<textarea name="solution" rows="4" placeholder="How to fix this error">{{.Pattern.Solution}}</textarea>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "admin.ai_learning.solution_diff"}}</label>
|
|
<textarea name="solution_diff" rows="6" placeholder="Code/config changes that fix it">{{.Pattern.SolutionDiff}}</textarea>
|
|
</div>
|
|
|
|
<!-- Stats Tiles -->
|
|
<div style="display: flex; gap: 15px; margin: 20px 0;">
|
|
<div style="flex: 1; padding: 15px; background: var(--color-box-body); border: 1px solid var(--color-secondary); border-radius: 8px; text-align: center;">
|
|
<div style="font-size: 1.8em; font-weight: bold; color: #6435c9;">{{.Pattern.OccurrenceCount}}</div>
|
|
<div style="color: var(--color-text-light); font-size: 0.9em;">{{ctx.Locale.Tr "admin.ai_learning.occurrences"}}</div>
|
|
</div>
|
|
<div style="flex: 1; padding: 15px; background: var(--color-box-body); border: 1px solid var(--color-secondary); border-radius: 8px; text-align: center;">
|
|
<div style="font-size: 1.8em; font-weight: bold; color: #21ba45;">{{.Pattern.SuccessCount}}</div>
|
|
<div style="color: var(--color-text-light); font-size: 0.9em;">{{ctx.Locale.Tr "admin.ai_learning.successes"}}</div>
|
|
</div>
|
|
<div style="flex: 1; padding: 15px; background: var(--color-box-body); border: 1px solid var(--color-secondary); border-radius: 8px; text-align: center;">
|
|
<div style="font-size: 1.1em; font-weight: bold; color: var(--color-text);">{{DateUtils.TimeSince .Pattern.CreatedUnix}}</div>
|
|
<div style="color: var(--color-text-light); font-size: 0.9em;">{{ctx.Locale.Tr "admin.ai_learning.created"}}</div>
|
|
</div>
|
|
<div style="flex: 1; padding: 15px; background: var(--color-box-body); border: 1px solid var(--color-secondary); border-radius: 8px; text-align: center;">
|
|
<div style="font-size: 1.1em; font-weight: bold; color: var(--color-text);">{{DateUtils.TimeSince .Pattern.UpdatedUnix}}</div>
|
|
<div style="color: var(--color-text-light); font-size: 0.9em;">{{ctx.Locale.Tr "admin.ai_learning.updated"}}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui divider"></div>
|
|
|
|
<button class="ui primary button" type="submit">
|
|
{{svg "octicon-check" 14}} {{ctx.Locale.Tr "save"}}
|
|
</button>
|
|
<a class="ui button" href="{{AppSubUrl}}/-/admin/ai-learning">
|
|
{{ctx.Locale.Tr "cancel"}}
|
|
</a>
|
|
<button class="ui red button right floated link-action" type="button"
|
|
data-url="{{AppSubUrl}}/-/admin/ai-learning/{{.Pattern.ID}}/delete"
|
|
data-modal-confirm="{{ctx.Locale.Tr "admin.ai_learning.delete_confirm"}}">
|
|
{{svg "octicon-trash" 14}} {{ctx.Locale.Tr "delete"}}
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{{template "admin/layout_footer" .}}
|