initialize project

This commit is contained in:
Afrina Alimi
2024-02-08 09:30:14 +08:00
commit 25d85dac75
206 changed files with 50977 additions and 0 deletions
@@ -0,0 +1,53 @@
<template>
<div>
<nav class="nav navbar-default navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="">Voting System</a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<router-link :to="{name: 'Admin Home'}" tag="li" exact>
<a href="#"><span class="fa fa-home"></span></a>
</router-link>
<router-link :to="{name: 'Manage Position'}" tag="li">
<a href="#">Manage Position</a>
</router-link>
</ul>
</div>
</div>
</nav>
<router-view></router-view>
</div>
</template>
<script>
export default {
created: function () {
if (!this.util.isLogin())
return this.$router.push({name: 'Admin Login'});
}
}
</script>
<style>
.navbar-default {
box-shadow: 0 1px 10px rgba(0,0,0,.5);
background-color: #ffffff;
}
body {
background-color: white;
color: #000000;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
margin-top: 70px;
}
</style>
@@ -0,0 +1,112 @@
<template>
<div class="col-md-5 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Admin Login</h4>
</div>
<div class="panel-body">
<form @submit.prevent="login" id="login_form">
<div class="form-group">
<label for="email">E-mail</label>
<input type="email" name="email" class="form-control" required/>
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" name="password" class="form-control" id="password" required/>
</div>
<label>
<input
type="checkbox"
id="visibility"
onclick=" $(this)[0].checked ?
$('#password').attr('type','text'):
$('#password').attr('type','password')"/> Show Password
</label>
<div class="form-group">
<input
type="submit"
class="btn btn-primary form-control"
:class="{'disabled': loading.isLoading}"
:value="loading.value"/>
</div>
</form>
</div>
</div>
</div>
</template>
<script>
export default{
data: function () {
return {
loading: {
value: 'Login',
isLoading: false
}
}
},
created: function () {
if (this.util.isLogin())
return this.$router.push('Admin Home')
this.util.setTitle('Admin Login');
},
methods: {
login: function () {
if (this.loading.isLoading) return;
let vm = this;
this.startLoading();
axios.post('api/v1/admin/login', $('#login_form').serialize())
.then(response => {
vm.stopLoading();
if (this.util.showResult(response, 'success')) {
localStorage['Access Token'] = `Bearer ${response.data.token}`;
localStorage['User'] = JSON.stringify(response.data.user);
window.axios.defaults.headers.common['Authorization'] = localStorage['Access Token'];
vm.$router.push({name: 'Admin Home'});
}
})
.catch(error => {
vm.stopLoading();
this.util.showResult(error, 'error');
})
},
startLoading: function () {
this.util.notify('Logging in', 'loading');
this.loading = {
value: 'Loading...',
isLoading: true
}
},
stopLoading: function () {
$.notifyClose();
this.loading = {
value: 'Login',
isLoading: false
}
}
},
}
</script>
<style>
body {
padding: 50px 5px;
}
</style>
@@ -0,0 +1,92 @@
<template>
<div class="container">
<div class="row">
<div class="col-md-4">
<h3><b>Add Position</b></h3>
<form>
<div class="form-group">
<label for="name">Position</label>
<input type="text" name="name" class="form-control" required/>
</div>
<div class="form-group">
<input type="button" value="Submit" class="btn btn-info"/>
<input type="reset" value="Reset" class="btn btn-default"/>
</div>
</form>
</div>
<div class="col-md-8">
<datatable v-bind="data" />
</div>
</div>
</div>
</template>
<script>
export default{
data: () => ({
yyy : [
{id: 1, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 2, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 3, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 4, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 5, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 6, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 7, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 8, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 9, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 10, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 11, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 12, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 13, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 14, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 15, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 16, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 17, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'},
{id: 18, name: 'Sample Data', x: 'Sample Data', btn: '<button @click="log" class="btn btn-info">Click me</button>'}
],
data: {
columns: [
{title:'ID', field: 'id'},
{title:'name', field: 'name'},
{title:'x', field:'x'},
{title:'', field:'btn', html: true}
],
data: [],
total: 0,
query: {
limit: 10,
offset: 0,
sort: '',
order: ''
}
}
}),
created: function () {
console.log(this);
},
watch : {
'data.query': {
handler (query) {
this.data.data = this.xxx;
this.data.total = this.yyy.length;
},
deep: true
}
},
computed: {
xxx : function () {
var offset = this.data.query.offset; //0
var limit = this.data.query.limit; //10
return this.yyy.slice(offset, offset+limit);
}
}
}
</script>