165 lines
4.9 KiB
JavaScript
165 lines
4.9 KiB
JavaScript
let daddy = angular.module("daddy", ["ngRoute", "ngAnimate", "ngCookies"])
|
|
|
|
let server = "http://127.0.0.1:7001"
|
|
|
|
daddy.controller("bodyCtrlr", function($scope, $cookies, stateData){
|
|
|
|
$scope.state = stateData.state
|
|
|
|
let user = $cookies.getObject('user')
|
|
|
|
if (user == null) {
|
|
stateData.logOut()
|
|
} else {
|
|
stateData.setUser(user)
|
|
}
|
|
|
|
})
|
|
|
|
daddy.controller("headerCtrlr", function($scope){
|
|
$scope.subtitle = "Inks forum."
|
|
})
|
|
|
|
daddy.controller("navCtrlr", function($scope, $location, $cookies, stateData){
|
|
|
|
$scope.setLogin = () => {
|
|
$location.path("/login")
|
|
}
|
|
|
|
$scope.setSignup = () => {
|
|
$location.path("/signup")
|
|
}
|
|
|
|
$scope.setForum = () => {
|
|
$location.path("/")
|
|
stateData.setPage('forum')
|
|
}
|
|
|
|
$scope.setTopics = () => {
|
|
$location.path("/topics")
|
|
stateData.setPage('topics')
|
|
}
|
|
|
|
$scope.setTopicCreate = () => {
|
|
$location.path("/topics/create")
|
|
stateData.setPage('topics')
|
|
}
|
|
|
|
$scope.setCategories = () => {
|
|
$location.path("/categories")
|
|
stateData.setPage('categories')
|
|
}
|
|
|
|
$scope.setCategoryCreate = () => {
|
|
$location.path("/categories/create")
|
|
stateData.setPage('categories')
|
|
}
|
|
|
|
switch ($location.path()) {
|
|
case "":
|
|
case "/":
|
|
$scope.setForum()
|
|
break
|
|
case "/topics":
|
|
$scope.setTopics()
|
|
// this has to be done in the controller
|
|
break
|
|
case "/topics/create":
|
|
$scope.setTopicCreate()
|
|
break
|
|
case "/categories":
|
|
$scope.setCategories()
|
|
// this has to be done in the controller
|
|
break
|
|
case "/catagories/create":
|
|
$scope.setCategoryCreate()
|
|
break
|
|
case "/login":
|
|
$scope.setLogin()
|
|
break
|
|
case "/signup":
|
|
$scope.setSignup()
|
|
break
|
|
}
|
|
|
|
$scope.logOut = () => {
|
|
stateData.logOut()
|
|
}
|
|
|
|
})
|
|
|
|
// naming conventions here are very confusing:
|
|
// the main topics page is topic and the specific topics page is topics, by specific I mean the :topicNo one.
|
|
// the same goes for categories, category is the main page and the spcefics are categories.
|
|
|
|
daddy.config(function ($routeProvider) {
|
|
$routeProvider.when("/", {templateUrl : "views/home.html", controller : "forumCtrlr"})
|
|
$routeProvider.when("/topics/create", {templateUrl : "views/create_topic.html", controller : "createTopicCtrlr"})
|
|
$routeProvider.when("/topics", {templateUrl : "views/topic.html", controller : "topicCtrlr"})
|
|
$routeProvider.when("/topics/:topicNo", {templateUrl : "views/topics.html", controller : "topicsCtrlr"})
|
|
$routeProvider.when("/categories/create", {templateUrl : "views/create_category.html", controller : "createCategoryCtrlr"})
|
|
$routeProvider.when("/categories", {templateUrl : "views/category.html", controller : "categoryCtrlr"})
|
|
$routeProvider.when("/categories/:catNo", {templateUrl : "views/categories.html", controller : "categoriesCtrlr"})
|
|
$routeProvider.when("/login", {templateUrl : "views/login.html", controller : "loginCtrlr"})
|
|
$routeProvider.when("/signup", {templateUrl : "views/signup.html", controller : "signupCtrlr"})
|
|
$routeProvider.otherwise({template : "<article><section class='item border'><h1>404 ... no clue fam ... try something else?</h1></section></article>"})
|
|
})
|
|
|
|
daddy.factory('stateData', function($cookies){
|
|
let state = {
|
|
page : "forum",
|
|
title : "Forum;",
|
|
user : {
|
|
userNo : null,
|
|
userName : null,
|
|
userLevel : 0
|
|
}
|
|
}
|
|
|
|
setPage = (newPage) => {
|
|
state.page = newPage
|
|
switch (state.page) {
|
|
case "forum":
|
|
state.title = "Forum;"
|
|
break
|
|
case "topics":
|
|
state.title = "Topics;"
|
|
break
|
|
case "categories":
|
|
state.title = "Categories;"
|
|
break
|
|
}
|
|
}
|
|
|
|
logOut = () => {
|
|
$cookies.remove('user')
|
|
state.user.userNo = null
|
|
state.user.userName = null
|
|
state.user.userLevel = 0
|
|
}
|
|
|
|
setUser = (user) => {
|
|
state.user.sessionID = user.sessionID
|
|
state.user.userNo = user.userNo
|
|
state.user.userName = user.userName
|
|
state.user.userLevel = user.userLevel
|
|
}
|
|
|
|
return {
|
|
state : state,
|
|
setPage : setPage,
|
|
logOut: logOut,
|
|
setUser: setUser
|
|
}
|
|
})
|
|
|
|
function getDate() {
|
|
let date = new Date()
|
|
let out = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate() + " - " + date.getHours() + ":" + date.getMinutes()
|
|
return out
|
|
}
|
|
|
|
function validateEmail(email) {
|
|
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
return re.test(String(email).toLowerCase());
|
|
} |