From 3f272dc304864e7155938fce2d0a4817e5f1fbe0 Mon Sep 17 00:00:00 2001 From: aranzaiger Date: Sun, 21 Jun 2015 22:22:13 +0300 Subject: [PATCH] garbage commit --- SE_API/CampusRoutes.py | 63 +++++- SE_API/ProjectRoutes.py | 8 +- SE_API/UserRoutes.py | 5 +- models/User.py | 2 +- templates/css/theme.css | 199 ++++++++++++++---- templates/js/app.js | 4 + templates/js/controllers/homeController.js | 68 +++++- templates/js/controllers/mainController.js | 146 +++++++------ .../js/controllers/registerController.js | 75 ++++--- .../js/controllers/settingsController.js | 78 +++++++ templates/js/services/apiService.js | 15 +- templates/js/services/dataService.js | 21 ++ templates/views/home.html | 50 ++++- templates/views/index.html | 42 ++-- templates/views/register.html | 6 +- templates/views/settings.html | 114 ++++++++++ 16 files changed, 712 insertions(+), 184 deletions(-) create mode 100644 templates/js/controllers/settingsController.js create mode 100644 templates/js/services/dataService.js create mode 100644 templates/views/settings.html diff --git a/SE_API/CampusRoutes.py b/SE_API/CampusRoutes.py index 7e83635..67dd8b2 100644 --- a/SE_API/CampusRoutes.py +++ b/SE_API/CampusRoutes.py @@ -79,7 +79,6 @@ def create_campus(token): except Exception: return bad_request() - send_create_campus_request(user.email, user.name, campus.title) notify_se_hub_campus_request(campus, campus.title) return ok() @@ -87,7 +86,6 @@ def create_campus(token): - @campus_routes.route('/api/campuses/getAll/', methods=['GET']) @auto.doc() def get_campuses(token): @@ -125,7 +123,11 @@ def get_campuses(token): query = Campus.all() for c in query.run(): arr.append(dict(json.loads(c.to_JSON()))) + print "ARR:" print arr + for c in arr: + print"c:" + print c if len(arr) != 0: return Response(response=json.dumps(arr), status=200, @@ -138,6 +140,63 @@ def get_campuses(token): return forbidden("Invalid Token") +@campus_routes.route('/api/campuses/deleteCampus//', methods=['DELETE']) +@auto.doc() +def deleteCampus(token,campusName): + """ + This Call will delete a specific campus +
+ Route Parameters
+ - seToken: 'seToken' + - title: 'campusName' +
+
+ Payload
+ - NONE
+
+
+ Response +
+ 202 - Deleted campus +
+ 204 - No Matching Campus Found +
+ ....
+ {
+ ...
+ }req
+ + ]
+ 400 - Bad Request +
+ 403 - Invalid token or not a lecturer!
+ """ + + if not is_lecturer(token): #todo: change to lecturer id + return forbidden("Invalid token or not a lecturer!") + + + user = get_user_by_token(token) + query = Campus.all() + query.filter('master_user_id =',user.key().id()) + + try: + query.filter('title =', campusName) + except Exception as e: + print e + return bad_request("invalid campus title attribute") + + + for c in query.run(): + db.delete(c) + db.save + return accepted("campus deleted") + + + return bad_request("no such campus found") + + + @campus_routes.route('/api/campuses/help') def documentation(): diff --git a/SE_API/ProjectRoutes.py b/SE_API/ProjectRoutes.py index 18d2fb1..57afe8d 100644 --- a/SE_API/ProjectRoutes.py +++ b/SE_API/ProjectRoutes.py @@ -41,7 +41,7 @@ def create_project(token): {
'projectName': 'Advance Math',
'courseName': 'JCE',
- 'logo_url': 'http://location.domain.com/image.jpg'
+ 'logo_url': 'http://location.domain.com/image.jpg',
'gitRepository': 'http://location.git.com/somthing'
}

@@ -57,10 +57,12 @@ def create_project(token): if not request.data: return bad_request() payload = json.loads(request.data) - if not is_lecturer(token): #todo: change to lecturer id - return forbidden("Invalid token or not a lecturer!") + #if not is_lecturer(token): #todo: change to lecturer id + # return forbidden("Invalid token or not a lecturer!") user = get_user_by_token(token) + if user is None: + return bad_request("Wrong user Token") #todo: check legality diff --git a/SE_API/UserRoutes.py b/SE_API/UserRoutes.py index 0bc26d1..d66fdea 100644 --- a/SE_API/UserRoutes.py +++ b/SE_API/UserRoutes.py @@ -25,7 +25,7 @@ from SE_API.Respones_Utils import * user_routes = Blueprint("user_routes", __name__) auto = Autodoc() - +@user_routes.route('/api/users/getUserByToken/', defaults={'token': None}) @user_routes.route('/api/users/getUserByToken/', methods=["GET"]) @auto.doc() def getUserByToken(token): @@ -59,6 +59,9 @@ def getUserByToken(token):
403 - No User Found """ + if token is None: + return no_content("Token Is Empty, No User Found") + query = User.all() query.filter("seToken =", token) diff --git a/models/User.py b/models/User.py index e1edb87..348266c 100644 --- a/models/User.py +++ b/models/User.py @@ -12,7 +12,7 @@ class User(db.Model): seToken = db.StringProperty(required=True) avatar_url = db.StringProperty(required=True) isFirstLogin = db.BooleanProperty(default=True) - campusName = db.StringProperty(default="") + campusName = db.StringProperty(required=True, default=" ") campuses_id_list = db.StringListProperty(default=[]) classes_id_list = db.StringListProperty(default=[]) diff --git a/templates/css/theme.css b/templates/css/theme.css index 8835d90..00e4f28 100644 --- a/templates/css/theme.css +++ b/templates/css/theme.css @@ -2,10 +2,10 @@ body{ font-family: "Alef Hebrew", - “Helvetica Neue”, - Helvetica, - Arial, - sans-serif; + “Helvetica Neue”, + Helvetica, + Arial, + sans-serif; } .menuBtn { @@ -114,34 +114,36 @@ body.noscroll .campusAvatar img { /* - margin-top: 1em; - margin-right: 1em; - position: center; - */ + margin-top: 1em; + margin-right: 1em; + position: center; + */ - border-radius: 40px; - position:center; - width: 80px; - height: 80px; - margin: 6px; - -webkit-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75); - -moz-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75); - box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75); - } + border-radius: 40px; + position:center; + width: 80px; + height: 80px; + margin: 6px; + -webkit-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75); + -moz-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75); + box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75); +} - .spacer{ - margin-right: auto; - margin-left: auto; - } +.spacer{ + margin-right: auto; + margin-left: auto; +} - .port_spacer{ - margin-top: auto; - margin-bottom: auto; - } +.port_spacer +{ + margin-top: auto; + margin-bottom: auto; +} - .mail_suffix{ - margin-top: auto; - } +.mail_suffix +{ + margin-top: auto; +} .createCampus @@ -149,13 +151,41 @@ body.noscroll position:relative; } - -/*div.img campusAvatar +.listdemoBasicUsage md-divider { - border: 1px solid #0000ff; - padding-right: 10px; - float:right; - }*/ + margin-top: 10px; + margin-bottom: 10px; +} + +.md-avatar img +{ + /*TODO*/ +} + +.feedContent +{ + padding-left: 6%; + font-size: 15px; + display:table; +} + +.md-no-sticky +{ + background-color: blue; +} + +.roundUserAvatar +{ + width: 6%; + height: auto; + border-radius: 150px; + -webkit-border-radius: 150px; + -moz-border-radius: 150px; + /*background: url(http://i61.tinypic.com/v86f7.png) no-repeat;*/ + box-shadow: 0 0 8px rgba(0, 0, 0, .8); + -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .8); + -moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8); +} /*.dropDown /* TODO * { @@ -166,10 +196,47 @@ body.noscroll border-radius: 1px black solid; }*/ - .gray-font{ + .gray-font + { color: #7f7f7f; font-size: 300%; text-shadow:#e0e0e0 1px 1px 0; + opacity: 0; + -webkit-animation-duration: 8s; + animation-duration: 8s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + overflow: hidden; + height: 100%; + } + + @-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-200px); + /*-webkit-transform: scale(0,0); */ + height: 0px; + } + } + @keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-200px); + /*transform: scale(0,0); */ + height: 0px; + } + } + .fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; } .user-pane-menu{ @@ -213,6 +280,7 @@ body.noscroll .se-menu li:hover{ background-color: #E2E2E2; font-weight: bold; + cursor: pointer; } .se-menu li .selected{ background-color: #E2E2E2; @@ -237,4 +305,63 @@ body.noscroll .se-menu ul a{ text-decoration: none !important; color: #7f7f7f; - } \ No newline at end of file + } + + /*Settings Style*/ + + .settingList .settingListItem:hover{ + background-color: #E2E2E2; + font-weight: bold; + } + + .settingList .settingListItemRoot{ + list-style: none; + padding: 0; + padding-left: 0; + } + + .settingList .settingListItem{ + width: 100%; + padding: 15px 0px auto 15px; + } + + + /*End Settings*/ + + + /*md Effects*/ + + .md-avatar{ + width: 40px; + height: 40px; + margin-top: 8px; + margin-bottom: 8px; + margin-right: 16px; + border-radius: 50%; + box-sizing: content-box; + } + + +/* md-list-item .md-no-style.md-button, md-list-item.md-no-proxy.md-button { + font-size: inherit; + height: inherit; + text-align: left; + text-transform: none; + width: 100%; + white-space: normal; +} + +md-list-item, md-list-item .md-list-item-inner { + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + min-height: 48px; + }*/ + +/*End Effects for MD*/ diff --git a/templates/js/app.js b/templates/js/app.js index 76bba8f..86cbcc1 100644 --- a/templates/js/app.js +++ b/templates/js/app.js @@ -37,6 +37,10 @@ app.config(['$routeProvider', '$locationProvider', .when('/home', { templateUrl: 'templates/views/home.html', controller: 'homeController' + }) + .when('/Settings', { + templateUrl: 'templates/views/settings.html', + controller: 'settingsController' }); } diff --git a/templates/js/controllers/homeController.js b/templates/js/controllers/homeController.js index 46395cb..009a4f5 100644 --- a/templates/js/controllers/homeController.js +++ b/templates/js/controllers/homeController.js @@ -1,9 +1,71 @@ -/** - * Created by sagi on 6/16/15. - */ angular.module('SeHub') .controller('homeController', ['$scope', '$cookies', '$cookieStore', '$window', '$location', '$mdToast', '$mdDialog', 'apiService', '$rootScope', function ($scope, $cookies, $cookieStore, $window, $location, $mdToast, $mdDialog, apiService ,$rootScope) { + var imagePath = $scope.user.avatar_url; + $scope.phones = [ + { type: 'Home', number: '(972) 865-82861' }, + { type: 'Cell', number: '(972) 5251-32309' }, + ]; + + $scope.messages = [ + { + face : imagePath, + what: 'I need to go to luna-park', + who: 'Matan Bar Yosef', + when: '3:08PM', + notes: " Lets do something" + }, + { + face : imagePath, + what: 'Lets Lets Lets', + who: 'Matan Bar Yosef', + when: '4:33PM', + notes: " Lets go drink something" + }, + { + face : imagePath, + what: 'Let me tell you a secret', + who: 'Sagi Dayan', + when: '4:15PM', + notes: " I am S'ein" + }, + { + face : imagePath, + what: 'Listen to this!', + who: 'Aran Zaiger', + when: '6:15PM', + notes: " I am gaylord ultima!!" + }, + { + face : imagePath, + what: 'Hi?', + who: 'Etye Meyer', + when: '7:45AM', + notes: " I am mega gaylord ultima" + } + ]; + + $scope.tasks = [ + { + ExNum: '1', + dueDate: '23/06/15', + notes: " Build A Game: Scrabble" + }, + { + ExNum: '3', + dueDate: '30/06/15', + notes: " Static Array" + }, + { + ExNum: '4', + dueDate: '07/07/15', + notes: " Dynamic Array" + }, + ]; + + + // animation + $scope.isEnterd = top.setIsEnterd; }]); \ No newline at end of file diff --git a/templates/js/controllers/mainController.js b/templates/js/controllers/mainController.js index c0ba8ce..1f175ab 100644 --- a/templates/js/controllers/mainController.js +++ b/templates/js/controllers/mainController.js @@ -1,76 +1,90 @@ angular.module('SeHub') - .controller('mainController', ['$scope', '$rootScope', 'apiService', '$cookies', '$location', function($scope, $rootScope, apiService, $cookies, $location) { + .controller('mainController', ['$scope', '$rootScope', 'dataService','apiService', '$cookies', '$cookieStore', '$location', '$window', - var token = $cookies['com.sehub.www']; + function($scope, $rootScope, dataService, apiService, $cookies, $cookieStore, $location, $window) { + top.setIsEnterd = true; + var token = $cookies['com.sehub.www']; - $scope.loadingData = true; - $scope.isInRegisterMode = false; + $scope.loadingData = true; + $scope.isInRegisterMode = false; - apiService.getUserByToken(token).success(function(data) { - if (data.message == 'No User Found') { - console.error("No User Found!"); - } - - $scope.user = data; - if ($scope.user.isFirstLogin) { - $scope.menuObj = {}; - $scope.isInRegisterMode = true; + apiService.getUserByToken(token).success(function(data) { + if (data.message == 'No User Found') { + console.error("No User Found!"); + } $scope.loadingData = false; - $location.path('/register') - } else { - $location.path('/home') - } - - }) - - apiService.getUserByToken(token).success(function(data) // Get user token - { $scope.user = data; - $scope.loadingData = false; + dataService.initService($scope); //Start Data Sync Service (For User) + console.log(data); + if ($scope.user.isFirstLogin) { + $scope.menuObj = {}; + $scope.isInRegisterMode = true; + $scope.loadingData = false; + $location.path('/register') + } else { + $location.path('/home') + } - apiService.getAllCampuses($scope.user.seToken).success(function(data) // Get all the campuses - { - $scope.campuses = data; - }).error(function() { - - }); }); - $scope.menuItems = [{ - "title": "Home", - "icon": "fa fa-home", - "style": "selected", - "route": "/home" - }, { - "title": "My Campuses", - "icon": "fa fa-university", - "style": "selected", - "route": "/campuses" - }, { - "title": "My Classes", - "icon": "fa fa-graduation-cap", - "style": "selected", - "route": "/campuses" - }, { - "title": "My Projects", - "icon": "fa fa-cube", - "style": "selected", - "route": "/campuses" - }, { - "title": "Tasks", - "icon": "fa fa-clipboard", - "style": "selected", - "route": "/campuses" - }, { - "title": "Settings", - "icon": "fa fa-cogs", - "style": "selected", - "route": "/campuses" - }, { - "title": "Log Out", - "icon": "fa fa-power-off", - "style": "selected", - "route": "/campuses" - }]; + - }]); \ No newline at end of file + $scope.menuItems = [{ + "title": "Dash Board", + "icon": "fa fa-tachometer", + "style": "selected", + "route": "/home" + }, { + "title": "My Campuses", + "icon": "fa fa-university", + "style": "", + "route": "/campuses" + }, { + "title": "My Classes", + "icon": "fa fa-graduation-cap", + "style": "", + "route": "/campuses" + }, { + "title": "My Projects", + "icon": "fa fa-cube", + "style": "", + "route": "/campuses" + }, { + "title": "Tasks", + "icon": "fa fa-clipboard", + "style": "", + "route": "/campuses" + }, { + "title": "Settings", + "icon": "fa fa-cogs", + "style": "", + "route": "/Settings" + }, { + "title": "Log Out", + "icon": "fa fa-power-off", + "style": "", + "route": "/logout" + }]; + + $scope.menuClicked = function(item) { + var route = "" + if (item.title == "Log Out") { + console.info('Logging Out!'); + $cookieStore.remove('com.sehub.www'); + $window.location.href = 'http://se-hub.appspot.com'; // Reference to 'welcome' page + } + for (var i = $scope.menuItems.length - 1; i >= 0; i--) { + if ($scope.menuItems[i].title === item.title) { + $scope.menuItems[i].style = "selected"; + route = $scope.menuItems[i].route; + } else { + $scope.menuItems[i].style = ""; + } + }; + top.setIsEnterd = false; + $location.path(route); + } + + + } + ]); \ No newline at end of file diff --git a/templates/js/controllers/registerController.js b/templates/js/controllers/registerController.js index 346f731..071096c 100644 --- a/templates/js/controllers/registerController.js +++ b/templates/js/controllers/registerController.js @@ -6,11 +6,11 @@ angular.module('SeHub') $scope.createCampusClicked = false; $scope.isEmpty = true; // if the academic email line is empty $scope.jsonCreateCampus = - { - "title": "Create Campus", - "email": "email_ending", - "avatar": "self.avatar.url" - } + { + "title": "Create Campus", + "email": "email_ending", + "avatar": "self.avatar.url" + } $rootScope.seToken = $cookies['com.sehub.www']; var token = $rootScope.seToken; @@ -56,9 +56,28 @@ angular.module('SeHub') $scope.submitClicked = function(ev) { + var emailValid = false; + var jsonUpdateUser = + { + "lecturerStat": "$scope.user.isLecturer", + "campName": "$scope.campusName" + } + if($scope.user.AcMail != null) { var fullMail = $scope.user.AcMail + $scope.campusObj.email_ending; // Holds the full academic email of the user + + apiService.updateUser($scope.user.seToken, jsonUpdateUser).success(function(data) + { + + }).error(function() + { + // TODO Error + console.log("Error occured on updateUser"); + }); + + console.log("Mail: " + fullMail); + apiService.sendValidationMail($scope.user.seToken, fullMail).success(function(data) { console.log("DONE - 200"); @@ -72,36 +91,38 @@ angular.module('SeHub') $mdDialog.show($mdDialog.alert().title('Error - E-mail Verification').content('An error has occured in your e-mail address.') .ariaLabel('Email verification error alert dialog').ok('Got it!').targetEvent(ev)); }); + } + else // TODO Fix when success to show mdDialog until 'Got it' clicked + { + $mdDialog.show($mdDialog.alert().title('Error - E-mail Verification').content('An error has occured in your e-mail address.') + .ariaLabel('Email verification error alert dialog').ok('Got it!').targetEvent(ev)); }; }; - $scope.createCampus = function(ev) { $scope.createCampusClicked = true; if(!$scope.isLecturer) // "!isLecturer" Means => I Am Lecturer; if i am a lecturer (when pressing -> getting last data value before pressing) { - if($scope.user.campusSuffixMail != null) + if($scope.user.campusMail != null) { - validateEmail($scope.user.campusSuffixMail); + validateEmail($scope.user.campusMail); // Verify the email according to "xxx@name.suffix" } } } - validateEmail = function(email) // TODO ADD IT + validateEmail = function(email) { var result = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; - - console.log("Email: " + email); - - if (!result.test(email)) + if (!result.test(email)) // TODO Fix when success to show mdDialog until 'Got it' clicked { console.log(email + ", Error in email, should alert"); - alert('Please provide a valid e-mail address'); + // alert('Please provide a valid e-mail address'); + $mdDialog.show($mdDialog.alert().title('Error - E-mail Verification').content('An error has occured in your e-mail address.') + .ariaLabel('Email verification error alert dialog').ok('Got it!').targetEvent(email)); } - - if(result.test(email)) + if(result.test(email)) // TODO Fix when success to show mdDialog until 'Got it' clicked { console.log("Im good"); apiService.sendValidationMail($scope.user.seToken, email).success(function(data) @@ -119,26 +140,4 @@ angular.module('SeHub') }); } } - - // TODO FOR LATER - toast - // TODO FOR LATER - - // $scope.getPopWindowPosition = function() - // { - // return Object.keys($scope.toastPosition).filter(function(pos) - // { - // return $scope.toastPosition[pos]; - // }).join(' '); - // }; - - // $scope.toastPosition = - // { - // bottom: false, - // top: true, - // left: false, - // right: true - // }; - - // TODO FOR LATER - // TODO FOR LATER }]); diff --git a/templates/js/controllers/settingsController.js b/templates/js/controllers/settingsController.js new file mode 100644 index 0000000..81a4a98 --- /dev/null +++ b/templates/js/controllers/settingsController.js @@ -0,0 +1,78 @@ +angular.module('SeHub') + .controller('settingsController', ['$scope', '$rootScope', 'dataService', 'apiService', '$cookies', '$location', + function($scope, $rootScope, dataService, apiService, $cookies, $location) { + + var token = $cookies['com.sehub.www']; + + $scope.loadingData = true; + $scope.isInRegisterMode = false; + + $scope.title = "Settings" + + apiService.getUserByToken(token).success(function(data) { + if (data.message == 'No User Found') { + console.error("No User Found!"); + } + $scope.loadingData = false; + $scope.user = data; + console.log(data); + if ($scope.user.isFirstLogin) { + $scope.menuObj = {}; + $scope.isInRegisterMode = true; + $scope.loadingData = false; + $location.path('/register') + } + + }); + + $scope.isEditMode = false; + $scope.profileMode = "Edit Profile"; + $scope.profileModeIcon = "fa fa-pencil"; + + $scope.changeProfileMode = function() { + $scope.isEditMode = !$scope.isEditMode; + if ($scope.isEditMode) { + $scope.profileMode = "Save Profile"; + $scope.profileModeIcon = "fa fa-floppy-o"; + } else { + dataService.userBrodcast($scope.user); + $scope.profileMode = "Edit Profile"; + $scope.profileModeIcon = "fa fa-pencil"; + } + } + + /** + * DEBUG DATA + */ + $scope.courses = [{ + "courseName": "Advance Math", + "campusName": "JCE", + "startDate": { + "year": 2015, + "month": 4, + "day": 3 + }, + "endDate": { + "year": 2016, + "month": 5, + "day": 14 + }, + "taskFlag": false, + "campus_avatar": "https://yt3.ggpht.com/--ZkWxybWGOM/AAAAAAAAAAI/AAAAAAAAAAA/_nAICC_kzzI/s88-c-k-no/photo.jpg" + }]; + + $scope.campuses = [{ + 'title': 'JCE', + 'email_ending': '@post.jce.ac.il', + 'master_user_id': 123453433341, + 'avatar_url': 'https://yt3.ggpht.com/--ZkWxybWGOM/AAAAAAAAAAI/AAAAAAAAAAA/_nAICC_kzzI/s88-c-k-no/photo.jpg' + }, { + 'title': 'Stanford', + 'email_ending': '@post.jce.ac.il', + 'master_user_id': 123453433341, + 'avatar_url': 'https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9M4uQgaJP1zyiCGw-dK31hU8buWqeuOi9vTXBd4Y8hQcFTZqA' + }]; + + + } + ]); \ No newline at end of file diff --git a/templates/js/services/apiService.js b/templates/js/services/apiService.js index 108b309..d07e1f1 100644 --- a/templates/js/services/apiService.js +++ b/templates/js/services/apiService.js @@ -3,15 +3,12 @@ var DEBUG = true; var service = angular.module('seHub.services', []); service.factory('apiService', ['$http', function($http) { - - return { getUserByToken: function(token){ var url = (DEBUG ? "http://localhost:8080" : "http://se-hub.appspot.com") + "/api/users/getUserByToken/" + token; req = { method : "GET", url : url - }; return $http(req); }, @@ -36,9 +33,17 @@ service.factory('apiService', ['$http', function($http) { data: payload }; + return $http(req); + }, + updateUser: function(token, payLoad){ + var url = (DEBUG ? "http://localhost:8080" : "http://se-hub.appspot.com") + "/api/users/updateUser/" + token; + + req = { + method: "POST", + url: url, + data: payLoad + }; return $http(req); } - - }; }]); \ No newline at end of file diff --git a/templates/js/services/dataService.js b/templates/js/services/dataService.js new file mode 100644 index 0000000..af915c7 --- /dev/null +++ b/templates/js/services/dataService.js @@ -0,0 +1,21 @@ +var DEBUG = true; + +angular.module('seHub.services'). + +factory('dataService', ['$http', function($http) { + var scope = null; + + + return { + initService: function(mainScope) { + // this.token = user.seToken; + // this.user = user; + scope = mainScope; + }, + userBrodcast: function(user) { + scope.user = JSON.parse(JSON.stringify(user)); + } + + + }; +}]); \ No newline at end of file diff --git a/templates/views/home.html b/templates/views/home.html index 881bf23..7b2fc30 100644 --- a/templates/views/home.html +++ b/templates/views/home.html @@ -3,7 +3,7 @@ - +
@@ -15,12 +15,54 @@

Welcome To SE-Hub

-

- This Is your Home Page -

+

Software Engineering Course Made Easy

+ v1.0
+ + +
+
+ Messages + +
+ {{item.who}} + + +
+

+ +

{{ item.who }}

+
{{ item.what }}
+
{{ item.notes }}
+
{{ item.when }}
+
+
+
+
+ + +
+
+ + + + Tasks + + +
+ +
Ex: {{ item.ExNum }}
+
Task Title: {{ item.notes }}
+
Due Date: {{ item.dueDate }}
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/templates/views/index.html b/templates/views/index.html index 3abfe58..c683489 100644 --- a/templates/views/index.html +++ b/templates/views/index.html @@ -21,32 +21,28 @@
- -
-
- -
-
-
- {{user.name}} +
+
+
+
-
- {{user.email}} +
+
+ {{user.name}} +
+
+ {{user.email}} +
-
- - -
@@ -85,10 +81,12 @@ + + diff --git a/templates/views/register.html b/templates/views/register.html index f25b61a..7d4d967 100644 --- a/templates/views/register.html +++ b/templates/views/register.html @@ -12,7 +12,7 @@
- +


@@ -29,7 +29,7 @@
- + @@ -65,7 +65,7 @@
- +
diff --git a/templates/views/settings.html b/templates/views/settings.html new file mode 100644 index 0000000..7f07403 --- /dev/null +++ b/templates/views/settings.html @@ -0,0 +1,114 @@ +
+
+ +
+ + +

{{title}}

+
+
+ +
+ +
+
+ +
+
+ + {{profileMode}} + +
+
+
+ +
+
+

{{user.name}}

+
+
+ Email: {{user.email}} +
+
+ I Am a: {{(user.isLecturer) ? "Lecturer" : "Student"}} +
+
+ + +
+
+ + + + +
+
+ + + + +
+
+ + I Am a: {{(user.isLecturer) ? "Lecturer" : "Student"}} + +
+
+ +
+
+ +
+ +

My Classes

+
+
+
+
+ {{ person.name }} +
+
+ {{ course.courseName }} - IN {{course.campusName}} +
+
+
+ + X + +
+ +
+
+
+ +

My Campuses

+ +
+
+
+
+ {{ person.name }} +
+
+ {{ campus.title }} - +
+
+
+ + X + +
+ +
+
+
+
+
+ +
+
+ + + +
+
\ No newline at end of file