// example usage: // // api_req({"ui_function":"manage_card.find", "api_function":"CardInfo", "data":[ ["action","search"],["mag_token","370000000007015"]]}) // function api_req(ctx) { var xhr; xhr = new XMLHttpRequest(); if (!xhr) { return false; } var param_val = []; for (var idx=0; idx 0) { return s.split(" ")[0]; } return s; } function _create_pass_row(dat) { var pass_table = document.getElementById("ui.manage_card.list_passes"); var _cb = ""; while (pass_table.firstChild) { pass_table.removeChild(pass_table.lastChild); } var row = document.createElement("div"); row.classList.add("row"); row.classList.add("rowpop"); row.classList.add("row-shade"); var fields_width = [1,1,1,1,2,2,2,2]; //var fields = ["x", "Type", "Original", "Remain", "Exp.", "Issued", "First Used", "Last Used"]; var fields = ['', "Type", "Original", "Remain", "Exp.", "Issued", "First Used", "Last Used"]; for (var idx=0; idx= 0) { pass_type = "NRide"; pass_orig = pass_data["nrides_orig"]; pass_remain = pass_data["nrides_remain"]; pass_exp = ""; } else if (pass_rule.search(/NDAY/) >= 0) { pass_type = "NDay"; pass_orig = pass_data["nday_orig"]; pass_remain = ""; pass_exp = pass_data["nday_expiration"]; } else { pass_type = "Other"; } var pass_firstused = ""; var pass_lastused = ""; if ( (typeof pass_data["firstused"] !== "undefined") && (pass_data["firstused"]) ) { pass_firstused = pass_data["firstused"]; } if ( (typeof pass_data["lastused"] !== "undefined") && (pass_data["lastused"]) ) { pass_lastused = pass_data["lastused"]; } row = document.createElement("div"); row.classList.add("row"); row.classList.add("rowpop"); if ((idx%2)==1) { row.classList.add("row-shade"); } //var cell = document.createElement("div"); //cell.innerHTML = "x"; var cell = document.createElement("input"); cell.setAttribute('type', 'checkbox'); cell.setAttribute('value', ''); cell.setAttribute('id', "ui.manage_card.cb_" + idx + "_pass"); cell.classList.add("col-" + fields_width[0]); row.appendChild(cell); //cell.classList.add("col-" + fields_width[0]); //row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = pass_type; cell.classList.add("col-" + fields_width[1]); row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = pass_orig; cell.classList.add("col-" + fields_width[2]); row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = pass_remain; cell.classList.add("col-" + fields_width[3]); row.appendChild(cell); cell = document.createElement("div"); //cell.innerHTML = pass_exp; cell.innerHTML = _date_only(pass_exp); cell.classList.add("col-" + fields_width[4]); row.appendChild(cell); cell = document.createElement("div"); //cell.innerHTML = pass_data["issued"]; cell.innerHTML = _date_only(pass_data["issued"]); cell.classList.add("col-" + fields_width[5]); row.appendChild(cell); cell = document.createElement("div"); //cell.innerHTML = pass_firstused; cell.innerHTML = _date_only(pass_firstused); cell.classList.add("col-" + fields_width[6]); row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = pass_lastused; cell.classList.add("col-" + fields_width[7]); row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = passid; cell.setAttribute('id', "ui.manage_card.row_" + idx + "_pass"); cell.style.display = "none"; row.appendChild(cell); pass_table.appendChild(row); } } function manage_card_find_fill(data) { var fields = [ "logical_card_id", "group", "mag_token", "rfid_token"]; var user_fields = [ "userid", "username", "first_name", "last_name", "email", "phone", "address", "city", "state", "zip", "group" ]; console.log("manage_card_find_fill:", data); for (var idx=0; idx" + cardid + ""; cell.classList.add("col-4"); row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = "" + magid + ""; cell.classList.add("col-4"); row.appendChild(cell); cell = document.createElement("div"); cell.innerHTML = "" + rfid + ""; cell.classList.add("col-4"); row.appendChild(cell); card_table.appendChild(row); console.log("card", idx, card_data[idx]["logical_card_id"], card_data[idx]["mag_token"], card_data[idx]["rfid_token"] ); } } window.history.replaceState({}, document.title, "/manage_user"); } // -------------------------------------- // -------------------------------------- // -------------------------------------- // -------------------------------------- // -------------------------------------- function reissue_card() { var fields = [ "source_magstripe", "source_rfid_a", "source_rfid_b", "dest_magstripe", "dest_rfid_a", "dest_rfid_b" ]; var data = []; for (var idx=0; idx 0) { data.push([ field, val ]); } } console.log("REISSUE (not implemented):", data); var dat = { "api_function":"Reissue", "ui_function":"reissue.update", "data": [ ["source_logical_card_id",cardid], ["source_mag_token","..."], ["source_rfid_token","..."], ["source_group","..."], ["destination_mag_token","..."], ["destination_rfid_token","..."] ["destination_group","..."] ]}; //api_req(dat); } function reissue_card_fill(card_data) { if (typeof card_data === "undefined") { return; } if ( (!("cards" in card_data)) || (card_data.cards.length==0)) { return; } var card = card_data.cards[0]; if ("mag_token" in card) { _fill_input_field("ui.reissue_card.source_magstripe", card["mag_token"]); } if ("rfid_token" in card) { var tok = card["rfid_token"].split(":"); var rfid_a = "", rfid_b = ""; if (tok.length >= 3) { rfid_a = tok[1]; rfid_b = tok[2]; } _fill_input_field("ui.reissue_card.source_rfid_a", rfid_a); _fill_input_field("ui.reissue_card.source_rfid_b", rfid_b); } if ("group" in card) { } } // -------------------------------------- // -------------------------------------- // -------------------------------------- // -------------------------------------- // -------------------------------------- function manage_card_redirect_manage_user() { var userid = _get_input_field("ui.manage_card.userid"); _redirect( "manage_user?" + "action=get&userid=" + userid); } function manage_card_reissue() { var cardid = _get_input_field("ui.manage_card.logical_card_id"); _redirect( "reissue_card?" + "action=get&logical_card_id=" + cardid); } function manage_card_add_pass(pass_type) { //var cardid = _get_input_field("ui.manage_card.logical_card_id"); console.log("manage_card_add_pass:", cardid, pass_type); var dat = { "api_function":"Pass", "ui_function":"manage_card.update", "data": [ ["logical_card_id",cardid], ["nrides_orig", 3], ["nrides_remain", 2], ["nday_orig", 5], ["rule", "ORIG-NRIDE"] ]}; api_req(dat); } function manage_card_add_pass_nride() { var cardid = _get_input_field("ui.manage_card.logical_card_id"); var nrides_orig = _get_input_field("ui.manage_card.pass_nride_other"); if (nrides_orig.length == 0) { nrides_orig = _get_select("ui.manage_card.pass_nride_orig"); } var rule = "ORG"; rule += "-" + _get_select("ui.manage_card.pass_nride_type"); rule += "-" + _get_select("ui.manage_card.pass_nride_region"); var api_data = { "api_function":"Pass", "ui_function":"manage_card.update", "data" : [ ["action","add"], ["logical_card_id" , cardid], ["nrides_orig" , nrides_orig], ["nrides_remain" , nrides_orig], ["rule" , rule] ] }; //DEBUG console.log(">>nride++", api_data); api_req(api_data); } function manage_card_add_pass_nday() { var cardid = _get_input_field("ui.manage_card.logical_card_id"); var nday_orig = _get_input_field("ui.manage_card.pass_nday_other"); if (nday_orig.length == 0) { nday_orig = _get_select("ui.manage_card.pass_nday_orig"); } var rule = "ORG"; rule += "-" + _get_select("ui.manage_card.pass_nday_type"); rule += "-" + _get_select("ui.manage_card.pass_nday_region"); var api_data = { "api_function":"Pass", "ui_function":"manage_card.update", "data" : [ ["action","add"], ["logical_card_id" , cardid], ["nday_orig" , nday_orig], ["rule" , rule] ] }; //DEBUG console.log(">>nday++", api_data); api_req(api_data); } function manage_card_add_pass_other() { var cardid = _get_input_field("ui.manage_card.logical_card_id"); var ui_ele = document.getElementById("ui.manage_card.pass_other"); var rule = ui_ele.options[ui_ele.selectedIndex].id; var api_data = { "api_function":"Pass", "ui_function":"manage_card.update", "data" : [ ["action","add"], ["logical_card_id" , cardid], ["rule" , rule] ] }; //DEBUG console.log(">>other++", api_data); api_req(api_data); } function manage_card_delete_pass() { var cardid = _get_input_field("ui.manage_card.logical_card_id"); var ele = document.getElementById("ui.manage_card.list_passes"); var n = ele.children.length; n-=1; for (var ii=0; ii