Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wget -qO- http://192.168.1.143:80 80
- <!DOCTYPE html>
- <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>AMP - Application Management Panel</title>
- <meta charset="utf-8" />
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta http-equiv="cleartype" content="on" />
- <meta name="google" value="notranslate">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximu m-scale=1.0, user-scalable=0" />
- <meta name="application-name" content="AMP" />
- <meta name="theme-color" content="#25597E" />
- <meta name="mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-title" content="AMP" />
- <link rel="apple-touch-icon-precomposed" sizes="256x256" href="Images/AppIco n.png">
- <link rel="apple-touch-icon" href="Images/AppIcon.png">
- <link type="text/css" href="CSS/Stylesheet.css?v=2.4.0.4" rel="stylesheet" / >
- <link type="text/css" href="theme?v=2.4.0.4" rel="stylesheet" />
- <link type="image/x-icon" rel="shortcut icon" href="favicon.ico" />
- <link rel="icon" sizes="256x256" href="Images/AppIcon.png" />
- <link rel="manifest" href="manifest.json" />
- </head>
- <body>
- <div id="mainModal" class="modalbg">
- <div class="modalpanel">
- <img id="modalImage" />
- <h1 id="modaltitle"></h1>
- <div class="modalcontents">
- <p id="modalmessage"></p>
- <p id="modalsubtitle"></p>
- <input id="modalPromptInput" type="text" />
- <p id="relatedLinkArea"><span>Related Link:</span> <a href="" id ="relatedLinkA" title="" target="_blank"></a></p>
- <div id="modalAdvanced">
- <p>Advanced Details <span class="adHandle"></span></p>
- <pre id="modalAdvancedText"></pre>
- </div>
- </div>
- <div class="modalbuttons">
- </div>
- <div class="loader" id="modalLoader"></div>
- </div>
- </div>
- <div id="loginSplash" class="desktopOnly">
- <a class="twitter-timeline" data-lang="en" data-width="300px" data-heigh t="100%" data-dnt="true" data-theme="dark" href="https://twitter.com/CubeCoders"
- data-chrome="noborders,noscrollbar,transparent,noheader,nofooter"></a >
- <iframe id="loginBrandContents"></iframe>
- </div>
- <div id="loginContainer">
- <div id="loginLogo">
- <img src="Images/FullLogo256.png" alt="Welcome to AMP" />
- <div id="ADSLoginWaiting">Connecting to remote AMP instance...</div>
- </div>
- <form role="form" id="loginForm" spellcheck="false">
- <h2 id="loginWelcome">Welcome to AMP</h2>
- <div id="loginModuleInfo">
- <h4><span>For </span><span class="AppName"></span></h4>
- <h6><span>©</span><span class="ModuleAuthor"></span></h6>
- </div>
- <div>
- <label>Username</label><br />
- <input type="text" name="username" required="required" />
- </div>
- <div>
- <label>Password</label><br />
- <input type="password" name="password" required="required" id="l oginPasswordField" />
- </div>
- <div>
- <label class="checkbox">
- <input type="checkbox" name="rememberme" checked="checked" / >
- <span></span>
- </label>
- <span style="margin-left: 8px;">Remember Me</span>
- </div>
- <button class="bgGreen">Login</button><br /><br />
- <h3 id="loginFailureReason"></h3>
- <a href="https://github.com/CubeCoders/AMP/wiki/How-to-reset-your-AM P-login-details" target="_blank" id="forgotLogin">Forgotten login details?</a>
- </form>
- <div class="loader" id="loginSpinner"></div>
- </div>
- <div id="barTop">
- <div id="userInfo" data-viewmodel="UserInfoVM">
- <img class="icon smallIcon" data-bind="attr: {src: imageSmallURI}" / >
- <span data-bind="text: username"></span>
- </div>
- <div id="responsiveHelpers">
- <img src="Images/NavToggle.png" id="navToggle" alt="Navigation" />
- </div>
- <div id="tabInfo">
- <h2 id="tabTitle">Status</h2>
- <h4 id="tabCaption"></h4>
- </div>
- <div id="topSearchBox" data-viewmodel="SearchAreaVM">
- <div class="icon icons_search"></div>
- <input type="search" role="search" autocomplete="amp_off_9af765b1-21 c0-4385-b1ea-383cefb5a33f" class="searchBox" title="Search" placeholder="Search. .." data-bind="textInput: query" name="amp_search_9a7ef19d-eeb0-43c8-a706-f43336 29f5db" />
- <div id="searchResults" style="display:none;" data-bind="visible: re sultsVisible,foreach: results">
- <div class="searchResultCategory">
- <div class="searchResultCategoryInfo">
- <h3 data-bind="text: name"></h3>
- <p data-bind="text: description"></p>
- </div>
- <div class="searchCategoryItems" data-bind="foreach: items">
- <div class="searchResult" data-bind="click: click, css: {'videoResult' : imageURI != null}">
- <!-- ko if: imageURI != null -->
- <img data-bind="attr: {src: imageURI}" />
- <!-- /ko -->
- <h3 data-bind="text: title"></h3>
- <p data-bind="text: description"></p>
- <p class="source" data-bind="text: source"></p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div id="mainBody">
- <div id="releaseSpec"></div>
- <div id="mainBodyArea">
- <div class="bodyTab" id="tab_currentuser" data-viewmodel="UserInfoVM ">
- <img data-bind="attr: {src: imageSmallURI}" alt="Gravatar" style ="float:left;" />
- <div class="userInfoBlock">
- <h2 data-bind="text: username"></h2>
- <!-- ko if: isLDAPUser() -->
- <h3>LDAP Authenticated User</h3>
- <!-- /ko -->
- <a href="https://gravatar.com/emails/" target="_new">Edit pr ofile picture</a>
- </div>
- <div class="form-group">
- <label>Email Address</label>
- <input type="email" data-bind="value: emailAddress" />
- </div>
- <br />
- <button data-bind="click: updateDetails" class="slimButton slide Icon icons_save"><span>Save Changes</span></button>
- <h2 style="margin-top:0.8em">Two factor authentication (2FA)</h2 >
- <p>
- 2FA is currently <span style="margin-right:16px;" data-bind= "css: (isTwoFactor() ? 'bgGreen' : 'bgRed'), text: (isTwoFactor() ? 'Enabled' : 'Disabled')"></span>
- <button class="slimButton" data-bind="visible: !isTwoFactor( ), click: enableTwoFactor">Setup 2FA</button>
- <button data-bind="visible: isTwoFactor(), click: disableTwo Factor" class="slimButton bgRed slideIcon icons_warning"><span>Disable 2FA</span ></button>
- </p>
- <!-- ko if: !isLDAPUser() -->
- <h2>Change Password</h2>
- <table class="twoColLine noZebra">
- <tr>
- <td>Old Password</td>
- <td><input type="password" data-bind="value: oldPassword " required="required" /></td>
- </tr>
- <tr>
- <td>New Password</td>
- <td><input type="password" data-bind="value: newPassword , valueUpdate: 'input'" required="required" autocomplete="new-password" /></td>
- </tr>
- <tr>
- <td>Confirm Password</td>
- <td><input type="password" data-bind="value: confirmPass word" required="required" autocomplete="new-password" /></td>
- </tr>
- <tr>
- <td>Password Strength</td>
- <td><div class="passwordGrade" data-bind="css: passwordG radeClass(), style: {width: passwordGradeWidth()}, visible: newPassword() != ''" ></div></td>
- </tr>
- </table>
- <br />
- <button class="slimButton" data-bind="click: changePassword">Cha nge Password</button>
- <!-- /ko -->
- <h2>Actions</h2>
- <button class="slimButton" data-bind="click: mobileLogin">Mobile Login</button>
- <button class="slimButton" data-bind="click: serviceLogin">Servi ce Login</button>
- <button class="slimButton bgRed slideIcon icons_warning" data-bi nd="click: logout"><span>Logout</span></button>
- </div>
- <div class="bodyTab" id="tab_status">
- <div id="AMP_Core_MetricsDisplay">
- <!-- ko foreach: metrics -->
- <div class="DisplayMetric" data-bind="style: {'border-color' : color}">
- <div class="DisplayMetricHeader" data-bind="style: { 'ba ckground-color': color, 'color': color3 }">
- <div data-bind="text:name" style="font-weight:bold;" ></div>
- <div data-bind="text:displayValue"></div>
- <div class="circleChart">
- <svg>
- <g>
- <circle r="32" cx="48" cy="56"></circle>
- <circle r="32" cx="48" cy="56" class="va lue" data-bind="style:{ 'stroke-dashoffset': dashOffset() }"></circle>
- </g>
- </svg>
- </div>
- </div>
- <div class="DisplayMetricGraph" data-bind="attr: { id: e lementId }"></div>
- </div>
- <!-- /ko -->
- <div id="AMP_Core_PrimaryTask">
- <span class="appStateIcon" data-bind="style:{ 'backgroun d-color' : stateColor }"> </span>
- <span>Application State: <span data-bind="text: stateTex t"></span></span>
- <!-- ko if: primaryTask() != null -->
- <!-- ko with: primaryTask -->
- <div class="notification" data-bind="css: { failed: Stat e() == 3 }">
- <div class="notificationProgessContainer" style="wid th: calc(100% + 12px); margin-left: -7px;">
- <div class="notificationProgressBar" data-bind=" css: { progUnknown: IsIndeterminate }, style: { width : IsIndeterminate() ? '20% ' : ProgressPercent() + '%' }">
- <div class="notificationSpeed" data-bind="te xt: Speed, visible: !IsIndeterminate()"></div>
- </div>
- </div>
- </div>
- <!-- /ko -->
- <!-- /ko -->
- </div>
- </div>
- <br />
- <div class="buttonGroup" id="AMP_Core_ServerStatus" style="width : auto; margin: 0 8px 16px 0;">
- <button class="bgGreen slideIcon icons_play" data-module="Co re" data-method="Start" data-showstates="0,100" data-permission="Core.AppManagem ent.StartApplication"><span>Start</span></button>
- <button class="bgGreen slideIcon icons_play" data-module="Co re" data-method="Start" data-showstates="50" data-permission="Core.AppManagement .StartApplication"><span>Wake Up</span></button>
- <button class="bgAmber slideIcon icons_restart" data-module= "Core" data-method="UpdateApplication" data-showstates="0,100" data-permission=" Core.AppManagement.UpdateApplication"><span>Update</span></button>
- <button class="slideIcon icons_restart" data-module="Core" d ata-method="Restart" data-showstates="20" data-permission="Core.AppManagement.Re startApplication"><span>Restart</span></button>
- <button class="bgRed slideIcon icons_stop" data-module="Core " data-method="Stop" data-showstates="20,50" data-permission="Core.AppManagement .StopApplication"><span>Stop</span></button>
- <button class="bgAmber slideIcon icons_pause" data-module="C ore" data-method="Sleep" data-showstates="20" id="sleepButton" data-permission=" Core.AppManagement.StopApplication"><span>Sleep</span></button>
- <button class="bgRed slideIcon icons_warning" data-module="C ore" data-method="Kill" data-showstates="30,40" data-permission="Core.AppManagem ent.StopApplication"><span>Kill</span></button>
- <button class="bgRed slideIcon icons_warning" data-module="C ore" data-method="Kill" data-showstates="10,70" data-permission="Core.AppManagem ent.StopApplication"><span>Abort</span></button>
- <button class="slideIcon icons_server" data-bind="visible: ( endpointURI() != '' || primaryEndpoint() != '') && state() == 20, click: connect ToServer"><span>Connect to Server</span></button>
- <a style="text-decoration:none;" data-bind="visible: endpoin tURI() != '' && state() == 20, attr: {href:endpointURI()}">🔗</a>
- </div>
- </div>
- <div class="bodyTab noOverflowTab" id="tab_console">
- <div class="buttonGroup slimButtonGroup" id="AMP_Core_ConsoleBut tons">
- <button class="slimButton slimShrinkable bgGreen slideIcon i cons_play" data-module="Core" data-method="Start" data-showstates="0,100" data-p ermission="Core.AppManagement.StartApplication"><span>Start</span></button>
- <button class="slimButton slimShrinkable bgGreen slideIcon i cons_play" data-module="Core" data-method="Start" data-showstates="50" data-perm ission="Core.AppManagement.StartApplication"><span>Wake Up</span></button>
- <button class="slimButton slimShrinkable bgAmber slideIcon i cons_restart" data-module="Core" data-method="UpdateApplication" data-showstates ="0,100" data-permission="Core.AppManagement.UpdateApplication"><span>Update</sp an></button>
- <button class="slimButton slimShrinkable slideIcon icons_res tart" data-module="Core" data-method="Restart" data-showstates="20" data-permiss ion="Core.AppManagement.RestartApplication"><span>Restart</span></button>
- <button class="slimButton slimShrinkable bgRed slideIcon ico ns_stop" data-module="Core" data-method="Stop" data-showstates="20,50" data-perm ission="Core.AppManagement.StopApplication"><span>Stop</span></button>
- <button class="slimButton slimShrinkable bgAmber slideIcon i cons_pause" data-module="Core" data-method="Sleep" data-showstates="20" id="slee pButton" data-permission="Core.AppManagement.StopApplication"><span>Sleep</span> </button>
- <button class="slimButton slimShrinkable bgRed slideIcon ico ns_warning" data-module="Core" data-method="Kill" data-showstates="30,40" data-p ermission="Core.AppManagement.StopApplication"><span>Kill</span></button>
- <button class="slimButton slimShrinkable bgRed slideIcon ico ns_warning" data-module="Core" data-method="Kill" data-showstates="10,70" data-p ermission="Core.AppManagement.StopApplication"><span>Abort</span></button>
- </div>
- <div id="AMP_Core_ConsoleStatus">
- <span class="appStateIcon" data-bind="style:{ 'background-co lor' : stateColor }"> </span>
- <span>Application State: <span data-bind="text: stateText">< /span></span>
- </div>
- <div id="consoleContainer" data-viewmodel="UserListVM">
- <div id="consoleUsers" data-bind="foreach: users">
- <div class="consoleUserEntry" data-bind="text: name, sty le: {color: userColor}, click: click, attr: {'data-name': name, 'data-id': id}"> </div>
- </div>
- <div id="consoleArea">
- </div>
- <div id="consoleLine">
- <input id="consoleLineEntry" type="text" autocomplete="o ff" spellcheck="false" />
- </div>
- </div>
- </div>
- <div id="settingsBody" data-bind="foreach: categories" data-viewmode l="SettingsVM">
- <!-- ko if: settings().length > 0 -->
- <div class="settingsGroup bodyTab" data-bind="attr: {id: tabName ()}">
- <div class="groupBody" data-bind="template: {name: 'settingE ditorTemplate', foreach: settings}"></div>
- </div>
- <!-- /ko -->
- </div>
- <script id="settingEditorTemplate" type="text/html">
- <div class="settingContainer" data-bind="visible: visible, css: { highlighted : isHighlighted }">
- <!-- ko if: settingType().startsWith("List<") -->
- <button class="slimButton listEditButton slideIcon icons_add _item" data-bind="click: addValue"><span>Add</span></button>
- <button class="slimButton listEditButton slideIcon icons_rem ove bgRed" data-bind="click: removeValue"><span>Remove</span></button>
- <button class="slimButton listEditButton" data-bind="click: moveValueDown" style="min-width:30px !important;margin-left:1px;"><span>⬇</span> </button>
- <button class="slimButton listEditButton" data-bind="click: moveValueUp" style="min-width:30px !important"><span>⬆</span></button>
- <!-- /ko -->
- <div class="settingLabel" data-bind="style: { position: (!se ttingType().startsWith('List<') && !settingType().startsWith('Dictionary<')) ? ' relative' : 'unset'}, css: {'provisionSpec': provisionSpec}">
- <!-- ko if: settingType() == "Boolean" -->
- <label class="checkbox">
- <input type="checkbox" data-bind="checked: value" />
- <span></span>
- </label>
- <!-- /ko -->
- <div data-bind="text: name"></div>
- <!-- ko if: description != "" -->
- <div class="settingDescription" data-bind="text: descrip tion"></div>
- <!-- /ko -->
- <!-- ko if: settingType() == "Enum" && inputType() != "R adio" -->
- <select data-bind="options: enumValues, value: value, op tionsText: 'name', optionsValue: 'value', disable: isReadOnly"></select>
- <!-- /ko -->
- <!-- ko if: settingType() == "Combo" -->
- <input type="text" data-bind="value: value, attr: { 'lis t' : 'list_' + node() }, event: {dblclick: clearValue}, disable: isReadOnly" />
- <datalist data-bind="attr: {id:'list_' + node()}, foreac h: enumValues">
- <option data-bind="val: value, text: name"></option>
- </datalist>
- <!-- /ko -->
- <!-- ko if: inputType() == "Radio" -->
- <div data-bind="foreach: enumValues" class="radioList">
- <label data-bind="css: {selected: $parent.value == v alue}"><input type="radio" data-bind="checked: $parent.value, uniqueName: false, attr: {name: 'list_' + $parent.node, value: value}, disable: isReadOnly" /><spa n data-bind="text: name"></span></label>
- </div>
- <!-- /ko -->
- <!-- ko if: inputType() == "Textarea" -->
- <textarea data-bind="textInput: value, disabled: isReadO nly"></textarea>
- <!-- /ko -->
- <!-- ko if: settingType().startsWith("List<") -->
- <select multiple="multiple" data-bind="options: value, v alue: selectedValue, valueAllowUnset: true, disabled: isReadOnly"></select>
- <!-- /ko -->
- <!-- ko if: settingType().startsWith("Dictionary<") -->
- <table>
- <thead>
- <tr>
- <th>Key</th>
- <th>Value</th>
- <!-- ko if: isReadOnly === false -->
- <th></th>
- <!-- /ko -->
- </tr>
- </thead>
- <tbody data-bind="foreach: value">
- <tr>
- <td data-bind="text: Key"></td>
- <td data-bind="text: Value"></td>
- <!-- ko if: $parent.isReadOnly === false -->
- <td><button class="slimButton listEditButton slideIcon icons_remove bgRed" data-bind="click: $parent.removeKVP"><span>Remove </span></button></td>
- <!-- /ko -->
- </tr>
- </tbody>
- <tfoot>
- <tr>
- <td><input type="text" data-bind="value: new KVPkey" placeholder="Key" /></td>
- <td><input type="text" data-bind="value: new KVPvalue" placeholder="Value" /></td>
- <!-- ko if: isReadOnly === false -->
- <td><button class="slimButton listEditButton slideIcon icons_add_item" data-bind="click: addKVP"><span>Add</span></button></ td>
- <!-- /ko -->
- </tr>
- </tfoot>
- </table>
- <!-- /ko -->
- <!-- ko if: settingType() == "Uri" -->
- <input type="url" data-bind="value: value, disable: isRe adOnly, attr: {'placeholder' : placeholder}" />
- <!-- /ko -->
- <!-- ko if: inputType() == "RandomPassword" -->
- <button class="slimButton slideIcon icons_edit" style="m argin-bottom:16px" data-bind="click: generateRandomPassword"><span>Generate Pass word</span></button> <button class="slimButton bgRed slideIcon icons_remove" dat a-bind="click: clearPassword"><span>Clear Password</span></button>
- <!-- /ko -->
- <!-- ko if: (settingType() == "String" || inputType() == "number" || inputType() == "range") && inputType() != "Textarea" && inputType() != "RandomPassword" -->
- <input data-bind="attr: {'type': inputType(), 'placehold er' : placeholder, 'min': minValue, 'max': maxValue}, value: value, disable: isR eadOnly" />
- <!-- ko if: suffix != null && suffix != "" -->
- <span class="inputFieldSuffix" data-bind="text: suffix"> </span>
- <!-- /ko -->
- <!-- /ko -->
- <div data-bind="foreach: actions" class="settingActionsL ist">
- <button type="button" data-bind="text: caption, clic k: click"></button>
- </div>
- <!-- ko if: !settingType().startsWith("List<") && !setti ngType().startsWith("Dictionary<") -->
- <div data-bind="fadeVisible: tooltipVisible, attr: {'cla ss': tooltipClass}"><span data-bind="text: tooltipText"></span><!--<img src="Ima ges/settingWait.gif" alt="Updating..." data-bind="visible: updating" />--></div>
- <!-- /ko -->
- </div>
- <!-- ko if: provisionSpec === true -->
- <div class="settingWarning">You can change this by selecting "Edit Ports" for this instance in ADS.</div>
- <!-- /ko -->
- </div>
- </script>
- <div class="bodyTab" id="tab_schedule" data-viewmodel="ScheduleVM">
- <!-- ko if: populatedTriggers().length === 0 -->
- <h1>No Schedule Set</h1>
- <p style="margin-bottom:48px">Create a new schedule trigger to m ake tasks run either at a given interval, or in response to an event.</p>
- <!-- /ko -->
- <div class="flexButtonGroup">
- <button class="slideIcon icons_add_item bgGreen" data-bind=" click: addNewTrigger"><span>Add new trigger</span></button>
- </div>
- <div id="scheduleTriggersContainer">
- <!-- ko foreach: populatedTriggers -->
- <div class="scheduleTriggerInfo">
- <div class="scheduleTriggerTaskDropper">
- <div class="iconButton icons_play" data-bind="click: RunNow" title="Run this trigger immediately"></div>
- <div class="iconButton icons_edit" data-bind="click: Edit, visible: IsEditable" title="Edit Trigger"></div>
- <div class="iconButton icons_remove" data-bind="clic k: Delete" title="Delete Trigger"></div>
- </div>
- <div class="scheduleTriggerDescription">
- <div class="scheduleTriggerHeaderItem">
- <div class="scheduleHeader">Trigger</div>
- <div class="scheduleTriggerDescriptionTitle" dat a-bind="text: Description"></div>
- </div>
- <div class="scheduleTriggerDescriptionVariables sche duleTriggerHeaderItem">
- <div class="scheduleHeader">Emitted Values</div>
- <div class="scheduleTriggerDescriptionVariables" >
- <!-- ko if: (Emits().length === 0) -->
- <div class="scheduleTriggerVariable">(None)< /div>
- <!-- /ko -->
- <!-- ko foreach: Emits -->
- <div class="scheduleTriggerVariable" data-bi nd="text: Name"></div>
- <!-- /ko -->
- </div>
- </div>
- </div>
- <div class="scheduleTriggerContents">
- <!-- ko foreach: Tasks -->
- <div class="scheduleTriggerTask">
- <div class="scheduleTriggerTaskDropper">
- <!-- ko if: (ParameterMappings().length > 0) -->
- <div class="iconButton icons_edit" data-bind ="click: Edit" title="Edit Task"></div>
- <!-- /ko -->
- <div class="iconButton icons_moveUp" data-bi nd="click: MoveUp" title="Move task up in list"></div>
- <div class="iconButton icons_moveDown" data- bind="click: MoveDown" title="Move down up in list"></div>
- <div class="iconButton icons_remove bgRed" d ata-bind="click: Delete" title="Delete task"></div>
- </div>
- <div class="scheduleTriggerTaskTitle" data-bind= "text: Description"></div>
- <!-- ko if: (ParameterMappings().length > 0) -->
- <table class="TwoColLine">
- <tbody data-bind="foreach: ParameterMappings ">
- <tr>
- <td data-bind="text: Param"></td>
- <td data-bind="text: Value" class="p arameterMapping"></td>
- </tr>
- </tbody>
- </table>
- <!-- /ko -->
- </div>
- <!-- /ko -->
- <!-- ko if: (Tasks().length == 0) -->
- <div style="padding:16px">
- <h2>No Tasks Added</h2>
- <p style="margin-bottom:16px">Add a new task to this trigger to perform actions once this trigger is activated, such as taking a backup.</p>
- </div>
- <!-- /ko -->
- <div class="scheduleTriggerTask">
- <button class="slideIcon icons_add_item slimButt on bgGreen" data-bind="click: AddTask" title="Add new task"><span>Add new task</ span></button>
- </div>
- </div>
- </div>
- <!-- /ko -->
- </div>
- </div>
- <div class="bodyTab" id="tab_activesessions" data-viewmodel="Session ManagementVM">
- <form id="currentSessionsForm">
- <table class="rowSelect">
- <thead>
- <tr>
- <th>Username</th>
- <th>Logged in at</th>
- <th>Last activity</th>
- <th>IP Address</th>
- <th>Device</th>
- </tr>
- </thead>
- <tbody data-bind="foreach: sessions">
- <tr data-bind="click: click, css: {selected: selecte d}">
- <td data-bind="text: Username"></td>
- <td data-bind="text: DisplayStartTime"></td>
- <td data-bind="text: DisplayLastActivity"></td>
- <td data-bind="text: Source"></td>
- <td><div data-bind="attr: {'class' : SessionType Icon()}"></div></td>
- </tr>
- </tbody>
- </table>
- </form>
- <br />
- <div class="buttonGroup" data-bind="visible: selectedSession() ! = null">
- <!--<button>End Session</button>-->
- </div>
- <h3></h3>
- </div>
- <div class="bodyTab noPaddingTab" id="tab_usermanagement" data-viewm odel="AMPUserListVM">
- <div class="sideItemList">
- <button class="slideIcon icons_add_item slimButton" data-bin d="click: createUser"><span>Create User</span></button>
- <div>
- <div data-bind="foreach: users" class="itemList">
- <div class="userManagement_user item" data-bind="cli ck: click, css:{selected: selected}">
- <img data-bind="attr:{src: gravatar}" alt="Grava tar" />
- <span data-bind="text: username"></span>
- </div>
- </div>
- </div>
- </div>
- <div class="sideItemData" style="margin-top:16px;">
- <!-- ko with: editUser -->
- <img data-bind="attr: {src: GravatarImageUri}" alt="Gravatar " style="float:left; width: 128px" />
- <div class="userInfoBlock">
- <h2 data-bind="text: Name"></h2>
- <!-- ko if: IsLDAPUser() -->
- <h3>LDAP Authenticated User</h3>
- <!-- /ko -->
- <p>Last login: <span data-bind="text: LastLoginTimestamp "></span></p>
- </div>
- <div class="sideItemDataTable">
- <div class="provisionSetting" style="grid-column: 1/span 2">
- <h4>Email Address</h4>
- <input type="email" data-bind="value: EmailAddress" />
- </div>
- <div class="provisionSetting">
- <h4>Disabled</h4>
- <p class="settingDescription">Disabled users cannot login, but retail all their data.</p>
- <label class="checkbox">
- <input type="checkbox" data-bind="checked: Disab led" />
- <span></span>
- </label>
- </div>
- <!-- ko if: !IsLDAPUser() -->
- <div class="provisionSetting">
- <h4>Password Expires</h4>
- <p class="settingDescription">If enabled, user passw ords expire after 90 days and must be changed in order to log in again.</p>
- <label class="checkbox">
- <input type="checkbox" data-bind="checked: Passw ordExpires" />
- <span></span>
- </label>
- </div>
- <div class="provisionSetting">
- <h4>Cannot Change Password</h4>
- <p class="settingDescription">Prevents this user fro m being able to change their own password, but it can still be changed by an adm inistrator. Useful for bots or service accounts.</p>
- <label class="checkbox">
- <input type="checkbox" data-bind="checked: Canno tChangePassword" />
- <span></span>
- </label>
- </div>
- <div class="provisionSetting">
- <h4>Require Password Change</h4>
- <p class="settingDescription">Mandates that the user change their password next time they log in. This flag is cleared automatically once the user has done this.</p>
- <label class="checkbox">
- <input type="checkbox" data-bind="checked: MustC hangePassword" />
- <span></span>
- </label>
- </div>
- <!-- /ko -->
- </div>
- <br />
- <button class="slideIcon icons_save" data-bind="click: saveC hanges"><span>Save Changes</span></button>
- <hr />
- <!-- ko if: !IsLDAPUser() -->
- <h3>Change Password</h3>
- <div class="sideItemDataTable">
- <div class="provisionSetting">
- <h4>New Password</h4>
- <input type="password" data-bind="textInput: Passwor d" autocomplete="new-password" />
- </div>
- <div class="provisionSetting">
- <h4>Confirm Password</h4>
- <input type="password" data-bind="value: Password2" autocomplete="new-password" />
- </div>
- <div class="provisionSetting" style="grid-column: 1/span 2">
- <h4>Password Strength</h4>
- <div class="passwordGrade" data-bind="css: passwordG radeClass, style: { width : (passwordGrade() * 28) + 'px' }"></div>
- </div>
- </div>
- <br />
- <button class="slideIcon icons_save" data-bind="click: chang ePassword"><span>Change Password</span></button>
- <hr />
- <h3>Role Membership</h3>
- <div data-bind="foreach: RoleMembership">
- <div class="treeEntry treeItem noParent">
- <div class="treeItemText">
- <div class="treeName" data-bind="click: Toggle, text: Name"></div>
- <div class="permNodeSelection" data-bind="click: Toggle, text: IsMember() == true ? '✓' : '✗', css: IsMember() ? 'granted' : 'de nied'"></div>
- </div>
- </div>
- </div>
- <button data-bind="click: editPermissions">Edit User Permiss ions</button>
- <!-- /ko -->
- <h3>Delete User</h3>
- <p>This will permemently delete this user and all associated data.</p>
- <!-- ko if: IsLDAPUser() -->
- <p>If this user logs in again over LDAP, the user will be re created. You should delete the user in your directory server before deleting it here.</p>
- <!-- /ko -->
- <button class="bgRed slideIcon icons_warning" data-bind="cli ck: deleteUser"><span>Delete User Forever</span></button>
- <!-- /ko -->
- <p> <br /></p>
- </div>
- </div>
- <div class="bodyTab" id="tab_auditlog" data-viewmodel="AuditLogVM">
- <table id="auditLogTable">
- <thead>
- <tr>
- <th>Timestamp</th>
- <th>Source</th>
- <th>User</th>
- <th>Category</th>
- <th>Message</th>
- </tr>
- </thead>
- <tbody data-bind="foreach: entries">
- <tr>
- <td data-bind="text: DisplayTime"></td>
- <td data-bind="text: Source"></td>
- <td data-bind="text: User"></td>
- <td data-bind="text: Category"></td>
- <td data-bind="text: Message"></td>
- </tr>
- </tbody>
- </table>
- <button class="bgGreen" data-bind="click:advance">More >>< /button>
- </div>
- <div class="bodyTab noPaddingTab" id="tab_rolemanagement" data-viewm odel="PermissionManagementVM">
- <div class="sideItemList">
- <button class="slideIcon icons_add_item slimButton" data-bin d="click: createRole"><span>Create Role</span></button>
- <button class="slideIcon icons_add_item slimButton" data-bin d="click: createTemplateRole, visible: canCreateTemplates"><span>Create Template Role</span></button>
- <div>
- <div data-bind="foreach: roles" class="itemList">
- <div class="roleManagement_role item" data-bind="tex t: Name, click: Click, css:{selected: selected}"></div>
- </div>
- </div>
- </div>
- <div class="sideItemData">
- <!-- ko with: currentRole -->
- <h3>Permissions for <span data-bind="text: Name"></span></h3 >
- <p data-bind="text: Description"></p>
- <!-- ko if: IsInstanceSpecific -->
- <p>This role is specific to this instance and is not visible to other instances.</p>
- <!-- /ko -->
- <!-- ko if: !IsInstanceSpecific -->
- <p>This role is shared across all instances.</p>
- <!-- /ko -->
- <!-- ko if: DisableEdits -->
- <p>This role cannot be modified.</p>
- <!-- /ko -->
- <!-- /ko -->
- <script type="text/html" id="permissionNestedTemplate">
- <div class="treeEntry treeItem" data-bind="css: {noParen t : Parent == null}">
- <div class="treeItemText">
- <div data-bind="text: (Expanded()) ? '⊟' : '⊞', click: Toggle, visible: CanExpand" class="treeExpando"></div>
- <div class="treeName" data-bind="click: Toggle"> <span data-bind=", text: DisplayName"></span></div>
- <div class="permNodeSelection" data-bind="click: Click, text: HasPermission() == true ? '✓' : '✗', css: cssClass()"></div>
- <!-- ko if: Description != null -->
- <div data-bind="text: Description" class="permNo deDescription"></div>
- <!-- /ko -->
- </div>
- <!-- ko if: Children().length > 0 -->
- <div data-bind="visible: Expanded, template: { name: 'permissionNestedTemplate', foreach: Children}" class="treeContents"></div>
- <!-- /ko -->
- </div>
- </script>
- <div data-bind="template: { name: 'permissionNestedTemplate' , foreach: permissions}" id="rolePermissionsSelector"></div>
- <hr style="margin: 16px -8px; color: #333;" />
- <!--<h3>Members of <span data-bind="text: Name"></span></h3> -->
- <!-- ko with: currentRole -->
- <!-- ko if: !IsDefault && !IsHidden() && !DisableEdits -->
- <h3>Delete Role</h3>
- <p>This will permemently delete this role and any associated data</p>
- <button class="bgRed slideIcon icons_warning" data-bind="cli ck: deleteRole"><span>Delete Role Forever</span></button>
- <!-- /ko -->
- <!-- /ko -->
- <p> <br /></p>
- </div>
- </div>
- <div class="bodyTab" id="tab_support" data-viewmodel="DiagnosticsVM" >
- <h2>Support</h2>
- <!-- ko if: branded() -->
- <a data-bind="attr: {href: brandURL}" style="float:right"><img d ata-bind="attr: {src: brandLogo, alt: brandName}" /></a>
- <p>Server provided by <a data-bind="attr: {href: brandURL}, text : brandName"></a> | <a data-bind="attr: {href: supportUrl}">Support Home</a></p>
- <button data-bind="click: createTicket, visible: showCreateTicke t">Create support ticket</button>
- <p data-bind="text: supportText()"></p>
- <!-- /ko -->
- <!-- ko if: !branded() -->
- <p>Want help fast? <a href="https://discord.gg/hg3ycc5">Join Cub eCoders on Discord!</a></p>
- <p>Otherwise, for support with AMP please visit the <a href="htt ps://support.cubecoders.com">support board</a>.</p>
- <p>Always make sure to include the information listed below.</p>
- <!-- /ko -->
- <!-- ko if: !upgradePending() -->
- <p>AMP is up-to-date.</p>
- <!-- /ko -->
- <!-- ko if: upgradePending() -->
- <p>AMP Update Available: <span data-bind="text: upgradeVersion"> </span></p>
- <!-- /ko -->
- <p>Currently running version <span data-bind="text: installedVer sion"></span></p>
- <button data-bind="click: showReleaseNotes">View Latest Release Notes</button>
- <h2>Diagnostics Data</h2>
- <table id="diagTable">
- <tbody data-bind="foreach: diaginfo">
- <tr>
- <td data-bind="text: key"></td>
- <td data-bind="text: value"></td>
- </tr>
- </tbody>
- </table>
- <!-- ko if: !branded -->
- <br />
- <a data-bind="attr: {href: reportsUrl}">View submitted error rep orts</a>
- <!-- /ko -->
- <br /><br />
- <button data-bind="click: restartAMP, visible: restartAvailable" class="slideIcon bgRed icons_restart"><span>Restart this AMP instance</span></b utton> <button data-bind="click: upgradeAMP" class="slideIcon icons_restart "><span>Upgrade this AMP instance</span></button>
- </div>
- <!-- Merlin tabs should go below here -->
- <div class="bodyTab wizardTab" id="tab_console_userinfo">
- <div class="wizardContents wizardPopup">
- <h2>User Information</h2>
- <table class="TwoColLine">
- <tr>
- <td>Name</td>
- <td id="tab_console_name"></td>
- </tr>
- <tr>
- <td>UUID</td>
- <td id="tab_console_uuid"></td>
- </tr>
- <tr>
- <td>IP Address</td>
- <td id="tab_console_ip"></td>
- </tr>
- <tr>
- <td>Join Time</td>
- <td id="tab_console_join"></td>
- </tr>
- </table>
- <br />
- <button class="bgRed slideIcon icons_remove" data-wizard="fi nish" data-wizardname="viewUserInfo"><span>Close</span></button>
- <div id="userContentsButtonsArea" class="buttonGroup flexBut tonGroup">
- </div>
- </div>
- </div>
- <div class="bodyTab wizardTab" id="tab_schedule_newTask" data-viewmo del="ScheduleVM">
- <div class="wizardContents wizardPopup">
- <!-- ko if: editing() -->
- <h2>Edit task</h2>
- <!-- /ko -->
- <!-- ko if: !editing() -->
- <h2>Add a new task</h2>
- <p>What task would you like to perform?</p>
- <select data-bind="options: availableMethods, optionsText: ' Description', value: selectedTask"></select>
- <!-- /ko -->
- <h4>Consumed Values</h4>
- <!-- ko with: editing() ? editingTask : selectedTask -->
- <!-- ko if: Consumes().length == 0 -->
- <p>This task consumes no values.</p>
- <!-- /ko -->
- <!-- ko if: Consumes().length > 0 -->
- <div>
- <table class="TwoColLine">
- <thead>
- <tr>
- <th>Name</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody data-bind="foreach: Consumes">
- <tr>
- <td data-bind="text: Param"></td>
- <td>
- <!-- ko if: InputType == "Enum" -->
- <select data-bind="options: enumValues, value: Value, optionsText: 'name', optionsValue: 'value'"></select>
- <!-- /ko -->
- <!-- ko if: (InputType == "text" || Inpu tType == "number") -->
- <input class="scheduleTriggerContents" d ata-bind="attr: {'type': InputType}, value: Value, valueUpdate: 'input', click: $root.setSelected($element)" />
- <!-- /ko -->
- <!-- ko if: ValueType == "Uri" -->
- <input class="scheduleTriggerContents" t ype="url" data-bind="value: Value, valueUpdate: 'input', click: $root.setSelecte d($element)" />
- <!-- /ko -->
- <!-- ko if: InputType === "Boolean" -->
- <label class="checkbox">
- <input type="checkbox" data-bind="ch ecked: Value" />
- <span></span>
- </label>
- <!-- /ko -->
- </td>
- </tr>
- </tbody>
- </table>
- <h4>Available Variables</h4>
- <!-- ko with: $root.selectedTrigger() -->
- <!-- ko if: Emits().length == 0 -->
- <p>The selected trigger emits no values.</p>
- <!-- /ko -->
- <!-- ko if: Emits().length > 0 -->
- <div class="emitsList" data-bind="foreach: Emits">
- <div class="button emitValue" data-bind="text: Name, click: () => {$root.insertParam(Name());}"></div>
- </div>
- <p>Click on a parameter to insert it into your value.</p >
- <!-- /ko -->
- <!-- /ko -->
- </div>
- <!-- /ko -->
- <!-- /ko -->
- <br />
- <button class="bgRed slideIcon icons_remove" data-wizard="ca ncel"><span>Cancel</span></button>
- <button class="bgGreen slideIcon icons_go" data-bind="click: addEditTask"><span data-bind="text: editing() ? 'Edit Task' : 'Add Task'"></spa n></button>
- </div>
- </div>
- <div class="bodyTab wizardTab" id="tab_schedule_newTrigger" data-vie wmodel="ScheduleVM">
- <div class="wizardContents wizardPopup">
- <!-- Merlin -->
- <!-- ko if: editing() -->
- <h2>Edit trigger</h2>
- <!-- /ko -->
- <!-- ko if: !editing() -->
- <h2>Add a new trigger</h2>
- <!-- /ko -->
- <div data-bind="visible: newTriggerType() == -1">
- <p>What type of trigger would you like to add?</p>
- <label class="radioButtons">
- <input type="radio" name="NewTriggerType" value="0" data-bind="checked: newTriggerType" />
- <span>
- <strong>Event Trigger</strong><br />For respondi ng to events raised by in-application actions or by other AMP components
- <img src="Images/Glyphicons/glyphicons-basic-556 -flash@3x.png" alt="Lightning bolt symbol representing an 'event'" />
- </span>
- </label>
- <label class="radioButtons">
- <input type="radio" name="NewTriggerType" value="15" data-bind="checked: newTriggerType" />
- <span>
- <strong>Simple Time Interval</strong><br />Creat e a trigger that runs at a fixed interval (daily, weekly, etc)
- <img src="Images/Glyphicons/glyphicons-basic-60- timer@3x.png" alt="A clock icon representing a regular interval" />
- </span>
- </label>
- <label class="radioButtons">
- <input type="radio" name="NewTriggerType" value="10" data-bind="checked: newTriggerType" />
- <span>
- <strong>Advanced Time Interval</strong><br />Cre ate a trigger that runs at a more variable interval (E.g. only on weekdays but n ot weekends)
- <img src="Images/Glyphicons/AdvSchedule.png" alt ="A calendar overlaid with a clock representing a variable interval" />
- </span>
- </label>
- <!--
- <label class="radioButtons">
- <input type="radio" name="NewTriggerType" value="20" disabled />
- <span><strong>Fixed Time</strong><br />One-shot trig gers that occur at a specific time, and are then removed</span>
- </label>
- -->
- </div>
- <div data-bind="visible: newTriggerType() == 0">
- <h3>Event Trigger</h3>
- <select data-bind="options: availableTriggers, optionsTe xt: 'Description', value: newTriggerEvent"></select>
- </div>
- <div data-bind="visible: newTriggerType() == 10" class="sche duleAdvSegments">
- <h3>Advanced Time Interval Trigger</h3>
- <h4>Months</h4>
- <div class="twelveSegmentContainer" data-bind="foreach: newTriggerMonths">
- <div class="timeSegment" data-bind="text: text, clic k: toggle, css: {selected: selected}"></div>
- </div>
- <h4>Days</h4>
- <div class="sevenSegmentContainer" data-bind="foreach: n ewTriggerDays">
- <div class="timeSegment" data-bind="text: text, clic k: toggle, css: {selected: selected}"></div>
- </div>
- <h4>Hours</h4>
- <div class="hoursSegmentContainer" data-bind="foreach: n ewTriggerHours">
- <div class="timeSegment" data-bind="text: text, clic k: toggle, css: {selected: selected}"></div>
- </div>
- <h4>Minutes</h4>
- <div class="minutesSegmentContainer" data-bind="foreach: newTriggerMinutes">
- <div class="timeSegment" data-bind="text: text, clic k: toggle, css: {selected: selected}"></div>
- </div>
- <div class="segmentKeyContainer" style="float: right; po sition: unset;">
- <div class="timeSegment selected" style="float:right ;">Selected</div>
- <div class="timeSegment" style="float:right;">Not Se lected</div>
- </div>
- <div style="margin-top:8px">
- <h4>What do you want to call this trigger?</h4>
- <input data-bind="value: newTriggerName" type="text" required="required" />
- </div>
- </div>
- <div data-bind="visible: newTriggerType() == 15">
- <h3>Simple Time Interval Trigger</h3>
- <select data-bind="value: newSimpleTriggerType">
- <option value="0">Once per week</option>
- <option value="10">Once per day</option>
- <option value="20">Every X hours</option>
- <option value="30">Every X minutes</option>
- <option value="40">Once per month</option>
- <option value="50">On the (nth) (day) of each month< /option>
- </select>
- <br /><br />
- <span data-bind="visible: newSimpleTriggerType() != 10 & & newSimpleTriggerType() != 40 && newSimpleTriggerType() != 50">Every</span>
- <span data-bind="visible: newSimpleTriggerType() == 40 | | newSimpleTriggerType() == 50">On the</span>
- <select data-bind="visible: newSimpleTriggerType() == 50 , value: simpleNthDayOf">
- <option value="0">first</option>
- <option value="1">second</option>
- <option value="2">third</option>
- <option value="3">fourth</option>
- <option value="4">fifth</option>
- </select>
- <select data-bind="visible: newSimpleTriggerType() == 0 || newSimpleTriggerType() == 50, value: simpleWeekday">
- <option value="0">Monday</option>
- <option value="1">Tuesday</option>
- <option value="2">Wednesday</option>
- <option value="3">Thursday</option>
- <option value="4">Friday</option>
- <option value="5">Saturday</option>
- <option value="6">Sunday</option>
- </select>
- <select data-bind="visible: newSimpleTriggerType() == 20 , value: simpleIntervalHours">
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="6">6</option>
- <option value="8">8</option>
- <option value="12">12</option>
- </select>
- <select data-bind="visible: newSimpleTriggerType() == 30 , value: simpleIntervalMinutes">
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5</option>
- <option value="6">6</option>
- <option value="10">10</option>
- <option value="12">12</option>
- <option value="15">15</option>
- <option value="20">20</option>
- <option value="30">30</option>
- </select>
- <select data-bind="visible: newSimpleTriggerType() == 40 , value: simpleIntervalDayOfMonth" id="scheduleSimpleDayOfMonth">
- <option value="1">1st</option>
- <option value="2">2nd</option>
- <option value="3">3rd</option>
- <option value="4">4th</option>
- <option value="5">5th</option>
- <option value="6">6th</option>
- <option value="7">7th</option>
- <option value="8">8th</option>
- <option value="9">9th</option>
- <option value="10">10th</option>
- <option value="11">11th</option>
- <option value="12">12th</option>
- <option value="13">13th</option>
- <option value="14">14th</option>
- <option value="15">15th</option>
- <option value="16">16th</option>
- <option value="17">17th</option>
- <option value="18">18th</option>
- <option value="19">19th</option>
- <option value="20">20th</option>
- <option value="21">21st</option>
- <option value="22">22nd</option>
- <option value="23">23rd</option>
- <option value="24">24th</option>
- <option value="25">25th</option>
- <option value="26">26th</option>
- <option value="27">27th</option>
- <option value="28">28th</option>
- <option value="29">29th</option>
- <option value="30">30th</option>
- <option value="31">31st</option>
- </select>
- <span data-bind="visible: newSimpleTriggerType() == 30"> Minutes </span>
- <span data-bind="visible: newSimpleTriggerType() == 20"> Hours </span>
- <span data-bind="visible: newSimpleTriggerType() == 0 || newSimpleTriggerType() == 10"> at </span>
- <span data-bind="visible: newSimpleTriggerType() == 40 | | newSimpleTriggerType() == 50"> of each month at </span>
- <span data-bind="visible: newSimpleTriggerType() == 0 || newSimpleTriggerType() == 10 || newSimpleTriggerType() == 40 || newSimpleTrigge rType() == 50">
- <select data-bind="value: simpleHours">
- <option value="0">00</option>
- <option value="1">01</option>
- <option value="2">02</option>
- <option value="3">03</option>
- <option value="4">04</option>
- <option value="5">05</option>
- <option value="6">06</option>
- <option value="7">07</option>
- <option value="8">08</option>
- <option value="9">09</option>
- <option value="10">10</option>
- <option value="11">11</option>
- <option value="12">12</option>
- <option value="13">13</option>
- <option value="14">14</option>
- <option value="15">15</option>
- <option value="16">16</option>
- <option value="17">17</option>
- <option value="18">18</option>
- <option value="19">19</option>
- <option value="20">20</option>
- <option value="21">21</option>
- <option value="22">22</option>
- <option value="23">23</option>
- </select>
- <span>:</span>
- <select data-bind="value: simpleMinutes">
- <option value="0">00</option>
- <option value="1">01</option>
- <option value="2">02</option>
- <option value="3">03</option>
- <option value="4">04</option>
- <option value="5">05</option>
- <option value="6">06</option>
- <option value="7">07</option>
- <option value="8">08</option>
- <option value="9">09</option>
- <option value="10">10</option>
- <option value="11">11</option>
- <option value="12">12</option>
- <option value="13">13</option>
- <option value="14">14</option>
- <option value="15">15</option>
- <option value="16">16</option>
- <option value="17">17</option>
- <option value="18">18</option>
- <option value="19">19</option>
- <option value="20">20</option>
- <option value="21">21</option>
- <option value="22">22</option>
- <option value="23">23</option>
- <option value="24">24</option>
- <option value="25">25</option>
- <option value="26">26</option>
- <option value="27">27</option>
- <option value="28">28</option>
- <option value="29">29</option>
- <option value="30">30</option>
- <option value="31">31</option>
- <option value="32">32</option>
- <option value="33">33</option>
- <option value="34">34</option>
- <option value="35">35</option>
- <option value="36">36</option>
- <option value="37">37</option>
- <option value="38">38</option>
- <option value="39">39</option>
- <option value="40">40</option>
- <option value="41">41</option>
- <option value="42">42</option>
- <option value="43">43</option>
- <option value="44">44</option>
- <option value="45">45</option>
- <option value="46">46</option>
- <option value="47">47</option>
- <option value="48">48</option>
- <option value="49">49</option>
- <option value="50">50</option>
- <option value="51">51</option>
- <option value="52">52</option>
- <option value="53">53</option>
- <option value="54">54</option>
- <option value="55">55</option>
- <option value="56">56</option>
- <option value="57">57</option>
- <option value="58">58</option>
- <option value="59">59</option>
- </select>
- </span>
- <p data-bind="visible: newSimpleTriggerType() == 40 && s impleIntervalDayOfMonth() > 28" class="inlineWarning">This trigger will not fire on months that have fewer than <span style="font-weight:bold" data-bind="text: simpleIntervalDayOfMonth()"></span> days.</p>
- </div>
- <!-- ko if: newTriggerType() != -1 -->
- <h4>Emitted Values</h4>
- <!-- /ko -->
- <!-- ko if: newTriggerType() == 0 -->
- <!-- ko with: newTriggerEvent -->
- <!-- ko if: Emits().length > 0 -->
- <ul id="triggerEmittedValues" data-bind="foreach: Emits">
- <li data-bind="text: Name"></li>
- </ul>
- <!-- /ko -->
- <!-- ko if: Emits().length == 0 -->
- <p>This trigger emits no values.</p>
- <!-- /ko -->
- <!-- /ko -->
- <!-- /ko -->
- <ul data-bind="visible: (newTriggerType() == 10 || newTrigge rType() == 15 || newTriggerType() == 20 || newTriggerType() == 40)">
- <li>Time</li>
- </ul>
- <br />
- <button class="bgRed slideIcon icons_remove" data-wizard="ca ncel"><span>Cancel</span></button>
- <!-- ko if: newTriggerType() != -1 -->
- <!-- ko if: !editing() -->
- <button data-bind="click: backButton"><span>Back</span></but ton>
- <!-- /ko -->
- <button class="bgGreen slideIcon icons_add_item" data-bind=" click: addTrigger"><span data-bind="text: (editing()) ? 'Edit Trigger' : 'Add Tr igger'"></span></button>
- <!-- /ko -->
- </div>
- </div>
- <div class="bodyTab wizardTab" id="tab_mobileLogin">
- <div class="wizardContents">
- <h2>Mobile Login</h2>
- <img id="mobileLoginQR" alt="A single-use QR code. Scan this with a mobile device." />
- <p>Scan this QR code on your mobile device to log in as the current user.</p>
- <p>This is a single-use code that cannot be used again once scanned. It will remain valid for 30 seconds.</p>
- <br />
- <button class="" data-wizard="finish" data-wizardname="mobil eLogin"><span>Finish</span></button>
- </div>
- </div>
- <div class="bodyTab wizardTab" id="tab_changepassword">
- <div class="wizardContents">
- <h2>Change Password</h2>
- <h3 id="passwdChangeRequiredText">A password change is requi red to login with this user</h3>
- <form id="changePasswordForm">
- <table class="twoColLine noZebra">
- <tr>
- <td>Username</td>
- <td id="changepw_showusername" data-formfield="u sername"></td>
- </tr>
- <tr>
- <td>Old Password</td>
- <td><input type="password" name="oldpassword" re quired="required" /></td>
- </tr>
- <tr>
- <td>New Password</td>
- <td><input type="password" id="changepw_newpwd" name="newpassword" required="required" /></td>
- </tr>
- <tr>
- <td>Confirm Password</td>
- <td><input type="password" name="confirmpassword " required="required" /></td>
- </tr>
- <tr id="showChangePW2FA">
- <td>2FA Code (If enabled)</td>
- <td><input type="number" name="changepw2fa" /></ td>
- </tr>
- <tr>
- <td>Password Strength</td>
- <td><div id="passwordGrade" class="passwordGrade "></div></td>
- </tr>
- </table>
- <br />
- <button class="bgRed slideIcon icons_remove" data-wizard ="cancel" data-wizardname="tab_changepassword" type="button"><span>Cancel</span> </button>
- <button class="bgGreen slideIcon icons_go" data-wizard=" finish" data-wizardname="tab_changepassword" type="submit"><span>Change Password </span></button>
- </form>
- </div>
- </div>
- </div>
- </div>
- <script type="text/html" id="notificationTemplate">
- <div class="notification" data-bind="css: { failed: State() == 3 }">
- <div class="notificationTitle">
- <span data-bind="text: Name"></span>
- <button data-bind="click: Cancel, visible: IsCancellable() && St ate() == 0">Cancel</button>
- <button class="bgRed" data-bind="click: Dismiss, visible: State( ) == 3">Dismiss</button>
- </div>
- <!-- ko if: Actions().length == 0 -->
- <div class="notificationDescription" data-bind="text: Description">< /div>
- <div class="notificationProgessContainer">
- <div class="notificationProgressBar" data-bind="css: { progUnkno wn: IsIndeterminate }, style: { width : IsIndeterminate() ? '20%' : ProgressPerc ent() + '%' }">
- <div class="notificationSpeed" data-bind="text: Speed"></div >
- </div>
- </div>
- <!-- /ko -->
- <!-- ko if: Actions().length > 0 -->
- <div class="notificationDescription" style="margin: 16px 0px" data-b ind="text: Description"></div>
- <!-- /ko -->
- <!-- ko foreach: Actions -->
- <button class="slimButton" data-bind="click: click, text: text, css: cssClass"></button>
- <!-- /ko -->
- </div>
- </script>
- <div id="notificationContainer" data-bind="fadeVisible: Visible">
- <div class="notificationBanner">
- <span>Notifications</span> (<span class="notificationCount" data-bin d="text: Notifications().length"></span>)
- </div>
- <!-- ko template: {name: 'notificationTemplate', foreach: Notifications, beforeRemove: BeforeRemove} -->
- <!-- /ko -->
- </div>
- <div id="sideMenuContainer">
- <div id="sideMenu">
- <div class="menuTitle">Main Menu</div>
- <script type="text/html" id="menuSubmenu">
- <!-- ko if: children().length > 0 && visible() -->
- <div class="multiMenuContainer">
- <a data-bind="click:click, css:{small: small}"><img data-bin d="attr:{src: image}" /><span data-bind="text:title"></span></a>
- <div class="subMenuWell" data-bind="css: {appear: expanded}" >
- <div class="menuTitle" data-bind="text:title"></div>
- <div class="navBackContainer">
- <a data-bind="click:click" class="menuNav"><span>Bac k</span></a>
- </div>
- <div data-bind="template: { name: 'menuSubmenu', foreach : children}">
- </div>
- </div>
- </div>
- <!-- /ko -->
- <!-- ko if: children().length == 0 && visible() -->
- <a data-bind="attr:{href: tab, 'data-permission': requiredPermis sion}, click:click, css:{selected: selected, small: small}"><img data-bind="attr :{src: image}" /><span data-bind="text:title"></span></a>
- <!-- /ko -->
- </script>
- <div id="sideMenuPresenter" data-bind="template: {name: 'menuSubmenu ', foreach: sideMenuData}">
- </div>
- </div>
- <div id="bgtext" data-viewmodel="DiagnosticsVM">
- <span id="versionHeadline" data-bind="visible: !upgradePending()">AM P Release "Halimede"</span>
- <div class="tiny" data-bind="visible: !upgradePending(), text: versi onTitle()"></div>
- <div data-bind="visible: upgradePending()" id="updateAvailable">
- <span>AMP Update Available: <span data-bind="text: upgradeVersio n"></span></span>
- <button data-bind="click: showReleaseNotes">Release Notes</butto n>
- <button data-bind="click: upgradeAMP">Update Now</button>
- </div>
- </div>
- </div>
- <!-- Scripts -->
- <!--Third Party-->
- <script type="text/javascript" src="Scripts/jquery-3.6.0.min.js" charset="ut f-8"></script>
- <script type="text/javascript" src="Scripts/swiped-events.min.js"></script>
- <script type="text/javascript" src="Scripts/jquery.flot.min.js" charset="utf -8"></script>
- <script type="text/javascript" src="Scripts/jquery.flot.resize.min.js" chars et="utf-8"></script>
- <script type="text/javascript" src="Scripts/knockout-3.5.1.js" charset="utf- 8"></script>
- <script type="text/javascript" src="Scripts/knockout.quickmap.js" charset="u tf-8"></script>
- <script type="text/javascript" src="Scripts/FileSaver.js" charset="utf-8"></ script>
- <!--End Third Party-->
- <!--Internal-->
- <script type="text/javascript" src="Scripts/FeatureTest.js" charset="utf-8"> </script>
- <script type="text/javascript" src="Scripts/Common.js?v=2.4.0.4" charset="ut f-8"></script>
- <script type="text/javascript" src="Scripts/API.js?v=2.4.0.4" charset="utf-8 "></script>
- <script type="text/javascript" src="Scripts/Locale.js?v=2.4.0.4" charset="ut f-8"></script>
- <script type="text/javascript" src="Scripts/UI.js?v=2.4.0.4" charset="utf-8" ></script>
- <script type="text/javascript" src="Scripts/PluginHandler.js?v=2.4.0.4" char set="utf-8"></script>
- <script async defer type="text/javascript" src="Scripts/AMP.js?v=2.4.0.4" ch arset="utf-8"></script>
- <!--End Internal-->
- <!--<script type="text/javascript" src="Scripts/AMPBundle.js"></script>-->
- </body>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement