Prechádzať zdrojové kódy

basic search functionality

abetusk 4 rokov pred
rodič
commit
8608d8855b

+ 149 - 2
main/app/static/js/popufare_admin.js

@@ -886,8 +886,6 @@ function reissue_card_fill(card_data) {
 function ui_search(search_type) {
   var txt = _get_input_field( "ui.search." + search_type);
 
-  console.log(">>>", search_type, txt);
-
   var dat = {
     "api_function":"Search",
     "ui_function":"ui_search.update",
@@ -898,7 +896,156 @@ function ui_search(search_type) {
   api_req(dat);
 }
 
+function _html_card_row(cardid, magid, rfid, idx) {
+  idx = ((typeof idx === "undefined") ? 0 : idx);
+  magid = ((typeof magid === "undeifned") ? "" : (magid ? magid : ""))
+  rfid = ((typeof rfid === "undeifned") ? "" : (rfid ? rfid : ""))
+  var row, cell;
+
+  row = document.createElement("div");
+  row.classList.add("row");
+  row.classList.add("rowpop");
+  if ((idx % 2) == 1) {
+    row.classList.add("row-shade");
+  }
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_card?logical_card_id=" + cardid + "'>" + cardid + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_card?logical_card_id=" + cardid + "'>" + magid + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_card?logical_card_id=" + cardid + "'>" + rfid + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  return row;
+}
+
+function _html_user_row(user_info, idx) {
+  idx = ((typeof idx === "undefined") ? 0 : idx);
+  var row, cell;
+
+  var userid = user_info["userid"];
+  var username = "";
+  if (("username" in user_info) && 
+      (user_info["username"])) {
+    username = user_info["username"];
+  }
+
+  var first_name = "";
+  if (("first_name" in user_info) && 
+      (user_info["first_name"])) {
+    first_name = user_info["first_name"];
+  }
+
+  var last_name = "";
+  if (("last_name" in user_info) && 
+      (user_info["last_name"])) {
+    last_name = user_info["last_name"];
+  }
+
+  row = document.createElement("div");
+  row.classList.add("row");
+  row.classList.add("rowpop");
+  if ((idx % 2) == 1) {
+    row.classList.add("row-shade");
+  }
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_user?userid=" + userid + "'>" + userid + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_user?userid=" + userid + "'>" + username + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_user?userid=" + userid + "'>" + first_name + " " + last_name + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  return row;
+}
+
+function _html_admin_row(admin_info, idx) {
+  idx = ((typeof idx === "undefined") ? 0 : idx);
+  var row, cell;
+
+  var userid = admin_info["userid"];
+  var username = "";
+  if (("username" in admin_info) && 
+      (admin_info["username"])) {
+    username = admin_info["username"];
+  }
+
+  var group_id = "";
+  if (("group_id" in admin_info) && 
+      (admin_info["group_id"])) {
+    group_id = admin_info["group_id"];
+  }
+
+
+  row = document.createElement("div");
+  row.classList.add("row");
+  row.classList.add("rowpop");
+  if ((idx % 2) == 1) {
+    row.classList.add("row-shade");
+  }
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_admin?userid=" + userid + "'>" + userid + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_admin?userid=" + userid + "'>" + username + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  cell = document.createElement("div");
+  cell.innerHTML = "<a href='/manage_admin?userid=" + userid + "'>" + group_id + "</a>";
+  cell.classList.add("col-4");
+  row.appendChild(cell);
+
+  return row;
+}
+
 function ui_search_fill(data) {
+  var result_table = document.getElementById("ui.search.results");
+  while (result_table.firstChild) {
+    result_table.removeChild(result_table.lastChild);
+  }
+
+  var row, col, cell, a;
+
+  var query_data = data.data;
+  for (var idx=0; idx<query_data.length; idx++) {
+
+    var _h = query_data[idx];
+    if ("iscard" in _h) {
+      row = _html_card_row( _h["logical_card_id"], _h["mag_token"], _h["rfid_token"], idx );
+      result_table.appendChild(row);
+    }
+
+    else if ("isadmin" in _h) {
+      row = _html_user_row( _h );
+      result_table.appendChild(row);
+    }
+
+    else if ("isuser" in _h) {
+      row = _html_user_row( _h );
+      result_table.appendChild(row);
+    }
+
+  }
 }
 
 // --------------------------------------

+ 28 - 0
main/app/templates/search.html

@@ -64,6 +64,34 @@
         </div>
 
       </div>
+
+
+
+      <!-- user managed cards block -->
+      <div class='col-12' id='ui.search.results'>
+
+          <!--
+          <div id='ui.search.results' class='col-10'>
+          <div class='row rowpop'>
+            <div class='col-6'> <h3> User Owned Cards </h3> </div>
+            <div class='col-6'></div>
+          </div>
+
+          <div class='row rowpop row-shade'>
+            <div class='col-4'> Card Id </div>
+            <div class='col-4'> Mag Stripe</div>
+            <div class='col-2'> RF Site </div>
+            <div class='col-2'> RFID </div>
+          </div>
+          -->
+
+        </div>
+
+        <div class='col-4'></div>
+
+      </div>
+
+
     </div>
   </div>