jce-mobile-app/www/js/controllers.js

412 lines
20 KiB
JavaScript
Raw Normal View History

2015-01-10 22:11:51 +00:00
angular.module('starter.controllers', [])
/*======================================
= AppCtrl - Main =
======================================*/
.controller('AppCtrl', function($scope, $rootScope, $ionicModal, $timeout, $http, $ionicPopup, $location) {
// Form data for the login modal
$scope.loginData = {};
var newNotes = false;
$scope.logged = false;
var userStr = window.localStorage['userInfo'] || null;
if(userStr !== null)
$scope.userData = JSON.parse(userStr);
else
$scope.userData = null;
// Create the login modal that we will use later
$ionicModal.fromTemplateUrl('templates/login.html', {
scope: $scope
}).then(function(modal) {
$scope.modal = modal;
});
$scope.isLoggedIn = function(){
if($scope.userData == null)
return false;
console.log("[JCE] [Info] User hase loged in once!");
return true;
};
$scope.newNotes = function(){
var newNote = window.localStorage['newNotes'] || "false";
return (newNote == "true") ? true : false;
};
// Triggered in the login modal to close it
$scope.closeLogin = function() {
$scope.modal.hide();
};
// Open the login modal
$scope.login = function() {
$scope.modal.show();
};
$scope.logout = function(){
localStorage.clear();
navigator.app.exitApp();
};
$scope.$watch(window.localStorage['logged'], function() {
console.log('[JCE] [INFO]: CHANGED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
var tempBool = (window.localStorage['logged'] || false);
if(tempBool == "true")
$scope.logged = true;
else
$scope.logged = false;
});
})
////////////////////////////////////////////////////////////////
.controller('PlaylistsCtrl', function($scope) {
$scope.playlists = [
{ title: 'Reggae', id: 1 },
{ title: 'Chill', id: 2 },
{ title: 'Dubstep', id: 3 },
{ title: 'Indie', id: 4 },
{ title: 'Rap', id: 5 },
{ title: 'Cowbell', id: 6 }
];
})
.controller('PlaylistCtrl', function($scope, $stateParams) {
})
/*=============================================
= Grades - controller =
=============================================*/
.controller('GradesCtrl', function($scope, $stateParams, $http) {
var gradesStr = window.localStorage['grades'] || null;
var fixGrades = new Array;
var j = 0;
//console.log(gradesStr);
if(gradesStr != null){
grades = JSON.parse(gradesStr);
for(var i = 0; i < grades.length ; i++){
console.log("In loop #: "+i);
console.log(JSON.stringify(fixGrades));
if( i != 0){
if(grades[i].subject_code != grades[i-1].subject_code){
fixGrades.push({
"subject": grades[i].subject,
"credits": grades[i].credits,
"subject_code": grades[i].subject_code,
"year": grades[i].year,
"tests": [{
"moed": grades[i].moed,
"final_grade": grades[i].final_grade
}]
});
j++;
}else{
fixGrades[j-1].tests.push({
"moed": grades[i].moed,
"final_grade": grades[i].final_grade
});
}
}else{
fixGrades.push({
"subject": grades[i].subject,
"credits": grades[i].credits,
"subject_code": grades[i].subject_code,
"year": grades[i].year,
"tests": [{
"moed": grades[i].moed,
"final_grade": grades[i].final_grade
}]
});
j++;
}
}
console.log(JSON.stringify(fixGrades));
$scope.grades = fixGrades;
}
$scope.getMedal = function(grade){
if(grade < 55){
return "https://wiki.openttd.org/images/1/10/Face-Sick-120px.png";
}else if( 55<= grade && grade < 70){
return "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcT6UK4UUxagOktpvJR_P433nvOeTDuV3rOxd0Mswo8T-tRueFmN";
}else if( 70<= grade && grade < 80){
return "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRz0_NkZPM9FSymaCqFObwGPQFA9vRGZ82DEM7jfFU6xQ3qLbu8oQ";
}else if( 80<= grade && grade < 95){
return "data:image/jpeg;base64,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
}else{
return "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRR0zMfWYUcjYyXjGUQY3tDj04rIFfi_CThbaolxTt_38eL1hkFmQ";
}
return "sdfgg";
};
})
/*=============================================
= JCE News - controller =
=============================================*/
.controller('JCENewsCtrl', function($scope, $stateParams, $http) {
var notesStr = window.localStorage['notes'] || null;
console.log(notesStr);
if(notesStr != null)
$scope.newss = JSON.parse(notesStr);
})
/*=============================================
= Login Controller =
=============================================*/
.controller('LoginCtrl', function($scope, $stateParams, $http, $location, $ionicPopup, $ionicViewService, $state) {
function getNotes(){
var notes = window.localStorage['notes'] || null;
return $http.get('https://mipo.jce.ac.il/index.php/site/studentMessages').then(function(resp) {
if(notes === null){
window.localStorage['notes'] = JSON.stringify(resp.data);
return true;
}else if(notes === JSON.stringify(resp.data)){
return false;
}else{
window.localStorage['notes'] = JSON.stringify(resp.data);
return true;
}
$scope.$apply();
console.log("[JCE] [INFO] Got JCE News!");
}, function(err) {
console.error('ERR', err);
// err.status will contain the status code
})
}
var userStr = window.localStorage['userInfo'] || null;
if(userStr !== null){
if(getNotes() == true){
window.localStorage['newNotes'] = "true";
}
$ionicViewService.nextViewOptions({
disableBack: true
});
$location.path( "/app/home" ); //Start app
}
else
$scope.userData = null;
// Perform the login action when the user submits the login form
$scope.doLogin = function() {
console.log('[JCE] [Info] Doing login', $scope.loginData);
//JCE Login shit:
var request = "https://mipo.jce.ac.il/index.php/site/login?_dc=1419773997764&formValues=%7B%22form_fields%22%3A%7B%22name%22%3A%22"+$scope.loginData.username+"%22%2C%22pwd%22%3A%22"+$scope.loginData.password+"%22%7D%7D&callback=JSON_CALLBACK";
$http.get(request).then(function(resp) {
console.log('Success', resp);
console.log('!!!\n'+JSON.stringify(resp.data)+'\n!!!', resp);
if(resp.data.guest == false){
window.localStorage['name'] = $scope.loginData.username;
window.localStorage['pass'] = $scope.loginData.password;
$scope.userData = resp.data;
window.localStorage['userInfo'] = JSON.stringify(resp.data);
// // if(getNotes() == true){
// window.localStorage['newNotes'] = "true";
// // }
// window.localStorage['logged'] = "true";
// // $state.forceReload();
// // $state.go($state.current, {}, {reload: true});
// //
var alertPopup = $ionicPopup.alert({
title: 'ההתחברות בוצעה בהצלחה!',
template: 'עקב בעיות גרסה. התוכנה תיסגר עכשיו. אנא כנס שוב כדי להנות מן האפשוריות'
});
alertPopup.then(function(res) {
console.log('[JCE] [Info] Popup Confirmed - wrong Username/Password');
navigator.app.exitApp();
$scope.closeLogin();
});
$ionicViewService.nextViewOptions({
disableBack: true
});
$location.path( "/app/home" );
console.log("[JCE] [Info] Login Was SUCCESSFULL!!", resp);
}else{
var alertPopup = $ionicPopup.alert({
title: 'הזנה שגויה',
template: 'וודא כי שם המשתמש וסיסמה נכונים'
});
alertPopup.then(function(res) {
console.log('[JCE] [Info] Popup Confirmed - wrong Username/Password');
$scope.closeLogin();
});
console.log("Login Faild!", resp);
}
}, function(err) {
var alertPopup = $ionicPopup.alert({
title: 'שגיאת התחברות',
template: 'ישנה שגיאת התחברות - נסה מאוחר יותר'
});
alertPopup.then(function(res) {
console.log('[JCE] [Info] Popup Confirmed - Error Network');
$scope.closeLogin();
});
console.error('[JCE] [error] ERR', err);
// err.status will contain the status code
});
$scope.logout = function(){
localStorage.clear();
navigator.app.exitApp();
};
};
})
/*=======================================
= home Controller =
=======================================*/
.controller('homeCtrl', function($scope, $stateParams, $ionicViewService, $location, $timeout, $rootScope, ApiService) {
$scope.update = function(){
console.log("[JCE] [info]: Refreshing...");
ApiService.update();
if(window.localStorage['newNotes'] === "true")
$scope.newNotes = true;
else
$scope.newNotes = false;
if(window.localStorage['newGrades'] === "true")
$scope.newGrades = true;
else
$scope.newGrades = false;
$timeout(function() {
$scope.$broadcast('scroll.refreshComplete'); //close the popup after 3 seconds for some reason
}, 3000);
};
$scope.update();
$scope.goToNotes = function(){
window.localStorage['newNotes'] = "false";
$scope.newNotes = false;
$ionicViewService.nextViewOptions({
disableBack: true
});
$location.path( "/app/jcenews" );
};
$scope.goToGrades = function(){
window.localStorage['newGrades'] = "false";
$scope.newGrades = false;
$ionicViewService.nextViewOptions({
disableBack: true
});
$location.path( "/app/grades" );
};
$scope.isLoggedIn = function(){
if($scope.userData == null)
return false;
console.log("[JCE] [Info] User hase loged in once!");
return true;
};
$scope.$watch('isLoggedIn', function() {
//
});
$scope.version = "0.1.13alfa-develop_perview";
if(window.localStorage['newNotes'] == "true"){
$scope.newNotes = true;
}else{
$scope.newNotes = false;
}
var userStr = window.localStorage['userInfo'] || null;
if(userStr !== null)
$scope.userData = JSON.parse(userStr);
else
$scope.userData = null;
});