mirror of
https://github.com/cloudflare/redoctober.git
synced 2026-09-11 10:36:09 +00:00
Make red october have slices of labels, and a link generator
This commit is contained in:
+69
-9
@@ -330,8 +330,8 @@
|
||||
<input type="password" name="Password" class="form-control" id="order-user-pass" placeholder="Password" required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="order-label">Label</label>
|
||||
<input type="text" name="Label" class="form-control" id="order-user-label" placeholder="Label" required />
|
||||
<label for="order-label">Labels</label>
|
||||
<input type="text" name="Labels" class="form-control" id="order-user-label" placeholder="Labels" required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="order-duration">Duration</label>
|
||||
@@ -425,6 +425,44 @@
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row">
|
||||
<div id="orderscancel" class="col-md-6">
|
||||
<h3>Order Link</h3>
|
||||
|
||||
<form id="orderlink" class="ro-orderlink" role="form" action="#" method="post">
|
||||
<div style="overflow-wrap: break-word;" class="feedback orderlink-feedback"></div>
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label for="orderlink-delegator">Delegator</label>
|
||||
<input type="text" name="Name" class="form-control" id="orderlink-delegator" placeholder="User name" required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="orderlink-labels">Labels</label>
|
||||
<input type="text" name="labels" class="form-control" id="orderlink-labels" placeholder="Labels" required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="orderlink-duration">Duration</label>
|
||||
<input type="text" name="duration" class="form-control" id="orderlink-duration" placeholder="1h 5m" required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="orderlink-uses">Uses</label>
|
||||
<input type="text" name="uses" class="form-control" id="orderlink-uses" placeholder="5" required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="orderlink-ordernum">OrderNum</label>
|
||||
<input type="text" name="ordernum" class="form-control" id="orderlink-ordernum" placeholder="d34db33f..." required />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="orderlink-delegatefor">Delegate For</label>
|
||||
<input type="text" name="delegatefor" class="form-control" id="orderlink-delegatefor" placeholder="e.g. Alice, Bob" required />
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Create Link</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
@@ -653,6 +691,11 @@
|
||||
evt.preventDefault();
|
||||
var $form = $(evt.currentTarget),
|
||||
data = serialize($form);
|
||||
data.Labels = data.Labels.split(',');
|
||||
for(var i=0, l=data.Labels.length; i<l; i++){
|
||||
data.Labels[i] = data.Labels[i].trim();
|
||||
if (data.Labels[i] == "") { data.Labels.splice(i, 1); }
|
||||
}
|
||||
|
||||
submit( $form, {
|
||||
data : data,
|
||||
@@ -668,23 +711,25 @@
|
||||
evt.preventDefault();
|
||||
var $form = $(evt.currentTarget),
|
||||
data = serialize($form);
|
||||
|
||||
alert(1);
|
||||
submit( $form, {
|
||||
data : data,
|
||||
success : function(d){
|
||||
d = window.atob(d.Response);
|
||||
try {
|
||||
var respData = JSON.parse(d);
|
||||
var msgText = ""
|
||||
alert(msgText);
|
||||
var msgText = "";
|
||||
for (var jj in respData) {
|
||||
if (!jj || jj == "Admins")
|
||||
if (!jj)
|
||||
continue;
|
||||
if (!respData.hasOwnProperty(jj)) {
|
||||
continue;
|
||||
}
|
||||
alert(msgText);
|
||||
msgText += "<p>"+htmlspecialchars(jj)+": "+htmlspecialchars(respData[jj])+"</p>";
|
||||
if (typeof(respData[jj]) == "object") {
|
||||
msgText += "<p>"+htmlspecialchars(jj)+": "+htmlspecialchars(JSON.stringify(respData[jj]))+"</p>";
|
||||
} else {
|
||||
msgText += "<p>"+htmlspecialchars(jj)+": "+htmlspecialchars(respData[jj])+"</p>";
|
||||
}
|
||||
}
|
||||
$form.find('.feedback').empty().append(makeAlert({ type: 'success', message: msgText }));
|
||||
} catch (e) {
|
||||
@@ -730,6 +775,10 @@
|
||||
}
|
||||
});
|
||||
});
|
||||
$('body').on('submit', 'form#orderlink', function(evt){
|
||||
evt.preventDefault();
|
||||
createLink();
|
||||
});
|
||||
|
||||
// Init from query string if possible.
|
||||
var queryParams = document.location.search;
|
||||
@@ -767,9 +816,20 @@
|
||||
break;
|
||||
}
|
||||
if (setValue) {
|
||||
setValue.val(value);
|
||||
setValue.val(decodeURIComponent(value));
|
||||
}
|
||||
}
|
||||
function createLink() {
|
||||
var delegator = decodeURIComponent(document.getElementById("orderlink-delegator").value);
|
||||
var delegatee = decodeURIComponent(document.getElementById("orderlink-delegatefor").value);
|
||||
var duration = decodeURIComponent(document.getElementById("orderlink-duration").value);
|
||||
var orderNum = decodeURIComponent(document.getElementById("orderlink-ordernum").value);
|
||||
var labels = decodeURIComponent(document.getElementById("orderlink-labels").value);
|
||||
var uses = decodeURIComponent(document.getElementById("orderlink-uses").value);
|
||||
|
||||
var link = "https://" + document.location.host + "?delegator="+ delegator + "&delegatee="+ delegatee + "&label=" + labels + "&ordernum=" + orderNum + "&uses=" + uses + "&duration="+ duration;
|
||||
$('.orderlink-feedback').empty().append(makeAlert({ type: 'success', message: '<p>'+htmlspecialchars(link)+'</p>' }) );
|
||||
}
|
||||
function htmlspecialchars(s) {
|
||||
if (!isNaN(s)) {
|
||||
return s;
|
||||
|
||||
Reference in New Issue
Block a user