UI changes
This commit is contained in:
@@ -376,6 +376,10 @@ func AddBarrierIP(db *gorm.DB, SessionID string, barrierIP string, MachineName s
|
||||
|
||||
if exists == false {
|
||||
var NewBarrierIP BarrierIP
|
||||
// generate new UUID for barrier
|
||||
id := uuid.New()
|
||||
NewBarrierIP.ID = id.String()
|
||||
|
||||
NewBarrierIP.BarrierIP = barrierIP
|
||||
NewBarrierIP.UserID = user.UserID
|
||||
NewBarrierIP.MachineName = MachineName
|
||||
@@ -416,3 +420,29 @@ func RemoveBarrierIP(db *gorm.DB, barrierIP string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetBarrierInfo(db *gorm.DB, SessionID string) (barriers []*BarrierIP, err error) {
|
||||
// Get User Information
|
||||
user, err := GetUserInformation(db, SessionID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Get barrier information for a particular
|
||||
UserRows, err := db.Model(&BarrierIP{}).Where("user_id = ?", user.UserID).Rows()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer UserRows.Close()
|
||||
|
||||
for UserRows.Next() {
|
||||
var barrier BarrierIP
|
||||
err := db.ScanRows(UserRows, &barrier)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
barriers = append(barriers, &barrier)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
435
server/server.go
435
server/server.go
@@ -1,261 +1,268 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Server Starts the server for the client side
|
||||
func Server(port string) error {
|
||||
|
||||
r := gin.Default()
|
||||
r := gin.Default()
|
||||
|
||||
r.Static("/assets", "./templates/assets")
|
||||
r.Static("/assets", "./templates/assets")
|
||||
|
||||
r.LoadHTMLGlob("./templates/*.html")
|
||||
// htmlRender.TemplatesDir = "templates/" // default
|
||||
// htmlRender.Ext = ".html" // default
|
||||
r.LoadHTMLGlob("./templates/*.html")
|
||||
// htmlRender.TemplatesDir = "templates/" // default
|
||||
// htmlRender.Ext = ".html" // default
|
||||
|
||||
// Tell gin to use our html render
|
||||
// Tell gin to use our html render
|
||||
|
||||
// Initialise connection to Sqlite DB
|
||||
connect, err := Connect()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Initialise connection to Sqlite DB
|
||||
connect, err := Connect()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Gets default information about the game sessions
|
||||
r.GET("/", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
session, err := c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
// Gets default information about the game sessions
|
||||
r.GET("/", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
session, err := c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
|
||||
// User information based on session ID
|
||||
User, err := GetUserInformation(connect, session)
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
// User information based on session ID
|
||||
User, err := GetUserInformation(connect, session)
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
|
||||
// Get information of all game sessions available
|
||||
GameSessions, err := DisplayGameSessions(connect)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
c.HTML(http.StatusOK, "index.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
"GameSessions": GameSessions,
|
||||
"User": User,
|
||||
})
|
||||
})
|
||||
// Get list of add barrier related IPs added
|
||||
Barrier, err := GetBarrierInfo(connect, session)
|
||||
fmt.Println(Barrier)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
// Get information of all game sessions available
|
||||
GameSessions, err := DisplayGameSessions(connect)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
c.HTML(http.StatusOK, "index.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
"GameSessions": GameSessions,
|
||||
"User": User,
|
||||
"BarrierIPS": Barrier,
|
||||
})
|
||||
})
|
||||
|
||||
// Opens the forgot password page
|
||||
r.GET("/forgotpassword", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "forgotpassword.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
})
|
||||
})
|
||||
// Opens the forgot password page
|
||||
r.GET("/forgotpassword", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "forgotpassword.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
})
|
||||
})
|
||||
|
||||
// Opens the login page
|
||||
r.GET("/login", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "login.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
})
|
||||
})
|
||||
// Opens the login page
|
||||
r.GET("/login", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "login.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
})
|
||||
})
|
||||
|
||||
// Validate login information
|
||||
r.POST("/login", func(c *gin.Context) {
|
||||
// you can bind multipart form with explicit binding declaration:
|
||||
// c.ShouldBindWith(&form, binding.Form)
|
||||
// or you can simply use autobinding with ShouldBind method:
|
||||
// source: https://github.com/gin-gonic/gin#multiparturlencoded-binding
|
||||
var users Users
|
||||
// in this case proper binding will be automatically selected
|
||||
if err := c.ShouldBind(&users); err != nil {
|
||||
c.String(http.StatusBadRequest, "bad request")
|
||||
}
|
||||
// Validate login information
|
||||
r.POST("/login", func(c *gin.Context) {
|
||||
// you can bind multipart form with explicit binding declaration:
|
||||
// c.ShouldBindWith(&form, binding.Form)
|
||||
// or you can simply use autobinding with ShouldBind method:
|
||||
// source: https://github.com/gin-gonic/gin#multiparturlencoded-binding
|
||||
var users Users
|
||||
// in this case proper binding will be automatically selected
|
||||
if err := c.ShouldBind(&users); err != nil {
|
||||
c.String(http.StatusBadRequest, "bad request")
|
||||
}
|
||||
|
||||
result, err := AuthLogin(connect, &users)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
} else {
|
||||
if result == "success" {
|
||||
// Create Login session
|
||||
session, err := CreateLoginSession(connect, &users)
|
||||
if err != nil {
|
||||
c.String(http.StatusExpectationFailed, "error")
|
||||
}
|
||||
// TODO redirect to homepage
|
||||
// Set client Cookie as Session ID
|
||||
// To be changed when we use HTTPS
|
||||
c.SetCookie("SessionID", session.SessionKey, 3600, "/", "*", false, true)
|
||||
// redirects to the home page
|
||||
//c.Redirect(http.StatusFound, "/")
|
||||
result, err := AuthLogin(connect, &users)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
} else {
|
||||
if result == "success" {
|
||||
// Create Login session
|
||||
session, err := CreateLoginSession(connect, &users)
|
||||
if err != nil {
|
||||
c.String(http.StatusExpectationFailed, "error")
|
||||
}
|
||||
// TODO redirect to homepage
|
||||
// Set client Cookie as Session ID
|
||||
// To be changed when we use HTTPS
|
||||
c.SetCookie("SessionID", session.SessionKey, 3600, "/", "*", false, true)
|
||||
// redirects to the home page
|
||||
//c.Redirect(http.StatusFound, "/")
|
||||
|
||||
// Sends message success. which then redirects back to the home page
|
||||
c.String(http.StatusOK, "Success!")
|
||||
} else {
|
||||
c.String(http.StatusOK, "Something is wrong with from our side. Email us: me@akilan.io to find out more. ")
|
||||
}
|
||||
}
|
||||
})
|
||||
// Sends message success. which then redirects back to the home page
|
||||
c.String(http.StatusOK, "Success!")
|
||||
} else {
|
||||
c.String(http.StatusOK, "Something is wrong with from our side. Email us: me@akilan.io to find out more. ")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// Route for logout
|
||||
r.GET("/logout", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
session, err := c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
// Route for logout
|
||||
r.GET("/logout", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
session, err := c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
|
||||
// Remove Session ID from the database
|
||||
RemoveLoginSession(connect, session)
|
||||
// Remove Session ID from the database
|
||||
RemoveLoginSession(connect, session)
|
||||
|
||||
// redirect to the login page
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
})
|
||||
// redirect to the login page
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
})
|
||||
|
||||
// Opens the registration page
|
||||
r.GET("/register", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "registration.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
})
|
||||
})
|
||||
// Opens the registration page
|
||||
r.GET("/register", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "registration.html", gin.H{
|
||||
"title": "Xplane11-WebRTC",
|
||||
})
|
||||
})
|
||||
|
||||
// Register user information required
|
||||
r.POST("/register", func(c *gin.Context) {
|
||||
// you can bind multipart form with explicit binding declaration:
|
||||
// c.ShouldBindWith(&form, binding.Form)
|
||||
// or you can simply use autobinding with ShouldBind method:
|
||||
// source: https://github.com/gin-gonic/gin#multiparturlencoded-binding
|
||||
var users Users
|
||||
// in this case proper binding will be automatically selected
|
||||
if err := c.ShouldBind(&users); err != nil {
|
||||
c.String(http.StatusBadRequest, "bad request")
|
||||
}
|
||||
// Register user information required
|
||||
r.POST("/register", func(c *gin.Context) {
|
||||
// you can bind multipart form with explicit binding declaration:
|
||||
// c.ShouldBindWith(&form, binding.Form)
|
||||
// or you can simply use autobinding with ShouldBind method:
|
||||
// source: https://github.com/gin-gonic/gin#multiparturlencoded-binding
|
||||
var users Users
|
||||
// in this case proper binding will be automatically selected
|
||||
if err := c.ShouldBind(&users); err != nil {
|
||||
c.String(http.StatusBadRequest, "bad request")
|
||||
}
|
||||
|
||||
err = RegisterUser(connect, &users)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
} else {
|
||||
c.String(http.StatusOK, "Success! Head back to the login page")
|
||||
}
|
||||
})
|
||||
err = RegisterUser(connect, &users)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
} else {
|
||||
c.String(http.StatusOK, "Success! Head back to the login page")
|
||||
}
|
||||
})
|
||||
|
||||
// Add new server information
|
||||
r.POST("/AddGameSession", func(c *gin.Context) {
|
||||
// Add new server information
|
||||
r.POST("/AddGameSession", func(c *gin.Context) {
|
||||
|
||||
// TODO: Binding
|
||||
// you can bind multipart form with explicit binding declaration:
|
||||
// c.ShouldBindWith(&form, binding.Form)
|
||||
// or you can simply use autobinding with ShouldBind method:
|
||||
// source: https://github.com/gin-gonic/gin#multiparturlencoded-binding
|
||||
var gameSession GameSession
|
||||
// TODO: Binding
|
||||
// you can bind multipart form with explicit binding declaration:
|
||||
// c.ShouldBindWith(&form, binding.Form)
|
||||
// or you can simply use autobinding with ShouldBind method:
|
||||
// source: https://github.com/gin-gonic/gin#multiparturlencoded-binding
|
||||
var gameSession GameSession
|
||||
|
||||
gameSession.Rate, _ = strconv.ParseFloat(c.PostForm("Rate"), 8)
|
||||
gameSession.Server.GPU = c.PostForm("GPU")
|
||||
gameSession.Link = c.PostForm("Link")
|
||||
gameSession.Server.CPU = c.PostForm("CPU")
|
||||
gameSession.Server.GPU = c.PostForm("GPU")
|
||||
gameSession.Server.Platform = c.PostForm("Platform")
|
||||
gameSession.Server.Hostname = c.PostForm("HostName")
|
||||
gameSession.Server.RAM = c.PostForm("RAM")
|
||||
gameSession.Server.Disk = c.PostForm("Disk")
|
||||
gameSession.Rate, _ = strconv.ParseFloat(c.PostForm("Rate"), 8)
|
||||
gameSession.Server.GPU = c.PostForm("GPU")
|
||||
gameSession.Link = c.PostForm("Link")
|
||||
gameSession.Server.CPU = c.PostForm("CPU")
|
||||
gameSession.Server.GPU = c.PostForm("GPU")
|
||||
gameSession.Server.Platform = c.PostForm("Platform")
|
||||
gameSession.Server.Hostname = c.PostForm("HostName")
|
||||
gameSession.Server.RAM = c.PostForm("RAM")
|
||||
gameSession.Server.Disk = c.PostForm("Disk")
|
||||
|
||||
// in this case proper binding will be automatically selected
|
||||
//if err := c.ShouldBind(&gameSession); err != nil {
|
||||
// c.String(http.StatusBadRequest, "bad request")
|
||||
//}
|
||||
// in this case proper binding will be automatically selected
|
||||
//if err := c.ShouldBind(&gameSession); err != nil {
|
||||
// c.String(http.StatusBadRequest, "bad request")
|
||||
//}
|
||||
|
||||
err = AddServerSpecs(connect, &gameSession)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
} else {
|
||||
c.String(http.StatusOK, "Success")
|
||||
}
|
||||
})
|
||||
err = AddServerSpecs(connect, &gameSession)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
} else {
|
||||
c.String(http.StatusOK, "Success")
|
||||
}
|
||||
})
|
||||
|
||||
// route to add barrier IP information
|
||||
r.POST("/AddBarrierIP", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
session, err := c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
// route to add barrier IP information
|
||||
r.POST("/AddBarrierIP", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
session, err := c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
|
||||
barrierIP := c.PostForm("BarrierIP")
|
||||
MachineName := c.PostForm("MachineName")
|
||||
barrierIP := c.PostForm("BarrierIP")
|
||||
MachineName := c.PostForm("MachineName")
|
||||
|
||||
BarrierIP, err := AddBarrierIP(connect, session, barrierIP, MachineName)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
_, err = AddBarrierIP(connect, session, barrierIP, MachineName)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, BarrierIP)
|
||||
})
|
||||
c.String(http.StatusOK, "Success")
|
||||
})
|
||||
|
||||
// Removes barrier ip information from the table
|
||||
// based on the barrier ip address provided.
|
||||
r.POST("RemoveBarrierIP", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
_, err = c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
// Removes barrier ip information from the table
|
||||
// based on the barrier ip address provided.
|
||||
r.POST("RemoveBarrierIP", func(c *gin.Context) {
|
||||
// Get client session ID
|
||||
_, err = c.Cookie("SessionID")
|
||||
if err != nil {
|
||||
c.Redirect(http.StatusFound, "/login")
|
||||
}
|
||||
|
||||
barrierIP := c.PostForm("BarrierIP")
|
||||
// Remove Barrier IP
|
||||
err = RemoveBarrierIP(connect, barrierIP)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
barrierIP := c.PostForm("BarrierIP")
|
||||
// Remove Barrier IP
|
||||
err = RemoveBarrierIP(connect, barrierIP)
|
||||
if err != nil {
|
||||
c.String(http.StatusOK, fmt.Sprint(err))
|
||||
}
|
||||
|
||||
c.String(http.StatusOK, "BarrierIP removed successfully")
|
||||
})
|
||||
c.String(http.StatusOK, "BarrierIP removed successfully")
|
||||
})
|
||||
|
||||
go CheckIfGameSessionIsActiveOrRemove(connect)
|
||||
go CheckIfGameSessionIsActiveOrRemove(connect)
|
||||
|
||||
// Run gin server on the specified port
|
||||
err = r.Run(":" + port)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Run gin server on the specified port
|
||||
err = r.Run(":" + port)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func CheckIfGameSessionIsActiveOrRemove(gorm *gorm.DB) {
|
||||
for {
|
||||
time.Sleep(10 * time.Second)
|
||||
Gamesessions, err := DisplayGameSessions(gorm)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for {
|
||||
time.Sleep(10 * time.Second)
|
||||
Gamesessions, err := DisplayGameSessions(gorm)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if len(Gamesessions) != 0 {
|
||||
fmt.Println(Gamesessions[0].Link)
|
||||
}
|
||||
if len(Gamesessions) != 0 {
|
||||
fmt.Println(Gamesessions[0].Link)
|
||||
}
|
||||
|
||||
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
|
||||
for i, _ := range Gamesessions {
|
||||
req, err := http.NewRequest("GET", Gamesessions[i].Link, nil)
|
||||
// Sending request to the backend server
|
||||
client := &http.Client{}
|
||||
_, err = client.Do(req)
|
||||
if err != nil {
|
||||
// remove from database game session
|
||||
_, err = RemoveTableGameSessionID(gorm, Gamesessions[i].GameSessionID)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
|
||||
for i, _ := range Gamesessions {
|
||||
req, err := http.NewRequest("GET", Gamesessions[i].Link, nil)
|
||||
// Sending request to the backend server
|
||||
client := &http.Client{}
|
||||
_, err = client.Do(req)
|
||||
if err != nil {
|
||||
// remove from database game session
|
||||
_, err = RemoveTableGameSessionID(gorm, Gamesessions[i].GameSessionID)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,18 +76,20 @@
|
||||
class="input"
|
||||
type="text"
|
||||
placeholder="Barrier IP address"
|
||||
name="BarrierIP"
|
||||
id="BarrierIP"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label">Machine Name</label>
|
||||
<div class="control">
|
||||
<input class="input" type="text" placeholder="Machine name" />
|
||||
<input class="input" type="text" name="MachineName" id="MachineName" placeholder="Machine name" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="field is-grouped">
|
||||
<div class="control">
|
||||
<button type="button" class="custom-button button-dark">
|
||||
<button type="button" class="custom-button button-dark" onclick="AddBarrierNode();return false;">
|
||||
Add Barrier Information
|
||||
</button>
|
||||
</div>
|
||||
@@ -97,12 +99,14 @@
|
||||
<div class="barrier-session-info-wrapper block">
|
||||
<div class="barrier-session-info">
|
||||
<div class="light-text">Barrier Session information</div>
|
||||
{{ range .BarrierIPS }}
|
||||
<div>
|
||||
<div class="small-text">Barrier IP address and HostName</div>
|
||||
<button type="button" class="custom-button button-light">
|
||||
<div class="small-text">{{ .BarrierIP }} and {{ .MachineName }}</div>
|
||||
<button type="button" class="custom-button button-light" onclick="RemoveBarrierSessions({{ .BarrierIP }});return false;">
|
||||
Remove
|
||||
</button>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -110,12 +114,13 @@
|
||||
{{ range .GameSessions }}
|
||||
<div class="custom-card">
|
||||
<article class="tile is-child box">
|
||||
<p class="title">{{ .Server.GPU }}</p>
|
||||
<p class="title">{{ .Server.Hostname }}</p>
|
||||
<p class="server-info">RAM: {{ .Server.RAM }} MB</p>
|
||||
<p class="server-info">Rate: {{ .Rate }}$/hr</p>
|
||||
<p class="server-info">CPU: {{ .Server.CPU }}</p>
|
||||
<p class="server-info">Disk: {{ .Server.Disk }} MB</p>
|
||||
<p class="server-info">Platform: {{ .Server.Platform }}</p>
|
||||
<p class="server-info">GPU: {{ .Server.GPU }}</p>
|
||||
<br />
|
||||
<button
|
||||
type="button"
|
||||
@@ -139,7 +144,7 @@
|
||||
aria-labelledby="modal-1-title"
|
||||
>
|
||||
<header class="modal__header">
|
||||
<h2 class="modal__title" id="modal-1-title">Modal Title</h2>
|
||||
<h2 class="modal__title" id="modal-1-title">Choose barrier session</h2>
|
||||
<button
|
||||
type="button"
|
||||
class="modal__close"
|
||||
@@ -148,11 +153,14 @@
|
||||
></button>
|
||||
</header>
|
||||
<main class="modal__content" id="modal-1-content">
|
||||
<p>
|
||||
Try hitting the <code>tab</code> key and notice how the focus
|
||||
stays within the modal itself. Also, <code>esc</code> to close
|
||||
modal.
|
||||
</p>
|
||||
{{ range .BarrierIPS }}
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault{{ .MachineName }}">
|
||||
<label class="form-check-label" for="flexRadioDefault{{ .MachineName }}">
|
||||
{{ .BarrierIP }} and {{ .MachineName }}
|
||||
</label>
|
||||
</div>
|
||||
{{ end }}
|
||||
</main>
|
||||
<footer class="modal__footer">
|
||||
<button
|
||||
@@ -200,6 +208,78 @@
|
||||
function goToLink() {
|
||||
window.open(link, "_blank");
|
||||
}
|
||||
|
||||
// The function is called on OnClick action
|
||||
function AddBarrierNode() {
|
||||
// Getting element information of all the fields
|
||||
// required for registration
|
||||
var BarrierIP = document.getElementById("BarrierIP").value
|
||||
var MachineName = document.getElementById("MachineName").value
|
||||
|
||||
|
||||
// // When EmailID is not entered
|
||||
// if (BarrierIP == "") {
|
||||
// document.getElementById("EmailIDError").innerHTML = "Enter EmailID"
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// // When EmailID is entered
|
||||
// if (BarrierIP != "") {
|
||||
// document.getElementById("EmailIDError").innerHTML = ""
|
||||
// }
|
||||
//
|
||||
// // When password and confirm password don't match
|
||||
// if (MachineName != "") {
|
||||
// document.getElementById("PasswordError").innerHTML = ""
|
||||
// }
|
||||
// // When the password matches then clear the field
|
||||
// if (MachineName == "") {
|
||||
// document.getElementById("PasswordError").innerHTML = "Enter password"
|
||||
// return
|
||||
// }
|
||||
|
||||
// binding data to uri encoded string
|
||||
uriencoded = "BarrierIP=" + BarrierIP + "&MachineName=" + MachineName
|
||||
|
||||
// Submitting the registration information
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "/AddBarrierIP", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
xhr.send(uriencoded);
|
||||
|
||||
xhr.onload = function () {
|
||||
console.log(xhr.responseText)
|
||||
// // Outputting response text
|
||||
// document.getElementById("ResponseText").innerHTML = xhr.responseText
|
||||
// Create Sessions browser
|
||||
// if response is success then redirect
|
||||
if (xhr.responseText === "Success") {
|
||||
window.location.replace("/");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function RemoveBarrierSessions(ipaddress) {
|
||||
// binding data to uri encoded string
|
||||
uriencoded = "BarrierIP=" + ipaddress
|
||||
|
||||
// Submitting the registration information
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "/RemoveBarrierIP", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
xhr.send(uriencoded);
|
||||
|
||||
xhr.onload = function () {
|
||||
console.log(xhr.responseText)
|
||||
// // Outputting response text
|
||||
// document.getElementById("ResponseText").innerHTML = xhr.responseText
|
||||
// Create Sessions browser
|
||||
// if response is success then redirect
|
||||
if (xhr.responseText === "BarrierIP removed successfully") {
|
||||
window.location.replace("/");
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script async type="text/javascript" src="assets/js/bulma.js"></script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user