Skip to content

Commit becb27e

Browse files
committed
Merge branch 'develop' into bugfix/CATS-1053-tags-added-to-sections-do-not-appear-until-refresh
# Conflicts: # CHANGELOG.md
2 parents 8afaa80 + 03762b5 commit becb27e

File tree

9 files changed

+56
-1
lines changed

9 files changed

+56
-1
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
55
and this project adheres to [Semantic Versioning](http://semver.org/).
66

77
## Unreleased
8+
9+
### Added
10+
- Added aility to delete extractor, both from api and GUI.
11+
[CATS-1044](https://opensource.ncsa.illinois.edu/jira/browse/CATS-1044)
12+
813
### Fixed
914
- Ability to delete tags on file page.
1015
[CATS-1042](https://opensource.ncsa.illinois.edu/jira/browse/CATS-1042)

app/api/Extractions.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,11 @@ class Extractions @Inject()(
448448
}
449449
}
450450

451+
def deleteExtractor(extractorName: String) = ServerAdminAction { implicit request =>
452+
extractors.deleteExtractor(extractorName)
453+
Ok(toJson(Map("status" -> "success")))
454+
}
455+
451456
def addExtractorInfo() = AuthenticatedAction(parse.json) { implicit request =>
452457

453458
// If repository is of type object, change it into an array.

app/controllers/Application.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,7 @@ class Application @Inject() (files: FileService, collections: CollectionService,
486486
api.routes.javascript.Extractions.submitDatasetToExtractor,
487487
api.routes.javascript.Extractions.cancelFileExtractionSubmission,
488488
api.routes.javascript.Extractions.cancelDatasetExtractionSubmission,
489+
api.routes.javascript.Extractions.deleteExtractor,
489490
api.routes.javascript.Folders.createFolder,
490491
api.routes.javascript.Folders.deleteFolder,
491492
api.routes.javascript.Folders.updateFolderName,
@@ -512,6 +513,7 @@ class Application @Inject() (files: FileService, collections: CollectionService,
512513
controllers.routes.javascript.Collections.newCollection,
513514
controllers.routes.javascript.Collections.newCollectionWithParent,
514515
controllers.routes.javascript.Spaces.stagingArea,
516+
controllers.routes.javascript.Extractors.selectExtractors,
515517
controllers.routes.javascript.CurationObjects.submit,
516518
controllers.routes.javascript.CurationObjects.getCurationObject,
517519
controllers.routes.javascript.CurationObjects.getUpdatedFilesAndFolders,

app/services/ExtractorService.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,6 @@ trait ExtractorService {
4040
def getExtractorInfo(extractorName: String): Option[ExtractorInfo]
4141

4242
def updateExtractorInfo(e: ExtractorInfo): Option[ExtractorInfo]
43+
44+
def deleteExtractor(extractorName: String)
4345
}

app/services/mongodb/MongoDBExtractorService.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,18 @@ class MongoDBExtractorService extends ExtractorService {
204204
}
205205
}
206206
}
207+
208+
def deleteExtractor(extractorName: String) {
209+
ExtractorInfoDAO.findOne(MongoDBObject("name" -> extractorName)) match {
210+
case Some(extractor) => {
211+
ExtractorInfoDAO.remove(MongoDBObject("name" -> extractor.name))
212+
}
213+
case None => {
214+
Logger.info("No extractor found with name: " + extractorName)
215+
}
216+
217+
}
218+
}
207219
}
208220

209221
object ExtractorServer extends ModelCompanion[ExtractorServer, ObjectId] {

app/views/extractorDetails.scala.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
@(extractor: ExtractorInfo)(implicit user: Option[models.User])
22

33
@main("Extractor Details") {
4+
<script src="@routes.Assets.at("javascripts/deleteUtils.js")" type="text/javascript"></script>
5+
<script src="@routes.Assets.at("javascripts/extractors/extractors.js")" type="text/javascript"></script>
46
<style>
57
strong { text-align: right; }
68
fieldset { margin-top: 5px; }
@@ -176,6 +178,7 @@
176178
<div class="col-sm-12">
177179
<!-- "Back" button -->
178180
<a class="btn btn-default" onclick="window.history.back()"><span class="glyphicon glyphicon-chevron-left" ></span> Back</a>
181+
<a class="btn btn-danger" onclick="confirmDeleteResource('extractor','extractor','@(extractor.name)','@(extractor.name.replace("'","&#39;"))', true, '@(routes.Extractors.selectExtractors())')">Delete</a>
179182
</div>
180183
</div>
181184
</div>

conf/routes

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,10 @@ GET /api/extractions/:id/status
429429
GET /api/extractions/:id/metadata @api.Extractions.fetch(id:UUID)
430430
GET /api/extractions/:id/statuses @api.Extractions.checkExtractionsStatuses(id:UUID)
431431

432+
DELETE /api/extractions/:extractorName/delete @api.Extractions.deleteExtractor(extractorName : String)
433+
432434
DELETE /api/files/:file_id/extractions/:msg_id @api.Extractions.cancelFileExtractionSubmission(file_id:UUID, msg_id: UUID)
433-
DELETE /api/datasets/:ds_id/extractions/:msg_id @api.Extractions.cancelDatasetExtractionSubmission(ds_id:UUID, msg_id: UUID)
435+
DELETE /api/datasets/:ds_id/extractions/:msg_id @api.Extractions.cancelDatasetExtractionSubmission(ds_id:UUID, msg_id: UUID)
434436

435437
# End of change segment
436438

public/javascripts/deleteUtils.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ function DeleteTemplate(resourceType, resourceId, isreload, url, resourceFromTyp
143143
} else if(resourceType == "curation folder" ) {
144144
//no redirect provided
145145
removeCurationFolder(resourceId, isreload, url);
146+
} else if(resourceType == "extractor") {
147+
//redirect to extractors
148+
removeExtractor(resourceId)
146149
}
147150
}
148151

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
function removeExtractor(extractorName){
2+
3+
console.log('removing extractor', extractorName);
4+
5+
var request = jsRoutes.api.Extractions.deleteExtractor(extractorName).ajax({
6+
type: 'DELETE'
7+
});
8+
9+
request.done(function (response, textStatus, jqXHR){
10+
var url = jsRoutes.controllers.Extractors.selectExtractors().url;
11+
window.location.href=url;
12+
});
13+
14+
request.fail(function (jqXHR, textStatus, errorThrown){
15+
console.error("The following error occurred: " + textStatus, errorThrown);
16+
var errMsg = "Something went wrong deleting extractor.";
17+
if (!checkErrorAndRedirect(jqXHR, errMsg)) {
18+
notify("The extractor was not deleted from the system due to : " + errorThrown, "error");
19+
}
20+
});
21+
}

0 commit comments

Comments
 (0)