Files
jube-fork/Jube.App/Pages/Model/Frame/EntityAnalysisModelActivationRule.cshtml
richard-churchman bc66cd80e3 Expanded Inline Script Invocation Coverage and Implemented Activation Rule Chaining
* Updated documentation to include Inline Script events and Activation Rule Chaining concepts.
* Included Activation Rules in Activation Completions to make them available.
* Modified activation rule signatures to include match keys for facilitation.
* Updated Gateway Rule Priority to support double type, including changes in migrations and POCOs.
* Updated tree to ensure entities are listed by Priority when Priority exists in the entity.
* Included Priority in Activation Rule user interface, POCOs, and migrations; ensured invocation and synchronization preserve order for evaluation sequence to support rule chaining.
* Updated completions to support Activation Rules and Activation Rule chaining.
* Improved delegate compilation to avoid reflection during invocation; delegates are now compiled during synchronization, eliminating reflection usage during invocation for real-time processing.
* Created event attributes to direct matching of Inline Scripts, including matching properties given event context (to restrict to a single Activation Rule, for example).
* Separated ExecuteAsync attributes from property attributes in the solution for better organization.
* Mapped Inline Script property and method attributes during synchronization to avoid reflection during invocation.
* Removed parallel for loops and locks in Activation Rule processing to support chaining.
* Modified reflection wrapper for Inline Scripts to eliminate reflection by compiling delegates during synchronization.
* Minor refactoring and variable renaming.
* Updated Inline Script interface to mandate bool return value in ExecuteAsync method.
* Updated rule parser to support evaluation of exists activation rule match for chaining support.
* Updated sandbox code for new Inline Script format.
* Corrected some spelling in documentation.
2026-02-12 12:51:52 +02:00

410 lines
19 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 EntityAnalysisModelActivationRule
@{
Layout = null;
}
<script src="/js/BuilderCoder.js"></script>
<script src="/js/CRUD.js"></script>
<script src="/js/Model/Frame/EntityAnalysisModelActivationRule.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" name="Name"/>
<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="Priority">Priority</label>
</td>
<td>
<input id="Priority" value="0"/>
</td>
</tr>
<tr>
<td>
<label for="ReviewStatusId">Activation Rule Review Status</label>
</td>
<td>
<select id="ReviewStatusId">
<option value="0">New</option>
<option value="1">New Pending Review</option>
<option value="2">Updated Pending Review</option>
<option value="3">Rejected by Review</option>
<option value="4">Approved by Review</option>
</select>
</td>
</tr>
<tr>
<td>
<label for="EnableSuppression">Enable Suppression</label>
</td>
<td>
<input id="EnableSuppression" type="checkbox"/>
</td>
</tr>
<tr>
<td>
<label for="rule">Rule</label>
</td>
<td>
<div id="rule"></div>
</td>
</tr>
<tr>
<td>
<label for="EnableCaseWorkflow" class="k-checkbox-label">Cases</label>
</td>
<td>
<input id="EnableCaseWorkflow" type="checkbox"/>
<table id="CaseWorkflowTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="CaseWorkflowGuid">Case Workflow</label>
</td>
<td>
<select id="CaseWorkflowGuid">
</select>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="CaseWorkflowStatusGuid">Case Workflow Status</label>
</td>
<td>
<select id="CaseWorkflowStatusGuid">
</select>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="CaseKey">Case Key</label>
</td>
<td>
<select id="CaseKey">
</select>
</td>
</tr>
<tr>
<td class="sTBorderStyle"><label>Bypass</label></td>
<td>
<input id="EnableBypass" type="checkbox" onchange=""/>
<table id="BypassSuspendTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="BypassSuspendSample">Bypass Sample</label>
</td>
<td>
<input id="BypassSuspendSample" value="0"/>
</td>
</tr>
<tr>
<td class="sTBorderStyle"><label for="BypassSuspendInterval">Bypass
Interval</label></td>
<td>
<ul id="BypassSuspendInterval" class="fieldlist">
<li>
<input type="radio" class="k-radio" id="BypassSuspendIntervalMin"
value="n" name="BypassSuspendInterval"/>
<label class="k-radio-label"
for="BypassSuspendIntervalMin">Minutes</label>
</li>
<li>
<input type="radio" checked class="k-radio"
id="BypassSuspendIntervalHour" value="h"
name="BypassSuspendInterval"/>
<label class="k-radio-label"
for="BypassSuspendIntervalHour">Hours</label>
</li>
<li>
<input type="radio" class="k-radio" id="BypassSuspendIntervalDay"
value="d" name="BypassSuspendInterval"/>
<label class="k-radio-label"
for="BypassSuspendIntervalDay">Days</label>
</li>
<li>
<input type="radio" class="k-radio" id="BypassSuspendIntervalMonth"
value="m" name="BypassSuspendInterval"/>
<label class="k-radio-label"
for="BypassSuspendIntervalMonth">Months</label>
</li>
</ul>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="BypassSuspendValue">Bypass Value</label>
</td>
<td>
<input id="BypassSuspendValue" value="0"/>
</td>
</tr>
</table>
</td>
</table>
</td>
</tr>
<tr>
<td>
<label for="EnableResponseElevation" class="k-checkbox-label">Response Elevation</label>
</td>
<td>
<input id="EnableResponseElevation" type="checkbox"/>
<table id="ResponseElevationTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="ResponseElevation">Response Elevation</label>
</td>
<td>
<input id="ResponseElevation" value="0"/>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="ResponseElevationContent">Response Elevation Content</label>
</td>
<td>
<textarea class="generalTextArea" id="ResponseElevationContent"></textarea>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="ResponseElevationRedirect">Response Elevation Redirect</label>
</td>
<td>
<input id="ResponseElevationRedirect" class="k-textbox large"/>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label>Send To Activation Watcher</label>
</td>
<td>
<input id="SendToActivationWatcher" type="checkbox"/> <label
for="SendToActivationWatcher" class="k-checkbox-label"></label>
<table id="SendToActivationWatcherTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="ResponseElevationKey">Response Elevation Key</label>
</td>
<td>
<select id="ResponseElevationKey"></select>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="ResponseElevationForeColor">Response Elevation Fore
Color</label>
</td>
<td>
<input id="ResponseElevationForeColor"/>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="ResponseElevationBackColor">Response Elevation Back
Color</label>
</td>
<td>
<input id="ResponseElevationBackColor"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<label for="EnableNotification" class="k-checkbox-label">Notification</label>
</td>
<td>
<input id="EnableNotification" type="checkbox"/>
<table id="NotificationTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="NotificationTypeId">Type</label>
</td>
<td>
<ul id="NotificationTypeId" class="fieldlist">
<li>
<input type="radio" class="k-radio" id="NotificationEmail" checked value="1"
name="NotificationTypeId"/>
<label class="k-radio-label" for="NotificationEmail">Email</label>
</li>
<li>
<input type="radio" class="k-radio" id="NotificationSMS" value="2"
name="NotificationTypeId"/>
<label class="k-radio-label" for="NotificationSMS">SMS</label>
</li>
</ul>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="NotificationDestination">Destination</label>
</td>
<td>
<input id="NotificationDestination" class="k-textbox large"/>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="NotificationSubject">Subject</label>
</td>
<td>
<input id="NotificationSubject" class="k-textbox large"/>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="NotificationBody">Body</label>
</td>
<td>
<textarea class="generalTextArea" id="NotificationBody"></textarea>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<label for="EnableTTLCounter" class="k-checkbox-label">Increment TTL Counter</label>
</td>
<td>
<input id="EnableTTLCounter" type="checkbox"/>
<table id="TTLCounterTable" class="sTStyle">
<tr>
<td class="sTBorderStyle">
<label for="EntityAnalysisModelGuidTtlCounter">Model</label>
</td>
<td>
<select id="EntityAnalysisModelGuidTtlCounter">
</select>
</td>
</tr>
<tr>
<td class="sTBorderStyle">
<label for="EntityAnalysisModelTtlCounterGuid">TTL Counter</label>
</td>
<td>
<select id="EntityAnalysisModelTtlCounterGuid">
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<label for="ActivationSample">Activation Sample</label>
</td>
<td>
<input id="ActivationSample" value="100"/>
</td>
</tr>
<tr>
<td>
<label for="Visible"><label for="Visible">Visible</label></label>
</td>
<td>
<input id="Visible" type="checkbox"/>
</td>
</tr>
<tr>
<td>
<label for="EnableReprocessing"><label for="EnableReprocessing">Enable Reprocessing</label></label>
</td>
<td>
<input id="EnableReprocessing" type="checkbox"/>
</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>