Skip to content

Commit

Permalink
Added context action to refresh current context
Browse files Browse the repository at this point in the history
  • Loading branch information
rladdusaw committed Apr 26, 2019
1 parent 35e95df commit 711345e
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package edu.tamu.cap.controller.repositoryviewcontext;

import static edu.tamu.weaver.response.ApiStatus.SUCCESS;
import static org.springframework.web.bind.annotation.RequestMethod.POST;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.repository.query.Param;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import edu.tamu.cap.model.RepositoryView;
import edu.tamu.cap.service.RepositoryViewService;
import edu.tamu.weaver.messaging.model.MessageAction;
import edu.tamu.weaver.messaging.service.MessagingService;
import edu.tamu.weaver.response.ApiResponse;

@RestController
@RequestMapping("repository-view-context/{type}/{repositoryViewId}/message")
public class RepositoryViewContextMessageController {

@Value("${app.messaging.channel:cap}")
private String MESSAGING_CHANNEL;

@Autowired
private MessagingService messagingService;

@RequestMapping(value = "refresh", method = POST)
@PreAuthorize("hasRole('USER')")
public ApiResponse refresh(RepositoryViewService<?> repositoryViewService, @Param("contextUri") String contextUri) {
Map<String, String> payload = new HashMap<String, String>();
System.out.println("\n\n\ncontextUri: " + contextUri + "\n\n\n");
RepositoryView repositoryView = repositoryViewService.getRepositoryView();
payload.put("id", contextUri.replace(repositoryView.getRootUri(), ""));
payload.put("action", MessageAction.REFRESH.toString());
messagingService.sendMessage(MESSAGING_CHANNEL, payload);
return new ApiResponse(SUCCESS);
}

}
6 changes: 6 additions & 0 deletions src/main/webapp/app/config/apiMapping.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ var apiMapping = {
'endpoint': '/private/queue',
'controller': 'repository-view-context',
'method': ':type/:repositoryViewId/resource/fixity'
},
refreshContext: {
'endpoint': '/private/queue',
'httpMethod': 'POST',
'controller': 'repository-view-context',
'method': ':type/:repositoryViewId/message/refresh'
}
},
FixityReport: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ cap.controller("IrContextController", function ($controller, $location, $routePa
});
};

$scope.refreshContext = function() {
$scope.context.refreshContext();
};

$scope.openFixity = function(uriOfContextToCheck) {
$scope.fixityReport = new FixityReport({
repositoryView: $scope.context.repositoryView,
Expand Down
11 changes: 11 additions & 0 deletions src/main/webapp/app/model/repositoryViewContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,17 @@ cap.model("RepositoryViewContext", function ($q, $filter, $interval, $location,
return createPromise;
};

repositoryViewContext.refreshContext = function() {
var refreshPromise = repositoryViewContext.repositoryView.performRequest(repositoryViewContext.getMapping().refreshContext, {
method: HttpMethodVerbs.POST,
query: {
contextUri: repositoryViewContext.uri
}
});

return refreshPromise;
};

repositoryViewContext.createMetadata = function (metadataTriples) {

var promises = [];
Expand Down
1 change: 1 addition & 0 deletions src/main/webapp/app/views/repositoryViewContext.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<li class="dropdown-header">Container Actions</li>
<li role="menuitem" ng-class="{'disabled': context.repositoryView.getTransaction().active}" ng-if="context.features.transacting" ng-click="context.repositoryView.getTransaction().active||startTransaction()"><a href="#"><span class="glyphicon glyphicon-play-circle"></span> Start Transaction</a></li>
<li role="menuitem" ng-class="{'disabled': context.repositoryView.getTransaction().active}" ng-if="context.features.versioning" ng-click="context.repositoryView.getTransaction().active||openModal('#versionsModal')"><a href="#"><span class="glyphicon glyphicon-scissors"></span> Versions</a></li>
<li role="menuitem" ng-click="refreshContext()"><a href="#"><span class="glyphicon glyphicon-refresh"></span> Emit Refresh Message</a></li>
<li role="menuitem" class="disabled"><a href="#"><span class="glyphicon glyphicon-move"></span> Move</a></li>
<li role="menuitem" class="disabled"><a href="#"><span class="glyphicon glyphicon-random"></span> Migrate</a></li>
<li role="menuitem" class="disabled"><a href="#"><span class="glyphicon glyphicon-export"></span> Export</a></li>
Expand Down

0 comments on commit 711345e

Please sign in to comment.