mirror of
https://github.com/dalbodeule/snap-admin.git
synced 2025-06-09 05:48:20 +00:00
WIP
This commit is contained in:
parent
c776a2ca57
commit
5c521609d8
@ -43,7 +43,7 @@ import tech.ailef.dbadmin.misc.Utils;
|
|||||||
* The main DbAdmin controller that register most of the routes of the web interface.
|
* The main DbAdmin controller that register most of the routes of the web interface.
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping(value= {"/${dbadmin.baseUrl}", "/${dbadmin.baseUrl}/"}, method=RequestMethod.GET)
|
@RequestMapping(value= {"/${dbadmin.baseUrl}", "/${dbadmin.baseUrl}/"})
|
||||||
public class DefaultDbAdminController {
|
public class DefaultDbAdminController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private DbAdminProperties properties;
|
private DbAdminProperties properties;
|
||||||
@ -168,7 +168,7 @@ public class DefaultDbAdminController {
|
|||||||
return "model/list";
|
return "model/list";
|
||||||
|
|
||||||
} catch (InvalidPageException e) {
|
} catch (InvalidPageException e) {
|
||||||
return "redirect:/dbadmin/model/" + className;
|
return "redirect:/" + properties.getBaseUrl() + "/model/" + className;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,7 +265,7 @@ public class DefaultDbAdminController {
|
|||||||
attr.addFlashAttribute("error", e.getMessage());
|
attr.addFlashAttribute("error", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
return "redirect:/dbadmin/model/" + className;
|
return "redirect:/" + properties.getBaseUrl() + "/model/" + className;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value="/model/{className}/delete")
|
@PostMapping(value="/model/{className}/delete")
|
||||||
@ -292,7 +292,7 @@ public class DefaultDbAdminController {
|
|||||||
if (countDeleted > 0)
|
if (countDeleted > 0)
|
||||||
attr.addFlashAttribute("message", "Deleted " + countDeleted + " of " + ids.length + " items");
|
attr.addFlashAttribute("message", "Deleted " + countDeleted + " of " + ids.length + " items");
|
||||||
|
|
||||||
return "redirect:/dbadmin/model/" + className;
|
return "redirect:/" + properties.getBaseUrl() + "/model/" + className;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value="/model/{className}/create")
|
@PostMapping(value="/model/{className}/create")
|
||||||
@ -402,11 +402,11 @@ public class DefaultDbAdminController {
|
|||||||
|
|
||||||
if (attr.getFlashAttributes().containsKey("error")) {
|
if (attr.getFlashAttributes().containsKey("error")) {
|
||||||
if (create)
|
if (create)
|
||||||
return "redirect:/dbadmin/model/" + schema.getClassName() + "/create";
|
return "redirect:/" + properties.getBaseUrl() + "/model/" + schema.getClassName() + "/create";
|
||||||
else
|
else
|
||||||
return "redirect:/dbadmin/model/" + schema.getClassName() + "/edit/" + pkValue;
|
return "redirect:/" + properties.getBaseUrl() + "/model/" + schema.getClassName() + "/edit/" + pkValue;
|
||||||
} else {
|
} else {
|
||||||
return "redirect:/dbadmin/model/" + schema.getClassName() + "/show/" + pkValue;
|
return "redirect:/" + properties.getBaseUrl() + "/model/" + schema.getClassName() + "/show/" + pkValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import tech.ailef.dbadmin.exceptions.DbAdminException;
|
|||||||
* Controller to serve file or images (`@DisplayImage`)
|
* Controller to serve file or images (`@DisplayImage`)
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/dbadmin/download")
|
@RequestMapping(value = {"/${dbadmin.baseUrl}/download", "/${dbadmin.baseUrl}/download/"})
|
||||||
public class DownloadController {
|
public class DownloadController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private DbAdminRepository repository;
|
private DbAdminRepository repository;
|
||||||
|
@ -20,7 +20,7 @@ import tech.ailef.dbadmin.dto.AutocompleteSearchResult;
|
|||||||
* API controller for autocomplete results
|
* API controller for autocomplete results
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/dbadmin/api/autocomplete")
|
@RequestMapping(value= {"/${dbadmin.baseUrl}/api/autocomplete", "/${dbadmin.baseUrl}/api/autocomplete/"})
|
||||||
public class AutocompleteController {
|
public class AutocompleteController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private DbAdmin dbAdmin;
|
private DbAdmin dbAdmin;
|
||||||
|
@ -19,7 +19,7 @@ import tech.ailef.dbadmin.dto.PaginatedResult;
|
|||||||
import tech.ailef.dbadmin.exceptions.DbAdminException;
|
import tech.ailef.dbadmin.exceptions.DbAdminException;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/dbadmin/api")
|
@RequestMapping(value = {"/${dbadmin.baseUrl}/api", "/${dbadmin.baseUrl}/api/"})
|
||||||
public class DefaultDbAdminRestController {
|
public class DefaultDbAdminRestController {
|
||||||
@Autowired
|
@Autowired
|
||||||
public DbAdmin dbAdmin;
|
public DbAdmin dbAdmin;
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
th:value="${row.getPrimaryKeyValue()}" form="multi-delete-form">
|
th:value="${row.getPrimaryKeyValue()}" form="multi-delete-form">
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center row-icons">
|
<td class="text-center row-icons">
|
||||||
<a class="ps-1" th:href="|/dbadmin/model/${schema.getJavaClass().getName()}/edit/${row.getPrimaryKeyValue()}|">
|
<a class="ps-1" th:href="|/${baseUrl}/model/${schema.getJavaClass().getName()}/edit/${row.getPrimaryKeyValue()}|">
|
||||||
<i class="bi bi-pencil-square"></i></a>
|
<i class="bi bi-pencil-square"></i></a>
|
||||||
<form class="delete-form" method="POST"
|
<form class="delete-form" method="POST"
|
||||||
th:action="|/dbadmin/model/${schema.getJavaClass().getName()}/delete/${row.getPrimaryKeyValue()}|">
|
th:action="|/${baseUrl}/model/${schema.getJavaClass().getName()}/delete/${row.getPrimaryKeyValue()}|">
|
||||||
<button><i class="bi bi-trash"></i></button>
|
<button><i class="bi bi-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
<!-- data-row-field fragment -->
|
<!-- data-row-field fragment -->
|
||||||
<th:block th:fragment="data_row_field(field, object)">
|
<th:block th:fragment="data_row_field(field, object)">
|
||||||
<th:block th:if="${field.getConnectedType() != null && object.traverse(field) != null}">
|
<th:block th:if="${field.getConnectedType() != null && object.traverse(field) != null}">
|
||||||
<a th:href="|/dbadmin/model/${field.getConnectedType().getName()}/show/${object.traverse(field).getPrimaryKeyValue()}|">
|
<a th:href="|/${baseUrl}/model/${field.getConnectedType().getName()}/show/${object.traverse(field).getPrimaryKeyValue()}|">
|
||||||
<span th:text="${object.has(field) ? object.traverse(field).getPrimaryKeyValue() : 'NULL'}"></span>
|
<span th:text="${object.has(field) ? object.traverse(field).getPrimaryKeyValue() : 'NULL'}"></span>
|
||||||
</a>
|
</a>
|
||||||
<p class="p-0 m-0"
|
<p class="p-0 m-0"
|
||||||
@ -42,7 +42,7 @@
|
|||||||
</th:block>
|
</th:block>
|
||||||
<th:block th:if="${field.getConnectedType() == null}">
|
<th:block th:if="${field.getConnectedType() == null}">
|
||||||
<th:block th:if="${field.isPrimaryKey()}">
|
<th:block th:if="${field.isPrimaryKey()}">
|
||||||
<a th:href="|/dbadmin/model/${schema.getClassName()}/show/${object.get(field).getValue()}|">
|
<a th:href="|/${baseUrl}/model/${schema.getClassName()}/show/${object.get(field).getValue()}|">
|
||||||
<span th:text="${object.get(field).getFormattedValue()}">
|
<span th:text="${object.get(field).getFormattedValue()}">
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
@ -63,11 +63,11 @@
|
|||||||
<th:block th:if="${object.get(field).getValue()}">
|
<th:block th:if="${object.get(field).getValue()}">
|
||||||
<div th:if="${field.isImage()}" class="mb-2">
|
<div th:if="${field.isImage()}" class="mb-2">
|
||||||
<img class="thumb-image"
|
<img class="thumb-image"
|
||||||
th:src="|/dbadmin/download/${schema.getClassName()}/${field.getJavaName()}/${object.getPrimaryKeyValue()}/image|">
|
th:src="|/${baseUrl}/download/${schema.getClassName()}/${field.getJavaName()}/${object.getPrimaryKeyValue()}/image|">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a class="text-decoration-none null-label"
|
<a class="text-decoration-none null-label"
|
||||||
th:href="|/dbadmin/download/${schema.getClassName()}/${field.getJavaName()}/${object.getPrimaryKeyValue()}|">
|
th:href="|/${baseUrl}/download/${schema.getClassName()}/${field.getJavaName()}/${object.getPrimaryKeyValue()}|">
|
||||||
<i class="align-middle bi bi-box-arrow-down"></i><span class="align-middle"> Download
|
<i class="align-middle bi bi-box-arrow-down"></i><span class="align-middle"> Download
|
||||||
<!--/*--> <span class="text-muted">([[ ${object.get(field).getValue().length} ]] bytes)</span> <!--*/-->
|
<!--/*--> <span class="text-muted">([[ ${object.get(field).getValue().length} ]] bytes)</span> <!--*/-->
|
||||||
</span>
|
</span>
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
<h6 class="fw-bold pt-2 ms-3 menu-subheading d-none d-md-block">MENU</h6>
|
<h6 class="fw-bold pt-2 ms-3 menu-subheading d-none d-md-block">MENU</h6>
|
||||||
<ul class="sidebar-menu pb-0 mb-0 ">
|
<ul class="sidebar-menu pb-0 mb-0 ">
|
||||||
<li th:class="${#strings.equals(activePage, 'home') ? 'active' : ''}">
|
<li th:class="${#strings.equals(activePage, 'home') ? 'active' : ''}">
|
||||||
<a href="/dbadmin">
|
<a th:href="|/${baseUrl}|">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<div class="menu-icon">
|
<div class="menu-icon">
|
||||||
<i class="bi bi-house"></i>
|
<i class="bi bi-house"></i>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li th:class="${#strings.equals(activePage, 'entities') ? 'active' : ''}">
|
<li th:class="${#strings.equals(activePage, 'entities') ? 'active' : ''}">
|
||||||
<a href="/dbadmin">
|
<a th:href="|/${baseUrl}|">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<div class="menu-icon">
|
<div class="menu-icon">
|
||||||
<i class="bi bi-database"></i>
|
<i class="bi bi-database"></i>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li th:class="${#strings.equals(activePage, 'settings') ? 'active' : ''}">
|
<li th:class="${#strings.equals(activePage, 'settings') ? 'active' : ''}">
|
||||||
<a href="/dbadmin/settings">
|
<a th:href="|/${baseUrl}/settings|">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<div class="menu-icon">
|
<div class="menu-icon">
|
||||||
<i class="bi bi-gear"></i>
|
<i class="bi bi-gear"></i>
|
||||||
@ -127,7 +127,7 @@
|
|||||||
<ul class="pagination me-3">
|
<ul class="pagination me-3">
|
||||||
<li class="page-item" th:if="${page.getPagination().getCurrentPage() != 1}">
|
<li class="page-item" th:if="${page.getPagination().getCurrentPage() != 1}">
|
||||||
<a class="page-link"
|
<a class="page-link"
|
||||||
th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getLink(page.getPagination.getCurrentPage() - 1)}|}"
|
th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getLink(page.getPagination.getCurrentPage() - 1)}|}"
|
||||||
aria-label="Previous">
|
aria-label="Previous">
|
||||||
<span aria-hidden="true">«</span>
|
<span aria-hidden="true">«</span>
|
||||||
<span class="sr-only">Previous</span>
|
<span class="sr-only">Previous</span>
|
||||||
@ -136,7 +136,7 @@
|
|||||||
|
|
||||||
<li class="page-item" th:each="p : ${page.getPagination().getBeforePages()}">
|
<li class="page-item" th:each="p : ${page.getPagination().getBeforePages()}">
|
||||||
<a class="page-link"
|
<a class="page-link"
|
||||||
th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getLink(p)}|}" th:text="${p}"></a>
|
th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getLink(p)}|}" th:text="${p}"></a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="page-item active">
|
<li class="page-item active">
|
||||||
@ -145,13 +145,13 @@
|
|||||||
|
|
||||||
<li class="page-item" th:each="p : ${page.getPagination().getAfterPages()}">
|
<li class="page-item" th:each="p : ${page.getPagination().getAfterPages()}">
|
||||||
<a class="page-link"
|
<a class="page-link"
|
||||||
th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getLink(p)}|}"
|
th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getLink(p)}|}"
|
||||||
th:text="${p}"></a>
|
th:text="${p}"></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="page-item">
|
<li class="page-item">
|
||||||
<a class="page-link"
|
<a class="page-link"
|
||||||
th:if="${!page.getPagination().isLastPage()}"
|
th:if="${!page.getPagination().isLastPage()}"
|
||||||
th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getLink(page.getPagination.getCurrentPage() + 1)}|}"
|
th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getLink(page.getPagination.getCurrentPage() + 1)}|}"
|
||||||
aria-label="Next">
|
aria-label="Next">
|
||||||
<span class="sr-only">Next</span>
|
<span class="sr-only">Next</span>
|
||||||
<span aria-hidden="true">»</span>
|
<span aria-hidden="true">»</span>
|
||||||
@ -159,7 +159,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="me-3">
|
<div class="me-3">
|
||||||
<form method="GET" th:action="@{|/dbadmin/model/${schema.getClassName()}|}">
|
<form method="GET" th:action="@{|${baseUrl}/model/${schema.getClassName()}|}">
|
||||||
<input type="hidden" th:value="${page.getPagination().getCurrentPage()}" th:name="page">
|
<input type="hidden" th:value="${page.getPagination().getCurrentPage()}" th:name="page">
|
||||||
<input type="hidden" th:value="${query}" th:name="query">
|
<input type="hidden" th:value="${query}" th:name="query">
|
||||||
<input type="hidden" name="pageSize">
|
<input type="hidden" name="pageSize">
|
||||||
@ -187,7 +187,7 @@
|
|||||||
|
|
||||||
<div class="d-flex align-items-center" th:if="${page.getPagination().getMaxPage() == 1}">
|
<div class="d-flex align-items-center" th:if="${page.getPagination().getMaxPage() == 1}">
|
||||||
<div class="me-3">
|
<div class="me-3">
|
||||||
<form method="GET" th:action="@{|/dbadmin/model/${schema.getClassName()}|}">
|
<form method="GET" th:action="@{|${baseUrl}/model/${schema.getClassName()}|}">
|
||||||
<input type="hidden" th:value="${page.getPagination().getCurrentPage()}" th:name="page">
|
<input type="hidden" th:value="${page.getPagination().getCurrentPage()}" th:name="page">
|
||||||
<input type="hidden" th:value="${query}" th:name="query">
|
<input type="hidden" th:value="${query}" th:name="query">
|
||||||
<input type="hidden" name="pageSize">
|
<input type="hidden" name="pageSize">
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<p>This table contains no data.</p>
|
<p>This table contains no data.</p>
|
||||||
</div>
|
</div>
|
||||||
<div th:if="${results.size() > 0}">
|
<div th:if="${results.size() > 0}">
|
||||||
<form id="multi-delete-form" th:action="|/dbadmin/model/${schema.getClassName()}/delete|" method="POST">
|
<form id="multi-delete-form" th:action="|/${baseUrl}/model/${schema.getClassName()}/delete|" method="POST">
|
||||||
</form>
|
</form>
|
||||||
<nav th:replace="~{fragments/resources :: pagination(${page})}">
|
<nav th:replace="~{fragments/resources :: pagination(${page})}">
|
||||||
</nav>
|
</nav>
|
||||||
@ -29,17 +29,17 @@
|
|||||||
<div class="align-items-center">
|
<div class="align-items-center">
|
||||||
<h4 class="m-0" th:if="${page}">
|
<h4 class="m-0" th:if="${page}">
|
||||||
<th:block th:if="${sortKey != field.getJavaName()}" >
|
<th:block th:if="${sortKey != field.getJavaName()}" >
|
||||||
<a th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getSortedPageLink(field.getJavaName(), 'DESC')}|}">
|
<a th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getSortedPageLink(field.getJavaName(), 'DESC')}|}">
|
||||||
<i title="Sort" class="bi bi-caret-up"></i>
|
<i title="Sort" class="bi bi-caret-up"></i>
|
||||||
</a>
|
</a>
|
||||||
</th:block>
|
</th:block>
|
||||||
<th:block th:unless="${sortKey != field.getJavaName()}">
|
<th:block th:unless="${sortKey != field.getJavaName()}">
|
||||||
<a th:if="${sortOrder == 'DESC'}"
|
<a th:if="${sortOrder == 'DESC'}"
|
||||||
th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getSortedPageLink(field.getJavaName(), 'ASC')}|}">
|
th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getSortedPageLink(field.getJavaName(), 'ASC')}|}">
|
||||||
<i title="Sort" class="bi bi-caret-down-fill"></i>
|
<i title="Sort" class="bi bi-caret-down-fill"></i>
|
||||||
</a>
|
</a>
|
||||||
<a th:if="${sortOrder == 'ASC'}"
|
<a th:if="${sortOrder == 'ASC'}"
|
||||||
th:href="@{|/dbadmin/model/${schema.getClassName()}${page.getPagination().getSortedPageLink(field.getJavaName(), 'DESC')}|}">
|
th:href="@{|${baseUrl}/model/${schema.getClassName()}${page.getPagination().getSortedPageLink(field.getJavaName(), 'DESC')}|}">
|
||||||
<i title="Sort" class="bi bi-caret-up-fill"></i>
|
<i title="Sort" class="bi bi-caret-up-fill"></i>
|
||||||
</a>
|
</a>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<div th:replace="~{fragments/resources :: sidebar('entities')}"></div>
|
<div th:replace="~{fragments/resources :: sidebar('entities')}"></div>
|
||||||
<div class="main-content bg-lighter">
|
<div class="main-content bg-lighter">
|
||||||
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-house"></i><span class="align-middle"> Home</span></h1>
|
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-house"></i><span class="align-middle"> Home</span></h1>
|
||||||
<form action="/dbadmin" method="GET">
|
<form th:action="${baseUrl}" method="GET">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" th:value="${query}"
|
<input type="text" th:value="${query}"
|
||||||
placeholder="Type a class or a table name and press ENTER to search"
|
placeholder="Type a class or a table name and press ENTER to search"
|
||||||
@ -31,7 +31,7 @@
|
|||||||
<tr th:each="schema : ${schemas}">
|
<tr th:each="schema : ${schemas}">
|
||||||
<td>
|
<td>
|
||||||
<a th:text="${schema.getTableName()}"
|
<a th:text="${schema.getTableName()}"
|
||||||
th:href="|/dbadmin/model/${schema.getClassName()}|"></a>
|
th:href="|/${baseUrl}/model/${schema.getClassName()}|"></a>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="${counts.get(schema.getClassName())}"></span>
|
<span th:text="${counts.get(schema.getClassName())}"></span>
|
||||||
@ -40,8 +40,8 @@
|
|||||||
<span th:text="${schema.getClassName()}"></span>
|
<span th:text="${schema.getClassName()}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end row-icons">
|
<td class="text-end row-icons">
|
||||||
<a title="List all" th:href="|/dbadmin/model/${schema.getClassName()}|"><i class="bi bi-list"></i></i></a>
|
<a title="List all" th:href="|/${baseUrl}/model/${schema.getClassName()}|"><i class="bi bi-list"></i></i></a>
|
||||||
<a title="Create new" th:href="|/dbadmin/model/${schema.getClassName()}/create|"><i class="bi bi-plus-square"></i></a>
|
<a title="Create new" th:href="|/${baseUrl}/model/${schema.getClassName()}/create|"><i class="bi bi-plus-square"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
|
|
||||||
<h1 class="fw-bold mb-4">
|
<h1 class="fw-bold mb-4">
|
||||||
<i class="align-middle bi bi-database"></i>
|
<i class="align-middle bi bi-database"></i>
|
||||||
<span class="align-middle"><a href="/dbadmin">Entities</a></span>
|
<span class="align-middle"><a th:href="|/${baseUrl}|">Entities</a></span>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i>
|
<i class="align-middle bi bi-chevron-double-right"></i>
|
||||||
<a class="align-middle" th:href="|/dbadmin/model/${schema.getJavaClass().getName()}|">
|
<a class="align-middle" th:href="|/${baseUrl}/model/${schema.getJavaClass().getName()}|">
|
||||||
[[ ${schema.getJavaClass().getSimpleName()} ]] </a>
|
[[ ${schema.getJavaClass().getSimpleName()} ]] </a>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i>
|
<i class="align-middle bi bi-chevron-double-right"></i>
|
||||||
<span class="align-middle" th:text="${create ? 'Create' : 'Edit'}"></span>
|
<span class="align-middle" th:text="${create ? 'Create' : 'Edit'}"></span>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<h3 class="fw-bold mb-4" th:text="${create ? schema.getJavaClass().getSimpleName() : object.getDisplayName()}"></h3>
|
<h3 class="fw-bold mb-4" th:text="${create ? schema.getJavaClass().getSimpleName() : object.getDisplayName()}"></h3>
|
||||||
<form class="form" enctype="multipart/form-data" method="post" th:action="|/dbadmin/model/${className}/create|">
|
<form class="form" enctype="multipart/form-data" method="post" th:action="|/${baseUrl}/model/${className}/create|">
|
||||||
<input type="hidden" name="__dbadmin_create" th:value="${create}">
|
<input type="hidden" name="__dbadmin_create" th:value="${create}">
|
||||||
<div th:each="field : ${schema.getSortedFields()}" class="mt-2">
|
<div th:each="field : ${schema.getSortedFields()}" class="mt-2">
|
||||||
<label th:for="|__id_${field.getName()}|" class="mb-1 fw-bold">
|
<label th:for="|__id_${field.getName()}|" class="mb-1 fw-bold">
|
||||||
@ -70,7 +70,7 @@
|
|||||||
<span>Keep current data</span>
|
<span>Keep current data</span>
|
||||||
<div th:if="${field.isImage()}" class="mb-2">
|
<div th:if="${field.isImage()}" class="mb-2">
|
||||||
<img class="thumb-image" th:id="|__thumb_${field.getName()}|"
|
<img class="thumb-image" th:id="|__thumb_${field.getName()}|"
|
||||||
th:src="|/dbadmin/download/${schema.getClassName()}/${field.getJavaName()}/${object.getPrimaryKeyValue()}/image|">
|
th:src="|/${baseUrl}/download/${schema.getClassName()}/${field.getJavaName()}/${object.getPrimaryKeyValue()}/image|">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--/*--> File input <!--*/-->
|
<!--/*--> File input <!--*/-->
|
||||||
@ -94,7 +94,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="d-flex mt-4 justify-content-between">
|
<div class="d-flex mt-4 justify-content-between">
|
||||||
<a th:href="|/dbadmin/model/${schema.getClassName()}|" class="ui-btn btn btn-secondary">Cancel</a>
|
<a th:href="|/${baseUrl}/model/${schema.getClassName()}|" class="ui-btn btn btn-secondary">Cancel</a>
|
||||||
<input type="submit" class="ui-btn btn btn-primary" th:value="${object != null ? 'Save' : 'Create'}">
|
<input type="submit" class="ui-btn btn btn-primary" th:value="${object != null ? 'Save' : 'Create'}">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -10,19 +10,19 @@
|
|||||||
<div class="main-content bg-lighter">
|
<div class="main-content bg-lighter">
|
||||||
<th:block th:replace="~{fragments/resources :: alerts}"></th:block>
|
<th:block th:replace="~{fragments/resources :: alerts}"></th:block>
|
||||||
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-database"></i>
|
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-database"></i>
|
||||||
<span class="align-middle"><a href="/dbadmin">Entities</a></span>
|
<span class="align-middle"><a th:href="|/${baseUrl}|">Entities</a></span>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i>
|
<i class="align-middle bi bi-chevron-double-right"></i>
|
||||||
<span class="align-middle"> [[ ${schema.getJavaClass().getSimpleName()} ]] </span>
|
<span class="align-middle"> [[ ${schema.getJavaClass().getSimpleName()} ]] </span>
|
||||||
</h1>
|
</h1>
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div th:class="${schema.getFilterableFields().isEmpty() ? 'col' : 'col-9'}">
|
<div th:class="${schema.getFilterableFields().isEmpty() ? 'col' : 'col-9'}">
|
||||||
<div class="w-100 d-flex inner-navigation">
|
<div class="w-100 d-flex inner-navigation">
|
||||||
<a th:href="|/dbadmin/model/${className}|" class="active">
|
<a th:href="|/${baseUrl}/model/${className}|" class="active">
|
||||||
<div class="ui-tab ps-5 pe-5 p-3">
|
<div class="ui-tab ps-5 pe-5 p-3">
|
||||||
<i class="bi bi-database pe-2"></i> DATA
|
<i class="bi bi-database pe-2"></i> DATA
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a th:href="|/dbadmin/model/${className}/schema|">
|
<a th:href="|/${baseUrl}/model/${className}/schema|">
|
||||||
<div class="ui-tab ps-5 pe-5 p-3">
|
<div class="ui-tab ps-5 pe-5 p-3">
|
||||||
<i class="bi bi-table pe-2"></i> SCHEMA
|
<i class="bi bi-table pe-2"></i> SCHEMA
|
||||||
</div>
|
</div>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box with-navigation">
|
<div class="box with-navigation">
|
||||||
<form th:action="|/dbadmin/model/${className}|" method="GET" class="mb-3">
|
<form th:action="|/${baseUrl}/model/${className}|" method="GET" class="mb-3">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-text"><i class="bi bi-search"></i></span>
|
<span class="input-group-text"><i class="bi bi-search"></i></span>
|
||||||
<input type="text" th:value="${query}"
|
<input type="text" th:value="${query}"
|
||||||
@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
<a title="Create new item"
|
<a title="Create new item"
|
||||||
th:href="|/dbadmin/model/${schema.getClassName()}/create|"><i class="bi bi-plus-square"></i></a>
|
th:href="|/${baseUrl}/model/${schema.getClassName()}/create|"><i class="bi bi-plus-square"></i></a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -10,20 +10,20 @@
|
|||||||
<div th:replace="~{fragments/resources :: sidebar('entities')}"></div>
|
<div th:replace="~{fragments/resources :: sidebar('entities')}"></div>
|
||||||
<div class="main-content bg-lighter">
|
<div class="main-content bg-lighter">
|
||||||
<h1 class="fw-bold mb-4"><i class="bi bi-database"></i>
|
<h1 class="fw-bold mb-4"><i class="bi bi-database"></i>
|
||||||
<a class="align-middle" href="/dbadmin">Entities</a>
|
<a class="align-middle" th:href="|/${baseUrl}|">Entities</a>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i>
|
<i class="align-middle bi bi-chevron-double-right"></i>
|
||||||
<a class="align-middle" th:href="|/dbadmin/model/${schema.getJavaClass().getName()}|"> [[ ${schema.getJavaClass().getSimpleName()} ]]</a>
|
<a class="align-middle" th:href="|/${baseUrl}/model/${schema.getJavaClass().getName()}|"> [[ ${schema.getJavaClass().getSimpleName()} ]]</a>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i><span class="align-middle"> Schema</span>
|
<i class="align-middle bi bi-chevron-double-right"></i><span class="align-middle"> Schema</span>
|
||||||
</h1>
|
</h1>
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="w-100 d-flex inner-navigation">
|
<div class="w-100 d-flex inner-navigation">
|
||||||
<a th:href="|/dbadmin/model/${schema.getJavaClass().getName()}|">
|
<a th:href="|/${baseUrl}/model/${schema.getJavaClass().getName()}|">
|
||||||
<div class="ui-tab ps-5 pe-5 p-3">
|
<div class="ui-tab ps-5 pe-5 p-3">
|
||||||
<i class="bi bi-database pe-2"></i> DATA
|
<i class="bi bi-database pe-2"></i> DATA
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a th:href="|/dbadmin/model/${schema.getJavaClass().getName()}/schema|" class="active">
|
<a th:href="|/${baseUrl}/model/${schema.getJavaClass().getName()}/schema|" class="active">
|
||||||
<div class="ui-tab ps-5 pe-5 p-3">
|
<div class="ui-tab ps-5 pe-5 p-3">
|
||||||
<i class="bi bi-table pe-2"></i> SCHEMA
|
<i class="bi bi-table pe-2"></i> SCHEMA
|
||||||
</div>
|
</div>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</h3>
|
</h3>
|
||||||
<h3><a title="Create new item"
|
<h3><a title="Create new item"
|
||||||
th:href="|/dbadmin/model/${schema.getClassName()}/create|"><i class="bi bi-plus-square"></i></a></h3>
|
th:href="|/${baseUrl}/model/${schema.getClassName()}/create|"><i class="bi bi-plus-square"></i></a></h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table table-striped align-middle">
|
<table class="table table-striped align-middle">
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
<div th:replace="~{fragments/resources :: sidebar('entities')}"></div>
|
<div th:replace="~{fragments/resources :: sidebar('entities')}"></div>
|
||||||
<div class="main-content bg-lighter">
|
<div class="main-content bg-lighter">
|
||||||
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-database"></i>
|
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-database"></i>
|
||||||
<a class="align-middle" href="/dbadmin">Entities</a>
|
<a class="align-middle" th:href="|/${baseUrl}|">Entities</a>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i>
|
<i class="align-middle bi bi-chevron-double-right"></i>
|
||||||
<a class="align-middle" th:href="|/dbadmin/model/${schema.getJavaClass().getName()}|">
|
<a class="align-middle" th:href="|/${baseUrl}/model/${schema.getJavaClass().getName()}|">
|
||||||
[[ ${schema.getJavaClass().getSimpleName()} ]]</a>
|
[[ ${schema.getJavaClass().getSimpleName()} ]]</a>
|
||||||
<i class="align-middle bi bi-chevron-double-right"></i>
|
<i class="align-middle bi bi-chevron-double-right"></i>
|
||||||
<span class="align-middle"> [[ ${object.getDisplayName()} ]]</span>
|
<span class="align-middle"> [[ ${object.getDisplayName()} ]]</span>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<h3 class="mb-3 fw-bold" th:text="${object.getDisplayName()}"></h3>
|
<h3 class="mb-3 fw-bold" th:text="${object.getDisplayName()}"></h3>
|
||||||
<h3><a th:href="|/dbadmin/model/${schema.getClassName()}/edit/${object.getPrimaryKeyValue()}|">
|
<h3><a th:href="|/${baseUrl}/model/${schema.getClassName()}/edit/${object.getPrimaryKeyValue()}|">
|
||||||
<i class="bi bi-pencil"></i></a>
|
<i class="bi bi-pencil"></i></a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<div class="main-content bg-lighter">
|
<div class="main-content bg-lighter">
|
||||||
<th:block th:replace="~{fragments/resources :: alerts}"></th:block>
|
<th:block th:replace="~{fragments/resources :: alerts}"></th:block>
|
||||||
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-gear"></i>
|
<h1 class="fw-bold mb-4"><i class="align-middle bi bi-gear"></i>
|
||||||
<span class="align-middle"><a href="/dbadmin">Settings</a></span>
|
<span class="align-middle"><a th:href="|/${baseUrl}|">Settings</a></span>
|
||||||
</h1>
|
</h1>
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user