|
|
@@ -36,6 +36,35 @@ function update_message(ui_id, msg_type, msg_text) {
|
|
|
ele.innerHTML = msg_text;
|
|
|
}
|
|
|
|
|
|
+function update_pass_radio_button(page, pass_choice) {
|
|
|
+ var _rid = ["pass_none", "pass_nride", "pass_nday", "pass_other"];
|
|
|
+
|
|
|
+ for (var ii=0; ii<_rid.length; ii++) {
|
|
|
+ var ele = document.getElementById("ui." + page + "." + _rid[ii]);
|
|
|
+ ele.checked = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (pass_choice === "none") {
|
|
|
+ var ele = document.getElementById("ui." + page + ".pass_none");
|
|
|
+ ele.checked = true;
|
|
|
+ }
|
|
|
+ else if (pass_choice === "nride") {
|
|
|
+ var ele = document.getElementById("ui." + page + ".pass_nride");
|
|
|
+ ele.checked = true;
|
|
|
+ }
|
|
|
+ else if (pass_choice === "nday") {
|
|
|
+ var ele = document.getElementById("ui." + page + ".pass_nday");
|
|
|
+ ele.checked = true;
|
|
|
+ }
|
|
|
+ else if (pass_choice === "other") {
|
|
|
+ var ele = document.getElementById("ui." + page + ".pass_other");
|
|
|
+ ele.checked = true;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
function api_resp(xhr,extra) {
|
|
|
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
|
if (xhr.status === 200) {
|
|
|
@@ -174,6 +203,18 @@ function api_resp(xhr,extra) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ else if (extra["ui_function"] === "add_card_block.add") {
|
|
|
+
|
|
|
+ if (dat["result"] === "success") {
|
|
|
+ update_message("ui.add_card_block.message", "success", "loaded");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ update_message("ui.add_card_block.message", "error", dat.api_comment);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
else if (extra["ui_function"] === "group") {
|
|
|
}
|
|
|
|
|
|
@@ -231,6 +272,14 @@ function _get_select(fid) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+function _get_select_id(fid) {
|
|
|
+ var ele = document.getElementById(fid);
|
|
|
+ if (ele) {
|
|
|
+ return ele.options[ele.selectedIndex].id;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+}
|
|
|
+
|
|
|
function _date_only(s) {
|
|
|
if (!s) { return s; }
|
|
|
if (s.length > 0) {
|
|
|
@@ -524,6 +573,115 @@ function manage_user_find_fill(data) {
|
|
|
window.history.replaceState({}, document.title, "/manage_user");
|
|
|
}
|
|
|
|
|
|
+// --------------------------------------
|
|
|
+// --------------------------------------
|
|
|
+// --------------------------------------
|
|
|
+// --------------------------------------
|
|
|
+// --------------------------------------
|
|
|
+
|
|
|
+function add_card_block() {
|
|
|
+ var pass = [ "none", "nride", "nday", "other" ];
|
|
|
+
|
|
|
+ var mag_token = _get_input_field("ui.add_card_block.mag_token");
|
|
|
+ var rfid_pfx = _get_input_field("ui.add_card_block.rfid_prefix");
|
|
|
+ var rfid_val = _get_input_field("ui.add_card_block.rfid_value");
|
|
|
+ var group_id = _get_select_id("ui.add_card_block.group");
|
|
|
+ var count = _get_input_field("ui.add_card_block.count")
|
|
|
+
|
|
|
+ var rfid_token = "";
|
|
|
+ if (rfid_pfx && (rfid_pfx.length > 0) && rfid_val && (rfid_val.length > 0)) {
|
|
|
+ rfid_token = "26:" + rfid_pfx + ":" + rfid_val;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((mag_token.length==0) && (rfid_token.length==0)) {
|
|
|
+ update_message("ui.add_card_block.message", "error", "Please provide Magstripe or RFID");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (count == "") {
|
|
|
+ update_message("ui.add_card_block.message", "error", "Count must be positive");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ update_message("ui.add_card_block.message", "success", "");
|
|
|
+
|
|
|
+ var dat = {
|
|
|
+ "api_function":"AddCardBlock",
|
|
|
+ "ui_function":"add_card_block.add",
|
|
|
+ "data": [
|
|
|
+ ["group_id",group_id],
|
|
|
+ ["count",count]
|
|
|
+ ]
|
|
|
+ };
|
|
|
+
|
|
|
+ if (mag_token.length > 0) {
|
|
|
+ if (mag_token.split(":").length == 1) {
|
|
|
+ mag_token = "2:" + mag_token;
|
|
|
+ }
|
|
|
+ dat.data.push(["mag_token", mag_token]);
|
|
|
+ }
|
|
|
+ if (rfid_token.length > 0) {
|
|
|
+ if (rfid_token.split(":").length < 2) {
|
|
|
+ rfid_token = "26:" + rfid_token;
|
|
|
+ }
|
|
|
+ dat.data.push(["rfid_token", rfid_token]);
|
|
|
+ }
|
|
|
+
|
|
|
+ var pass_kind = "none";
|
|
|
+ for (var ii=0; ii<pass.length; ii++) {
|
|
|
+ var ele = document.getElementById("ui.add_card_block.pass_" + pass[ii]);
|
|
|
+ if (ele.checked) {
|
|
|
+ pass_kind = pass[ii];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (pass_kind == "other") {
|
|
|
+ dat.data.push(["pass_class" , 'OTHER']);
|
|
|
+ dat.data.push(["pass_rule" , _get_select("ui.add_card_block.pass_other_rule") ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ else if (pass_kind === "nday") {
|
|
|
+ var pass_nday_type = _get_select("ui.add_card_block.pass_nday_type");
|
|
|
+ var pass_nday_region = _get_select("ui.add_card_block.pass_nday_region");
|
|
|
+ var pass_nday_quantity = _get_select("ui.add_card_block.pass_nday_quantity");
|
|
|
+ var pass_nday_other = _get_input_field("ui.add_card_block.pass_nday_quantity");
|
|
|
+
|
|
|
+ var rule = 'TEST-ORG-NDAY';
|
|
|
+ var nday = pass_nday_quantity;
|
|
|
+ if (pass_nday_other && pass_nday_other.length > 0) {
|
|
|
+ nday = pass_nday_other;
|
|
|
+ }
|
|
|
+
|
|
|
+ dat.data.push(["pass_class" , 'NDAY']);
|
|
|
+ dat.data.push(["pass_rule", rule]);
|
|
|
+ dat.data.push(["pass_nday_orig", nday]);
|
|
|
+ }
|
|
|
+
|
|
|
+ else if (pass_kind === "nride") {
|
|
|
+ var pass_nride_type = _get_select("ui.add_card_block.pass_nride_type");
|
|
|
+ var pass_nride_region = _get_select("ui.add_card_block.pass_nride_region");
|
|
|
+ var pass_nride_quantity = _get_input_field("ui.add_card_block.pass_nride_quantity");
|
|
|
+ var pass_nride_other = _get_input_field("ui.add_card_block.pass_nride_other");
|
|
|
+
|
|
|
+ var rule = 'TEST-ORG-NRIDE';
|
|
|
+ var nride = pass_nride_quantity;
|
|
|
+ if (pass_nride_other && pass_nride_other.length > 0) {
|
|
|
+ nride = pass_nride_other;
|
|
|
+ }
|
|
|
+
|
|
|
+ dat.data.push(["pass_class", 'NRIDE']);
|
|
|
+ dat.data.push(["pass_rule", rule]);
|
|
|
+ dat.data.push(["pass_nrides_orig", nride]);
|
|
|
+ dat.data.push(["pass_nrides_remain", nride]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log("add_card_block: sending", dat);
|
|
|
+ api_req(dat);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
// --------------------------------------
|
|
|
// --------------------------------------
|
|
|
// --------------------------------------
|
|
|
@@ -1093,6 +1251,18 @@ function admin_api_init() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ else if (_func === "add_card_block") {
|
|
|
+ _attach_button( "ui.add_card_block.add_card_block", add_card_block);
|
|
|
+
|
|
|
+ _attach_button( "ui.add_card_block.pass_none", (function () { update_pass_radio_button("add_card_block", "none"); }) );
|
|
|
+ _attach_button( "ui.add_card_block.pass_nride", (function () { update_pass_radio_button("add_card_block", "nride"); }) );
|
|
|
+ _attach_button( "ui.add_card_block.pass_nday", (function () { update_pass_radio_button("add_card_block", "nday"); }) );
|
|
|
+ _attach_button( "ui.add_card_block.pass_other", (function () { update_pass_radio_button("add_card_block", "other"); }) );
|
|
|
+
|
|
|
+ update_pass_radio_button("add_card_block", "none");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|