Merge branch 'master' of github.com:sagidayan/SE-Hub

This commit is contained in:
Sagi Dayan 2015-08-02 16:57:50 +03:00
commit 100b37e243
7 changed files with 205 additions and 197 deletions

View file

@ -403,7 +403,7 @@ def getAllFutureTasks(token):
<br> <br>
""" """
user = get_user_by_token user = get_user_by_token(token)
if user is None: if user is None:
return bad_request("Bad User Token") return bad_request("Bad User Token")

View file

@ -8,6 +8,7 @@ angular.module('SeHub')
$scope.oldText = ""; $scope.oldText = "";
$scope.messages = []; $scope.messages = [];
$scope.userMessages = []; $scope.userMessages = [];
$scope.userTasks = [];
$scope.messagesDisplay = []; $scope.messagesDisplay = [];
$scope.courses = []; $scope.courses = [];
$scope.campuses = []; $scope.campuses = [];
@ -32,7 +33,7 @@ angular.module('SeHub')
{ {
apiService.getAllUserMessages(token).success(function(data) apiService.getAllUserMessages(token).success(function(data)
{ {
console.log(data); // console.log(data);
$scope.userMessages = data; $scope.userMessages = data;
}).error(function(err) }).error(function(err)
{ {
@ -40,7 +41,7 @@ angular.module('SeHub')
}); });
} }
$scope.displayMessages(); // // $scope.displayMessages(); //
$scope.addMessageClicked = function() $scope.addMessageClicked = function()
{ {
@ -64,10 +65,10 @@ angular.module('SeHub')
}).error(function(err) }).error(function(err)
{ {
console.log("Error Below"); console.log("Error Below");
console.log(err); console.log(err.message);
}); });
$scope.messages.push({"text": $scope.msg.msgToAdd}); $scope.userMessages.push({"text": $scope.msg.msgToAdd});
$location.path('/home/'); $location.path('/home/');
} }
else else
@ -78,25 +79,54 @@ angular.module('SeHub')
$scope.msg.msgToAdd = null; $scope.msg.msgToAdd = null;
} }
$scope.gotoTask = function(task)
{
console.log(task);
if(task.isPersonal)
{
$location.path('/tasks/fill/' + task.id + '/' + $scope.user.id);
}
else // it's a project task
{
apiService.getProjectsByCourse(token, task.courseId).success(function(data)
{
console.log($scope.user);
for(var i = 0; i < $scope.user.projects_id_list.length; i++)
for(var j = 0; j < data.length; j++)
{
if($scope.user.projects_id_list[i] === data[j])
{
$location.path('/tasks/fill/' + task.id + '/' + data[j].id);
}
}
}).error(function(err)
{
console.log(err.message);
});
}
}
$scope.displayTasks = function() $scope.displayTasks = function()
{ {
apiService.getAllUserTasks(token).success(function(data) // Get all Tasks // TODO change to closest TASK apiService.getAllFutureTasks(token).success(function(data) // Get all Tasks // TODO change to closest TASK
{ {
$scope.tasks = data; $scope.userTasks = data;
console.log(data); console.log(data);
}).error(function(err) }).error(function(err)
{ {
console.log(err.message);
}); });
}
// apiService.getAllFutureTasks(token, courseId).success(function(data) // need to check courseId $scope.getProjects = function(courseId)
// { {
// console.log("YE"); apiService.getProjectsByCourse(token, courseId).success(function(data)
// }).error(function(err) {
// { return data;
// console.log("Error: " + err.message); }).error(function(err)
// }); {
console.log(err.message);
});
} }
$scope.getCampuses = function() $scope.getCampuses = function()
@ -105,13 +135,13 @@ angular.module('SeHub')
{ {
$scope.campuses = data; $scope.campuses = data;
$scope.getCourses(); // Get all the courses info $scope.getCourses(); // Get all the courses info
if($scope.messages) if($scope.userMessages)
{ {
//$scope.displayMessages(); // // Display all messages in message feed and the latest one //$scope.displayMessages(); // // Display all messages in message feed and the latest one
} }
}).error(function(err) }).error(function(err)
{ {
console.log("Error: " + err.message); console.log(err.message);
}); });
} }
@ -157,25 +187,6 @@ angular.module('SeHub')
console.log($scope.courseObj); console.log($scope.courseObj);
} }
// $scope.chooseCourseClicked = function()
// {
// console.log("Click ");
// console.log($scope.choosenCourse);
// if($scope.choosenCourse)
// {
// console.log("here");
// $scope.courseObj = null;
// for(var i = 0; i < $scope.courses.length; i++)
// {
// if($scope.courses[i].courseName === $scope.choosenCourse)
// {
// $scope.courseObj = $scope.courses[i];
// console.log($scope.courseObj);
// }
// }
// }
// }
$scope.chooseProjectClicked = function() $scope.chooseProjectClicked = function()
{ {
console.log("choose project Clicked!!"); console.log("choose project Clicked!!");
@ -184,8 +195,13 @@ angular.module('SeHub')
$scope.getCampuses(); // Get all the campuses info $scope.getCampuses(); // Get all the campuses info
// animation // animation
if($scope.userMessages)
{
$scope.displayMessages(); // // Display all messages in message feed and the latest one
}
// $scope.displayMessages(); // $scope.displayMessages();
$scope.displayTasks(); // Display all tasks in task feed and the latest one $scope.displayTasks(); // Display all tasks in task feed and the latest one
// $scope.getProjects(); // Get all projects info
$scope.isEnterd = top.setIsEnterd; $scope.isEnterd = top.setIsEnterd;
}]); }]);

View file

@ -52,7 +52,6 @@ angular.module('SeHub')
}]; }];
dataService.initService($scope); //Start Data Sync Service (For User) dataService.initService($scope); //Start Data Sync Service (For User)
console.log(data);
if ($scope.user.isFirstLogin) { if ($scope.user.isFirstLogin) {
$scope.menuObj = {}; $scope.menuObj = {};
$scope.isInRegisterMode = true; $scope.isInRegisterMode = true;

View file

@ -1,14 +1,32 @@
angular.module('SeHub') angular.module('SeHub')
.controller('tasksController', ['$scope', '$cookies', '$cookieStore', '$window', '$location', '$mdToast', '$mdDialog', 'apiService', '$rootScope', function ($scope, $cookies, $cookieStore, $window, $location, $mdToast, $mdDialog, apiService ,$rootScope) .controller('tasksController', ['$scope', '$cookies', '$cookieStore', '$window', '$location', '$mdToast', '$mdDialog', 'apiService', '$rootScope', function ($scope, $cookies, $cookieStore, $window, $location, $mdToast, $mdDialog, apiService ,$rootScope)
{ {
console.log("in controller"); $scope.lecturerTasks = [];
$rootScope.seToken = $cookies['com.sehub.www'];
var token = $rootScope.seToken;
$scope.createTaskClicked = function() $scope.createTaskClicked = function()
{ {
$location.path("/tasks/new"); // Reference to 'newTask' page $location.path("/tasks/new"); // Reference to 'newTask' page
} }
$scope.displayTasks = function()
{
apiService.getAllFutureTasks(token).success(function(data) // Get all Tasks // TODO change to closest TASK
{
$scope.lecturerTasks = data;
console.log(data);
}).error(function(err)
{
console.log(err.message);
});
}
$scope.gotoTask = function(taskId)
{
$location.path('/tasks/fill/' + taskId);
}
$scope.displayTasks(); // Calling tasks with task id
}]); }]);

View file

@ -197,8 +197,8 @@ service.factory('apiService', ['$http', function($http) {
}; };
return $http(req); return $http(req);
}, },
getAllFutureTasks: function(token, courseId){ getAllFutureTasks: function(token){
var url = (DEBUG ? "http://localhost:8080" : "http://se-hub.appspot.com") + "/api/tasks/getAllFutureCampusTasks/" + token + "/" + courseId; var url = (DEBUG ? "http://localhost:8080" : "http://se-hub.appspot.com") + "/api/tasks/getAllFutureTasks/" + token;
req = { req = {
method: "GET", method: "GET",
url: url url: url

View file

@ -25,90 +25,23 @@
<md-content> <md-content>
<h1 style="margin-left:15px;"><i class="fa fa-dashboard"></i> Dash Board</h1> <h1 style="margin-left:15px;"><i class="fa fa-dashboard"></i> Dash Board</h1>
</md-content> </md-content>
<div layout = "column" flex = 90 layout-margin>
<div>
Closest Task-
<md-card layout-margin layout-padding>
<div>
In Course: {{tasks[0].courseName}}
</div>
</md-card>
</div>
<div>
Latest Message-
<md-card layout-margin layout-padding>
{{userMessages[0].message}}
</md-card>
</div>
</div>
<!--
<table style="width:100%;" border = "1">
<tr>
<th>Message</th>
<th style = "width:20%;">Date</th>
<th style = "width:10%;">Committer</th>
</tr>
<tr ng-repeat = "commit in project.info.commits" layout-margin align = "center">
<td>
<span ng-repeat = "msg in commit">
<a target = "_blank"ng-href="{{commit.html_url}}"
style="text-decoration:none; color:black;">
{{msg.message}}
</a>
</span>
</td>
<td>
<span ng-repeat = "date in commit.author">
{{date.date}}
</span>
</td>
<td ng-repeat = "member in project.members">
<a ng-href="#/profile/{{member.id}}" style="text-decoration:none; color:black;">
{{member.name}}
</a>
</td>
</tr>
</table>
-->
<div ng-if="user.isLecturer"> <!-- Lecturer Mode --> <div ng-if="user.isLecturer"> <!-- Lecturer Mode -->
<md-card> <md-card>
<div flex = 90> <div flex = "90">
<md-content> <md-content>
<md-tabs md-dynamic-height md-border-bottom> <md-tabs md-dynamic-height md-border-bottom>
<md-tab label="Messages"> <md-tab label="Messages">
<md-content class="tabDesign"> <md-content class="tabDesign">
<md-content class="messagesContent"> <!-- <md-content class="messagesContent"> -->
<md-card ng-repeat = "msg in userMessages"> <md-card ng-repeat = "msg in userMessages">
<div layout = "column" layout-padding> <div layout = "column" layout-padding>
<div flex = 30 class="md-avatar"> <!-- <div> -->
<div flex = "30" class="md-avatar">
<img ng-src="{{msg.user.avatar_url}}" style="width:100%"> <img ng-src="{{msg.user.avatar_url}}" style="width:100%">
</div> </div>
<div flex = 20 layout = "row"> <!-- </div> -->
<div> <!-- <div> -->
{{msg.user.username}} <div flex = "20" layout = "row">
</div>
<div>
{{msg.group.courseName}}
<br></br>
{{msg.group.projectName}}
</div>
</div>
<div flex = 40>
{{msg.message}}
</div>
</div>
<!-- <div flex layout="column">
<div flex = 30 class="md-avatar" layout-padding layout-margin>
<img ng-src="{{msg.user.avatar_url}}" style="width:100%">
</div>
<div layout = "row" flex = 15 layout-padding>
<div> <div>
{{msg.user.username}} {{msg.user.username}}
</div> </div>
@ -117,31 +50,39 @@
{{msg.group.projectName}} {{msg.group.projectName}}
</div> </div>
</div> </div>
<div flex = 50 layout-padding> <!-- </div> -->
<!-- <div> -->
<div flex = "40">
{{msg.message}} {{msg.message}}
</div> </div>
</div> --> <!-- </div> -->
</div>
<!---->
</md-card> </md-card>
</md-content> </md-content>
<!-- </div> --> <!-- </md-content> -->
</md-content>
</md-tab> </md-tab>
<md-tab label="Tasks"> <md-tab label="Tasks waiting for review">
<md-content class="md-padding"> <md-content class="md-padding">
<h1 class="md-display-2">Tasks</h1> <md-card ng-repeat = "task in userTasks" layout-padding>
<div> <div>
Title:
<md-button ng-click="gotoTask(task)">
{{task.title}}
</md-button>
<br></br>
Description: {{task.description}}
</div> </div>
</md-card>
</md-content> </md-content>
</md-tab> </md-tab>
<md-tab label="two"> <!-- <md-tab label="two">
<md-content class="md-padding"> <md-content class="md-padding">
<h1 class="md-display-2">Tab Two</h1> <h1 class="md-display-2">Tab Two</h1>
Two Two
</md-content> </md-content>
</md-tab> </md-tab> -->
</md-tabs> </md-tabs>
</md-content> </md-content>
</div> </div>
@ -171,75 +112,104 @@
</div> </div>
</div> </div>
</div> </div>
<!-- </md-content> -->
</div> </div>
<div ng-if="isStudent"> <!-- Student Mode --> <div ng-if="isStudent"> <!-- Student Mode -->
<div layout = "column" flex = 90 layout-margin>
<div>
Closest Task-
<md-card layout-margin layout-padding>
<div>
<md-button ng-click="gotoTask(userTasks[0])">
{{userTasks[0].title}}
</md-button>
</div>
</md-card>
</div>
<div>
Latest Message-
<md-card layout-margin layout-padding>
{{userMessages[0].message}}
</md-card>
</div>
</div>
<md-content> <md-content>
<div layout="row">
<div flex="65">
<md-card> <md-card>
<p class = "messagesFeed">Messages</p> <div flex="100">
</md-card> <md-tabs md-dynamic-height md-border-bottom>
<md-tab label="Messages">
<md-content class="tabDesign">
<md-content class="messagesContent">
<md-card ng-repeat = "msg in userMessages">
<div layout = "column" layout-padding>
<div flex = "30" class="md-avatar">
<img ng-src="{{msg.user.avatar_url}}" style="width:100%">
</div> </div>
<div flex="34"> <div flex = "20" layout = "row">
<md-card>
<p class = "tasksFeed">Tasks</p>
</md-card>
</div>
</div>
<div layout="row">
<div flex="65">
<md-card>
<div class = "messagesContent">
<md-card ng-repeat = "msg in messages">
<div layout="column">
<div layout="row" layout-margin layout-padding>
<div flex="10">
<img ng-src="{{user.avatar_url}}" class="roundUserAvatar" style = "width:70%;">
</div>
<div flex>
<div layout = "column">
<div> <div>
<b>{{user.name}}</b> {{msg.user.username}}
</div> </div>
<div> <div>
class_name {{msg.group.courseName}}
{{msg.group.projectName}}
</div> </div>
</div> </div>
<div flex = "40">
{{msg.message}}
</div> </div>
</div> </div>
</md-card>
</md-content>
<!-- </div> -->
</md-content>
</md-tab>
<md-tab label="Tasks">
<md-content class="md-padding">
<md-card ng-repeat = "task in userTasks" layout-padding>
<div> <div>
<div flex="69" class="msgSent" layout-margin layout-padding> Title:
{{msg.text}} <md-button ng-click="gotoTask(task)">
</div> {{task.title}}
</div> </md-button>
<br></br>
Description: {{task.description}}
</div> </div>
</md-card> </md-card>
</md-content>
</md-tab>
<!-- <md-tab label="two">
<md-content class="md-padding">
<h1 class="md-display-2">Tab Two</h1>
Two
</md-content>
</md-tab> -->
</md-tabs>
</div> </div>
</md-card> </md-card>
</div> <div class ="addMessage" layout="row" layout-margin layout padding>
<div flex="34"> <div>
<md-card> <md-button ng-click="addMessageClicked()" ng class="md-raised md-primary"><i class="fa fa-comments"></i></md-button>
<p class = "tasksContent"> </div>
For Task 3 Press: <a href="http://localhost:8080/home#/tasks">Task #3</a> </div>
<br></br> <div ng-if="addMsg">
For Task 4 Press: <a href="http://localhost:8080/home#/home">Task #4</a> <div layout = "row" layout-margin layout padding layout-align = "left center">
<br></br> <md-button ng-click="postMessageClicked()" ng class="md-raised md-primary">Post</md-button>
For Task 5 Press: <a href="http://localhost:8080/home#/home">Task #5</a> <md-button ng-click="clearAllClicked()" ng class="md-raised md-primary">Clear All</md-button>
<br></br> </div>
For Task 6 Press: <a href="http://localhost:8080/home#/home">Task #6</a> <div class="port_spacer"></div>
<br></br> <div layout-padding layout = "row">
For Task 7 Press: <a href="http://localhost:8080/home#/home">Task #7</a> <div flex = "60">
<br></br> <md-input-container>
For Task 8 Press: <a href="http://localhost:8080/home#/home">Task #8</a> <label> Write Your Desired Message Here And Press Post</label>
</p> <input type="text" minlength="1" ng-model="msg.msgToAdd" required></input>
</md-card> </md-input-container>
</div>
<div flex = "30">
<md-select placeholder="Choose Course" ng-model="courseObj.name" ng-change="chooseCourseClicked()" style="z-index: 300" class="courseDropDown" required>
<md-option ng-repeat="c in courses" value="{{c.courseName}}">{{c.courseName}}</md-option>
</md-select>
</div>
</div> </div>
</div> </div>
<!-- <md-button ng-click="chooseCourseClicked()" ng class="md-raised md-primary">Choose Course</md-button> -->
<!-- <md-select placeholder="Choose Course" ng-model="course" ng-click="chooseCourseClicked()" style="z-index: 300"> -->
<!-- <md-option ng-switch="user.isLecturer" ng-repeat="c in courses" value="{{c.title}}">{{c.title}}</md-option> -->
<!-- </md-select> -->
</md-content> </md-content>
</div> </div>
</div> </div>

View file

@ -24,8 +24,13 @@
</md-tab> </md-tab>
<md-tab label="Not Submitted"> <md-tab label="Not Submitted">
<md-content class="md-padding"> <md-content class="md-padding">
<h1 class="md-display-2">Not Submitted</h1> <md-card ng-repeat = "task in lecturerTasks">
<p> Not Submitted ..</p> <md-button ng-click="gotoTask(task.id)">
{{task.title}}
</md-button>
</md-card>
</md-content> </md-content>
</md-tab> </md-tab>
<div ng-if = "user.isLecturer"> <div ng-if = "user.isLecturer">