Files
jube-fork/Jube.App/Pages/Model/Frame/EntityAnalysisModelAbstractionRule.cshtml
richard-churchman 39b4230a84 Enhanced validations, UI error handling, and tree data filtering
* Added name duplication checks to validations for most endpoints invoked via the CRUD.js functionality (applies to most configuration pages).
* Improved user interface rendering of backend validation errors, including styled lists and highlighted form elements on validation error.
* Implemented tree data filtering in configuration tree to speed up exploration.
2025-11-29 14:08:55 +02:00

252 lines
12 KiB
Plaintext

@* Copyright (C) 2022-present Jube Holdings Limited
*
* This file is part of Jube™ software.
*
* Jube™ is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* Jube™ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public License along with Jube™. If not,
* see <https://www.gnu.org/licenses/>.
*@
@page
@model EntityAnalysisModelAbstractionRule
@{
Layout = null;
}
<script src="/js/BuilderCoder.js"></script>
<script src="/js/CRUD.js"></script>
<script src="/js/Model/Frame/EntityAnalysisModelAbstractionRule.js"></script>
<form id="Form" class="k-form">
<body>
<div class="fCStyle">
<table id="TemplateTable" class="tTStyle">
<tr>
<td>
<label for="Name">Name</label>
</td>
<td>
<input type="text" id="Name" class="k-textbox large"/>
<span class="k-invalid-msg" data-for="Name"></span>
</td>
</tr>
<tr>
<td>
<label for="Active" class="k-checkbox-label">Active</label>
</td>
<td>
<input id="Active" type="checkbox"/>
</td>
</tr>
<tr>
<td>
<label for="Locked" class="k-checkbox-label">Locked</label>
</td>
<td>
<input id="Locked" type="checkbox"/>
</td>
</tr>
<tr>
<td>
<label for="rule">Rule</label>
</td>
<td>
<div id="rule"></div>
</td>
</tr>
<tr>
<td>
<label for="Search">Search</label>
</td>
<td>
<input id="Search" type="checkbox" checked/>
<table id="SearchTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="SearchKey">Search Key</label>
</td>
<td>
<select id="SearchKey">
</select>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="SearchValue">Search Value</label>
</td>
<td>
<input type="text" id="SearchValue" value="1">
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="SearchInterval">Search Interval</label>
</td>
<td>
<ul id="SearchInterval" class="fieldlist">
<li>
<input type="radio" class="k-radio" id="Seconds" value="s"
name="SearchInterval"/>
<label class="k-radio-label" for="Seconds">Seconds</label>
</li>
<li>
<input type="radio" class="k-radio" id="Minutes" value="n"
name="SearchInterval"/>
<label class="k-radio-label" for="Minutes">Minutes</label>
</li>
<li>
<input type="radio" checked class="k-radio" value="h" id="Hours"
name="SearchInterval"/>
<label class="k-radio-label" for="Hours">Hours</label>
</li>
<li>
<input type="radio" class="k-radio" id="Days" value="d" name="SearchInterval"/>
<label class="k-radio-label" for="Days">Days</label>
</li>
</ul>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="SearchFunctionTypeId">Function</label>
</td>
<td>
<select id="SearchFunctionTypeId">
<option value="1">Count</option>
<option value="2">Distinct Count</option>
<option value="3">Sum</option>
<option value="4">Average</option>
<option value="5">Median</option>
<option value="6">Kurtosis</option>
<option value="7">Skew</option>
<option value="8">SD</option>
<option value="11">Mode</option>
<option value="12">Same Count</option>
<option value="13">Actual Value</option>
<option value="14">Max</option>
<option value="15">Min</option>
<option value="16">Since</option>
</select>
<table id="FunctionFieldsTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label>Function Key</label>
</td>
<td>
<div>
<select id="SearchFunctionKeyString">
</select>
<select id="SearchFunctionKeyFloat">
</select>
<select id="SearchFunctionKeyDate">
</select>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="Offset">Offset</label>
</td>
<td>
<input id="Offset" type="checkbox"/>
<table id="OffsetTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="OffsetTypeId">Offset Type</label>
</td>
<td>
<ul id="OffsetTypeId" class="fieldlist">
<li>
<input type="radio" class="k-radio" id="First" checked
name="OffsetTypeId" value="1"/>
<label class="k-radio-label" for="First">First</label>
</li>
<li>
<input type="radio" class="k-radio" id="Last" name="OffsetTypeId"
value="2"/>
<label class="k-radio-label" for="Last">Last</label>
</li>
<li>
<input type="radio" class="k-radio" id="SkipFirst"
name="OffsetTypeId" value="3"/>
<label class="k-radio-label" for="SkipFirst">Skip First</label>
</li>
<li>
<input type="radio" class="k-radio" id="TakeLast"
name="OffsetTypeId" value="4"/>
<label class="k-radio-label" for="TakeLast">Take Last</label>
</li>
</ul>
</td>
</tr>
<tr id="ScopeValueFieldRow">
<td class="sTBorderStyle">
<label for="OffsetValue">Offset Value</label>
</td>
<td>
<input id="OffsetValue" value="0"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<label for="ReportTable">Report Table</label>
</td>
<td>
<input id="ReportTable" type="checkbox"/>
</td>
</tr>
<tr>
<td>
<label for="ResponsePayload">Response Payload</label>
</td>
<td>
<input id="ResponsePayload" type="checkbox"/>
</td>
</tr>
<tr>
<td>
<label for="Version">Version</label>
</td>
<td>
<div id="Version"></div>
</td>
</tr>
<tr>
<td>
<label for="CreatedUser">User Created</label>
</td>
<td>
<div id="CreatedUser"></div>
</td>
</tr>
<tr>
<td>
<label for="CreatedDate">Created Date</label>
</td>
<td>
<div id="CreatedDate"></div>
</td>
</tr>
</table>
<div class="footerStyle">
<div id="ErrorMessage" class="errorMessage"></div>
<button type="button" id="Add" class="ButtonDefault">Add</button>
<button type="button" id="Update" class="ButtonDefault">Update</button>
<button type="button" id="Delete" class="ButtonDefault">Delete</button>
</div>
</div>
</body>
</form>