Skip to content

Commit

Permalink
Add angular resources for new endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
jrbotros committed Dec 22, 2016
1 parent 6182215 commit c73e328
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 3 deletions.
8 changes: 7 additions & 1 deletion orchestra/static/orchestra/common/js/orchestra.js
Expand Up @@ -13,7 +13,13 @@

angular.module('orchestra', modules);

angular.module('orchestra.common', []);
angular.module('orchestra.common', ['ngResource'])
.config(function($resourceProvider) {
$resourceProvider.defaults.stripTrailingSlashes = false
$resourceProvider.defaults.actions.update = {
method: 'PUT'
}
});
angular.module('orchestra.routes', ['ngRoute']);
angular.module('orchestra.config', []);
angular.module('orchestra.timing', ['ui.select', 'ngSanitize', 'orchestra.common']);
Expand Down
35 changes: 34 additions & 1 deletion orchestra/static/orchestra/common/js/orchestra_api.js
@@ -1,13 +1,46 @@
var serviceModule = angular.module('orchestra.common');

serviceModule.factory('orchestraApi', function($http) {
serviceModule.factory('orchestraApi', function($http, $resource) {
var projectManagementBase = '/orchestra/api/interface/project_management/';

function getApiUrl(endpoint) {
return projectManagementBase + endpoint + '/';
}

function endpoint (modelName, actionName) {
var url = '/orchestra/api_new/' + modelName.toLowerCase() + '/:id/';
if (actionName) {
url += actionName + '/';
}
return url
}

// TODO(jrbotros): webpack, ES6ify, clean up
return {
Iteration: $resource(endpoint('iteration'), { id: '@id' }),
Project: $resource(endpoint('project'), { id: '@id' }, {
abort: { method: 'POST', url: endpoint('project', 'abort') },
add_slack_user: { method: 'POST', url: endpoint('project', 'add_slack_user') },
remove_slack_user: { method: 'POST', url: endpoint('project', 'remove_slack_user') },
create_subsequent_tasks: { method: 'POST', url: endpoint('project', 'create_subsequent_tasks') },
}),
Task: $resource(endpoint('task'), { id: '@id' }, {
assign: { method: 'POST', url: endpoint('task', 'assign') },
submit: { method: 'POST', url: endpoint('task', 'submit') },
reject: { method: 'POST', url: endpoint('task', 'reject') },
skip: { method: 'POST', url: endpoint('task', 'skip') },
revert: { method: 'POST', url: endpoint('task', 'revert') },
}),
TaskAssignment: $resource(endpoint('taskassignment'), { id: '@id' }, {
reassign: { method: 'POST', url: endpoint('taskassignment', 'reassign') },
}),
TimeEntry: $resource(endpoint('timeentry'), { id: '@id' }),
Worker: $resource(endpoint('worker'), { id: '@id' }, {
stop_timer: { method: 'POST', url: endpoint('worker', 'stop_timer') },
start_timer: { method: 'POST', url: endpoint('worker', 'start_timer') },
}),
WorkerCertification: $resource(endpoint('workercertification'), { id: '@id' }),

allProjects: function(projectId) {
return $http.get(getApiUrl('projects'));
},
Expand Down
3 changes: 2 additions & 1 deletion orchestra/templates/orchestra/index.html
Expand Up @@ -16,7 +16,8 @@

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-route.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-sanitize.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-resource.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-sanitize.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.3.1/ui-bootstrap-tpls.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment-with-locales.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.3/moment-timezone-with-data.min.js"></script>
Expand Down

0 comments on commit c73e328

Please sign in to comment.