Skip to content

Instantly share code, notes, and snippets.

@jeremythuff
Last active May 23, 2017 13:45
Show Gist options
  • Save jeremythuff/ff068285554d0556d52478bb002b8b8a to your computer and use it in GitHub Desktop.
Save jeremythuff/ff068285554d0556d52478bb002b8b8a to your computer and use it in GitHub Desktop.
// CONVENTION: must match model name, case sensitive
var apiMapping = {
ActionLog: {},
ControlledVocabulary: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/controlled-vocabulary'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary'
},
change: {
'endpoint': '/channel',
'controller': 'settings/controlled-vocabulary',
'method': 'change'
},
downloadCSV: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'export'
},
uploadCSV: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'import'
},
confirmCSV: {
'endpoint': '',
'controller': 'settings/controlled-vocabulary',
'method': 'compare',
'file': null
},
cancel: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'cancel'
},
status: {
'endpoint': '/private/queue',
'controller': 'settings/controlled-vocabulary',
'method': 'status'
}
},
CustomActionDefinition: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/custom-action'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action'
}
},
CustomActionValue: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/custom-action',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/custom-action'
}
},
Configuration: {
lazy: true,
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/configurable',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/configurables'
},
selectiveListen: {
'endpoint': '/channel',
'controller': 'settings/configurable'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/configurable',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/configurable',
'method': 'update'
},
reset: {
'endpoint': '/private/queue',
'controller': 'settings/configurable',
'method': 'reset'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/configurable',
'method': 'remove'
}
},
DepositLocation: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/deposit-location'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location'
},
testConnection: {
'endpoint': '/private/queue',
'controller': 'settings/deposit-location',
'method': 'test-connection'
}
},
DocumentType: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/document-type',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/document-type'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/document-type',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/document-type',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/document-type',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/document-type'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/document-type'
}
},
Embargo: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/embargo',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/embargo'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/embargo',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/embargo',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/embargo',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/embargo'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/embargo'
}
},
EmailTemplate: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/email-template',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/email-template'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/email-template',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/email-template',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/email-template',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/email-template'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/email-template'
}
},
FieldGloss: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/field-gloss',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/field-gloss'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/field-gloss',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/field-gloss',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/field-gloss',
'method': 'remove'
}
},
FieldPredicate: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/field-predicates',
'method': 'all'
},
one: {
'endpoint': '/private/queue',
'controller': 'settings/field-predicates'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/field-predicates'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/field-predicates',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/field-predicates',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/field-predicates',
'method': 'remove'
}
},
FieldValue: {
validations: true,
update: {
'endpoint': '/private/queue',
'controller': 'submission'
}
},
GraduationMonth: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/graduation-month',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/graduation-month'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/graduation-month',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/graduation-month',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/graduation-month',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/graduation-month'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/graduation-month'
}
},
FieldProfile: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'field-profile',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'field-profile'
}
},
InputType: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/input-types',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/input-types'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/input-types',
'method': 'create'
}
},
Language: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/language',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/language'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/language',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/language',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/language',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/language'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/language'
},
proquest: {
'endpoint': '/private/queue',
'controller': 'settings/language',
'method': 'proquest'
}
},
Note: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'note',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'note'
}
},
Organization: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'organization',
'method': 'all'
},
addEmailWorkflowRule: {
'endpoint': '/private/queue',
'controller': 'organization',
'metod': 'add-email-workflow-rule'
},
editEmailWorkflowRule: {
'endpoint': '/private/queue',
'controller': 'organization',
'metod': 'edit-email-workflow-rule'
},
get: {
'endpoint': '/private/queue',
'controller': 'organization'
},
remove: {
'endpoint': '/private/queue',
'controller': 'organization',
'method': 'delete'
},
removeEmailWorkflowRule: {
'endpoint': '/private/queue',
'controller': 'organization',
'method': 'remove-email-workflow-rule'
},
changeEmailWorkflowRuleActivation: {
'endpoint': '/private/queue',
'controller': 'organization',
'method': 'change-email-workflow-rule-activation'
},
listen: {
'endpoint': '/channel',
'controller': 'organizations'
},
selectiveListen: {
'endpoint': '/channel',
'controller': 'organization'
},
create: {
'endpoint': '/private/queue',
'controller': 'organization'
},
update: {
'endpoint': '/private/queue',
'controller': 'organization',
'method': 'update'
},
workflow: {
'endpoint': '/private/queue',
'controller': 'organization'
},
children: {
'endpoint': '/private/queue',
'controller': 'organization'
},
addWorkflowStep: {
'endpoint': '/private/queue',
'controller': 'organization'
},
updateWorkflowStep: {
'endpoint': '/private/queue',
'controller': 'organization'
},
reorderWorkflowStep: {
'endpoint': '/private/queue',
'controller': 'organization'
},
deleteWorkflowStep: {
'endpoint': '/private/queue',
'controller': 'organization'
}
},
OrganizationCategory: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'settings/organization-category',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'settings/organization-category'
},
create: {
'endpoint': '/private/queue',
'controller': 'settings/organization-category',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'settings/organization-category',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'settings/organization-category',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'settings/organization-category'
},
sort: {
'endpoint': '/private/queue',
'controller': 'settings/organization-category'
}
},
Packager: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'packager',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'packager'
}
},
Submission: {
lazy: true,
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'all'
},
addComment: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'add-comment'
},
sendEmail: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'send-email'
},
assignTo: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'assign'
},
changeStatus: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'change-status'
},
publish: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'publish'
},
batchPublish: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'batch-publish'
},
submitDate: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'submit-date'
},
one: {
'endpoint': '/private/queue',
'controller': 'submission'
},
remove: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'delete'
},
listen: {
'endpoint': '/channel',
'controller': 'submission'
},
actionLogListen: {
'endpoint': '/channel',
'controller': 'submission'
},
fieldValuesListen: {
'endpoint': '/channel',
'controller': 'submission'
},
fieldValueRemovedListen: {
'endpoint': '/channel',
'controller': 'submission'
},
create: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'create'
},
query: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'query'
},
saveFieldValue: {
'endpoint': '/private/queue',
'controller': 'submission'
},
saveReviewerNotes: {
'endpoint': '/private/queue',
'controller': 'submission'
},
sendAdvisorEmail: {
'endpoint': '/private/queue',
'controller': 'submission'
},
removeFieldValue: {
'endpoint': '/private/queue',
'controller': 'submission'
},
batchUpdateSubmissionState: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'batch-update-state'
},
batchAssignTo: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'batch-assign-to'
},
fileInfo: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'file-info'
},
file: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'file'
},
renameFile: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'rename-file'
},
removeFile: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'remove-file'
},
needsCorrection: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'needs-correction'
},
updateAdvisorApproval: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'update-advisor-approval'
},
updateCustomActionValue: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'update-custom-action-value'
}
},
StudentSubmission: {
lazy: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'all-by-user'
},
changeStatus: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'change-status'
},
one: {
'endpoint': '/private/queue',
'controller': 'submission'
},
listen: {
'endpoint': '/channel',
'controller': 'submission',
'method': 'user'
},
create: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'create'
},
submitCorrections: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'submit-corrections'
},
saveFieldValue: {
'endpoint': '/private/queue',
'controller': 'submission'
},
validateFieldValue: {
'endpoint': '/private/queue',
'controller': 'submission'
},
removeFieldValue: {
'endpoint': '/private/queue',
'controller': 'submission'
},
fileInfo: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'file-info'
},
file: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'file'
},
renameFile: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'rename-file'
},
removeFile: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'remove-file'
},
archiveFile: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'archive-file'
},
addMessage: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'add-message'
}
},
AdvisorSubmission: {
lazy: true,
getByHash: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'advisor-review'
},
listen: {
'endpoint': '/channel',
'controller': 'submission',
'method': 'advisor'
},
file: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'file'
},
updateAdvisorApproval: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'update-advisor-approval'
},
fileInfo: {
'endpoint': '/private/queue',
'controller': 'submission',
'method': 'file-info'
}
},
SubmissionListColumn: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'all-columns'
},
listen: {
'endpoint': '/channel',
'controller': 'submission-list'
}
},
SubmissionState: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission-state',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'submission-state'
}
},
ManagerSubmissionListColumn: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'columns-by-user'
},
pageSize: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'pagesize-by-user'
},
listen: {
'endpoint': '/channel',
'controller': 'managers-submission-list'
},
update: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'update-user-columns'
},
reset: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'reset-user-columns'
}
},
ManagerFilterColumn: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'filter-columns-by-user'
},
listen: {
'endpoint': '/channel',
'controller': 'filter-columns'
},
update: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'update-user-filter-columns'
}
},
User: {
validations: true,
instantiate: {
'endpoint': '/private/queue',
'controller': 'user',
'method': 'credentials'
},
all: {
'endpoint': '/private/queue',
'controller': 'user',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'user'
},
update: {
'endpoint': '/private/queue',
'controller': 'user',
'method': 'update'
}
},
UserSettings: {
lazy: true,
instantiate: {
'endpoint': '/private/queue',
'controller': 'user',
'method': 'settings'
},
update: {
'endpoint': '/private/queue',
'controller': 'user',
'method': 'settings/update'
},
listen: {
'endpoint': '/channel',
'controller': 'user/settings'
}
},
WorkflowStep: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'workflow-step',
'method': 'all'
},
listen: {
'endpoint': '/channel',
'controller': 'workflow-step'
},
create: {
'endpoint': '/private/queue',
'controller': 'workflow-step',
'method': 'create'
},
update: {
'endpoint': '/private/queue',
'controller': 'workflow-step',
'method': 'update'
},
remove: {
'endpoint': '/private/queue',
'controller': 'workflow-step',
'method': 'remove'
},
reorder: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
sort: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
addFieldProfile: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
updateFieldProfile: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
removeFieldProfile: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
reorderFieldProfile: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
addNote: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
updateNote: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
removeNote: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
},
reorderNote: {
'endpoint': '/private/queue',
'controller': 'workflow-step'
}
},
NamedSearchFilterGroup: {
validations: true,
instantiate: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'active-filters'
},
setFilter: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'set-active-filter'
},
listen: {
'endpoint': '/channel',
'controller': 'active-filters'
},
addFilter: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'add-filter-criterion'
},
removeFilter: {
'endpoint': '/private/queue',
'controller': 'submission-list'
},
clearFilters: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'clear-filter-criteria'
}
},
SavedFilter: {
validations: true,
all: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'all-saved-filter-criteria'
},
listen: {
'endpoint': '/channel',
'controller': 'saved-filters'
},
create: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'save-filter-criteria'
},
remove: {
'endpoint': '/private/queue',
'controller': 'submission-list',
'method': 'remove-saved-filter'
}
}
};
<div class="document-type" ng-mouseenter="isMouseHover=true" ng-mouseleave="isMouseHover=false">
<span>{{ $index + 1 }}.</span>
<span ng-repeat="property in properties" class="repeated-span">
<span>{{item[property]}}</span>
</span>
<span ng-show="isMouseHover" class="glyphicon glyphicon-pencil edit-setting-icon" ng-click="edit({index:item})"></span>
</div>
<div class="modal-header {{attr.modalHeaderClass}}">
<button type="button" class="close" ng-click="resetFieldGlosses()" data-dismiss="modal" aria-label="Close">
<span class="modal-close" aria-hidden="true">&times;</span>
</button>
<h3 class="modal-title">Are You Sure?</h3>
</div>
<form ng-submit="removeFieldGloss()" novalidate>
<validationmessage results="modalData.ValidationResults"></validationmessage>
<div class="modal-body">
<h4><b>Click confirm to remove the Label:</b></h4>
<h4>Name: {{modalData.value}}</h4>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="resetFieldGlosses()">Cancel</button>
<button id="embargo-confirm" type="submit" class="btn btn-danger">Confirm</button>
</div>
</form>
package org.tdl.vireo.controller;
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
import static edu.tamu.framework.enums.BusinessValidationType.CREATE;
import static edu.tamu.framework.enums.BusinessValidationType.DELETE;
import static edu.tamu.framework.enums.BusinessValidationType.UPDATE;
import static edu.tamu.framework.enums.BusinessValidationType.EXISTS;
import static edu.tamu.framework.enums.BusinessValidationType.NONEXISTS;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.web.bind.annotation.RestController;
import org.tdl.vireo.model.AbstractFieldProfile;
import org.tdl.vireo.model.FieldGloss;
import org.tdl.vireo.model.FieldProfile;
import org.tdl.vireo.model.FieldValue;
import org.tdl.vireo.model.Language;
import org.tdl.vireo.model.repo.FieldGlossRepo;
import org.tdl.vireo.model.repo.LanguageRepo;
import edu.tamu.framework.aspect.annotation.ApiMapping;
import edu.tamu.framework.aspect.annotation.ApiValidatedModel;
import edu.tamu.framework.aspect.annotation.ApiValidation;
import edu.tamu.framework.aspect.annotation.Auth;
import edu.tamu.framework.model.ApiResponse;
/**
* Controller in which to manage controlled vocabulary.
*
*/
@RestController
@ApiMapping("/settings/field-gloss")
public class FieldGlossController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private FieldGlossRepo fieldGlossRepo;
@Autowired
private SimpMessagingTemplate simpMessagingTemplate;
@Autowired
private LanguageRepo languageRepo;
/**
* Endpoint to request all field glosses.
*
* @return ApiResponse with all input types.
*/
@ApiMapping("/all")
@Auth(role = "MANAGER")
public ApiResponse getAllFieldGlosses() {
return new ApiResponse(SUCCESS, fieldGlossRepo.findAll());
}
/**
* Endpoint to create a field gloss
*
* @return ApiResponse with all input types.
*/
@ApiMapping("/create")
@Auth(role = "MANAGER")
@ApiValidation(business = { @ApiValidation.Business(value = CREATE), @ApiValidation.Business(value = EXISTS) })
public ApiResponse createFieldGloss(@ApiValidatedModel FieldGloss fieldGloss) {
Language alreadyPersistedLanguage = languageRepo.findByName(fieldGloss.getLanguage().getName());
FieldGloss fg = fieldGlossRepo.create(fieldGloss.getValue(), alreadyPersistedLanguage);
simpMessagingTemplate.convertAndSend("/channel/settings/field-gloss", new ApiResponse(SUCCESS, fieldGlossRepo.findAll()));
return new ApiResponse(SUCCESS, fg);
}
/**
* Endpoint to remove a field gloss
*
* @return ApiResponse with all field glosses.
*/
@ApiMapping("/remove")
@Auth(role = "MANAGER")
@ApiValidation(business = {@ApiValidation.Business(value = DELETE, joins = { AbstractFieldProfile.class }, path = { "fieldGlosses", "id" }), @ApiValidation.Business(value = NONEXISTS) })
public ApiResponse RemoveFieldGloss(@ApiValidatedModel FieldGloss fieldGloss) {
logger.info("Deleting Field Gloss: " + fieldGloss.getValue());
fieldGlossRepo.delete(fieldGloss);
simpMessagingTemplate.convertAndSend("/channel/settings/field-gloss", new ApiResponse(SUCCESS, fieldGlossRepo.findAll()));
return new ApiResponse(SUCCESS);
}
/**
* Endpoint to update a field gloss
*
* @return ApiResponse with all field glosses.
*/
@ApiMapping("/update")
@Auth(role = "MANAGER")
@ApiValidation(business = {@ApiValidation.Business(value = UPDATE), @ApiValidation.Business(value = NONEXISTS) })
public ApiResponse UpdateFieldGloss(@ApiValidatedModel FieldGloss fieldGloss) {
logger.info("Deleting Field Gloss: " + fieldGloss.getValue());
fieldGlossRepo.save(fieldGloss);
simpMessagingTemplate.convertAndSend("/channel/settings/field-gloss", new ApiResponse(SUCCESS, fieldGlossRepo.findAll()));
return new ApiResponse(SUCCESS);
}
}
vireo.controller('FieldGlossController', function ($controller, $scope, $q, $filter, SidebarService, DragAndDropListenerFactory, FieldGlossRepo) {
angular.extend(this, $controller('AbstractController', {$scope: $scope}));
SidebarService.addBoxes([]);
$scope.fieldGlossRepo = FieldGlossRepo;
FieldGlossRepo.listen(function(res) {
$scope.resetFieldGlosses();
});
$scope.fieldGlosses = FieldGlossRepo.getAllFiltered(function(fp) {
return !fp.documentTypeGloss;
});
$scope.ready = $q.all([FieldGlossRepo.ready()]);
$scope.dragging = false;
$scope.trashCanId = 'field-glosses-trash';
$scope.forms = {};
$scope.ready.then(function() {
console.log();
$scope.resetFieldGlosses = function() {
FieldGlossRepo.clearValidationResults();
for(var key in $scope.forms) {
if($scope.forms[key] !== undefined && !$scope.forms[key].$pristine) {
$scope.forms[key].$setPristine();
}
}
if($scope.modalData !== undefined && $scope.modalData.refresh !== undefined) {
$scope.modalData.refresh();
}
$scope.modalData = {};
$scope.closeModal();
};
$scope.resetFieldGlosses();
$scope.selectFieldGloss = function(index) {
$scope.resetFieldGlosses();
var filtereFieldGlosses = $filter('filter')($scope.fieldGlosses, $scope.dragAndDropTextFilterValue[$scope.dragAndDropSelectedFilter]);
$scope.modalData = filtereFieldGlosses[index];
};
$scope.createNewFieldGloss = function() {
$scope.modalData.documentTypeGloss = false;
$scope.modalData.language = "English";
FieldGlossRepo.create($scope.modalData);
};
$scope.removeFieldGloss = function() {
$scope.modalData.delete();
};
$scope.updateFieldGloss = function() {
$scope.modalData.save();
};
$scope.launchEditModal = function(fieldGloss) {
$scope.resetFieldGlosses();
$scope.modalData = fieldGloss;
$scope.openModal('#fieldGlossEditModal');
};
$scope.dragControlListeners = DragAndDropListenerFactory.buildDragControls({
trashId: $scope.trashCanId,
dragging: $scope.dragging,
select: $scope.selectFieldGloss,
model: $scope.fieldGlosses,
confirm: '#fieldGlossConfirmRemoveModal',
reorder: null,
container: '#field-glosses'
});
var listener = $scope.dragControlListeners.getListener();
$scope.dragControlListeners.accept = function (sourceItemHandleScope, destSortableScope) {
var currentElement = destSortableScope.element;
if(listener.dragging && currentElement[0].id == listener.trash.id) {
listener.trash.hover = true;
listener.trash.element = currentElement;
listener.trash.element.addClass('dragging');
}
else {
listener.trash.hover = false;
}
return false;
};
$scope.dragControlListeners.orderChanged = function () {};
});
});
<div id="field-predicates" class="row" ng-controller="FieldGlossController">
<validationmessage results="fieldGlossRepo.getValidationResults()"></validationmessage>
<div class="col-md-6">
<div class="col-md-10 col-md-offset-1">
<button
class="btn btn-default modal-add-btn"
ng-click="openModal('#fieldGlossNewModal')">
Add New Label
</button>
<div class="glyphicon glyphicon-info-sign opaque tooltip-span-adjust" tooltip="Dialog in which allows to create new email template."></div>
<draganddroplist
dragging="dragging"
scope-value="fieldGlosses"
properties='["value"]'
item-view='views/directives/dragAndDropFieldGloss.html'
listeners='dragControlListeners'
edit='launchEditModal(index)'
text-filter='true'
text-filter-value='dragAndDropTextFilterValue'
selected-filter="dragAndDropSelectedFilter">
</draganddroplist>
</div>
</div>
<div class="col-md-6">
<div class="col-md-10 col-md-offset-1">
<trashcan
id="{{trashCanId}}"
dragging="dragging"
listeners='dragControlListeners'>
</trashcan>
</div>
</div>
<modal
modal-id="fieldGlossNewModal"
modal-view="views/modals/workflow/fieldGlossNewModal.html"
modal-header-class="modal-header-primary"
modal-backdrop="static"
modal-fullscreen="true">
</modal>
<modal
modal-id="fieldGlossEditModal"
modal-view="views/modals/workflow/fieldGlosssEditModal.html"
modal-header-class="modal-header-primary"
modal-backdrop="static"
modal-fullscreen="true">
</modal>
<modal
modal-id="fieldGlossConfirmRemoveModal"
modal-view="views/modals/workflow/fieldGlossConfirmRemoveModal.html"
modal-header-class="modal-header-danger"
modal-backdrop="static">
</modal>
</div>
<div class="modal-header {{attr.modalHeaderClass}}">
<button type="button" class="close" ng-click="resetFieldGlosses()" aria-label="Close">
<span class="modal-close" aria-hidden="true">&times;</span>
</button>
<h3 class="modal-title">Add Label Key</h3>
</div>
<form ng-submit="createNewFieldGloss()" name="forms.create" novalidate>
<validationmessage results="fieldGlossRepo.getValidationResults()"></validationmessage>
<div class="modal-body">
<validatedinput model="modalData" property="value" label="Label Key Name" placeholder="Name of the new metadata key" form="forms.create" validations="fieldGlossRepo.getValidations()" results="fieldGlossRepo.getValidationResults()"></validatedinput>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="resetFieldGlosses()">Cancel</button>
<button id="fieldGloss-save" type="submit" class="btn btn-primary" ng-disabled="forms.create.$invalid">Create</button>
</div>
</form>
<div class="modal-header {{attr.modalHeaderClass}}">
<button type="button" class="close" ng-click="resetFieldGlosses()" aria-label="Close">
<span class="modal-close" aria-hidden="true">&times;</span>
</button>
<h3 class="modal-title">Edit Label</h3>
</div>
<form ng-submit="updateFieldGloss()" name="forms.update" novalidate>
<validationmessage results="modalData.ValidationResults"></validationmessage>
<div class="modal-body">
<validatedinput model="modalData" property="value" label="Label Name" placeholder="Name of the new label" form="forms.update" validations="fieldGlossRepo.getValidations()" results="modalData.ValidationResults"></validatedinput>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="resetFieldGlosses()">Cancel</button>
<button id="fieldPredicate-save" type="submit" class="btn btn-primary" ng-disabled="forms.create.$invalid">Update</button>
</div>
</form>
<!DOCTYPE html>
<!--[if lt IE 7]> <html lang="en" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html lang="en" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html lang="en" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html lang="en" class="no-js">
<!--<![endif]-->
<head>
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
window.location.base = [[${base}]];
/*]]>*/
</script>
<base th:href="${ base + '/'}"/>
<title>Vireo :: Texas Digital Library</title>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="description" content="Electronic Thesis &amp; Dissertation Submission Workflow Tool"/>
<link rel="stylesheet" href="bower_components/ng-sortable/dist/ng-sortable.min.css"/>
<link rel="stylesheet" href="resources/styles/app.css"/>
</head>
<body>
<!--[if lt IE 7]> <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> <![endif]-->
<!-- Content placed here will appear on every page -->
<main>
<nav class="navbar navbar-default">
<div class="container-fluid" ng-controller="AuthenticationController">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<modal modal-id="verifyEmailModal" modal-view="views/modals/verifyEmailModal.html" modal-header-class="modal-header-primary"></modal>
<modal modal-id="loginModal" modal-view="views/modals/loginModal.html" modal-header-class="modal-header-primary"></modal>
<div ng-if="isAnonymous()" class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href ng-click="openModal('#loginModal')">Login</a>
</li>
<li class="dropdown">
<a href ng-click="openModal('#verifyEmailModal')">Register</a>
</li>
</ul>
</div>
<div ng-if="!isAnonymous()" class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a class="dropdown-toggle toggle-href" data-toggle="dropdown" aria-expanded="false">
<displayname></displayname>
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li role="presentation" class="dropdown-header">Profile</li>
<li>
<a role="menuitem" href="myprofile">Profile</a>
</li>
<li>
<a role="menuitem" href="submission/history">Submission History</a>
</li>
<li ng-if="isAdmin() || isManager()" role="presentation" class="divider"></li>
<li ng-if="isAdmin() || isManager()" role="presentation" class="dropdown-header">Manager Actions</li>
<li ng-if="isAdmin() || isManager()">
<a role="menuitem" href="users">Manage Users</a>
</li>
<li ng-if="isAdmin()" role="presentation" class="divider"></li>
<li ng-if="isAdmin()" role="presentation" class="dropdown-header">Admin Actions</li>
<li ng-if="isAdmin()">
<a role="menuitem" href="admin/list">List</a>
</li>
<li ng-if="isAdmin()">
<a role="menuitem" href="admin/log">Log</a>
</li>
<li ng-if="isAdmin()">
<a role="menuitem" href="admin/settings">Settings</a>
</li>
<li role="presentation" class="divider"></li>
<li>
<a role="menuitem" href ng-click="logout()">Logout</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<header class="container-fluid site-title" ng-controller="HeaderController">
<div class="container">
<div class="row">
<a class="pull-left" href="home">
<img style="max-height: 57px;" ng-src="{{logoImage()}}"></img>
</a>
<ul ng-if="activeAdminSection()" class="tab-nav nav navbar-nav navbar-right hidden-xs">
<li ng-class="{'active': activeTab('/admin/list')}">
<a href="admin/list">List</a>
</li>
<li ng-class="{'active': activeTab('/admin/view')}">
<a href ng-click="viewSelect()">View</a>
</li>
<li ng-class="{'active': activeTab('/admin/log')}">
<a href="admin/log">Log</a>
</li>
<li ng-class="{'active': activeTab('/admin/settings')}" class="settings-tab">
<a href="admin/settings">Settings</a>
</li>
</ul>
</div>
</div>
</header>
<alerts types="WARNING, ERROR"></alerts>
<alerts seconds="45" channels="auth/register" types="SUCCESS"></alerts>
<alerts seconds="45" channels="organization/delete" types="SUCCESS"></alerts>
<div class="container-fluid main">
<div ng-view class="view"></div>
</div>
</main>
<footer class="footer">
<div class="container">
<ul class="inline-list">
<li>&copy; Vireo
<span app-version></span>
</li>
<li>
<a href="#">Webmaster</a>
</li>
<li>
<a href="#">Legal</a>
</li>
<li>
<a href="#">Comments</a>
</li>
<li>
<a href="#">Accessibility</a>
</li>
</ul>
</div>
</footer>
<!-- Bower component -->
<!-- build:js resources/scripts/vendor_concat.js -->
<script src="bower_components/sockjs-client/dist/sockjs.min.js"></script>
<script src="bower_components/stomp-websocket/lib/stomp.min.js"></script>
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/FileSaver/FileSaver.min.js"></script>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<script src="bower_components/angular-loader/angular-loader.min.js"></script>
<script src="bower_components/angular-mocks/angular-mocks.js"></script>
<script src="bower_components/angular-messages/angular-messages.min.js"></script>
<script src="bower_components/tinymce/tinymce.min.js"></script>
<script src="bower_components/angular-ui-tinymce/dist/tinymce.min.js"></script>
<script src="bower_components/ng-csv/build/ng-csv.min.js"></script>
<script src="bower_components/ng-sortable/dist/ng-sortable.min.js"></script>
<script src="bower_components/ng-table/dist/ng-table.min.js"></script>
<script src="bower_components/ng-file-upload/ng-file-upload-shim.min.js"></script>
<script src="bower_components/ng-file-upload/ng-file-upload.min.js"></script>
<!-- endbuild -->
<!-- Core libraries -->
<!-- build:js resources/scripts/core_concat.js -->
<!-- Core Configuration -->
<script src="bower_components/core/app/config/coreConfig.js"></script>
<!-- Core Modules -->
<script src="bower_components/core/app/components/version/version.js"></script>
<script src="bower_components/core/app/components/version/version-directive.js"></script>
<script src="bower_components/core/app/components/version/interpolate-filter.js"></script>
<!-- App Configuration -->
<script src="config/appConfig.js"></script>
<script src="config/apiMapping.js"></script>
<!-- App Modules -->
<script src="components/version/version.js"></script>
<script src="components/version/version-directive.js"></script>
<script src="components/version/interpolate-filter.js"></script>
<!-- Application Start -->
<script src="bower_components/core/app/core.js"></script>
<script src="bower_components/core/app/setup.js"></script>
<script src="bower_components/core/app/config/coreRuntime.js"></script>
<script src="bower_components/core/app/config/coreAngularConfig.js"></script>
<script src="bower_components/core/app/config/logging.js"></script>
<!-- Directives -->
<script src="bower_components/core/app/directives/headerDirective.js"></script>
<script src="bower_components/core/app/directives/footerDirective.js"></script>
<script src="bower_components/core/app/directives/userDirective.js"></script>
<script src="bower_components/core/app/directives/modalDirective.js"></script>
<script src="bower_components/core/app/directives/alertDirective.js"></script>
<script src="bower_components/core/app/directives/validationMessageDirective.js"></script>
<script src="bower_components/core/app/directives/validatedInputDirective.js"></script>
<script src="bower_components/core/app/directives/validatedSelectDirective.js"></script>
<script src="bower_components/core/app/directives/validatedTextAreaDirective.js"></script>
<!-- Services -->
<script src="bower_components/core/app/services/accesscontrollservice.js"></script>
<script src="bower_components/core/app/services/wsservice.js"></script>
<script src="bower_components/core/app/services/wsapi.js"></script>
<script src="bower_components/core/app/services/restapi.js"></script>
<script src="bower_components/core/app/services/fileapi.js"></script>
<script src="bower_components/core/app/services/authserviceapi.js"></script>
<script src="bower_components/core/app/services/storageservice.js"></script>
<script src="bower_components/core/app/services/utilityservice.js"></script>
<script src="bower_components/core/app/services/alertservice.js"></script>
<script src="bower_components/core/app/services/validationstore.js"></script>
<script src="bower_components/core/app/services/userservice.js"></script>
<script src="bower_components/core/app/services/modalservice.js"></script>
<script src="bower_components/core/app/services/modelcache.js"></script>
<script src="bower_components/core/app/services/modelupdateservice.js"></script>
<!-- Factories -->
<!-- Repo -->
<script src="bower_components/core/app/repo/abstractRepo.js"></script>
<!-- Models -->
<script src="bower_components/core/app/model/abstractModel.js"></script>
<script src="bower_components/core/app/model/assumedControl.js"></script>
<script src="bower_components/core/app/model/user.js"></script>
<!-- Controllers -->
<script src="bower_components/core/app/controllers/abstractController.js"></script>
<script src="bower_components/core/app/controllers/coreAdminController.js"></script>
<script src="bower_components/core/app/controllers/authenticationController.js"></script>
<script src="bower_components/core/app/controllers/loginController.js"></script>
<script src="bower_components/core/app/controllers/registrationController.js"></script>
<script src="bower_components/core/app/controllers/userController.js"></script>
<script src="bower_components/core/app/controllers/errorpagecontroller.js"></script>
<!-- endbuild -->
<!-- App libraries -->
<!-- build:js resources/scripts/app_concat.js -->
<!-- Application Start -->
<script src="app.js"></script>
<script src="config/runTime.js"></script>
<script src="config/routes.js"></script>
<!-- Directives -->
<script src="directives/accordionDirective.js"></script>
<script src="directives/actionLogDirective.js"></script>
<script src="directives/deHashColorDirective.js"></script>
<script src="directives/tabsDirective.js"></script>
<script src="directives/sideBoxDirective.js"></script>
<script src="directives/toggleButtonDirective.js"></script>
<script src="directives/userSettingsDirective.js"></script>
<script src="directives/legendDirective.js"></script>
<script src="directives/checkBoxDirective.js"></script>
<script src="directives/tamuFocusDirective.js"></script>
<script src="directives/tooltipDirective.js"></script>
<script src="directives/dragAndDropListDirective.js"></script>
<script src="directives/lockingTextAreaDirective.js"></script>
<script src="directives/trashCanDirective.js"></script>
<script src="directives/selectedDirective.js"></script>
<script src="directives/dropZoneDirective.js"></script>
<script src="directives/fieldProfileDirective.js"></script>
<script src="directives/fieldProfileDisplayDirective.js"></script>
<script src="directives/reviewSubmissionFieldsDirective.js"></script>
<script src="directives/submissionDialogDirective.js"></script>
<script src="directives/submissionNoteDirective.js"></script>
<script src="directives/stringToDateDirective.js"></script>
<script src="directives/triptychDirective.js"></script>
<script src="directives/infoDirective.js"></script>
<!-- Services -->
<script src="services/sidebarService.js"></script>
<script src="services/fileUploadService.js"></script>
<!-- Repos -->
<script src="repo/abstractAppRepo.js"></script>
<script src="repo/advisorSubmissionRepo.js"></script>
<script src="repo/documentTypeRepo.js"></script>
<script src="repo/languageRepo.js"></script>
<script src="repo/customActionDefinitionRepo.js"></script>
<script src="repo/depositLocationRepo.js"></script>
<script src="repo/emailTemplateRepo.js"></script>
<script src="repo/graduationMonthRepo.js"></script>
<script src="repo/configurationRepo.js"></script>
<script src="repo/controlledVocabularyRepo.js"></script>
<script src="repo/workflowStepRepo.js"></script>
<script src="repo/embargoRepo.js"></script>
<script src="repo/userRepo.js"></script>
<script src="repo/organizationRepo.js"></script>
<script src="repo/organizationCategoryRepo.js"></script>
<script src="repo/inputTypeRepo.js"></script>
<script src="repo/fieldPredicateRepo.js"></script>
<script src="repo/fieldGlossRepo.js"></script>
<script src="repo/studentSubmissionRepo.js"></script>
<script src="repo/savedFilterRepo.js"></script>
<script src="repo/submissionRepo.js"></script>
<script src="repo/submissionStateRepo.js"></script>
<script src="repo/noteRepo.js"></script>
<script src="repo/fieldProfileRepo.js"></script>
<script src="repo/submissionListColumnRepo.js"></script>
<script src="repo/managerSubmissionListColumnRepo.js"></script>
<script src="repo/managerFilterColumnRepo.js"></script>
<script src="repo/customActionValueRepo.js"></script>
<script src="repo/packagerRepo.js"></script>
<!-- Models -->
<script src="model/abstractAppModel.js"></script>
<script src="model/actionLog.js"></script>
<script src="model/namedSearchFilterGroup.js"></script>
<script src="model/language.js"></script>
<script src="model/documentType.js"></script>
<script src="model/customActionDefinition.js"></script>
<script src="model/depositLocation.js"></script>
<script src="model/emailTemplate.js"></script>
<script src="model/graduationMonth.js"></script>
<script src="model/userSettings.js"></script>
<script src="model/configuration.js"></script>
<script src="model/controlledVocabulary.js"></script>
<script src="model/workflowStep.js"></script>
<script src="model/embargo.js"></script>
<script src="model/organization.js"></script>
<script src="model/organizationCategory.js"></script>
<script src="model/inputType.js"></script>
<script src="model/fieldPredicate.js"></script>
<script src="model/fieldGloss.js"></script>
<script src="model/savedFilter.js"></script>
<script src="model/submission.js"></script>
<script src="model/submissionState.js"></script>
<script src="model/fieldProfile.js"></script>
<script src="model/fieldValue.js"></script>
<script src="model/note.js"></script>
<script src="model/submissionListColumn.js"></script>
<script src="model/customActionValue.js"></script>
<script src="model/packager.js"></script>
<!-- Constants -->
<script src="constants/emailRecipientType.js"></script>
<script src="constants/inputType.js"></script>
<script src="constants/submissionStatuses.js"></script>
<!-- Factories -->
<script src="factories/dragAndDropListenerFactory.js"></script>
<!-- filters -->
<script src="filters/fieldValuePerProfile.js"></script>
<script src="filters/documentFieldValuePerProfile.js"></script>
<script src="filters/byPrefix.js"></script>
<script src="filters/byDocumentTypePredicate.js"></script>
<!-- Controllers -->
<script src="controllers/abstractController.js"></script>
<script src="controllers/adminController.js"></script>
<script src="controllers/applicationSettingsController.js"></script>
<script src="controllers/settings/emailWorkflowRulesController.js"></script>
<script src="controllers/headerController.js"></script>
<script src="controllers/settings/lookAndFeelController.js"></script>
<script src="controllers/organizationSettingsController.js"></script>
<script src="controllers/settings/organizationManagementController.js"></script>
<script src="controllers/settings/workflowManagementController.js"></script>
<script src="controllers/settings/FieldGlossController.js"></script>
<script src="controllers/settings/FieldPredicatesController.js"></script>
<script src="controllers/settingsController.js"></script>
<script src="controllers/sidebarController.js"></script>
<script src="controllers/userRepoController.js"></script>
<script src="controllers/settings/customActionSettingsController.js"></script>
<script src="controllers/settings/depositLocationRepoController.js"></script>
<script src="controllers/settings/embargoRepoController.js"></script>
<script src="controllers/settings/graduationMonthRepoController.js"></script>
<script src="controllers/settings/emailTemplateRepoController.js"></script>
<script src="controllers/settings/controlledVocabularyRepoController.js"></script>
<script src="controllers/settings/languagesController.js"></script>
<script src="controllers/settings/documentTypesController.js"></script>
<script src="controllers/sideBars/organizationSideBarController.js"></script>
<script src="controllers/settings/organizationCategoriesController.js"></script>
<script src="controllers/settings/fieldProfileManagementController.js"></script>
<script src="controllers/settings/noteManagementController.js"></script>
<script src="controllers/submission/advisorSubmissionReviewController.js"></script>
<script src="controllers/submission/newSubmissionController.js"></script>
<script src="controllers/submission/studentSubmissionController.js"></script>
<script src="controllers/submission/submissionListController.js"></script>
<script src="controllers/submission/submissionViewController.js"></script>
<script src="controllers/submission/submissionHistoryController.js"></script>
<script src="controllers/submission/completeSubmissionController.js"></script>
<script src="controllers/submission/adminSubmissionViewController.js"></script>
<!-- endbuild -->
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
<script>
(function (b, o, i, l, e, r) {
b.GoogleAnalyticsObject = l;
b[l] || (b[l] = function () {
(b[l].q = b[l].q || []).push(arguments)
});
b[l].l = +new Date;
e = o.createElement(i);
r = o.getElementsByTagName(i)[0];
e.src = '//www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e, r)
}(window, document, 'script', 'ga'));
ga('create', 'UA-XXXXX-X');
ga('send', 'pageview');
</script>
</body>
</html>
<div class="row" ng-controller="WorkflowManagementController">
<div class="col-xs-12">
<h1>WORKFLOW MANAGEMENT</h1>
<p>Manage Workflow Components</p>
<accordion single-expand="false">
<pane query="metadataKeys" html="views/admin/settings/workflow/fieldPredicates.html">METADATA KEYS</pane>
<pane query="labels" html="views/admin/settings/workflow/fieldGlosses.html">LABELS</pane>
</accordion>
</div>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment