aboutsummaryrefslogtreecommitdiffstats
path: root/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin
diff options
context:
space:
mode:
authorhuangjian <huang.jian12@zte.com.cn>2016-08-31 16:47:33 +0800
committerhuangjian <huang.jian12@zte.com.cn>2016-08-31 16:47:33 +0800
commitfa49e78cc199526a9e33b59c5194f8e3bf0f0952 (patch)
tree3478e867a8f304266dbceca6e992cceca410ede4 /winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin
parent159d40f0011559c8f82338b29dca1bffd700f2c8 (diff)
Add winery source code
Change-Id: I1c5088121d79b71098c3cba1996c6f784737532e Issue-id: TOSCA-49 Signed-off-by: huangjian <huang.jian12@zte.com.cn>
Diffstat (limited to 'winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin')
-rw-r--r--winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/adminindex.jsp41
-rw-r--r--winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/namespaces.jsp108
-rw-r--r--winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/repository.jsp101
-rw-r--r--winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/types/types.jsp105
4 files changed, 355 insertions, 0 deletions
diff --git a/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/adminindex.jsp b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/adminindex.jsp
new file mode 100644
index 0000000..c7ee9f7
--- /dev/null
+++ b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/adminindex.jsp
@@ -0,0 +1,41 @@
+<%--
+/*******************************************************************************
+ * Copyright (c) 2012-2013 University of Stuttgart.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * Oliver Kopp - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+--%>
+<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
+<%@page import="org.eclipse.winery.repository.resources.SubMenuData"%>
+
+<%
+java.util.List<SubMenuData> subMenus = new java.util.ArrayList<SubMenuData>();
+
+SubMenuData data;
+
+data = new SubMenuData("#namespaces", "Namespaces");
+subMenus.add(data);
+
+data = new SubMenuData("#repository", "Repository");
+subMenus.add(data);
+
+data = new SubMenuData("#planlanguages", "Plan Languages");
+subMenus.add(data);
+
+data = new SubMenuData("#plantypes", "Plan Types");
+subMenus.add(data);
+
+data = new SubMenuData("#constrainttypes", "Constraint Types");
+subMenus.add(data);
+%>
+
+<%-- TODO: do not use componentinstance, but introduce a layer inbetween componentinstance.tag and genericpage.tag --%>
+
+<t:componentinstance windowtitle="Admin" cssClass="mainContentContainer admin" selected="admin" subMenus="<%=subMenus%>">
+</t:componentinstance>
diff --git a/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/namespaces.jsp b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/namespaces.jsp
new file mode 100644
index 0000000..e80ad1d
--- /dev/null
+++ b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/namespaces.jsp
@@ -0,0 +1,108 @@
+<%--
+/*******************************************************************************
+ * Copyright (c) 2012-2013 University of Stuttgart.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * Oliver Kopp - initial API and implementation and/or initial documentation
+ * Yves Schubert - switch to bootstrap 3
+ *******************************************************************************/
+--%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://www.eclipse.org/winery/repository/functions" prefix="w" %>
+<script>
+var namespacePrefixesTableInfo = {
+ id : '#namespacePrefixesTable'
+};
+
+$(function() {
+ require(["winery-support"], function(ws) {
+ ws.initTable(namespacePrefixesTableInfo);
+ });
+});
+
+function addNSprefix() {
+ $.ajax({
+ url: "${pageContext.request.contextPath}/admin/namespaces/",
+ type: "POST",
+ async: false,
+ data: $('#addNamespacePrefixForm').serialize(),
+ error: function(jqXHR, textStatus, errorThrown) {
+ vShowAJAXError("Could not add namespace prefix", jqXHR, errorThrown);
+ },
+ success: function(data, textSTatus, jqXHR) {
+ namespacePrefixesTableInfo.table.fnAddData([$('#nsPrefixAdded').val(), $('#namespaceAdded').val()]);
+ $('#addNamespacePrefixDiag').modal('hide');
+ vShowSuccess("Successfully added namespace prefix.");
+ }
+ });
+}
+
+</script>
+
+<div class="modal fade" id="addNamespacePrefixDiag">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title">Add namespace prefix</h4>
+ </div>
+ <div class="modal-body">
+ <form id="addNamespacePrefixForm" enctype="multipart/form-data">
+ <fieldset>
+ <div class="form-group">
+ <label for="nsPrefixAdded">Prefix</label>
+ <input name="nsPrefix" id="nsPrefixAdded" class="form-control" type="text" />
+ </div>
+
+ <div class="form-group">
+ <label for="namespaceAdded">Namespace</label>
+ <input name="namespace" id="namespaceAdded" class="form-control" type="text" />
+ </div>
+ </fieldset>
+ </form>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+ <button type="button" class="btn btn-primary" onclick="addNSprefix()">Add</button>
+ </div>
+ </div>
+ </div>
+</div>
+
+<div id="namespaces">
+ <div class="listheading">
+ <label>Defined Prefixes for Namespaces</label>
+ <button class="rightbutton btn btn-danger btn-xs" type="button" onclick="deleteOnServerAndInTable(namespacePrefixesTableInfo, 'namespace', 'namespaces/', 1);">Remove</button>
+ <button class="rightbutton btn btn-primary btn-xs" type="button" onclick="$('#addNamespacePrefixDiag').modal('show')">Add</button>
+ </div>
+ <table cellpadding="0" cellspacing="0" border="0" class="display" id="namespacePrefixesTable">
+ <thead>
+ <tr>
+ <th>Prefix</th>
+ <th>Namespace</th>
+ </tr>
+ </thead>
+ <tbody>
+ <c:forEach var="ns" items="${it.namespacesForJSP}">
+ <tr>
+ <td class="prefix">${w:getPrefix(ns.decoded)}</td>
+ <td>${ns.decoded}</td>
+ </tr>
+ </c:forEach>
+ </tbody>
+ </table>
+</div>
+
+<script>
+$(document).on("click", "td.prefix",
+ vCreateTdClickFunction(
+ "${pageContext.request.contextPath}/admin/namespaces/",
+ "nsPrefix",
+ "namespace"));
+</script>
diff --git a/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/repository.jsp b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/repository.jsp
new file mode 100644
index 0000000..446bd46
--- /dev/null
+++ b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/repository.jsp
@@ -0,0 +1,101 @@
+<%--
+/*******************************************************************************
+ * Copyright (c) 2012-2013 University of Stuttgart.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * Oliver Kopp - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+--%>
+<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
+
+<h4>General Repository Commands</h4>
+<div>
+ <a href="repository/?dump" class="btn btn-primary">Dump Repository</a>
+ <button class="btn btn-danger" onclick="clearRepository();" id="btnclearrepository" data-loading-text="Deleting...">Clear Repository</button>
+ <button class="btn btn-default" onclick="$('#upRepoZipDiag').modal('show');">Import Repository</button>
+</div>
+
+<%
+org.eclipse.winery.repository.backend.IRepository rep;
+rep = org.eclipse.winery.repository.Prefs.INSTANCE.getRepository();
+boolean isGitBasedRepo = (rep instanceof org.eclipse.winery.repository.backend.filebased.GitBasedRepository);
+
+org.eclipse.winery.repository.backend.filebased.GitBasedRepository repo = null;
+if (isGitBasedRepo) {
+ repo = (org.eclipse.winery.repository.backend.filebased.GitBasedRepository) rep;
+}
+
+// We only support the commit and reset buttons if we can authenticate at the repository
+// This is a hack to offer different versions of winery at dev.winery.opentosca.org and winery.opentosca.org
+isGitBasedRepo = isGitBasedRepo && (repo.authenticationInfoAvailable());
+
+if (isGitBasedRepo) {
+%>
+<h4>Versioning</h4>
+<div>
+<button id="commitBtn" class="btn btn-default" onclick="doCommit();" data-loading-text="committing...">Commit</button>
+<button id="resetBtn" class="btn btn-danger" onclick="doReset();" data-loading-text="resetting...">Reset</button>
+</div>
+
+<script>
+function doCommit() {
+ $("#commitBtn").button("loading");
+ $.ajax({
+ url: "repository/?commit",
+ async: false,
+ error: function(jqXHR, textStatus, errorThrown) {
+ $("#commitBtn").button("reset");
+ vShowAJAXError("Could not commit", jqXHR, errorThrown);
+ },
+ success: function(data, textSTatus, jqXHR) {
+ $("#commitBtn").button("reset");
+ vShowSuccess("Successfully committed changes.");
+ }
+ });
+}
+
+function doReset() {
+ $("#resetBtn").button("loading");
+ $.ajax({
+ url: "repository/?reset",
+ async: false,
+ error: function(jqXHR, textStatus, errorThrown) {
+ $("#resetBtn").button("reset");
+ vShowAJAXError("Could not reset", jqXHR, errorThrown);
+ },
+ success: function(data, textSTatus, jqXHR) {
+ $("#resetBtn").button("reset");
+ vShowSuccess("Successfully reset to last known state.");
+ }
+ });
+}
+</script>
+<%
+}
+%>
+
+<t:simpleSingleFileUpload
+ title="Upload Repository Content"
+ text="Repository dump file"
+ URL="repository/"
+ type="POST"
+ id="upRepoZip"
+ accept="application/zip" />
+
+<script>
+function clearRepository() {
+ deleteResource('the complete repository', 'repository/',
+ function() {$("#btnclearrepository").button("reset");},
+ function() {$("#btnclearrepository").button("reset");},
+ function() {$("#btnclearrepository").button("loading");}
+ );
+}
+</script>
diff --git a/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/types/types.jsp b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/types/types.jsp
new file mode 100644
index 0000000..25b2e0f
--- /dev/null
+++ b/winery/org.eclipse.winery.repository/src/main/webapp/jsp/admin/types/types.jsp
@@ -0,0 +1,105 @@
+<%--
+/*******************************************************************************
+ * Copyright (c) 2012-2013 University of Stuttgart.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * Oliver Kopp - initial API and implementation and/or initial documentation
+ * Yves Schubert - switch to bootstrap 3
+ *******************************************************************************/
+--%>
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+<div class="listheading">
+ <button class="rightbutton btn btn-danger btn-sm" type="button" onclick="deleteOnServerAndInTable(typesTableInfo, 'Type', '${it.URL}', 1);">Remove</button>
+ <button class="rightbutton btn btn-primary btn-sm" type="button" onclick="$('#addTypeShortnameDiag').modal('show');">Add</button>
+</div>
+
+<table id="typeswithshortnametable">
+
+<thead>
+ <tr>
+ <th>Short name</th>
+ <th>Long Name</th>
+ </tr>
+</thead>
+
+<tbody>
+ <c:forEach var="type" items="${it.types}">
+ <tr>
+ <td class="shortname editable">${type.shortName}</td>
+ <td>${type.type}</td>
+ </tr>
+ </c:forEach>
+</tbody>
+
+</table>
+
+
+<div class="modal fade" id="addTypeShortnameDiag">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title">Add short name</h4>
+ </div>
+ <div class="modal-body">
+ <form id="addTypeShortnameForm" enctype="multipart/form-data">
+ <fieldset>
+ <div class="form-group">
+ <label for="shortname">Short name</label>
+ <input name="shortname" id="shortname" class="form-control" type="text" />
+ </div>
+ <div class="form-group">
+ <label for="type">Type</label>
+ <input name="type" id="type" class="form-control" type="text" />
+ </div>
+ </fieldset>
+ </form>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+ <button type="button" class="btn btn-primary" onclick="addShortNameAndType();">Add</button>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+<script>
+$(document).on("click", "td.shortname",
+ vCreateTdClickFunction(
+ "${it.URL}",
+ "shortname",
+ "type"));
+
+var typesTableInfo = {
+ id: '#typeswithshortnametable'
+};
+require(["winery-support"], function(ws) {
+ ws.initTable(typesTableInfo);
+});
+
+function addShortNameAndType() {
+ $.ajax({
+ url: "${it.URL}",
+ type: "POST",
+ async: false,
+ data: $('#addTypeShortnameForm').serialize(),
+ error: function(jqXHR, textStatus, errorThrown) {
+ vShowAJAXError("Could not add type information", jqXHR, errorThrown);
+ },
+ success: function(data, textSTatus, jqXHR) {
+ typesTableInfo.table.fnAddData([$('#shortname').val(), $('#type').val()]);
+ $('#addTypeShortnameDiag').modal('hide');
+ vShowSuccess("Successfully added type information.");
+ }
+ });
+}
+
+</script>