partially restored commits page
This commit is contained in:
parent
e74fcb316c
commit
539095c89e
@ -10,7 +10,7 @@ public class MvcConfiguration extends WebMvcConfigurerAdapter {
|
|||||||
@Override
|
@Override
|
||||||
public void addViewControllers(ViewControllerRegistry registry) {
|
public void addViewControllers(ViewControllerRegistry registry) {
|
||||||
registry.addViewController("/{articlename:\\w+}");
|
registry.addViewController("/{articlename:\\w+}");
|
||||||
//registry.addViewController("/admin/{articlename:\\w+}");
|
registry.addViewController("/admin/{articlename:\\w+}");
|
||||||
registry.addViewController("/papers/{articlename:\\w+}");
|
registry.addViewController("/papers/{articlename:\\w+}");
|
||||||
registry.addViewController("/grants/{articlename:\\w+}");
|
registry.addViewController("/grants/{articlename:\\w+}");
|
||||||
registry.addViewController("/conferences/{articlename:\\w+}");
|
registry.addViewController("/conferences/{articlename:\\w+}");
|
||||||
|
226
src/main/resources/public/css/odin.css
Normal file
226
src/main/resources/public/css/odin.css
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
.odin-unselectable {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-kill-padding {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-input-group {
|
||||||
|
padding-left: 15px !important;
|
||||||
|
padding-right: 15px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-closable .fa {
|
||||||
|
font-size: 1.5em;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-closable .fa:hover:before {
|
||||||
|
content: "\f057";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Toolbar
|
||||||
|
*/
|
||||||
|
.odin-toolbar {
|
||||||
|
padding-left: 1px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-toolbar .odin-btn {
|
||||||
|
float: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-btn {
|
||||||
|
min-width: 112px;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.odin-btn {
|
||||||
|
min-width: 150px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Paginator
|
||||||
|
*/
|
||||||
|
.odin-paginator {
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 5px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-paginator-content {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-paginator-content a {
|
||||||
|
cursor: pointer;
|
||||||
|
color: black;
|
||||||
|
float: left;
|
||||||
|
padding: 6px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: background-color .3s;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-paginator-content i {
|
||||||
|
color: black;
|
||||||
|
float: left;
|
||||||
|
padding: 6px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-paginator-content a.active {
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-paginator-content a:hover:not(.active) {
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Formatters
|
||||||
|
*/
|
||||||
|
.odin-negative {
|
||||||
|
color: red;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Table
|
||||||
|
*/
|
||||||
|
.odin-table {
|
||||||
|
min-height: 324px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 0 0 1px;
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-table > table {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-table > table > tbody > tr {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-table-pointed-line {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-table-selected-line {
|
||||||
|
background-color: #5bc0de !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-table-selected-line:hover {
|
||||||
|
background-color: #6bd0ee !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Form
|
||||||
|
*/
|
||||||
|
.odin-form {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 1500;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-form .panel {
|
||||||
|
position: relative;
|
||||||
|
max-height: 95%;
|
||||||
|
max-width: 95%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.odin-form .panel {
|
||||||
|
max-width: 55%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-form .panel-footer {
|
||||||
|
padding: 5px 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-form .odin-btn {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-checkbox {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-form .tab-pane {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Confirm Box
|
||||||
|
*/
|
||||||
|
.odin-confirm-box {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 2000;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-confirm-box .panel {
|
||||||
|
position: relative;
|
||||||
|
max-width: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-confirm-box .panel-footer {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.odin-confirm-box .panel {
|
||||||
|
max-width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.odin-confirm-box .panel-body {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Table Box
|
||||||
|
*/
|
||||||
|
.odin-table-box {
|
||||||
|
z-index: 2500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Odin Simple Box
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.odin-simple-form .panel {
|
||||||
|
max-width: 35%;
|
||||||
|
}
|
||||||
|
}
|
10
src/main/resources/public/js/config.js
Normal file
10
src/main/resources/public/js/config.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/* exported contextPath */
|
||||||
|
var contextPath = "";
|
||||||
|
var apiVersion = "/api/1.0";
|
||||||
|
|
||||||
|
var basePath = contextPath + apiVersion;
|
||||||
|
|
||||||
|
/* exported urlVersions */
|
||||||
|
var urlVersions = basePath + "/versions";
|
||||||
|
/* exported urlCommits */
|
||||||
|
var urlCommits = basePath + "/commits";
|
@ -88,12 +88,12 @@ function getFromRest(url, callBack, errorCallBack) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* exported getFromRestWithVersion */
|
/* exported getFromRestWithVersion */
|
||||||
function getFromRestWithVersion(url, callBack, errorCallBack) {
|
function getFromRest(url, callBack, errorCallBack) {
|
||||||
getFromRestWithVersionAndParams(url, "", callBack, errorCallBack);
|
getFromRestWithParams(url, "", callBack, errorCallBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* exported getFromRestWithVersionAndParams */
|
/* exported getFromRestWithVersionAndParams */
|
||||||
function getFromRestWithVersionAndParams(url, params, callBack, errorCallBack) {
|
function getFromRestWithParams(url, params, callBack, errorCallBack) {
|
||||||
getCurrentVersion(function (version) {
|
getCurrentVersion(function (version) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url + "?versionId=" + version + params,
|
url: url + "?versionId=" + version + params,
|
||||||
|
1512
src/main/resources/public/js/odin.js
Normal file
1512
src/main/resources/public/js/odin.js
Normal file
File diff suppressed because it is too large
Load Diff
165
src/main/resources/public/templates/odin.html
Normal file
165
src/main/resources/public/templates/odin.html
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
<script type="text/template" id="createButton">
|
||||||
|
<button type="button" class="btn btn-success odin-btn"><i class="fa fa-plus-square-o"></i> <span>{0}</span></button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="editButton">
|
||||||
|
<button type="button" class="btn btn-info odin-btn"><i class="fa fa-pencil-square-o"></i> <span>{0}</span></button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="deleteButton">
|
||||||
|
<button type="button" class="btn btn-danger odin-btn"><i class="fa fa-trash-o"></i> <span>{0}</span></button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="okButton">
|
||||||
|
<button type="button" class="btn btn-success odin-btn"><span>{0}</span></button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="cancelButton">
|
||||||
|
<button type="button" class="btn btn-danger odin-btn"><span>{0}</span></button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="basicButton">
|
||||||
|
<button type="button" class="btn btn-basic odin-btn"><span>{0}</span></button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="buttonGroup">
|
||||||
|
<div class="input-group-btn">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="chooseButton">
|
||||||
|
<button type="button" class="btn btn-default odin-choose-btn">
|
||||||
|
<i class="fa fa-ellipsis-h"></i>
|
||||||
|
</button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="clearButton">
|
||||||
|
<button type="button" class="btn btn-default odin-clear-btn">
|
||||||
|
<i class="fa fa-close"></i>
|
||||||
|
</button>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="emptyDiv">
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="anchor">
|
||||||
|
<a href="{0}">{1}</a>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="toolbar">
|
||||||
|
<div class="odin-toolbar">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="paginator">
|
||||||
|
<div class="odin-paginator">
|
||||||
|
<div class="odin-paginator-content">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="paginatorButton">
|
||||||
|
<a id="odin-paginator-{0}">{1}</a>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="paginatorSeparator">
|
||||||
|
<i class="fa fa-ellipsis-h"></i>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="tableBoolean">
|
||||||
|
<i class="fa {0}"></i>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="tableNumericNegative">
|
||||||
|
<span class="odin-negative">{0}</span>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="table">
|
||||||
|
<div class="table-responsive odin-table">
|
||||||
|
<table class="table table-bordered table-condensed">
|
||||||
|
<thead>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="tableLine">
|
||||||
|
<tr></tr>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="tableHeadColumn">
|
||||||
|
<th class="col-xs-1">{0}</th>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="tableBodyColumn">
|
||||||
|
<td></td>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formInputGroup">
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formLabel">
|
||||||
|
<label class="col-lg-2 control-label" for="{0}">{1}</label>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formInputWrapper">
|
||||||
|
<div class="col-lg-10">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formInputCheckbox">
|
||||||
|
<input type="checkbox" class="odin-checkbox" id="{0}" {1}>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formInput">
|
||||||
|
<input class="form-control" id="{0}" value="{1}" type="{2}">
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="form">
|
||||||
|
<form class="odin-form">
|
||||||
|
</form>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formConfirm">
|
||||||
|
<div class="odin-confirm-box">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formSimple">
|
||||||
|
<div class="odin-form">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formPanel">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formHeader">
|
||||||
|
<div class="panel-heading odin-unselectable odin-closable">
|
||||||
|
<span id="caption"></span>
|
||||||
|
<i class="fa fa-times-circle-o fa-pull-right"></i>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formContent">
|
||||||
|
<div class="panel-body">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formFooter">
|
||||||
|
<div class="panel-footer clearfix">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="choseTable">
|
||||||
|
<div id="table-block" class=\"panel-body odin-kill-padding\"></div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formTabs">
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
<li class="active">
|
||||||
|
<a data-toggle="tab" href="#{0}">{1}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<div id="{0}" class="tab-pane active">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formTab">
|
||||||
|
<li>
|
||||||
|
<a data-toggle="tab" href="#{0}">{1}</a>
|
||||||
|
</li>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="formTabContent">
|
||||||
|
<div id="{0}" class="tab-pane">
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
<script type="text/template" id="copyForm">
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<label class="col-lg-2 control-label" for="fromVersion">Из версии</label>
|
||||||
|
<div class="col-lg-10">
|
||||||
|
<select class="form-control" id="fromVersion" required="required">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<label class="col-lg-2 control-label" for="version">В версию</label>
|
||||||
|
<div class="col-lg-10">
|
||||||
|
<input class="form-control" id="version" disabled="disabled">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</script>
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
<!-- Custom styles for this template -->
|
<!-- Custom styles for this template -->
|
||||||
<link rel="stylesheet" href="/css/agency.css"/>
|
<link rel="stylesheet" href="/css/agency.css"/>
|
||||||
|
<link rel="stylesheet" href="/css/odin.css"/>
|
||||||
<!-- Bootstrap core JavaScript -->
|
<!-- Bootstrap core JavaScript -->
|
||||||
<script src="/webjars/jquery/3.3.1-1/jquery.min.js"></script>
|
<script src="/webjars/jquery/3.3.1-1/jquery.min.js"></script>
|
||||||
<script src="/webjars/bootstrap/4.1.0/js/bootstrap.bundle.min.js"></script>
|
<script src="/webjars/bootstrap/4.1.0/js/bootstrap.bundle.min.js"></script>
|
||||||
@ -94,6 +95,10 @@
|
|||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="/js/core.js"></script>
|
<script src="/js/core.js"></script>
|
||||||
|
<script src="/js/config.js"></script>
|
||||||
|
<script src="/js/odin.js"></script>
|
||||||
|
<th:block layout:fragment="scripts">
|
||||||
|
</th:block>
|
||||||
<!-- Yandex.Metrika counter -->
|
<!-- Yandex.Metrika counter -->
|
||||||
<script type="text/javascript" >
|
<script type="text/javascript" >
|
||||||
(function (d, w, c) {
|
(function (d, w, c) {
|
||||||
|
Loading…
Reference in New Issue
Block a user