Skip to content

Commit

Permalink
Merge 9be5358 into e9f1bfc
Browse files Browse the repository at this point in the history
  • Loading branch information
wwelling committed Aug 9, 2018
2 parents e9f1bfc + 9be5358 commit 29fcd1c
Show file tree
Hide file tree
Showing 23 changed files with 351 additions and 246 deletions.
18 changes: 14 additions & 4 deletions app/config/apiMapping.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,21 +136,31 @@ var apiMapping = {
RemoteProjects: {
all: {
'endpoint': '/private/queue',
'controller': 'remote-projects'
'controller': 'projects/remote'
},
listen: {
'endpoint': '/channel',
'controller': 'remote-projects'
'controller': 'projects/remote'
}
},
ProjectsStats: {
all: {
'endpoint': '/private/queue',
'controller': 'projects/stats'
},
listen: {
'endpoint': '/channel',
'controller': 'projects/stats'
}
},
ActiveSprints: {
all: {
'endpoint': '/private/queue',
'controller': 'active-sprints'
'controller': 'sprints/active'
},
listen: {
'endpoint': '/channel',
'controller': 'active-sprints'
'controller': 'sprints/active'
}
}
};
50 changes: 25 additions & 25 deletions app/config/appConfig.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
var appConfig = {

'version': '1.0.0',
'version': '1.0.0',

'allowAnonymous': true,
'allowAnonymous': true,

'anonymousRole': 'ROLE_ANONYMOUS',
'anonymousRole': 'ROLE_ANONYMOUS',

// Set this to the webService if mocking AuthService
// Set this to the webService if mocking AuthService

'authService': 'https://labs.library.tamu.edu/auth3',
'webService': 'http://localhost:9001',
'authService': 'https://labs.library.tamu.edu/auth3',
'webService': 'http://localhost:9001',

'storageType': 'session',
'storageType': 'session',

'logging': {
'log': true,
'info': true,
'warn': true,
'error': true,
'debug': true
},
'logging': {
'log': true,
'info': true,
'warn': true,
'error': true,
'debug': true
},

'stompDebug': false,
'stompDebug': false,

/*
Determines the type of connection stomp will attempt to make with the service.
TYPES: websocket, xhr-streaming, xdr-streaming, eventsource, iframe-eventsource,
htmlfile, iframe-htmlfile, xhr-polling, xdr-polling, iframe-xhr-polling,
jsonp-polling
*/
'sockJsConnectionType': ['websocket', 'xhr-streaming', 'xhr-polling', 'xdr-streaming', 'xdr-polling', 'iframe-eventsource', 'iframe-htmlfile', 'jsonp-polling'],
/*
Determines the type of connection stomp will attempt to make with the service.
TYPES: websocket, xhr-streaming, xdr-streaming, eventsource, iframe-eventsource,
htmlfile, iframe-htmlfile, xhr-polling, xdr-polling, iframe-xhr-polling,
jsonp-polling
*/
'sockJsConnectionType': ['websocket', 'xhr-streaming', 'xhr-polling', 'xdr-streaming', 'xdr-polling', 'iframe-eventsource', 'iframe-htmlfile', 'jsonp-polling'],

// Set this to 'admin' or 'user' if using mock AuthService
// otherwise set to null or false
// Set this to 'admin' or 'user' if using mock AuthService
// otherwise set to null or false

'mockRole': null
'mockRole': null

};
8 changes: 4 additions & 4 deletions app/controllers/projectController.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
app.controller('ProjectController', function ($controller, $scope, NgTableParams, ApiResponseActions, ProjectRepo, RemoteProjectManagerRepo, RemoteProjectService, UserService) {
app.controller('ProjectController', function ($controller, $scope, NgTableParams, ApiResponseActions, ProjectRepo, RemoteProjectManagerRepo, RemoteProjectsService) {

angular.extend(this, $controller('AbstractController', {
$scope: $scope
Expand Down Expand Up @@ -76,7 +76,7 @@ app.controller('ProjectController', function ($controller, $scope, NgTableParams
});
};

UserService.userEvents().then(null, null, function () {
if ($scope.isManager() || $scope.isAdmin()) {
$scope.remoteProjectManagers = RemoteProjectManagerRepo.getAll();

$scope.remoteProjects = {};
Expand All @@ -90,7 +90,7 @@ app.controller('ProjectController', function ($controller, $scope, NgTableParams
};

var getRemoteProjectManagerById = function (id) {
RemoteProjectService.getAll(id).then(function (remoteProjects) {
RemoteProjectsService.getAll(id).then(function (remoteProjects) {
$scope.remoteProjects[id] = remoteProjects;
});
};
Expand All @@ -102,7 +102,7 @@ app.controller('ProjectController', function ($controller, $scope, NgTableParams
}
}
});
});
}

var buildTable = function () {
$scope.tableParams = new NgTableParams({
Expand Down
3 changes: 2 additions & 1 deletion app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,8 @@
<script src="directives/remoteProjectManagerFormDirective.js"></script>

<!-- Services -->
<script src="services/remoteProjectService.js"></script>
<script src="services/remoteProjectsService.js"></script>
<script src="services/projectsStatsService.js"></script>
<script src="services/activeSprintsService.js"></script>

<!-- Factories -->
Expand Down
14 changes: 12 additions & 2 deletions app/model/project.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
app.model("Project", function Project(RemoteProjectService) {
app.model("Project", function Project(ProjectsStatsService, RemoteProjectsService) {
return function Project() {

var project = this;

project.before(function () {
if (project.remoteProjectManager && project.scopeId) {
RemoteProjectService.getByScopeId(project.remoteProjectManager.id, project.scopeId).then(function (remoteProject) {
ProjectsStatsService.getById(project.id).then(function (projectStats) {
angular.extend(project, {
stats: projectStats
});
});
}
});

project.before(function () {
if (project.remoteProjectManager && project.scopeId) {
RemoteProjectsService.getByScopeId(project.remoteProjectManager.id, project.scopeId).then(function (remoteProject) {
angular.extend(project, {
remoteProject: remoteProject
});
Expand Down
48 changes: 48 additions & 0 deletions app/services/projectsStatsService.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
app.service('ProjectsStatsService', function ($q, WsApi) {

var projectsStats = [];

var defer = $q.defer();

var process = function (response) {
var apiRes = angular.fromJson(response.body);
if (apiRes.meta.status === 'SUCCESS') {
angular.extend(projectsStats, apiRes.payload['ArrayList<ProjectStats>']);
defer.resolve();
} else {
console.error(apiRes.meta);
throw "Unable to retrieve remote projects";
}
};

WsApi.listen(apiMapping.ProjectsStats.listen).then(null, null, function (response) {
process(response);
});

this.refreshProjectsStats = function () {
WsApi.fetch(apiMapping.ProjectsStats.all).then(function (response) {
process(response);
});
};

this.getProjectsStats = function () {
return projectsStats;
};

this.getById = function (id) {
return $q(function (resolve, reject) {
this.ready.then(function () {
for (var i in projectsStats) {
if (projectsStats[i].id == id) {
resolve(projectsStats[i]);
}
}
});
}.bind(this));
};

this.refreshProjectsStats();

this.ready = defer.promise;

});
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
app.service('RemoteProjectService', function ($q, WsApi) {
app.service('RemoteProjectsService', function ($q, WsApi) {

var remoteProjects = {};

Expand Down Expand Up @@ -29,13 +29,9 @@ app.service('RemoteProjectService', function ($q, WsApi) {
};

this.getRemoteProjects = function () {
return activeSprints;
return remoteProjects;
};

this.refreshRemoteProjects();

this.ready = defer.promise;

this.getAll = function (remoteProjectManagerId) {
return $q(function (resolve, reject) {
this.ready.then(function () {
Expand All @@ -48,12 +44,16 @@ app.service('RemoteProjectService', function ($q, WsApi) {
return $q(function (resolve, reject) {
this.ready.then(function () {
for (var i in remoteProjects[remoteProjectManagerId]) {
if (remoteProjects[remoteProjectManagerId][i].scopeId === scopeId) {
if (remoteProjects[remoteProjectManagerId][i].id === scopeId) {
resolve(remoteProjects[remoteProjectManagerId][i]);
}
}
});
}.bind(this));
};

this.refreshRemoteProjects();

this.ready = defer.promise;

});
13 changes: 6 additions & 7 deletions app/views/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,13 @@
<div class="row">

<table ng-table="tableParams" show-filter="false" class="table table-bordered table-striped project-table">
<tr ng-repeat="project in $data | orderBy: '-remoteProject.backlogItemCount'">
<tr ng-repeat="project in $data | orderBy: '-stats.backlogItemCount'">
<td title="'Project'">{{project.name}}</td>
<td title="'Remote Project'">{{project.remoteProject.name}}</td>
<td title="'Total Backlog Items'">{{project.remoteProject.backlogItemCount}}</td>
<td title="'Story Count'">{{project.remoteProject.storyCount}}</td>
<td title="'Defect Count'">{{project.remoteProject.defectCount}}</td>
<td title="'Request Count'">{{project.remoteProject.requestCount}}</td>
<td title="'Issue Count'">{{project.remoteProject.issueCount}}</td>
<td title="'Total Backlog Items'">{{project.stats.backlogItemCount}}</td>
<td title="'Feature Count'">{{project.stats.featureCount}}</td>
<td title="'Defect Count'">{{project.stats.defectCount}}</td>
<td title="'Request Count'">{{project.stats.requestCount}}</td>
<td title="'Issue Count'">{{project.stats.issueCount}}</td>
</tr>
</table>

Expand Down
9 changes: 3 additions & 6 deletions app/views/management/projects.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@
</tr>
</table>

<modal modal-id="addProjectModal" modal-view="views/modals/addProjectModal.html" modal-header-class="modal-header-primary"
wvr-modal-backdrop="static"></modal>
<modal modal-id="deleteProjectModal" modal-view="views/modals/deleteProjectModal.html" modal-header-class="modal-header-danger"
wvr-modal-backdrop="static"></modal>
<modal modal-id="editProjectModal" modal-view="views/modals/editProjectModal.html" modal-header-class="modal-header-primary"
wvr-modal-backdrop="static"></modal>
<modal modal-id="addProjectModal" modal-view="views/modals/addProjectModal.html" modal-header-class="modal-header-primary" wvr-modal-backdrop="static"></modal>
<modal modal-id="deleteProjectModal" modal-view="views/modals/deleteProjectModal.html" modal-header-class="modal-header-danger" wvr-modal-backdrop="static"></modal>
<modal modal-id="editProjectModal" modal-view="views/modals/editProjectModal.html" modal-header-class="modal-header-primary" wvr-modal-backdrop="static"></modal>
</div>
10 changes: 4 additions & 6 deletions app/views/modals/addProjectModal.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,20 @@ <h4 class="modal-title">Create Project</h4>
<validationmessage results="projectForms.getResults()"></validationmessage>

<div class="modal-body">
<validatedinput model="projectToCreate" property="name" label="Name" placeholder="Name of the Project" form="projectForms.create"
validations="projectForms.validations" results="projectRepo.getResults()">
<validatedinput model="projectToCreate" property="name" label="Name" placeholder="Name of the Project" form="projectForms.create" validations="projectForms.validations" results="projectRepo.getResults()">
</validatedinput>

<div class="form-group">
<label for="remoteProjectManager">Associate Remote Project Manager</label>
<select class="form-control" ng-options="remoteProjectManager.name for remoteProjectManager in remoteProjectManagers" ng-model="projectToCreate.remoteProjectManager"
name="remoteProjectManager">
<select class="form-control" ng-options="remoteProjectManager.name for remoteProjectManager in remoteProjectManagers" ng-model="projectToCreate.remoteProjectManager" name="remoteProjectManager">
<option value="" selected>None</option>
</select>
</div>

<div class="form-group" ng-if="projectToCreate.remoteProjectManager">
<label for="remoteProjectManager">Associate Version Project</label>
<select class="form-control" ng-options="vp.scopeId as vp.name for vp in getRemoteProjectManagerRemoteProjects(projectToCreate.remoteProjectManager.id) | orderBy:'name'"
ng-model="projectToCreate.scopeId" name="remoteProjectManager">
<select class="form-control" ng-options="vp.scopeId as vp.name for vp in getRemoteProjectManagerRemoteProjects(projectToCreate.remoteProjectManager.id) | orderBy:'name'" ng-model="projectToCreate.scopeId"
name="remoteProjectManager">
<option value="" selected>None</option>
</select>
</div>
Expand Down
13 changes: 6 additions & 7 deletions app/views/modals/addRemoteProjectManagerModal.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,16 @@ <h4 class="modal-title">Create Remote Project Manager</h4>
<validationmessage results="remoteProjectManagerForms.getResults()"></validationmessage>

<div class="modal-body">
<validatedinput model="remoteProjectManagerToCreate" property="name" label="Name" placeholder="Name of the Remote Project Manager"
form="remoteProjectManagerForms.create" validations="remoteProjectManagerForms.validations" results="remoteProjectManagerForms.getResults()">
<validatedinput model="remoteProjectManagerToCreate" property="name" label="Name" placeholder="Name of the Remote Project Manager" form="remoteProjectManagerForms.create" validations="remoteProjectManagerForms.validations"
results="remoteProjectManagerForms.getResults()">
</validatedinput>

<validatedselect options="serviceTypes" optionvalue="value" optionproperty="gloss" model="remoteProjectManagerToCreate" property="type"
label="Type" form="remoteProjectManagerForms.create" validations="remoteProjectManagerForms.validations" results="remoteProjectManagerForms.getResults()">
<validatedselect options="serviceTypes" optionvalue="value" optionproperty="gloss" model="remoteProjectManagerToCreate" property="type" label="Type" form="remoteProjectManagerForms.create" validations="remoteProjectManagerForms.validations"
results="remoteProjectManagerForms.getResults()">
</validatedselect>

<remoteProjectManager-form ng-if="remoteProjectManagerToCreate.type" management-settings="typeSettings(remoteProjectManagerToCreate.type)"
model="remoteProjectManagerToCreate">
</remoteProjectManager-form>
<remote-project-manager-form ng-if="remoteProjectManagerToCreate.type" management-settings="typeSettings(remoteProjectManagerToCreate.type)" model="remoteProjectManagerToCreate">
</remote-project-manager-form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="resetCreateRemoteProjectManager()">Cancel</button>
Expand Down
8 changes: 4 additions & 4 deletions app/views/modals/editProjectModal.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ <h4 class="modal-title">Edit Project</h4>
<validationmessage results="projectForms.getResults()"></validationmessage>

<div class="modal-body">
<validatedinput model="projectToEdit" property="name" label="Name" placeholder="Name of the Project" form="projectForms.edit"
validations="projectForms.validations" results="projectForms.getResults()" autocomplete="off">
<validatedinput model="projectToEdit" property="name" label="Name" placeholder="Name of the Project" form="projectForms.edit" validations="projectForms.validations" results="projectForms.getResults()"
autocomplete="off">
</validatedinput>

<div class="form-group">
Expand All @@ -24,8 +24,8 @@ <h4 class="modal-title">Edit Project</h4>

<div class="form-group" ng-if="projectToEdit.remoteProjectManager">
<label for="remoteProjectManager">Associate Version Project</label>
<select class="form-control" ng-options="vp.scopeId as vp.name for vp in getRemoteProjectManagerRemoteProjects(projectToEdit.remoteProjectManager.id) | orderBy:'name'"
ng-model="projectToEdit.scopeId" name="remoteProjectManager">
<select class="form-control" ng-options="vp.scopeId as vp.name for vp in getRemoteProjectManagerRemoteProjects(projectToEdit.remoteProjectManager.id) | orderBy:'name'" ng-model="projectToEdit.scopeId"
name="remoteProjectManager">
<option value="" selected>None</option>
</select>
</div>
Expand Down
13 changes: 6 additions & 7 deletions app/views/modals/editRemoteProjectManagerModal.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,16 @@ <h4 class="modal-title">Edit Remote Project Manager</h4>
<validationmessage results="remoteProjectManagerForms.getResults()"></validationmessage>

<div class="modal-body">
<validatedinput model="remoteProjectManagerToEdit" property="name" label="Name" placeholder="Name of the Remote Project Manager"
form="remoteProjectManagerForms.edit" validations="remoteProjectManagerForms.validations" results="remoteProjectManagerForms.getResults()">
<validatedinput model="remoteProjectManagerToEdit" property="name" label="Name" placeholder="Name of the Remote Project Manager" form="remoteProjectManagerForms.edit" validations="remoteProjectManagerForms.validations"
results="remoteProjectManagerForms.getResults()">
</validatedinput>

<validatedselect options="serviceTypes" optionvalue="value" optionproperty="gloss" model="remoteProjectManagerToEdit" property="type"
label="Type" form="remoteProjectManagerForms.edit" validations="remoteProjectManagerForms.validations" results="remoteProjectManagerForms.getResults()">
<validatedselect options="serviceTypes" optionvalue="value" optionproperty="gloss" model="remoteProjectManagerToEdit" property="type" label="Type" form="remoteProjectManagerForms.edit" validations="remoteProjectManagerForms.validations"
results="remoteProjectManagerForms.getResults()">
</validatedselect>

<remoteProjectManager-form ng-if="remoteProjectManagerToEdit.type" management-settings="typeSettings(remoteProjectManagerToEdit.type)"
model="remoteProjectManagerToEdit">
</remoteProjectManager-form>
<remote-project-manager-form ng-if="remoteProjectManagerToEdit.type" management-settings="typeSettings(remoteProjectManagerToEdit.type)" model="remoteProjectManagerToEdit">
</remote-project-manager-form>
</div>

<div class="modal-footer">
Expand Down

0 comments on commit 29fcd1c

Please sign in to comment.