Add login functionality
This commit is contained in:
		@@ -14,13 +14,15 @@
 | 
			
		||||
                <div class="container">
 | 
			
		||||
                    <div class="d-flex">
 | 
			
		||||
                        <a class="header-brand" href="/">#(config.title)</a>
 | 
			
		||||
                        #if(config.showSourceBtn):
 | 
			
		||||
                            <div class="d-flex order-lg-2 ml-auto">
 | 
			
		||||
                                <div class="nav-item d-none d-md-flex">
 | 
			
		||||
                                    <a href="https://gitea.arsenm.dev/Arsen6331/statusboard" class="btn btn-sm btn-outline-primary" target="_blank">Source code</a>
 | 
			
		||||
                                </div>
 | 
			
		||||
                        <div class="d-flex order-lg-2 ml-auto">
 | 
			
		||||
                            <div class="nav-item d-none d-md-flex">
 | 
			
		||||
                                #if(loggedIn):
 | 
			
		||||
                                <a href="/logout" class="btn btn-sm btn-outline-primary" target="_self">Log Out</a>
 | 
			
		||||
                                #else:
 | 
			
		||||
                                <a href="/login" class="btn btn-sm btn-outline-primary" target="_self">Log In</a>
 | 
			
		||||
                                #endif
 | 
			
		||||
                            </div>
 | 
			
		||||
                        #endif
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								Resources/Views/card.leaf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								Resources/Views/card.leaf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
<div class="col">
 | 
			
		||||
    <div class="card">
 | 
			
		||||
        <div class="card-header">
 | 
			
		||||
            <h3 class="card-title">#(service["name"])</h3>
 | 
			
		||||
            <div class="card-options">
 | 
			
		||||
                <span class="tag #if(service["url"]): btn-loading #endif">
 | 
			
		||||
                Status
 | 
			
		||||
                <span id="#(service["name"])Status" class="tag-addon">Unavailable</span>
 | 
			
		||||
                </span>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="card-body">
 | 
			
		||||
            #(service["description"])
 | 
			
		||||
        </div>
 | 
			
		||||
        #if(service["url"]):
 | 
			
		||||
        <div class="card-footer">
 | 
			
		||||
            URL: <a href="#(service["url"])">#(service["url"])</a>
 | 
			
		||||
        </div>
 | 
			
		||||
        #endif
 | 
			
		||||
    </div>
 | 
			
		||||
    #if(service["url"]):
 | 
			
		||||
    <script>
 | 
			
		||||
        fullURL = '#(service["url"])'
 | 
			
		||||
        var url = fullURL.replace("https://", "")
 | 
			
		||||
        url = url.replace("http://", "")
 | 
			
		||||
        var request = new XMLHttpRequest()
 | 
			
		||||
        request.open('GET', "/status/" + url, true)
 | 
			
		||||
        request.onload = function () {
 | 
			
		||||
            var data = JSON.parse(this.response)
 | 
			
		||||
            if (data.down === "true" || parseInt(data.code) > 500 && parseInt(data.code) < 600 ) {
 | 
			
		||||
                document.getElementById('#(service["name"])Status').classList.add("tag-danger")
 | 
			
		||||
                document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
 | 
			
		||||
                document.getElementById('#(service["name"])Status').innerHTML = "Offline"
 | 
			
		||||
            } else {
 | 
			
		||||
                document.getElementById('#(service["name"])Status').classList.add("tag-success")
 | 
			
		||||
                document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
 | 
			
		||||
                document.getElementById('#(service["name"])Status').innerHTML = "Online"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        request.send()
 | 
			
		||||
    </script>
 | 
			
		||||
    #endif
 | 
			
		||||
</div>
 | 
			
		||||
@@ -7,49 +7,13 @@
 | 
			
		||||
            <h6>#(node)</h6>
 | 
			
		||||
            <div class="row row-cards row-deck">
 | 
			
		||||
                #for(service in services):
 | 
			
		||||
                    <div class="col">
 | 
			
		||||
                        <div class="card">
 | 
			
		||||
                            <div class="card-header">
 | 
			
		||||
                                <h3 class="card-title">#(service["name"])</h3>
 | 
			
		||||
                                <div class="card-options">
 | 
			
		||||
                                    <span class="tag #if(service["url"]): btn-loading #endif">
 | 
			
		||||
                                        Status
 | 
			
		||||
                                        <span id="#(service["name"])Status" class="tag-addon">Unavailable</span>
 | 
			
		||||
                                    </span>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                            <div class="card-body">
 | 
			
		||||
                                #(service["description"])
 | 
			
		||||
                            </div>
 | 
			
		||||
                            #if(service["url"]):
 | 
			
		||||
                                <div class="card-footer">
 | 
			
		||||
                                    URL: <a href="#(service["url"])">#(service["url"])</a>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            #endif
 | 
			
		||||
                        </div>
 | 
			
		||||
                        #if(service["url"]):
 | 
			
		||||
                            <script>
 | 
			
		||||
                                fullURL = '#(service["url"])'
 | 
			
		||||
                                var url = fullURL.replace("https://", "")
 | 
			
		||||
                                url = url.replace("http://", "")
 | 
			
		||||
                                var request = new XMLHttpRequest()
 | 
			
		||||
                                request.open('GET', "/status/" + url, true)
 | 
			
		||||
                                request.onload = function () {
 | 
			
		||||
                                    var data = JSON.parse(this.response)
 | 
			
		||||
                                    if (data.down === "true" || parseInt(data.code) > 500 && parseInt(data.code) < 600 ) {
 | 
			
		||||
                                        document.getElementById('#(service["name"])Status').classList.add("tag-danger")
 | 
			
		||||
                                        document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
 | 
			
		||||
                                        document.getElementById('#(service["name"])Status').innerHTML = "Offline"
 | 
			
		||||
                                    } else {
 | 
			
		||||
                                        document.getElementById('#(service["name"])Status').classList.add("tag-success")
 | 
			
		||||
                                        document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
 | 
			
		||||
                                        document.getElementById('#(service["name"])Status').innerHTML = "Online"
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                                request.send()
 | 
			
		||||
                            </script>
 | 
			
		||||
                    #if(!service["private"] == "true"):
 | 
			
		||||
                        #inline("card")
 | 
			
		||||
                    #else:
 | 
			
		||||
                        #if(loggedIn):
 | 
			
		||||
                            #inline("card")
 | 
			
		||||
                        #endif
 | 
			
		||||
                    </div>
 | 
			
		||||
                    #endif
 | 
			
		||||
                #endfor
 | 
			
		||||
            </div>
 | 
			
		||||
        #endfor
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								Resources/Views/login.leaf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Resources/Views/login.leaf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#define(body):
 | 
			
		||||
    <div class="page">
 | 
			
		||||
        <div class="page-single">
 | 
			
		||||
            <div class="container">
 | 
			
		||||
                <div class="row">
 | 
			
		||||
                    <div class="col col-login mx-auto">
 | 
			
		||||
                        <div class="text-center mb-6">
 | 
			
		||||
                            <img src="" class="h-6" alt="">
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <form class="card" action="/login" method="post">
 | 
			
		||||
                            <div class="card-body p-6">
 | 
			
		||||
                                <div class="card-title">Login to #(config.title)</div>
 | 
			
		||||
                                <div class="form-group">
 | 
			
		||||
                                    <label class="form-label">
 | 
			
		||||
                                        Password
 | 
			
		||||
                                    </label>
 | 
			
		||||
                                    <input type="password" class="form-control" id="passwordInput" name="password" value="password" placeholder="Password">
 | 
			
		||||
                                </div>
 | 
			
		||||
                                <div class="form-footer">
 | 
			
		||||
                                    <button type="submit" class="btn btn-primary btn-block">Sign in</button>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </form>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
#enddefine
 | 
			
		||||
#inline("base")
 | 
			
		||||
		Reference in New Issue
	
	Block a user