148 lines
5.7 KiB
HTML
148 lines
5.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head th:replace="fragments/mainParts.html :: htmlHeader(${type.name})"></head>
|
|
|
|
<script th:inline="javascript">
|
|
/*<![CDATA[*/
|
|
function typeId() { return /*[[${type.id}]]*/ ''; }
|
|
/*]]>*/
|
|
</script>
|
|
|
|
<body ng-app="resourcesApp" ng-controller="resourcesController">
|
|
|
|
<nav th:replace="fragments/mainParts.html :: mainMenu(${type.name})"></nav>
|
|
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col">
|
|
<p>
|
|
<button class="btn btn-sm btn-primary" data-toggle="modal" data-target="#newResourceModal" ng-click="prepareNewResource()">create a new resource</button>
|
|
</p>
|
|
<p ng-show="resources.length > 0">
|
|
<input type="text" class="form-control form-control-sm" ng-model="resFilter" placeholder="Filter..."/>
|
|
</p>
|
|
<p>
|
|
<span class="text-muted"><b>Number of resources:</b> {{(resources | filter:resFilter).length}}</span>
|
|
</p>
|
|
|
|
<div class="card mb-4" ng-repeat="r in resources|filter:resFilter">
|
|
<div class="card-body small">
|
|
<span class="badge badge-primary float-right" th:text="${type.contentType}"></span>
|
|
<h5 class="card-title" title="{{r.id}}">{{r.name}}</h5>
|
|
<p class="card-text">{{r.description}}</p>
|
|
<p class="text-muted small">
|
|
<b>Id:</b> {{r.id}}<br />
|
|
<b>Creation date:</b> {{r.creationDate}}<br />
|
|
<b>Modification date:</b> {{r.modificationDate}}
|
|
</p>
|
|
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#editMetadataModal" ng-click="prepareEditMetadata(r)">edit metadata</button>
|
|
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#editContentModal" ng-click="prepareEditContent(r)">edit content</button>
|
|
<a href="./ajax/resources/{{r.id}}/content" class="btn btn-sm btn-success" target="_blank">raw content</a>
|
|
<button type="button" class="btn btn-sm btn-danger" ng-click="deleteResource(r)">delete</button>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modals -->
|
|
|
|
<div class="modal fade" tabindex="-1" id="editMetadataModal">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title">Edit metadata</h4>
|
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
|
</div>
|
|
<form>
|
|
<div class="modal-body">
|
|
<div class="form-group">
|
|
<label>ID</label>
|
|
<input type="text" readonly class="form-control-plaintext" ng-model="tmpRes.id" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Type</label>
|
|
<input type="text" readonly class="form-control-plaintext" ng-model="tmpRes.type" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Name</label>
|
|
<input type="text" class="form-control" ng-model="tmpRes.name" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Description</label>
|
|
<textarea class="form-control" ng-model="tmpRes.description" rows="3"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">Close</button>
|
|
<button type="submit" class="btn btn-sm btn-primary" data-dismiss="modal" ng-click="saveMetadata(tmpRes.id, tmpRes)" ng-disabled="!tmpRes.id || !tmpRes.name">Submit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" tabindex="-1" id="newResourceModal">
|
|
<div class="modal-dialog modal-xl">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title">New resource: <span th:text="${type.id}"></span></h4>
|
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
|
</div>
|
|
<form>
|
|
<div class="modal-body">
|
|
<div class="form-group">
|
|
<label>Name</label>
|
|
<input type="text" class="form-control" ng-model="tmpRes.name" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Description</label>
|
|
<textarea class="form-control" ng-model="tmpRes.description"></textarea>
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Content (<span th:text="${type.contentType}"></span>)</label>
|
|
<textarea class="form-control" ng-model="tmpRes.content" rows="25"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">Close</button>
|
|
<button type="submit" class="btn btn-sm btn-primary" data-dismiss="modal" ng-click="createNewResource(tmpRes)" ng-disabled="!tmpRes.name || !tmpRes.content">Submit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" tabindex="-1" id="editContentModal">
|
|
<div class="modal-dialog modal-xl">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title">Edit content</h4>
|
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
|
</div>
|
|
<form>
|
|
<div class="modal-body">
|
|
<div class="form-group">
|
|
<label th:text="${type.contentType}"></label>
|
|
<textarea class="form-control" ng-model="tmpContent" rows="25"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">Close</button>
|
|
<button type="submit" class="btn btn-sm btn-primary" data-dismiss="modal" ng-click="saveContent(tmpRes.id, tmpContent)" ng-disabled="!tmpContent">Submit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
|
|
<th:block th:replace="fragments/mainParts.html :: scripts"></th:block>
|
|
|
|
<script src="js/simpleResources.js"></script>
|
|
</html>
|
|
|