|
@@ -39,7 +39,6 @@
|
|
}
|
|
}
|
|
|
|
|
|
.upstreamEntry{
|
|
.upstreamEntry{
|
|
- cursor: pointer;
|
|
|
|
border-radius: 0.4em !important;
|
|
border-radius: 0.4em !important;
|
|
border: 1px solid rgb(233, 233, 233) !important;
|
|
border: 1px solid rgb(233, 233, 233) !important;
|
|
}
|
|
}
|
|
@@ -122,7 +121,6 @@
|
|
<button class="ui basic button" style="float: right;" onclick="closeThisWrapper();">Close</button>
|
|
<button class="ui basic button" style="float: right;" onclick="closeThisWrapper();">Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
<br><br><br><br>
|
|
<br><br><br><br>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
@@ -229,7 +227,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
<a href="${url}" target="_blank" class="upstreamLink">${upstream.OriginIpOrDomain} ${tlsIcon}</a>
|
|
<a href="${url}" target="_blank" class="upstreamLink">${upstream.OriginIpOrDomain} ${tlsIcon}</a>
|
|
- <div class="sub header">${isActive?"Active":"Inactive"} | Weight: ${upstream.Weight}x</div>
|
|
|
|
|
|
+ <div class="sub header">${isActive?(upstream.Weight==0?"Fallback Only":"Active"):"Inactive"} | Weight: ${upstream.Weight}x </div>
|
|
</div>
|
|
</div>
|
|
</h4>
|
|
</h4>
|
|
<div class="advanceOptions" style="display:none;">
|
|
<div class="advanceOptions" style="display:none;">
|
|
@@ -259,8 +257,8 @@
|
|
</div>
|
|
</div>
|
|
<div class="upstreamActions">
|
|
<div class="upstreamActions">
|
|
<!-- Change Priority -->
|
|
<!-- Change Priority -->
|
|
- <button class="ui basic circular icon button highPriorityButton" title="Increase Weight"><i class="ui arrow up icon"></i></button>
|
|
|
|
- <button class="ui basic circular icon button lowPriorityButton ${downArrowClass}" title="Reduce Weight"><i class="ui arrow down icon"></i></button>
|
|
|
|
|
|
+ <button class="ui basic circular icon button highPriorityButton" title="Increase Weight" onclick="increaseUpstreamWeight('${domUID}');"><i class="ui arrow up icon"></i></button>
|
|
|
|
+ <button class="ui basic circular icon button lowPriorityButton ${downArrowClass}" title="Reduce Weight" onclick="decreaseUpstreamWeight('${domUID}');"><i class="ui arrow down icon"></i></button>
|
|
<button class="ui basic circular icon editbtn button" onclick="handleUpstreamOriginEdit('${domUID}');" title="Edit Upstream Destination"><i class="ui grey edit icon"></i></button>
|
|
<button class="ui basic circular icon editbtn button" onclick="handleUpstreamOriginEdit('${domUID}');" title="Edit Upstream Destination"><i class="ui grey edit icon"></i></button>
|
|
<button style="display:none;" class="ui basic circular icon trashbtn button" onclick="removeUpstream('${domUID}');" title="Remove Upstream"><i class="ui red trash icon"></i></button>
|
|
<button style="display:none;" class="ui basic circular icon trashbtn button" onclick="removeUpstream('${domUID}');" title="Remove Upstream"><i class="ui red trash icon"></i></button>
|
|
<button style="display:none;" class="ui basic circular icon savebtn button" onclick="saveUpstreamUpdate('${domUID}');" title="Save Changes"><i class="ui green save icon"></i></button>
|
|
<button style="display:none;" class="ui basic circular icon savebtn button" onclick="saveUpstreamUpdate('${domUID}');" title="Save Changes"><i class="ui green save icon"></i></button>
|
|
@@ -391,8 +389,7 @@
|
|
//Edit the upstream origin of this upstream entry
|
|
//Edit the upstream origin of this upstream entry
|
|
function handleUpstreamOriginEdit(upstreamDomID){
|
|
function handleUpstreamOriginEdit(upstreamDomID){
|
|
let targetDOM = $(`.upstreamEntry[data-domid=${upstreamDomID}]`);
|
|
let targetDOM = $(`.upstreamEntry[data-domid=${upstreamDomID}]`);
|
|
- let originalSettings = $(targetDOM).attr("data-payload");
|
|
|
|
- originalSettings = JSON.parse(decodeURIComponent(originalSettings));
|
|
|
|
|
|
+ let originalSettings = getUpstreamSettingsFromDomID(upstreamDomID);
|
|
let originIP = originalSettings.OriginIpOrDomain;
|
|
let originIP = originalSettings.OriginIpOrDomain;
|
|
|
|
|
|
//Change the UI to edit mode
|
|
//Change the UI to edit mode
|
|
@@ -437,6 +434,51 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ function getUpstreamSettingsFromDomID(domid){
|
|
|
|
+ let targetDOM = $(`.upstreamEntry[data-domid=${domid}]`);
|
|
|
|
+ if (targetDOM.length == 0){
|
|
|
|
+ return undefined;
|
|
|
|
+ }
|
|
|
|
+ let upstreamSettings = $(targetDOM).attr("data-payload");
|
|
|
|
+ upstreamSettings = JSON.parse(decodeURIComponent(upstreamSettings));
|
|
|
|
+ return upstreamSettings;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function increaseUpstreamWeight(domid){
|
|
|
|
+ let upstreamSetting = getUpstreamSettingsFromDomID(domid);
|
|
|
|
+ let originIP = upstreamSetting.OriginIpOrDomain;
|
|
|
|
+ let currentWeight = upstreamSetting.Weight;
|
|
|
|
+ setUpstreamWeight(originIP, currentWeight+1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function decreaseUpstreamWeight(domid){
|
|
|
|
+ let upstreamSetting = getUpstreamSettingsFromDomID(domid);
|
|
|
|
+ let originIP = upstreamSetting.OriginIpOrDomain;
|
|
|
|
+ let currentWeight = upstreamSetting.Weight;
|
|
|
|
+ setUpstreamWeight(originIP, currentWeight-1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //Set a weight of a upstream
|
|
|
|
+ function setUpstreamWeight(originIP, newWeight){
|
|
|
|
+ $.ajax({
|
|
|
|
+ url: "/api/proxy/upstream/setPriority",
|
|
|
|
+ method: "POST",
|
|
|
|
+ data: {
|
|
|
|
+ ep: editingEndpoint.ep,
|
|
|
|
+ origin: originIP,
|
|
|
|
+ weight: newWeight,
|
|
|
|
+ },
|
|
|
|
+ success: function(data){
|
|
|
|
+ if (data.error != undefined){
|
|
|
|
+ parent.msgbox(data.error, false);
|
|
|
|
+ }else{
|
|
|
|
+ parent.msgbox("Upstream Weight Updated");
|
|
|
|
+ initOriginList();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
//Handle removal of an upstream
|
|
//Handle removal of an upstream
|
|
function removeUpstream(domid){
|
|
function removeUpstream(domid){
|
|
let targetDOM = $(`.upstreamEntry[data-domid=${domid}]`);
|
|
let targetDOM = $(`.upstreamEntry[data-domid=${domid}]`);
|