Merge pull request #155 from sagidayan/UI
- team members in project - fixed
This commit is contained in:
commit
6437396125
6 changed files with 227 additions and 143 deletions
|
@ -92,7 +92,7 @@ def createMessage(token):
|
||||||
|
|
||||||
db.put(msg)
|
db.put(msg)
|
||||||
db.save
|
db.save
|
||||||
return Response(response=json.dumps(msg),
|
return Response(response=msg.to_JSON(),
|
||||||
status=200,
|
status=200,
|
||||||
mimetype="application/json")
|
mimetype="application/json")
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ angular.module('SeHub')
|
||||||
{
|
{
|
||||||
$scope.isStudent = false;
|
$scope.isStudent = false;
|
||||||
$scope.addMsg = false;
|
$scope.addMsg = false;
|
||||||
$scope.msgToPost = "";
|
|
||||||
$scope.oldText = "";
|
$scope.oldText = "";
|
||||||
$scope.messages = [];
|
$scope.messages = [];
|
||||||
$scope.userMessages = [];
|
$scope.userMessages = [];
|
||||||
|
@ -40,11 +39,10 @@ angular.module('SeHub')
|
||||||
|
|
||||||
$scope.addMessageClicked = function()
|
$scope.addMessageClicked = function()
|
||||||
{
|
{
|
||||||
$scope.addMsg = true; // Reveal the "POST" Button
|
$scope.addMsg = !$scope.addMsg; // Reveal the "POST" Button
|
||||||
}
|
}
|
||||||
$scope.postMessageClicked = function() // Posting the message itself
|
$scope.postMessageClicked = function() // Posting the message itself
|
||||||
{
|
{
|
||||||
console.log($scope.courseObj);
|
|
||||||
if($scope.msg.msgToAdd != null && $scope.courseObj.courseName)
|
if($scope.msg.msgToAdd != null && $scope.courseObj.courseName)
|
||||||
{
|
{
|
||||||
jsonNewMsg = {
|
jsonNewMsg = {
|
||||||
|
@ -68,9 +66,30 @@ angular.module('SeHub')
|
||||||
$scope.msg.msgToAdd = null;
|
$scope.msg.msgToAdd = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$scope.reviewTask = function(task)
|
||||||
|
{
|
||||||
|
//tasks/overview/:taskId/:submitterId/:gId', {
|
||||||
|
if(task.isPersonal) // As Lecturer
|
||||||
|
{
|
||||||
|
$location.path('/tasks/overview/' + task.id + '/' + $scope.user.id + '/' + $scope.user.id);
|
||||||
|
}
|
||||||
|
else // it's a project task
|
||||||
|
{
|
||||||
|
apiService.getProjectsByCourse(token, task.courseId).success(function(data)
|
||||||
|
{
|
||||||
|
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].id.toString())
|
||||||
|
$location.path('/tasks/overview/' + task.id + '/' + data[j].id + '/' + data[j].id);
|
||||||
|
}).error(function(err)
|
||||||
|
{
|
||||||
|
console.log(err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$scope.gotoTask = function(task)
|
$scope.gotoTask = function(task)
|
||||||
{
|
{
|
||||||
console.log(task);
|
|
||||||
if(task.isPersonal)
|
if(task.isPersonal)
|
||||||
{
|
{
|
||||||
$location.path('/tasks/fill/' + task.id + '/' + $scope.user.id);
|
$location.path('/tasks/fill/' + task.id + '/' + $scope.user.id);
|
||||||
|
@ -130,7 +149,6 @@ angular.module('SeHub')
|
||||||
{
|
{
|
||||||
console.log(err.message);
|
console.log(err.message);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.getCourses = function()
|
$scope.getCourses = function()
|
||||||
|
|
|
@ -11,10 +11,28 @@ angular.module('SeHub')
|
||||||
$scope.isMember = false;
|
$scope.isMember = false;
|
||||||
$scope.project = [];
|
$scope.project = [];
|
||||||
$scope.isInProject = false;
|
$scope.isInProject = false;
|
||||||
|
$scope.projectMessages = [];
|
||||||
|
$scope.msg = {};
|
||||||
|
|
||||||
// $scope.thisProject = {};
|
// $scope.thisProject = {};
|
||||||
// $scope.thisProject.courseName = $routeParams.className;
|
// $scope.thisProject.courseName = $routeParams.className;
|
||||||
|
|
||||||
|
|
||||||
|
$scope.displayProjectMessages = function()
|
||||||
|
{
|
||||||
|
apiService.getAllUserMessages(token).success(function(data)
|
||||||
|
{
|
||||||
|
$scope.projectMessages = data;
|
||||||
|
}).error(function(err)
|
||||||
|
{
|
||||||
|
console.log(err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.goToProfile = function(memberId)
|
||||||
|
{
|
||||||
|
$location.path('#/profile/' + memberId);
|
||||||
|
}
|
||||||
$scope.removeUserFromProject = function()
|
$scope.removeUserFromProject = function()
|
||||||
{
|
{
|
||||||
apiService.removeUserFromProject.success(function(data)
|
apiService.removeUserFromProject.success(function(data)
|
||||||
|
@ -67,12 +85,44 @@ angular.module('SeHub')
|
||||||
},
|
},
|
||||||
function()
|
function()
|
||||||
{ // No - Dont remove
|
{ // No - Dont remove
|
||||||
console.log("Not removed");
|
|
||||||
|
|
||||||
});
|
});
|
||||||
// $location.path('/class/' + data.id + '/' + data.courseName); // Will display all the projects in this course
|
// $location.path('/class/' + data.id + '/' + data.courseName); // Will display all the projects in this course
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.addMessageClicked = function()
|
||||||
|
{
|
||||||
|
$scope.addMsg = !$scope.addMsg; // Reveal the "POST" Button
|
||||||
|
}
|
||||||
|
$scope.postMessageClicked = function() // Posting the message itself
|
||||||
|
{
|
||||||
|
if($scope.msg.msgToAdd != null)
|
||||||
|
{
|
||||||
|
// console.log(msg.msgToAdd);
|
||||||
|
jsonNewMsg = {
|
||||||
|
'groupId': parseInt(projectId), // TODO Should be ===> $scope.courseObj.id
|
||||||
|
'message': $scope.msg.msgToAdd,
|
||||||
|
'isProject': true
|
||||||
|
};
|
||||||
|
console.log(jsonNewMsg.message);
|
||||||
|
console.log(jsonNewMsg.groupId);
|
||||||
|
console.log(jsonNewMsg.isProject);
|
||||||
|
|
||||||
|
apiService.createMessage(token, jsonNewMsg).success(function(data)
|
||||||
|
{
|
||||||
|
$scope.projectMessages.push(data);
|
||||||
|
}).error(function(err)
|
||||||
|
{
|
||||||
|
console.log(err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mdDialog.show($mdDialog.alert().title('Error Creating Message').content('Message content or Course is missing')
|
||||||
|
.ariaLabel('Send Message alert dialog').ok('Try Again!').targetEvent()); // Pop-up alert
|
||||||
|
}
|
||||||
|
$scope.msg.msgToAdd = null;
|
||||||
|
}
|
||||||
|
|
||||||
$scope.getProfileRoute = function(userName)
|
$scope.getProfileRoute = function(userName)
|
||||||
{
|
{
|
||||||
for(var i = 0; i < $scope.project.members.length; i++)
|
for(var i = 0; i < $scope.project.members.length; i++)
|
||||||
|
@ -124,5 +174,7 @@ angular.module('SeHub')
|
||||||
console.log(err.message);
|
console.log(err.message);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
$scope.displayProjectMessages(); // Display all messages in project
|
||||||
$scope.getProjectInfo(); // Get all this project data
|
$scope.getProjectInfo(); // Get all this project data
|
||||||
|
|
||||||
}]);
|
}]);
|
|
@ -21,7 +21,7 @@ angular.module('SeHub')
|
||||||
$scope.isMaster = (user.id === data.master_id);
|
$scope.isMaster = (user.id === data.master_id);
|
||||||
});
|
});
|
||||||
if (!data.isPersonal) {
|
if (!data.isPersonal) {
|
||||||
apiService.getProjectsById(token, groupId).sucsess(function(data) {
|
apiService.getProjectsById(token, groupId).success(function(data) {
|
||||||
$scope.group = data;
|
$scope.group = data;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -26,70 +26,10 @@
|
||||||
<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 ng-if="user.isLecturer"> <!-- Lecturer Mode -->
|
<div ng-if="user.isLecturer"> <!-- Lecturer Mode -->
|
||||||
<md-card>
|
|
||||||
<div flex = "90">
|
|
||||||
<md-content>
|
|
||||||
<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> -->
|
|
||||||
<div flex = "30" class="md-avatar">
|
|
||||||
<img ng-src="{{msg.user.avatar_url}}" style="width:100%">
|
|
||||||
</div>
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- <div> -->
|
|
||||||
<div flex = "20" layout = "row">
|
|
||||||
<div>
|
|
||||||
{{msg.user.username}}
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
{{msg.group.courseName}}
|
|
||||||
{{msg.group.projectName}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- <div> -->
|
|
||||||
<div flex = "40">
|
|
||||||
{{msg.message}}
|
|
||||||
</div>
|
|
||||||
<!-- </div> -->
|
|
||||||
</div>
|
|
||||||
<!---->
|
|
||||||
|
|
||||||
</md-card>
|
|
||||||
</md-content>
|
|
||||||
<!-- </md-content> -->
|
|
||||||
</md-tab>
|
|
||||||
<md-tab label="Tasks waiting for review">
|
|
||||||
<md-content class="md-padding">
|
|
||||||
<md-card ng-repeat = "task in userTasks" layout-padding>
|
|
||||||
<div>
|
|
||||||
Title:
|
|
||||||
<md-button ng-click="gotoTask(task)">
|
|
||||||
{{task.title}}
|
|
||||||
</md-button>
|
|
||||||
<br></br>
|
|
||||||
Description: {{task.description}}
|
|
||||||
</div>
|
|
||||||
</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>
|
|
||||||
</md-content>
|
|
||||||
</div>
|
|
||||||
</md-card>
|
|
||||||
<div class ="addMessage" layout="row" layout-margin layout padding>
|
<div class ="addMessage" layout="row" layout-margin layout padding>
|
||||||
<div>
|
<div>
|
||||||
<md-button ng-click="addMessageClicked()" ng class="md-raised md-primary" aria-label="aM"><i class="fa fa-comments"></i></md-button>
|
<md-button ng-click="addMessageClicked()" ng class="md-raised md-primary" aria-label="aM"><i class="fa fa-comments"></i>
|
||||||
|
</md-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="addMsg">
|
<div ng-if="addMsg">
|
||||||
|
@ -112,6 +52,51 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<md-card>
|
||||||
|
<div flex = "90">
|
||||||
|
<md-content>
|
||||||
|
<md-tabs md-dynamic-height md-border-bottom>
|
||||||
|
<md-tab label="Messages">
|
||||||
|
<md-content class="tabDesign">
|
||||||
|
<md-card ng-repeat = "msg in userMessages">
|
||||||
|
<div layout = "row" layout-padding>
|
||||||
|
<div flex = "10">
|
||||||
|
<img ng-src="{{msg.user.avatar_url}}" style="width:80%">
|
||||||
|
</div>
|
||||||
|
<div flex = "20" layout = "column">
|
||||||
|
<div>
|
||||||
|
{{msg.user.username}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{msg.group.courseName}}
|
||||||
|
{{msg.group.projectName}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div flex = "40">
|
||||||
|
{{msg.message}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</md-card>
|
||||||
|
</md-content>
|
||||||
|
</md-tab>
|
||||||
|
<md-tab label="Tasks waiting for review">
|
||||||
|
<md-content class="md-padding">
|
||||||
|
<md-card ng-repeat = "task in userTasks" layout-padding>
|
||||||
|
<div>
|
||||||
|
Title:
|
||||||
|
<md-button ng-click="reviewTask(task)">
|
||||||
|
{{task.title}}
|
||||||
|
</md-button>
|
||||||
|
<br></br>
|
||||||
|
Description: {{task.description}}
|
||||||
|
</div>
|
||||||
|
</md-card>
|
||||||
|
</md-content>
|
||||||
|
</md-tab>
|
||||||
|
</md-tabs>
|
||||||
|
</md-content>
|
||||||
|
</div>
|
||||||
|
</md-card>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="isStudent"> <!-- Student Mode -->
|
<div ng-if="isStudent"> <!-- Student Mode -->
|
||||||
<div layout = "column" flex = 90 layout-margin>
|
<div layout = "column" flex = 90 layout-margin>
|
||||||
|
@ -127,9 +112,36 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Latest Message-
|
Latest Message-
|
||||||
<md-card layout-margin layout-padding>
|
<md-card layout-margin layout-padding ng-if="!userMessages">
|
||||||
{{userMessages[0].message}}
|
{{userMessages[0].message}}
|
||||||
</md-card>
|
</md-card>
|
||||||
|
<md-card layout-margin layout-padding ng-if="userMessages">
|
||||||
|
No Messages.
|
||||||
|
</md-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class ="addMessage" layout="row" layout-margin layout padding>
|
||||||
|
<div>
|
||||||
|
<md-button ng-click="addMessageClicked()" ng class="md-raised md-primary" aria-label="aM"><i class="fa fa-comments"></i></md-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div ng-if="addMsg">
|
||||||
|
<div layout = "row" layout-margin layout padding layout-align = "left center">
|
||||||
|
<md-button ng-click="postMessageClicked()" ng class="md-raised md-primary">Post</md-button>
|
||||||
|
</div>
|
||||||
|
<div class="port_spacer"></div>
|
||||||
|
<div layout-padding layout = "row">
|
||||||
|
<div flex = "60">
|
||||||
|
<md-input-container>
|
||||||
|
<label> Write Your Desired Message Here And Press Post</label>
|
||||||
|
<input type="text" minlength="1" ng-model="msg.msgToAdd" required></input>
|
||||||
|
</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-content>
|
<md-content>
|
||||||
|
@ -137,8 +149,6 @@
|
||||||
<div flex="100">
|
<div flex="100">
|
||||||
<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="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 flex = "30" class="md-avatar">
|
||||||
|
@ -158,9 +168,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</md-card>
|
</md-card>
|
||||||
</md-content>
|
|
||||||
<!-- </div> -->
|
|
||||||
</md-content>
|
|
||||||
</md-tab>
|
</md-tab>
|
||||||
<md-tab label="Tasks">
|
<md-tab label="Tasks">
|
||||||
<md-content class="md-padding">
|
<md-content class="md-padding">
|
||||||
|
@ -176,40 +183,9 @@
|
||||||
</md-card>
|
</md-card>
|
||||||
</md-content>
|
</md-content>
|
||||||
</md-tab>
|
</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>
|
</md-tabs>
|
||||||
</div>
|
</div>
|
||||||
</md-card>
|
</md-card>
|
||||||
<div class ="addMessage" layout="row" layout-margin layout padding>
|
|
||||||
<div>
|
|
||||||
<md-button ng-click="addMessageClicked()" ng class="md-raised md-primary" aria-label="aM"><i class="fa fa-comments"></i></md-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div ng-if="addMsg">
|
|
||||||
<div layout = "row" layout-margin layout padding layout-align = "left center">
|
|
||||||
<md-button ng-click="postMessageClicked()" ng class="md-raised md-primary">Post</md-button>
|
|
||||||
<md-button ng-click="clearAllClicked()" ng class="md-raised md-primary">Clear All</md-button>
|
|
||||||
</div>
|
|
||||||
<div class="port_spacer"></div>
|
|
||||||
<div layout-padding layout = "row">
|
|
||||||
<div flex = "60">
|
|
||||||
<md-input-container>
|
|
||||||
<label> Write Your Desired Message Here And Press Post</label>
|
|
||||||
<input type="text" minlength="1" ng-model="msg.msgToAdd" required></input>
|
|
||||||
</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>
|
|
||||||
</md-content>
|
</md-content>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -43,18 +43,22 @@
|
||||||
<div flex = "10" layout-padding layout-margin border = "1">
|
<div flex = "10" layout-padding layout-margin border = "1">
|
||||||
Team Members:
|
Team Members:
|
||||||
<ul layout-padding>
|
<ul layout-padding>
|
||||||
<!-- <div layout = "row"> -->
|
<div layout = "column" ng-repeat = "member in project.members">
|
||||||
<li ng-repeat = "member in project.members">
|
<!-- <li ng-repeat = "member in project.members"> -->
|
||||||
|
<div layout = "row">
|
||||||
<div>
|
<div>
|
||||||
<a ng-href="#/profile/{{member.id}}" style="text-decoration:none; color:black;"> {{member.name}}</a>
|
<md-button ng-click = "goToProfile(member.id)">
|
||||||
|
{{member.name}}
|
||||||
|
</md-button>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if = "isEditPressed">
|
<div ng-if = "isEditPressed">
|
||||||
<md-button ng-click="removeUserFromProject()" ng class="md-raised md-primary" aria-label="rU">
|
<md-button ng-click="removeUserFromProject()" ng class="md-raised md-primary" aria-label="rU">
|
||||||
<i class="fa fa-times"></i>
|
<i class="fa fa-times"></i>
|
||||||
</md-button>
|
</md-button>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<!-- </div> -->
|
<!-- </li> -->
|
||||||
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div flex = "40">
|
<div flex = "40">
|
||||||
|
@ -73,6 +77,25 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</md-card>
|
</md-card>
|
||||||
|
<div class ="addMessage" layout="row" layout-margin layout padding>
|
||||||
|
<div>
|
||||||
|
<md-button ng-click="addMessageClicked()" ng class="md-raised md-primary" aria-label="aM"><i class="fa fa-comments"></i></md-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div ng-if="addMsg">
|
||||||
|
<div layout = "row" layout-margin layout padding layout-align = "left center">
|
||||||
|
<md-button ng-click="postMessageClicked()" ng class="md-raised md-primary">Post</md-button>
|
||||||
|
</div>
|
||||||
|
<div class="port_spacer"></div>
|
||||||
|
<div layout-padding layout = "row">
|
||||||
|
<div flex = "60">
|
||||||
|
<md-input-container>
|
||||||
|
<label> Write Your Desired Message Here And Press Post</label>
|
||||||
|
<input type="text" minlength="1" ng-model="msg.msgToAdd" required></input>
|
||||||
|
</md-input-container>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div flex = "96" style="height:70%;">
|
<div flex = "96" style="height:70%;">
|
||||||
<div flex>
|
<div flex>
|
||||||
|
@ -80,10 +103,25 @@
|
||||||
<md-content class="md-padding">
|
<md-content class="md-padding">
|
||||||
<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="md-padding">
|
<md-card ng-repeat = "msg in userMessages">
|
||||||
<h1 class="md-display-2">Messages</h1>
|
<div layout = "column" layout-padding>
|
||||||
<p>Messages...</p>
|
<div flex = "30" class="md-avatar">
|
||||||
</md-content>
|
<img ng-src="{{msg.user.avatar_url}}" style="width:100%">
|
||||||
|
</div>
|
||||||
|
<div flex = "20" layout = "row">
|
||||||
|
<div>
|
||||||
|
{{msg.user.username}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{msg.group.courseName}}
|
||||||
|
{{msg.group.projectName}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div flex = "40">
|
||||||
|
{{msg.message}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</md-card>
|
||||||
</md-tab>
|
</md-tab>
|
||||||
<md-tab label="Commits">
|
<md-tab label="Commits">
|
||||||
<md-content class="tabDesign">
|
<md-content class="tabDesign">
|
||||||
|
|
Loading…
Reference in a new issue