Browse Source

auto update script executed

Toby Chui 1 year ago
parent
commit
f9d8ea14a2
4 changed files with 64 additions and 5 deletions
  1. 1 0
      api.go
  2. 17 0
      mod/ganserv/handlers.go
  3. 38 5
      web/components/gan.html
  4. 8 0
      web/components/gandetails.html

+ 1 - 0
api.go

@@ -84,6 +84,7 @@ func initAPIs() {
 	authRouter.HandleFunc("/api/gan/network/remove", ganManager.HandleRemoveNetwork)
 	authRouter.HandleFunc("/api/gan/network/list", ganManager.HandleListNetwork)
 	authRouter.HandleFunc("/api/gan/network/name", ganManager.HandleNetworkNaming)
+	//authRouter.HandleFunc("/api/gan/network/detail", ganManager.HandleNetworkDetails)
 	authRouter.HandleFunc("/api/gan/network/setRange", ganManager.HandleSetRanges)
 	authRouter.HandleFunc("/api/gan/members/list", ganManager.HandleMemberList)
 	authRouter.HandleFunc("/api/gan/members/ip", ganManager.HandleMemberIP)

+ 17 - 0
mod/ganserv/handlers.go

@@ -139,6 +139,23 @@ func (m *NetworkManager) HandleNetworkNaming(w http.ResponseWriter, r *http.Requ
 	}
 }
 
+func (m *NetworkManager) HandleNetworkDetails(w http.ResponseWriter, r *http.Request) {
+	netid, err := utils.PostPara(r, "netid")
+	if err != nil {
+		utils.SendErrorResponse(w, "netid not given")
+		return
+	}
+
+	targetNetwork, err := m.getNetworkInfoById(netid)
+	if err != nil {
+		utils.SendErrorResponse(w, err.Error())
+		return
+	}
+
+	js, _ := json.Marshal(targetNetwork)
+	utils.SendJSONResponse(w, string(js))
+}
+
 func (m *NetworkManager) HandleSetRanges(w http.ResponseWriter, r *http.Request) {
 	netid, err := utils.PostPara(r, "netid")
 	if err != nil {

+ 38 - 5
web/components/gan.html

@@ -42,7 +42,7 @@
                             <th>Network ID</th>
                             <th>Name</th>
                             <th>Description</th>
-                            <th>Subnet</th>
+                            <th>Subnet (Assign Range)</th>
                             <th>Nodes</th>
                             <th>Actions</th>
                         </tr>
@@ -121,12 +121,12 @@
             }else{
                 var nodeCount = 0;
                 data.forEach(function(gan){
-                    $("#GANetList").append(`<tr>
+                    $("#GANetList").append(`<tr class="ganetEntry" addr="${gan.nwid}">
                         <td>${gan.nwid}</td>
                         <td>${gan.name}</td>
-                        <td>${""}</td>
-                        <td>${""}</td>
-                        <td>${""}</td>
+                        <td class="gandesc" addr="${gan.nwid}"></td>
+                        <td class="ganetSubnet"></td>
+                        <td class="ganetNodes"></td>
                         <td>
                             <button onclick="openGANetDetails('${gan.nwid}');" class="ui tiny basic icon button" title="Edit Network"><i class="edit icon"></i></button>
                             <button onclick="removeGANet('${gan.nwid}');" class="ui tiny basic icon button" title="Remove Network"><i class="red remove icon"></i></button>
@@ -144,6 +144,39 @@
 
                 $("#ganodeCount").text(nodeCount);
                 $("#ganetCount").text(data.length);
+
+                //Load description
+                $(".gandesc").each(function(){
+                    let addr = $(this).attr("addr");
+                    let domEle = $(this);
+                    $.get("/api/gan/network/name?netid=" + addr, function(data){
+                        $(domEle).text(data[1]);
+                    });
+                });
+
+                $(".ganetEntry").each(function(){
+                    let addr = $(this).attr("addr");
+                    let subnetEle = $(this).find(".ganetSubnet");
+                    let nodeEle = $(this).find(".ganetNodes");
+
+                    $.get("/api/gan/network/list?netid=" + addr, function(data){
+                        if (data.routes != undefined && data.routes.length > 0){
+                            
+                            if (data.ipAssignmentPools != undefined && data.ipAssignmentPools.length > 0){
+                                $(subnetEle).html(`${data.routes[0].target} <br> (${data.ipAssignmentPools[0].ipRangeStart} - ${data.ipAssignmentPools[0].ipRangeEnd})`);
+                            }else{
+                                $(subnetEle).html(`${data.routes[0].target}<br>(Unassigned Range)`);
+                            }
+                        }else{
+                            $(subnetEle).text("Unassigned");
+                        }
+                        console.log(data);
+                    });
+
+                    $.get("/api/gan/members/list?netid=" + addr, function(data){
+                        $(nodeEle).text(data.length);
+                    })
+                });
             }
         })
     }

+ 8 - 0
web/components/gandetails.html

@@ -59,6 +59,7 @@
 
     <div class="ui divider"></div>
     <h2>Members</h2>
+    <p>To join this network using command line, type <code>sudo zerotier-cli join <span class="ganetID"></span></code> on your device terminal</p>
     <div class="ui checkbox" style="margin-bottom: 1em;">
         <input id="showUnauthorizedMembers" type="checkbox" onchange="changeUnauthorizedVisibility(this.checked);">
         <label>Show Unauthorized Members</label>
@@ -248,6 +249,7 @@
                     $(object).removeClass("loading");
                     msgbox("Network Metadata Updated");
                 }
+                $("#gannetDetailEdit").slideUp("fast");
             }
         });
     }
@@ -423,6 +425,12 @@
                     tableBody.append(row);
                 });
 
+                if (data.length == 0){
+                    tableBody.append(`<tr>
+                        <td colspan="7"><i class="green check circle icon"></i> No member has joined this network yet.</td>
+                    </tr>`);
+                }
+
                 initNameForMembers();
             },
             error: function(xhr, status, error) {