You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2013/06/01 04:07:31 UTC
svn commit: r1488448 [9/15] - in /juddi/trunk:
juddi-examples/uddi-createbulk/src/uddi/createbulk/ juddi-tomcat/
juddiv3-war/ juddiv3-war/src/main/java/org/apache/juddi/webconsole/
juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/ juddiv3-war/...
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/happy.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/happy.jsp?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/happy.jsp (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/happy.jsp Sat Jun 1 02:07:29 2013
@@ -0,0 +1,379 @@
+<%--
+ Document : happy
+ Created on : May 4, 2013, 9:05:05 AM
+ Author : Alex O'Ree
+--%>
+
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@page import="org.apache.juddi.servlets.RegistryServlet"%>
+<%@page import="java.util.SortedSet"%>
+<%@page import="java.util.Properties"%>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<%@ page session="false"
+ import="java.io.File,
+ java.io.IOException,
+ java.net.URL,
+ java.net.JarURLConnection,
+ java.sql.Connection,
+ java.sql.ResultSet,
+ java.sql.Statement,
+ java.util.Properties,
+ java.util.Iterator,
+ java.util.SortedSet,
+ java.util.TreeSet,
+ javax.naming.Context,
+ javax.naming.InitialContext,
+ javax.sql.DataSource"
+
+
+%>
+<%
+/*
+ * Copyright 2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+%>
+<%!
+
+ /**
+ * Look for the named class in the classpath
+ *
+ * @param name of the class to lookup
+ * @return the location of the named class
+ * @throws IOException
+ */
+ String lookupClass(String className)
+ throws IOException
+ {
+ // load the class (if it exists)
+ Class clazz = null;
+ try {
+ clazz = Class.forName(className);
+ if (clazz == null)
+ return null;
+ }
+ catch (ClassNotFoundException e) {
+ return null;
+ }
+
+ // class was found, now get it's URL
+ URL url = null;
+ try {
+ url = clazz.getProtectionDomain().getCodeSource().getLocation();
+ if (url == null)
+ return "";
+ }
+ catch(Throwable t) {
+ return "";
+ }
+
+ // got the classes URL, now determine it's location
+ String location = getLocation(url);
+ if (location == null)
+ return "";
+ else
+ return location;
+ }
+
+ /**
+ * Look for the named resource or properties file.
+ *
+ * @param resourceName
+ * @return true if the file was found
+ */
+ String lookupResource(String resourceName)
+ {
+ URL url = null;
+ ClassLoader classLoader = null;
+
+ classLoader = this.getClass().getClassLoader();
+ if (classLoader != null)
+ {
+ url = classLoader.getResource(resourceName);
+ if (url != null) {
+ return getLocation(url);
+ }
+ }
+ else
+ {
+ classLoader = System.class.getClassLoader();
+ if (classLoader != null)
+ {
+ url = classLoader.getResource(resourceName);
+ if (url != null) {
+ return getLocation(url);
+ }
+ }
+ else
+ {
+ //try to the thread context loader
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Determine the location of the Java class.
+ *
+ * @param clazz
+ * @return the file path to the jar file or class
+ * file where the class was located.
+ */
+ String getLocation(URL url)
+ {
+ try
+ {
+ String location = url.toString();
+ if (location.startsWith("jar:file:/"))
+ {
+ File file = new File(url.getFile());
+ return file.getPath().substring(6);
+ }
+ else if (location.startsWith("jar"))
+ {
+ url = ((JarURLConnection)url.openConnection()).getJarFileURL();
+ return url.toString();
+ }
+ else if (location.startsWith("file"))
+ {
+ File file = new File(url.getFile());
+ return file.getAbsolutePath();
+ }
+ else
+ {
+ return url.toString();
+ }
+ }
+ catch (Throwable t) {
+ return null;
+ }
+ }
+%>
+<html>
+<head>
+<title>jUDDI Happiness Page</title>
+<link rel="stylesheet" href="juddi.css">
+</head>
+<body>
+
+<div class="nav" align="right"><font size="-2"><a href="http://juddi.apache.org/">jUDDI@Apache</a></font></div>
+<h1>jUDDI</h1>
+
+<div class="announcement">
+<p>
+<h3>Happy jUDDI!</h3>
+
+<h4>jUDDI Version Information</h4>
+<pre>
+<b>jUDDI Version:</b> <%= org.apache.juddi.config.Release.getRegistryVersion() %>
+<b>UDDI Version:</b> <%= org.apache.juddi.config.Release.getUDDIVersion() %>
+</pre>
+
+<h4>jUDDI Dependencies: Class Files & Libraries</h4>
+<pre>
+<%
+ //creates the schema if not there
+ // RegistryEngine registry = RegistryServlet.getRegistry();
+ // registry.init();
+
+ String[] classArray = {
+ "org.apache.juddi.servlets.RegistryServlet",
+ "org.apache.juddi.servlets.NotifyServlet",
+ "org.apache.axis.transport.http.AxisServlet",
+ "org.springframework.web.context.ContextLoaderListener",
+ "org.apache.cxf.transport.servlet.CXFServlet",
+ "org.apache.commons.discovery.Resource",
+ "org.apache.commons.logging.Log",
+ "org.apache.log4j.Layout",
+ "javax.xml.soap.SOAPMessage",
+ //not used anymore "javax.xml.rpc.Service",
+ "com.ibm.wsdl.factory.WSDLFactoryImpl",
+ "javax.xml.parsers.SAXParserFactory"
+ };
+
+ for (int i=0; i<classArray.length; i++)
+ {
+ out.write("<b>Looking for</b>: "+classArray[i]+"<br>");
+
+ String result = lookupClass(classArray[i]);
+ if (result == null)
+ {
+ out.write("<font color=\"red\">-Not Found</font><br>");
+ }
+ else if (result.length() == 0)
+ {
+ out.write("<font color=\"blue\">+Found in an unknown location</font><br>");
+ }
+ else
+ {
+ out.write("<font color=\"green\">+Found in: "+ result +"</font><br>");
+ }
+ }
+%>
+</pre>
+
+<h4>jUDDI Dependencies: Resource & Properties Files</h4>
+<pre>
+<%
+ String[] resourceArray = {
+ "log4j.xml",
+ "juddiv3.properties",
+ "context.xml",
+ "beans.xml",
+ "persistence.xml"
+ };
+
+ for (int i=0; i<resourceArray.length; i++)
+ {
+ out.write("<b>Looking for</b>: "+resourceArray[i]+"<br>");
+
+ String result = lookupResource(resourceArray[i]);
+ if (result == null)
+ {
+ out.write("<font color=\"red\">-Not Found</font><br>");
+ }
+ else if (result.length() == 0)
+ {
+ out.write("<font color=\"blue\">+Found in an unknown location</font><br>");
+ }
+ else
+ {
+ out.write("<font color=\"green\">+Found in: "+ result +"</font><br>");
+ }
+ }
+%>
+</pre>
+
+<h4>jUDDI DataSource Validation</h4>
+<pre>
+<%
+ String dsname = null;
+ Context ctx = null;
+ DataSource ds = null;
+ Connection conn = null;
+ String sql = "SELECT COUNT(*) FROM PUBLISHER";
+
+ try
+ {
+ dsname = request.getParameter("dsname");
+ if ((dsname == null) || (dsname.trim().length() == 0)) {
+ dsname = "java:comp/env/jdbc/juddiDB";
+ } else {
+ dsname = StringEscapeUtils.escapeXml(dsname);
+ }
+
+ ctx = new InitialContext();
+ if (ctx == null )
+ throw new Exception("No Context");
+
+ out.print("<font color=\"green\">");
+ out.print("+ Got a JNDI Context!");
+ out.println("</font>");
+ }
+ catch(Exception ex)
+ {
+ out.print("<font color=\"red\">");
+ out.print("- No JNDI Context ("+ex.getMessage()+")");
+ out.println("</font>");
+ }
+
+ try
+ {
+ ds = (DataSource)ctx.lookup(dsname);
+ if (ds == null)
+ throw new Exception("No Context");
+
+ out.print("<font color=\"green\">");
+ out.print("+ Got a JDBC DataSource (dsname="+dsname+")");
+ out.println("</font>");
+ }
+ catch(Exception ex)
+ {
+ out.print("<font color=\"red\">");
+ out.print("- No '"+dsname+"' DataSource Located("+ex.getMessage()+")");
+ out.println("</font>");
+ }
+
+ try
+ {
+ conn = ds.getConnection();
+ if (conn == null)
+ throw new Exception("No Connection (conn=null)");
+
+ out.print("<font color=\"green\">");
+ out.print("+ Got a JDBC Connection!");
+ out.println("</font>");
+ }
+ catch(Exception ex)
+ {
+ out.print("<font color=\"red\">");
+ out.print("- DB connection was not acquired. ("+ex.getMessage()+")");
+ out.println("</font>");
+ }
+
+ try
+ {
+ Statement stmt = conn.createStatement();
+ ResultSet rs = stmt.executeQuery(sql);
+
+ out.print("<font color=\"green\">");
+ out.print("+ "+sql+" = ");
+ if (rs.next())
+ out.print(rs.getString(1));
+ out.println("</font>");
+
+ conn.close();
+ }
+ catch (Exception ex)
+ {
+ out.print("<font color=\"red\">");
+ out.print("- "+sql+" failed ("+ex.getMessage()+")");
+ out.println("</font>");
+ }
+%>
+</pre>
+
+
+<h4>System Properties</h4>
+<pre>
+<%
+ try
+ {
+ Properties sysProps = System.getProperties();
+ SortedSet sortedProperties = new TreeSet(sysProps.keySet());
+ for (Iterator keys = sortedProperties.iterator(); keys.hasNext();)
+ {
+ String key = (String)keys.next();
+ out.println("<b>"+key + "</b>: " + sysProps.getProperty(key));
+ }
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+%>
+</pre>
+
+<hr>
+Platform: <%= getServletConfig().getServletContext().getServerInfo() %>
+
+<table width="100%" border="0">
+<tr><td height="50" align="center" valign="bottom" nowrap><div class="footer"> </div></td></tr>
+</table>
+
+</div>
+</body>
+</html>
\ No newline at end of file
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/header-bottom.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/header-bottom.jsp?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/header-bottom.jsp (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/header-bottom.jsp Sat Jun 1 02:07:29 2013
@@ -0,0 +1,28 @@
+<%--
+ Document : header-bottom
+ Created on : Feb 24, 2013, 9:08:18 AM
+ Author : Alex O'Ree
+--%>
+
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@page import="java.io.IOException"%>
+<%@page import="java.util.jar.Attributes"%>
+<%@page import="java.util.jar.Manifest"%>
+<%@page import="java.io.InputStream"%>
+<%@page import="java.util.jar.JarFile"%>
+<%@page import="java.net.URL"%>
+<%@page import="java.util.Enumeration"%>
+<%@page import="org.apache.juddi.webconsole.resources.ResourceLoader"%>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+
+</div> <!-- /container -->
+</form>
+<div style="
+ padding: 0px 0px 0px 0px; bottom: 0px; margin: 0px 0px 0px 0px; width:100%; text-align: center; position: fixed;
+ background-color: white;
+ "><center><footer><span style="color: red"><b>BETA</b></span> - v<%
+ out.write(StringEscapeUtils.escapeHtml(org.apache.juddi.v3.client.Release.getRegistryVersion()));
+ %> - <a href="http://www.apache.org"><%=ResourceLoader.GetResource(session, "footer.apachecopyright")%></a</footer></center></div>
+</body>
+</html>
+
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/header-top.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/header-top.jsp?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/header-top.jsp (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/header-top.jsp Sat Jun 1 02:07:29 2013
@@ -0,0 +1,176 @@
+<%--
+/*
+ * Copyright 2001-2013 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+ Document : header-top
+ Created on : Feb 24, 2013, 9:08:12 AM
+ Author : Alex O'Ree
+--%>
+
+<%@page import="org.apache.juddi.webconsole.hub.UddiHub"%>
+<%@page import="org.apache.juddi.webconsole.resources.ResourceLoader"%>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<%
+ //this is to catch someone that bookmarked a page after selecting a language
+ Cookie[] cookies2 = request.getCookies();
+ if (cookies2 != null && cookies2.length > 0) {
+ for (int i = 0; i < cookies2.length; i++) {
+ if (cookies2[i] != null && cookies2[i].getName() != null && cookies2[i].getName().equalsIgnoreCase("locale")) {
+ if (cookies2[i].getValue() != null) {
+ session.setAttribute("locale", cookies2[i].getValue());
+ }
+ }
+ }
+ }
+ if (session.getAttribute("locale") == null) {
+ //last chance, default to english
+ session.setAttribute("locale", "en");
+ }
+%>
+<html lang="<%=(String) session.getAttribute("locale")%>" dir="<%=ResourceLoader.GetResource(session, "direction")%>">
+ <head>
+ <meta charset="utf-8">
+ <title><%=ResourceLoader.GetResource(session, "title")%></title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="<%=ResourceLoader.GetResource(session, "description")%>">
+ <meta name="author" content="Apache Software Foundation">
+
+ <link href="css/bootstrap.min.css" rel="stylesheet">
+ <link href="css/bootstrap-datetimepicker.min.css" rel="stylesheet">
+ <link href="css/bootstrap-timepicker.min.css" rel="stylesheet">
+ <link rel="stylesheet" href="css/font-awesome.min.css">
+ <link rel="stylesheet" href="css/ui-lightness/jquery-ui-1.10.2.custom.min.css">
+ <!--[if IE 7]>
+ <link rel="stylesheet" href="css/font-awesome-ie7.min.css">
+ <![endif]-->
+
+ <link rel="shortcut icon" href="favicon.ico" />
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ padding-bottom: 40px;
+ }
+ </style>
+ <link href="css/bootstrap-responsive.min.css" rel="stylesheet">
+ <link href="css/bootstrap-modal.css" rel="stylesheet">
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="js/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons -->
+
+ <link rel="shortcut icon" href="ico/favicon.png">
+ <script src="js/jquery-1.9.1.js"></script>
+ <script src="js/i18n.js.jsp"></script>
+ <script src="js/bootstrap.min.js"></script>
+ <script src="js/bootstrap-datetimepicker.min.js"></script>
+ <script src="js/bootstrap-timepicker.min.js"></script>
+ <script src="js/bootstrap-modalmanager.js"></script>
+ <script src="js/bootstrap-modal.js"></script>
+ <script src="js/jquery.jeditable.js"></script>
+ <script src="js/jquery-ui-1.10.2.custom.min.js"></script>
+ <script src="js/main.js"></script>
+ </head>
+
+ <body>
+ <form id="uddiform">
+ <%@include file="csrf.jsp" %>
+ <input type="hidden" name="nonce" id="nonce" value="<%=StringEscapeUtils.escapeHtml((String) session.getAttribute("nonce"))%>" />
+ <div class="alert" style="display:none; position: fixed; top:45px; width:80%; left: 10%; z-index: 1000; opacity: 1.0; background-color: #FFD530; color:black " id="resultBar">
+ </div>
+ <%
+ UddiHub hub = UddiHub.getInstance(application, session);
+ %>
+
+ <div class="navbar navbar-inverse navbar-fixed-top">
+ <div class="navbar-inner">
+ <div class="container">
+ <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="brand" href="home.jsp" style="padding-left:19px; padding-top:0px; padding-bottom:0px"><img src="img/logo2.png"></a>
+ <div class="nav-collapse collapse">
+ <ul class="nav">
+ <li class="dropdown"><a href="home.jsp" data-toggle="dropdown" class="dropdowb-town"><i class="icon-home icon-large"></i><%=ResourceLoader.GetResource(session, "navbar.home")%><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="reginfo.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.create.mybiz.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.create.mybiz")%></a></li>
+ <li><a href="assertions.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.publisherassertions.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.publisherassertions")%></a></li>
+ <li><a href="transfer.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.transfer.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.transfer")%></a></li>
+ <li class="divider"></li>
+ <li><a href="viewSubscriptions.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.subscriptions.view.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.subscriptions.view")%></a></li>
+ <li><a href="editSubscription.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.subscriptions.create.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.subscriptions.create")%></a></li>
+ <li><a href="subscriptionFeed.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.subscriptions.feed.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.subscriptions.feed")%></a></li>
+ </ul>
+
+
+ </li>
+ <li class="dropdown" ><a href="#" data-toggle="dropdown" class="dropdowb-town"><i class="icon-search icon-large"></i><%=ResourceLoader.GetResource(session, "navbar.discover")%><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="businessBrowse.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.businesses.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.businesses")%></a></li>
+ <li><a href="serviceBrowse.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.services.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.services")%></a></li>
+ <li><a href="tmodelBrowse.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.tmodels.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.tmodels")%></a></li>
+ <%// <li><a href="publisherBrowse.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.publishers.tooltip")">ResourceLoader.GetResource(session, "navbar.publishers")</a></li>
+%>
+ <li class="divider"> </li>
+
+ <li><a href="search.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.search.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.search")%></a></li>
+
+
+ </ul>
+ </li>
+ <li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdowb-town"><i class="icon-pencil icon-large"></i><%=ResourceLoader.GetResource(session, "navbar.create")%><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="businessEditor2.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.create.business.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.create.business")%></a></li>
+ <li><a href="businessBrowse.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.create.service.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.create.service")%></a></li>
+ <li><a href="importFromWsdl.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.create.serviceimport.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.create.serviceimport")%></a></li>
+ <li><a href="tmodelEditor.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.create.tmodel.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.create.tmodel")%></a></li>
+ <li><a href="tmodelPartitions.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.create.tmodelkeygen.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.create.tmodelkeygen")%></a></li>
+ </ul>
+ </li>
+
+ <li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdowb-town"><i class="icon-cog icon-large"></i><%=ResourceLoader.GetResource(session, "navbar.settings")%><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="settings.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.settings.config.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.settings.config")%></a></li>
+ </ul>
+ </li>
+
+ <li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdowb-town"><i class="icon-question-sign icon-large"></i><%=ResourceLoader.GetResource(session, "navbar.help")%> <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="http://juddi.apache.org/docs/3.x/userguide/html/index.html" title="<%=ResourceLoader.GetResource(session, "navbar.help.userguide")%>"><%=ResourceLoader.GetResource(session, "navbar.help.userguide")%></a></li>
+ <li><a href="http://juddi.apache.org/docs/3.x/devguide/html/index.html" title="<%=ResourceLoader.GetResource(session, "navbar.help.devguide")%>"><%=ResourceLoader.GetResource(session, "navbar.help.devguide")%></a></li>
+ <li><a href="http://juddi.apache.org/docs.html" title="<%=ResourceLoader.GetResource(session, "navbar.help.api")%>"><%=ResourceLoader.GetResource(session, "navbar.help.api")%></a></li>
+ <li><a href="http://wiki.apache.org/juddi" title="<%=ResourceLoader.GetResource(session, "navbar.help.wiki")%>"><%=ResourceLoader.GetResource(session, "navbar.help.wiki")%></a></li>
+ <li><a href="http://juddi.apache.org/issue-tracking.html" title="<%=ResourceLoader.GetResource(session, "navbar.help.bugreport")%>"><%=ResourceLoader.GetResource(session, "navbar.help.bugreport")%></a></li>
+ <li><a href="http://juddi.apache.org/" title="<%=ResourceLoader.GetResource(session, "navbar.help.website")%>"><%=ResourceLoader.GetResource(session, "navbar.help.website")%></a></li>
+ <li><a href="http://www.nabble.com/jUDDI-f218.html" title="<%=ResourceLoader.GetResource(session, "navbar.help.mailinglist")%>"><%=ResourceLoader.GetResource(session, "navbar.help.mailinglist")%></a></li>
+ <li><a href="http://svn.apache.org/viewvc/juddi/" title="<%=ResourceLoader.GetResource(session, "navbar.help.source")%>"><%=ResourceLoader.GetResource(session, "navbar.help.source")%></a></li>
+ <li><a href="about.jsp" title="<%=ResourceLoader.GetResource(session, "navbar.help.about.tooltip")%>"><%=ResourceLoader.GetResource(session, "navbar.help.about")%></a></li>
+
+ </ul>
+ </li>
+ </ul>
+ <div id="loginfield">
+ <%@include file="login.jsp" %>
+ </div>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+ </div>
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/home.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/home.jsp?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/home.jsp (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/home.jsp Sat Jun 1 02:07:29 2013
@@ -0,0 +1,39 @@
+<%--
+ Document : index
+ Created on : Feb 23, 2013, 2:05:35 PM
+ Author : Alex O'Ree
+--%>
+
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<%@include file="header-top.jsp"%>
+
+<div class="container">
+
+ <!-- Main hero unit for a primary marketing message or call to action -->
+ <div class="hero-unit">
+ <h1>jUDDI Administration</h1>
+
+ </div>
+
+ <!-- Example row of columns -->
+ <div class="row">
+
+
+ <div class="span4">
+ <h2>Configure jUDDI</h2>
+ <p><%=ResourceLoader.GetResource(session, "index.browse")%></p>
+ <p><a class="btn" href="businessBrowse.jsp"><%=ResourceLoader.GetResource(session, "viewdetails")%> »</a></p>
+ </div>
+ <div class="span4">
+ <h2>Status and Statistics</h2>
+ <p><%=ResourceLoader.GetResource(session, "index.search")%></p>
+ <p><a class="btn" href="search.jsp"><%=ResourceLoader.GetResource(session, "viewdetails")%> »</a></p>
+ </div>
+ <div class="span4">
+ <h2>Administration</h2>
+ <p><%=ResourceLoader.GetResource(session, "index.learn")%></p>
+ <p><a class="btn" href="http://uddi.org/pubs/uddi_v3.htm"><%=ResourceLoader.GetResource(session, "viewdetails")%> »</a></p>
+ </div>
+
+ </div>
+<%@include file="header-bottom.jsp"%>
\ No newline at end of file
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/ajax-loader.gif
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/ajax-loader.gif?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/ajax-loader.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/bigrollergreen.gif
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/bigrollergreen.gif?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/bigrollergreen.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/bluemarble2.jpg
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/bluemarble2.jpg?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/bluemarble2.jpg
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/glyphicons-halflings-white.png
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/glyphicons-halflings-white.png?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/glyphicons-halflings-white.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/glyphicons-halflings.png
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/glyphicons-halflings.png?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/glyphicons-halflings.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/juddi_logo_v2.png
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/juddi_logo_v2.png?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/juddi_logo_v2.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/logo.png
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/logo.png?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/logo.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/logo2.png
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/img/logo2.png?rev=1488448&view=auto
==============================================================================
Binary file - no diff available.
Propchange: juddi/trunk/juddiv3-war/src/main/webapp/admin/img/logo2.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/index.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/index.jsp?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/index.jsp (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/index.jsp Sat Jun 1 02:07:29 2013
@@ -0,0 +1,116 @@
+<%--
+/*
+ * Copyright 2001-2013 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+ Document : index
+ Created on : Mar 30, 2013, 10:05:37 PM
+ Author : Alex O'Ree
+
+--%>
+
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<%
+ Cookie[] cookies = request.getCookies();
+ if (cookies != null && cookies.length > 0) {
+ for (int i = 0; i < cookies.length; i++) {
+ if (cookies[i] != null && cookies[i].getName() != null && cookies[i].getName().equalsIgnoreCase("locale")) {
+ if (cookies[i].getValue() != null) {
+ session.setAttribute("locale", cookies[i].getValue());
+ response.sendRedirect("home.jsp");
+ }
+ }
+ }
+ }
+ if (request.getMethod().equalsIgnoreCase("post")) {
+ String lang = request.getParameter("language");
+ String checked=request.getParameter("setcookie");
+ if (lang != null) {
+ session.setAttribute("locale", lang);
+ if (checked != null && checked.equalsIgnoreCase("on")) {
+ Cookie cookie = new Cookie("locale", lang);
+ //TODO this is for debugging purposes
+ //this is in ms, Maxvalue represents something like 70 years
+ cookie.setMaxAge(Integer.MAX_VALUE);
+ //cookie.setDomain("/UDDIBrowser");
+ cookie.setPath("/UDDIBrowser");
+ response.addCookie(cookie);
+ }
+ response.sendRedirect("home.jsp");
+ }
+ }
+%>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Welcome to jUDDI</title>
+ <meta charset="utf-8">
+ <title>Welcome to Apache jUDDI</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="Apache jUDDI">
+ <meta name="author" content="Apache Software Foundation">
+
+ <!-- Le styles -->
+ <link href="css/bootstrap.css" rel="stylesheet">
+ <link rel="shortcut icon" href="favicon.ico" />
+ <link href="css/bootstrap-responsive.css" rel="stylesheet">
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="js/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons -->
+
+ <link rel="shortcut icon" href="ico/favicon.png">
+ <style type="text/css">
+ body {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+ }
+ </style>
+
+ </head>
+ <body>
+ <div style="width:100%; height: 100%; position:absolute; text-align: center; vertical-align: middle; padding: 0px; margin: 0px;
+ background-image: url('img/bluemarble2.jpg'); background-repeat: no-repeat; background-position-x: center;
+ background-position-y: center; background-size: cover">
+ <div style="color: black; background-color: whitesmoke;
+ background: rgb(235, 235, 235); /* Fall-back for browsers that don't
+ support rgba */
+ background: rgba(235, 235, 235, .7);width:60%; position: relative; left:20%; top:25%; height:50%; vertical-align: middle">
+ <br><br>
+ <h1>Welcome to jUDDI</h1>
+ <form method="POST">
+
+ <select id="language" name="language" >
+ <option value="en" selected>English</option>
+ <option value="es" >Español</option>
+ </select>
+ <br>
+ <input type="checkbox" name="setcookie" checked> Remember my decision<br>
+ <button type="submit" value="Go" class="btn btn-primary">Go</button>
+
+ </form><br>
+ <b>We welcome help internationalizing jUDDI!</b><br>
+ <script type="text/javascript">
+
+ </script>
+ <noscript>Your browser does not support JavaScript! Functionality will be so severely reduced, that you might as well give up, sorry!</noscript>
+ </div>
+ </div>
+ </body>
+</html>
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bindingChooser.js
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bindingChooser.js?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bindingChooser.js (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bindingChooser.js Sat Jun 1 02:07:29 2013
@@ -0,0 +1,180 @@
+/*
+ * source http://stackoverflow.com/questions/6049687/jquery-ui-dialog-box-need-to-return-value-when-user-presses-button-but-not-wor
+ * http://stackoverflow.com/questions/3560872/returning-value-from-confirmation-dialog-using-jquery-ui-dialog
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+function reloadBindingModal()
+{
+ RenderBindingListBySearch('%', offsetBinding, maxrecordsBinding, true);
+
+}
+
+
+
+var offsetBinding=0; //start at the begining
+var maxrecordsBinding=10; //record 20 at a time
+var langBinding="en"; //langauge english
+var totalrecordsBinding=0;
+
+RenderBindingListBySearch('%', offsetBinding, maxrecordsBinding, true);
+
+function pagedownChooserBinding()
+{
+ offsetBinding = $("#offsetBinding").text();
+ //alert(offset);
+ var newoffset = offsetBinding - maxrecordsBinding;
+ if (newoffset < 0)
+ return;
+ //alert(newoffset);
+ if (newoffset != offsetBinding)
+ RenderBindingListBySearch('%', newoffset, maxrecordsBinding, true);
+}
+function pageupChooserBinding()
+{
+ offsetBinding = $("#offsetBinding").text();
+ //alert(offset);
+ var fetch = maxrecordsBinding;
+ if ((parseInt(offsetBinding) + parseInt(maxrecordsBinding)) > totalrecordsBinding)
+ //fetch = maxrecords - offset;
+ return;
+ else
+ fetch = (parseInt(offsetBinding) + parseInt(maxrecordsBinding));
+ //alert(fetch);
+ offsetBinding = fetch;
+ RenderBindingListBySearch('%', fetch, maxrecordsBinding, true);
+}
+
+
+var selectedItemBinding=null;
+
+//offset, maxrecords, keyword
+function RenderBindingListBySearch(keyword1, offset1, maxrecords1, isForChooser)
+{
+ var lang = $("#langBinding").text();
+ $("#bindinglist").html("<img src=\"img/bigrollergreen.gif\" title=\"Loading\"/>");
+ var request= $.ajax({
+ url: 'ajax/bindingsearch.jsp?keyword=' + keyword1 + "&offset=" + offset1 + "&maxrecords=" + maxrecords1 + "&lang=" + lang + "&chooser=" + isForChooser,
+ type:"GET",
+ cache: false
+ });
+
+ request.done(function(msg) {
+ window.console && console.log('postback done ');
+ $("#bindinglist").html(msg);
+
+ //refresh();
+ });
+
+ request.fail(function(jqXHR, textStatus) {
+ window.console && console.log('postback failed ');
+ $("#bindinglist").html("An error occured! " + jqXHR.responseText + textStatus);
+ //refresh();
+ });
+/*
+ $.get('ajax/businesssearch.jsp?keyword=' + keyword1 + "&offset=" + offset1 + "&maxrecords=" + maxrecords1 + "&lang=" + lang, function(data) {
+ $("#businesslist").html(data);
+ refresh();
+ });*/
+}
+
+function refreshBinding()
+{
+ var displayrecords = $("#displayrecords").text();
+ if (displayrecords == totalrecordsBinding)
+ {
+ $("#pageupBinding").addClass("disabled");
+ $("#pagedownBinding").addClass("disabled");
+ }
+ else if (offsetBinding + maxrecordsBinding > totalrecordsBinding)
+ {
+ $("#pageupBinding").addClass("disabled");
+ }
+ else if (offsetBinding ==0)
+ {
+ $("#pagedownBinding").removeClass("disabled");
+ }
+ else
+ {
+ $("#pagedownBinding").removeClass("disabled");
+ $("#pageupBinding").removeClass("disabled");
+ }
+}
+
+/**
+ *This launches the tModel model div, upon return (and if not abprted), the contents of the div parameter will be replaced with the
+ *first selected tModel
+ */
+function bindingModal(div, type){
+ //reset the form in case it was lanucheed more than once per page view
+ reloadBindingModal();
+
+ $.dialogBinding.confirm({
+ callback: function(success, result) {
+ if (!success)
+ {
+ // alert("aborted!");
+ }
+
+ else{
+ if (type=='val')
+ $("#" + div).val(result[0]);
+ else if (type=='html')
+ $("#" + div).html(result[0]);
+ }
+ // return false;
+ }
+ });
+// return false;
+}
+
+
+function bindingCancel()
+{
+ $(".modalableBinding").each(function()
+ {
+ $(this).prop('checked', false);
+ });
+ $('#bindingChooser').modal('hide');
+
+}
+
+/**
+ *returns an array of selected tmodel keys
+ */
+$.dialogBinding = {
+ confirm: function(options) {
+ var $modal = $('#bindingChooser');
+ //$modal.find('.modal-body').text(options.message);
+
+ $modal.off('click.dialog', '.btn, .close')
+ .off('hidden')
+ .on('click.dialog', '.btn, .close', function() {
+ $(this).addClass('modal-result');
+ }).on('hidden', function() {
+ var result = $(this).find('.modal-result').filter('.btn-primary').length > 0;
+ $(this).find('.modal-result').removeClass('modal-result');
+ /**
+ * find the result from the model (the selected key)
+ */
+ var selectedtmodels = new Array();
+ $(".modalableBinding").each(function()
+ {
+ var id=$(this).attr("id");
+ if ($(this).is(':checked')) {
+ selectedtmodels.push(
+ id
+ );
+ }
+ });
+
+ options.callback(result ,selectedtmodels);
+ // $modal.modal('hide');
+ });
+ //callback = options.callback;
+
+ $modal.modal();
+ }
+};
+
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-datetimepicker.min.js
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-datetimepicker.min.js?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-datetimepicker.min.js (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-datetimepicker.min.js Sat Jun 1 02:07:29 2013
@@ -0,0 +1,26 @@
+/**
+ * @license
+ * =========================================================
+ * bootstrap-datetimepicker.js
+ * http://www.eyecon.ro/bootstrap-datepicker
+ * =========================================================
+ * Copyright 2012 Stefan Petre
+ *
+ * Contributions:
+ * - Andrew Rowls
+ * - Thiago de Arruda
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * =========================================================
+ */
+(function($){var smartPhone=window.orientation!=undefined;var DateTimePicker=function(element,options){this.id=dpgId++;this.init(element,options)};var dateToDate=function(dt){if(typeof dt==="string"){return new Date(dt)}return dt};DateTimePicker.prototype={constructor:DateTimePicker,init:function(element,options){var icon;if(!(options.pickTime||options.pickDate))throw new Error("Must choose at least one picker");this.options=options;this.$element=$(element);this.language=options.language in dates?options.language:"en";this.pickDate=options.pickDate;this.pickTime=options.pickTime;this.isInput=this.$element.is("input");this.component=false;if(this.$element.is(".input-append")||this.$element.is(".input-prepend"))this.component=this.$element.find(".add-on");this.format=options.format;if(!this.format){if(this.isInput)this.format=this.$element.data("format");else this.format=this.$element.find("input").data("format");if(!this.format)this.format="MM/dd/yyyy"}this._compileFormat();i
f(this.component){icon=this.component.find("i")}if(this.pickTime){if(icon&&icon.length)this.timeIcon=icon.data("time-icon");if(!this.timeIcon)this.timeIcon="icon-time";icon.addClass(this.timeIcon)}if(this.pickDate){if(icon&&icon.length)this.dateIcon=icon.data("date-icon");if(!this.dateIcon)this.dateIcon="icon-calendar";icon.removeClass(this.timeIcon);icon.addClass(this.dateIcon)}this.widget=$(getTemplate(this.timeIcon,options.pickDate,options.pickTime,options.pick12HourFormat,options.pickSeconds)).appendTo("body");this.minViewMode=options.minViewMode||this.$element.data("date-minviewmode")||0;if(typeof this.minViewMode==="string"){switch(this.minViewMode){case"months":this.minViewMode=1;break;case"years":this.minViewMode=2;break;default:this.minViewMode=0;break}}this.viewMode=options.viewMode||this.$element.data("date-viewmode")||0;if(typeof this.viewMode==="string"){switch(this.viewMode){case"months":this.viewMode=1;break;case"years":this.viewMode=2;break;default:this.viewM
ode=0;break}}this.startViewMode=this.viewMode;this.weekStart=options.weekStart||this.$element.data("date-weekstart")||0;this.weekEnd=this.weekStart===0?6:this.weekStart-1;this.setStartDate(options.startDate||this.$element.data("date-startdate"));this.setEndDate(options.endDate||this.$element.data("date-enddate"));this.fillDow();this.fillMonths();this.fillHours();this.fillMinutes();this.fillSeconds();this.update();this.showMode();this._attachDatePickerEvents()},show:function(e){this.widget.show();this.height=this.component?this.component.outerHeight():this.$element.outerHeight();this.place();this.$element.trigger({type:"show",date:this._date});this._attachDatePickerGlobalEvents();if(e){e.stopPropagation();e.preventDefault()}},disable:function(){this.$element.find("input").prop("disabled",true);this._detachDatePickerEvents()},enable:function(){this.$element.find("input").prop("disabled",false);this._attachDatePickerEvents()},hide:function(){var collapse=this.widget.find(".coll
apse");for(var i=0;i<collapse.length;i++){var collapseData=collapse.eq(i).data("collapse");if(collapseData&&collapseData.transitioning)return}this.widget.hide();this.viewMode=this.startViewMode;this.showMode();this.set();this.$element.trigger({type:"hide",date:this._date});this._detachDatePickerGlobalEvents()},set:function(){var formatted="";if(!this._unset)formatted=this.formatDate(this._date);if(!this.isInput){if(this.component){var input=this.$element.find("input");input.val(formatted);this._resetMaskPos(input)}this.$element.data("date",formatted)}else{this.$element.val(formatted);this._resetMaskPos(this.$element)}},setValue:function(newDate){if(!newDate){this._unset=true}else{this._unset=false}if(typeof newDate==="string"){this._date=this.parseDate(newDate)}else if(newDate){this._date=new Date(newDate)}this.set();this.viewDate=UTCDate(this._date.getUTCFullYear(),this._date.getUTCMonth(),1,0,0,0,0);this.fillDate();this.fillTime()},getDate:function(){if(this._unset)return
null;return new Date(this._date.valueOf())},setDate:function(date){if(!date)this.setValue(null);else this.setValue(date.valueOf())},setStartDate:function(date){if(date instanceof Date){this.startDate=date}else if(typeof date==="string"){this.startDate=new UTCDate(date);if(!this.startDate.getUTCFullYear()){this.startDate=-Infinity}}else{this.startDate=-Infinity}if(this.viewDate){this.update()}},setEndDate:function(date){if(date instanceof Date){this.endDate=date}else if(typeof date==="string"){this.endDate=new UTCDate(date);if(!this.endDate.getUTCFullYear()){this.endDate=Infinity}}else{this.endDate=Infinity}if(this.viewDate){this.update()}},getLocalDate:function(){if(this._unset)return null;var d=this._date;return new Date(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds())},setLocalDate:function(localDate){if(!localDate)this.setValue(null);else this.setValue(Date.UTC(localDate.getFullYear(),localDate.g
etMonth(),localDate.getDate(),localDate.getHours(),localDate.getMinutes(),localDate.getSeconds(),localDate.getMilliseconds()))},place:function(){var offset=this.component?this.component.offset():this.$element.offset();this.widget.css({top:offset.top+this.height,left:offset.left})},notifyChange:function(){this.$element.trigger({type:"changeDate",date:this.getDate(),localDate:this.getLocalDate()})},update:function(newDate){var dateStr=newDate;if(!dateStr){if(this.isInput){dateStr=this.$element.val()}else{dateStr=this.$element.find("input").val()}if(!dateStr){var tmp=new Date;this._date=UTCDate(tmp.getFullYear(),tmp.getMonth(),tmp.getDate(),tmp.getHours(),tmp.getMinutes(),tmp.getSeconds(),tmp.getMilliseconds())}else{this._date=this.parseDate(dateStr)}}this.viewDate=UTCDate(this._date.getUTCFullYear(),this._date.getUTCMonth(),1,0,0,0,0);this.fillDate();this.fillTime()},fillDow:function(){var dowCnt=this.weekStart;var html="<tr>";while(dowCnt<this.weekStart+7){html+='<th class="d
ow">'+dates[this.language].daysMin[dowCnt++%7]+"</th>"}html+="</tr>";this.widget.find(".datepicker-days thead").append(html)},fillMonths:function(){var html="";var i=0;while(i<12){html+='<span class="month">'+dates[this.language].monthsShort[i++]+"</span>"}this.widget.find(".datepicker-months td").append(html)},fillDate:function(){var year=this.viewDate.getUTCFullYear();var month=this.viewDate.getUTCMonth();var currentDate=UTCDate(this._date.getUTCFullYear(),this._date.getUTCMonth(),this._date.getUTCDate(),0,0,0,0);var startYear=typeof this.startDate==="object"?this.startDate.getUTCFullYear():-Infinity;var startMonth=typeof this.startDate==="object"?this.startDate.getUTCMonth():-1;var endYear=typeof this.endDate==="object"?this.endDate.getUTCFullYear():Infinity;var endMonth=typeof this.endDate==="object"?this.endDate.getUTCMonth():12;this.widget.find(".datepicker-days").find(".disabled").removeClass("disabled");this.widget.find(".datepicker-months").find(".disabled").removeC
lass("disabled");this.widget.find(".datepicker-years").find(".disabled").removeClass("disabled");this.widget.find(".datepicker-days th:eq(1)").text(dates[this.language].months[month]+" "+year);var prevMonth=UTCDate(year,month-1,28,0,0,0,0);var day=DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(),prevMonth.getUTCMonth());prevMonth.setUTCDate(day);prevMonth.setUTCDate(day-(prevMonth.getUTCDay()-this.weekStart+7)%7);if(year==startYear&&month<=startMonth||year<startYear){this.widget.find(".datepicker-days th:eq(0)").addClass("disabled")}if(year==endYear&&month>=endMonth||year>endYear){this.widget.find(".datepicker-days th:eq(2)").addClass("disabled")}var nextMonth=new Date(prevMonth.valueOf());nextMonth.setUTCDate(nextMonth.getUTCDate()+42);nextMonth=nextMonth.valueOf();var html=[];var clsName;while(prevMonth.valueOf()<nextMonth){if(prevMonth.getUTCDay()===this.weekStart){html.push("<tr>")}clsName="";if(prevMonth.getUTCFullYear()<year||prevMonth.getUTCFullYear()==year&&prevMon
th.getUTCMonth()<month){clsName+=" old"}else if(prevMonth.getUTCFullYear()>year||prevMonth.getUTCFullYear()==year&&prevMonth.getUTCMonth()>month){clsName+=" new"}if(prevMonth.valueOf()===currentDate.valueOf()){clsName+=" active"}if(prevMonth.valueOf()+864e5<=this.startDate){clsName+=" disabled"}if(prevMonth.valueOf()>this.endDate){clsName+=" disabled"}html.push('<td class="day'+clsName+'">'+prevMonth.getUTCDate()+"</td>");if(prevMonth.getUTCDay()===this.weekEnd){html.push("</tr>")}prevMonth.setUTCDate(prevMonth.getUTCDate()+1)}this.widget.find(".datepicker-days tbody").empty().append(html.join(""));var currentYear=this._date.getUTCFullYear();var months=this.widget.find(".datepicker-months").find("th:eq(1)").text(year).end().find("span").removeClass("active");if(currentYear===year){months.eq(this._date.getUTCMonth()).addClass("active")}if(currentYear-1<startYear){this.widget.find(".datepicker-months th:eq(0)").addClass("disabled")}if(currentYear+1>endYear){this.widget.find(".
datepicker-months th:eq(2)").addClass("disabled")}for(var i=0;i<12;i++){if(year==startYear&&startMonth>i||year<startYear){$(months[i]).addClass("disabled")}else if(year==endYear&&endMonth<i||year>endYear){$(months[i]).addClass("disabled")}}html="";year=parseInt(year/10,10)*10;var yearCont=this.widget.find(".datepicker-years").find("th:eq(1)").text(year+"-"+(year+9)).end().find("td");this.widget.find(".datepicker-years").find("th").removeClass("disabled");if(startYear>year){this.widget.find(".datepicker-years").find("th:eq(0)").addClass("disabled")}if(endYear<year+9){this.widget.find(".datepicker-years").find("th:eq(2)").addClass("disabled")}year-=1;for(var i=-1;i<11;i++){html+='<span class="year'+(i===-1||i===10?" old":"")+(currentYear===year?" active":"")+(year<startYear||year>endYear?" disabled":"")+'">'+year+"</span>";year+=1}yearCont.html(html)},fillHours:function(){var table=this.widget.find(".timepicker .timepicker-hours table");table.parent().hide();var html="";if(thi
s.options.pick12HourFormat){var current=1;for(var i=0;i<3;i+=1){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="hour">'+padLeft(c,2,"0")+"</td>";current++}html+="</tr>"}}else{var current=0;for(var i=0;i<6;i+=1){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="hour">'+padLeft(c,2,"0")+"</td>";current++}html+="</tr>"}}table.html(html)},fillMinutes:function(){var table=this.widget.find(".timepicker .timepicker-minutes table");table.parent().hide();var html="";var current=0;for(var i=0;i<5;i++){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="minute">'+padLeft(c,2,"0")+"</td>";current+=3}html+="</tr>"}table.html(html)},fillSeconds:function(){var table=this.widget.find(".timepicker .timepicker-seconds table");table.parent().hide();var html="";var current=0;for(var i=0;i<5;i++){html+="<tr>";for(var j=0;j<4;j+=1){var c=current.toString();html+='<td class="second">'+padLeft(c,2,"0")+"</td>";curre
nt+=3}html+="</tr>"}table.html(html)},fillTime:function(){if(!this._date)return;var timeComponents=this.widget.find(".timepicker span[data-time-component]");var table=timeComponents.closest("table");var is12HourFormat=this.options.pick12HourFormat;var hour=this._date.getUTCHours();var period="AM";if(is12HourFormat){if(hour>=12)period="PM";if(hour===0)hour=12;else if(hour!=12)hour=hour%12;this.widget.find(".timepicker [data-action=togglePeriod]").text(period)}hour=padLeft(hour.toString(),2,"0");var minute=padLeft(this._date.getUTCMinutes().toString(),2,"0");var second=padLeft(this._date.getUTCSeconds().toString(),2,"0");timeComponents.filter("[data-time-component=hours]").text(hour);timeComponents.filter("[data-time-component=minutes]").text(minute);timeComponents.filter("[data-time-component=seconds]").text(second)},click:function(e){e.stopPropagation();e.preventDefault();this._unset=false;var target=$(e.target).closest("span, td, th");if(target.length===1){if(!target.is(".d
isabled")){switch(target[0].nodeName.toLowerCase()){case"th":switch(target[0].className){case"switch":this.showMode(1);break;case"prev":case"next":var vd=this.viewDate;var navFnc=DPGlobal.modes[this.viewMode].navFnc;var step=DPGlobal.modes[this.viewMode].navStep;if(target[0].className==="prev")step=step*-1;vd["set"+navFnc](vd["get"+navFnc]()+step);this.fillDate();this.set();break}break;case"span":if(target.is(".month")){var month=target.parent().find("span").index(target);this.viewDate.setUTCMonth(month)}else{var year=parseInt(target.text(),10)||0;this.viewDate.setUTCFullYear(year)}if(this.viewMode!==0){this._date=UTCDate(this.viewDate.getUTCFullYear(),this.viewDate.getUTCMonth(),this.viewDate.getUTCDate(),this._date.getUTCHours(),this._date.getUTCMinutes(),this._date.getUTCSeconds(),this._date.getUTCMilliseconds());this.notifyChange()}this.showMode(-1);this.fillDate();this.set();break;case"td":if(target.is(".day")){var day=parseInt(target.text(),10)||1;var month=this.viewDa
te.getUTCMonth();var year=this.viewDate.getUTCFullYear();if(target.is(".old")){if(month===0){month=11;year-=1}else{month-=1}}else if(target.is(".new")){if(month==11){month=0;year+=1}else{month+=1}}this._date=UTCDate(year,month,day,this._date.getUTCHours(),this._date.getUTCMinutes(),this._date.getUTCSeconds(),this._date.getUTCMilliseconds());this.viewDate=UTCDate(year,month,Math.min(28,day),0,0,0,0);this.fillDate();this.set();this.notifyChange()}break}}}},actions:{incrementHours:function(e){this._date.setUTCHours(this._date.getUTCHours()+1)},incrementMinutes:function(e){this._date.setUTCMinutes(this._date.getUTCMinutes()+1)},incrementSeconds:function(e){this._date.setUTCSeconds(this._date.getUTCSeconds()+1)},decrementHours:function(e){this._date.setUTCHours(this._date.getUTCHours()-1)},decrementMinutes:function(e){this._date.setUTCMinutes(this._date.getUTCMinutes()-1)},decrementSeconds:function(e){this._date.setUTCSeconds(this._date.getUTCSeconds()-1)},togglePeriod:function(e
){var hour=this._date.getUTCHours();if(hour>=12)hour-=12;else hour+=12;this._date.setUTCHours(hour)},showPicker:function(){this.widget.find(".timepicker > div:not(.timepicker-picker)").hide();this.widget.find(".timepicker .timepicker-picker").show()},showHours:function(){this.widget.find(".timepicker .timepicker-picker").hide();this.widget.find(".timepicker .timepicker-hours").show()},showMinutes:function(){this.widget.find(".timepicker .timepicker-picker").hide();this.widget.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){this.widget.find(".timepicker .timepicker-picker").hide();this.widget.find(".timepicker .timepicker-seconds").show()},selectHour:function(e){var tgt=$(e.target);var value=parseInt(tgt.text(),10);if(this.options.pick12HourFormat){var current=this._date.getUTCHours();if(current>=12){if(value!=12)value=(value+12)%24}else{if(value===12)value=0;else value=value%12}}this._date.setUTCHours(value);this.actions.showPicker.call(this)},selectMi
nute:function(e){var tgt=$(e.target);var value=parseInt(tgt.text(),10);this._date.setUTCMinutes(value);this.actions.showPicker.call(this)},selectSecond:function(e){var tgt=$(e.target);var value=parseInt(tgt.text(),10);this._date.setUTCSeconds(value);this.actions.showPicker.call(this)}},doAction:function(e){e.stopPropagation();e.preventDefault();if(!this._date)this._date=UTCDate(1970,0,0,0,0,0,0);var action=$(e.currentTarget).data("action");var rv=this.actions[action].apply(this,arguments);this.set();this.fillTime();this.notifyChange();return rv},stopEvent:function(e){e.stopPropagation();e.preventDefault()},keydown:function(e){var self=this,k=e.which,input=$(e.target);if(k==8||k==46){setTimeout(function(){self._resetMaskPos(input)})}},keypress:function(e){var k=e.which;if(k==8||k==46){return}var input=$(e.target);var c=String.fromCharCode(k);var val=input.val()||"";val+=c;var mask=this._mask[this._maskPos];if(!mask){return false}if(mask.end!=val.length){return}if(!mask.patter
n.test(val.slice(mask.start))){val=val.slice(0,val.length-1);while((mask=this._mask[this._maskPos])&&mask.character){val+=mask.character;this._maskPos++}val+=c;if(mask.end!=val.length){input.val(val);return false}else{if(!mask.pattern.test(val.slice(mask.start))){input.val(val.slice(0,mask.start));return false}else{input.val(val);this._maskPos++;return false}}}else{this._maskPos++}},change:function(e){var input=$(e.target);var val=input.val();if(this._formatPattern.test(val)){this.update();this.setValue(this._date.getTime());this.notifyChange();this.set()}else if(val&&val.trim()){this.setValue(this._date.getTime());if(this._date)this.set();else input.val("")}else{if(this._date){this.setValue(null);this.notifyChange();this._unset=true}}this._resetMaskPos(input)},showMode:function(dir){if(dir){this.viewMode=Math.max(this.minViewMode,Math.min(2,this.viewMode+dir))}this.widget.find(".datepicker > div").hide().filter(".datepicker-"+DPGlobal.modes[this.viewMode].clsName).show()},d
estroy:function(){this._detachDatePickerEvents();this._detachDatePickerGlobalEvents();this.widget.remove();this.$element.removeData("datetimepicker");this.component.removeData("datetimepicker")},formatDate:function(d){return this.format.replace(formatReplacer,function(match){var methodName,property,rv,len=match.length;if(match==="ms")len=1;property=dateFormatComponents[match].property;if(property==="Hours12"){rv=d.getUTCHours();if(rv===0)rv=12;else if(rv!==12)rv=rv%12}else if(property==="Period12"){if(d.getUTCHours()>=12)return"PM";else return"AM"}else{methodName="get"+property;rv=d[methodName]()}if(methodName==="getUTCMonth")rv=rv+1;if(methodName==="getUTCYear")rv=rv+1900-2e3;return padLeft(rv.toString(),len,"0")})},parseDate:function(str){var match,i,property,methodName,value,parsed={};if(!(match=this._formatPattern.exec(str)))return null;for(i=1;i<match.length;i++){property=this._propertiesByIndex[i];if(!property)continue;value=match[i];if(/^\d+$/.test(value))value=parseI
nt(value,10);parsed[property]=value}return this._finishParsingDate(parsed)},_resetMaskPos:function(input){var val=input.val();for(var i=0;i<this._mask.length;i++){if(this._mask[i].end>val.length){this._maskPos=i;break}else if(this._mask[i].end===val.length){this._maskPos=i+1;break}}},_finishParsingDate:function(parsed){var year,month,date,hours,minutes,seconds,milliseconds;year=parsed.UTCFullYear;if(parsed.UTCYear)year=2e3+parsed.UTCYear;if(!year)year=1970;if(parsed.UTCMonth)month=parsed.UTCMonth-1;else month=0;date=parsed.UTCDate||1;hours=parsed.UTCHours||0;minutes=parsed.UTCMinutes||0;seconds=parsed.UTCSeconds||0;milliseconds=parsed.UTCMilliseconds||0;if(parsed.Hours12){hours=parsed.Hours12}if(parsed.Period12){if(/pm/i.test(parsed.Period12)){if(hours!=12)hours=(hours+12)%24}else{hours=hours%12}}return UTCDate(year,month,date,hours,minutes,seconds,milliseconds)},_compileFormat:function(){var match,component,components=[],mask=[],str=this.format,propertiesByIndex={},i=0,pos=
0;while(match=formatComponent.exec(str)){component=match[0];if(component in dateFormatComponents){i++;propertiesByIndex[i]=dateFormatComponents[component].property;components.push("\\s*"+dateFormatComponents[component].getPattern(this)+"\\s*");mask.push({pattern:new RegExp(dateFormatComponents[component].getPattern(this)),property:dateFormatComponents[component].property,start:pos,end:pos+=component.length})}else{components.push(escapeRegExp(component));mask.push({pattern:new RegExp(escapeRegExp(component)),character:component,start:pos,end:++pos})}str=str.slice(component.length)}this._mask=mask;this._maskPos=0;this._formatPattern=new RegExp("^\\s*"+components.join("")+"\\s*$");this._propertiesByIndex=propertiesByIndex},_attachDatePickerEvents:function(){var self=this;this.widget.on("click",".datepicker *",$.proxy(this.click,this));this.widget.on("click","[data-action]",$.proxy(this.doAction,this));this.widget.on("mousedown",$.proxy(this.stopEvent,this));if(this.pickDate&&th
is.pickTime){this.widget.on("click.togglePicker",".accordion-toggle",function(e){e.stopPropagation();var $this=$(this);var $parent=$this.closest("ul");var expanded=$parent.find(".collapse.in");var closed=$parent.find(".collapse:not(.in)");if(expanded&&expanded.length){var collapseData=expanded.data("collapse");if(collapseData&&collapseData.transitioning)return;expanded.collapse("hide");closed.collapse("show");$this.find("i").toggleClass(self.timeIcon+" "+self.dateIcon);self.$element.find(".add-on i").toggleClass(self.timeIcon+" "+self.dateIcon)}})}if(this.isInput){this.$element.on({focus:$.proxy(this.show,this),change:$.proxy(this.change,this)});if(this.options.maskInput){this.$element.on({keydown:$.proxy(this.keydown,this),keypress:$.proxy(this.keypress,this)})}}else{this.$element.on({change:$.proxy(this.change,this)},"input");if(this.options.maskInput){this.$element.on({keydown:$.proxy(this.keydown,this),keypress:$.proxy(this.keypress,this)},"input")}if(this.component){thi
s.component.on("click",$.proxy(this.show,this))}else{this.$element.on("click",$.proxy(this.show,this))}}},_attachDatePickerGlobalEvents:function(){$(window).on("resize.datetimepicker"+this.id,$.proxy(this.place,this));if(!this.isInput){$(document).on("mousedown.datetimepicker"+this.id,$.proxy(this.hide,this))}},_detachDatePickerEvents:function(){this.widget.off("click",".datepicker *",this.click);this.widget.off("click","[data-action]");this.widget.off("mousedown",this.stopEvent);if(this.pickDate&&this.pickTime){this.widget.off("click.togglePicker")}if(this.isInput){this.$element.off({focus:this.show,change:this.change});if(this.options.maskInput){this.$element.off({keydown:this.keydown,keypress:this.keypress})}}else{this.$element.off({change:this.change},"input");if(this.options.maskInput){this.$element.off({keydown:this.keydown,keypress:this.keypress},"input")}if(this.component){this.component.off("click",this.show)}else{this.$element.off("click",this.show)}}},_detachDateP
ickerGlobalEvents:function(){$(window).off("resize.datetimepicker"+this.id);if(!this.isInput){$(document).off("mousedown.datetimepicker"+this.id)}}};$.fn.datetimepicker=function(option,val){return this.each(function(){var $this=$(this),data=$this.data("datetimepicker"),options=typeof option==="object"&&option;if(!data){$this.data("datetimepicker",data=new DateTimePicker(this,$.extend({},$.fn.datetimepicker.defaults,options)))}if(typeof option==="string")data[option](val)})};$.fn.datetimepicker.defaults={maskInput:false,pickDate:true,pickTime:true,pick12HourFormat:false,pickSeconds:true,startDate:-Infinity,endDate:Infinity};$.fn.datetimepicker.Constructor=DateTimePicker;var dpgId=0;var dates=$.fn.datetimepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","Ju
ly","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}};var dateFormatComponents={dd:{property:"UTCDate",getPattern:function(){return"(0?[1-9]|[1-2][0-9]|3[0-1])\\b"}},MM:{property:"UTCMonth",getPattern:function(){return"(0?[1-9]|1[0-2])\\b"}},yy:{property:"UTCYear",getPattern:function(){return"(\\d{2})\\b"}},yyyy:{property:"UTCFullYear",getPattern:function(){return"(\\d{4})\\b"}},hh:{property:"UTCHours",getPattern:function(){return"(0?[0-9]|1[0-9]|2[0-3])\\b"}},mm:{property:"UTCMinutes",getPattern:function(){return"(0?[0-9]|[1-5][0-9])\\b"}},ss:{property:"UTCSeconds",getPattern:function(){return"(0?[0-9]|[1-5][0-9])\\b"}},ms:{property:"UTCMilliseconds",getPattern:function(){return"([0-9]{1,3})\\b"}},HH:{property:"Hours12",getPattern:function(){return"(0?[1-9]|1[0-2])\\b"}},PP:{property:"Period12",getPattern:function(){return"(AM|PM|am|pm|Am|aM|Pm|pM)\\b"}}};var keys=[];for(var k in dat
eFormatComponents)keys.push(k);keys[keys.length-1]+="\\b";keys.push(".");var formatComponent=new RegExp(keys.join("\\b|"));keys.pop();var formatReplacer=new RegExp(keys.join("\\b|"),"g");function escapeRegExp(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function padLeft(s,l,c){if(l<s.length)return s;else return Array(l-s.length+1).join(c||" ")+s}function getTemplate(timeIcon,pickDate,pickTime,is12Hours,showSeconds){if(pickDate&&pickTime){return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+"<ul>"+'<li class="collapse in">'+'<div class="datepicker">'+DPGlobal.template+"</div>"+"</li>"+'<li class="picker-switch"><a class="accordion-toggle"><i class="'+timeIcon+'"></i></a></li>'+'<li class="collapse">'+'<div class="timepicker">'+TPGlobal.getTemplate(is12Hours,showSeconds)+"</div>"+"</li>"+"</ul>"+"</div>"}else if(pickTime){return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="timepicker">'+TPGlobal.getTemplate(i
s12Hours,showSeconds)+"</div>"+"</div>"}else{return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="datepicker">'+DPGlobal.template+"</div>"+"</div>"}}function UTCDate(){return new Date(Date.UTC.apply(Date,arguments))}var DPGlobal={modes:[{clsName:"days",navFnc:"UTCMonth",navStep:1},{clsName:"months",navFnc:"UTCFullYear",navStep:1},{clsName:"years",navFnc:"UTCFullYear",navStep:10}],isLeapYear:function(year){return year%4===0&&year%100!==0||year%400===0},getDaysInMonth:function(year,month){return[31,DPGlobal.isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31][month]},headTemplate:"<thead>"+"<tr>"+'<th class="prev">‹</th>'+'<th colspan="5" class="switch"></th>'+'<th class="next">›</th>'+"</tr>"+"</thead>",contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>'};DPGlobal.template='<div class="datepicker-days">'+'<table class="table-condensed">'+DPGlobal.headTemplate+"<tbody></tbody>"+"</table>"+"</div>"+'<div class="datepicker-mont
hs">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+"</table>"+"</div>"+'<div class="datepicker-years">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+"</table>"+"</div>";var TPGlobal={hourTemplate:'<span data-action="showHours" data-time-component="hours" class="timepicker-hour"></span>',minuteTemplate:'<span data-action="showMinutes" data-time-component="minutes" class="timepicker-minute"></span>',secondTemplate:'<span data-action="showSeconds" data-time-component="seconds" class="timepicker-second"></span>'};TPGlobal.getTemplate=function(is12Hours,showSeconds){return'<div class="timepicker-picker">'+'<table class="table-condensed"'+(is12Hours?' data-hour-format="12"':"")+">"+"<tr>"+'<td><a href="#" class="btn" data-action="incrementHours"><i class="icon-chevron-up"></i></a></td>'+'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="incrementMinutes"><i class="icon-chevron-up"></i></a></td>'
+(showSeconds?'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="incrementSeconds"><i class="icon-chevron-up"></i></a></td>':"")+(is12Hours?'<td class="separator"></td>':"")+"</tr>"+"<tr>"+"<td>"+TPGlobal.hourTemplate+"</td> "+'<td class="separator">:</td>'+"<td>"+TPGlobal.minuteTemplate+"</td> "+(showSeconds?'<td class="separator">:</td>'+"<td>"+TPGlobal.secondTemplate+"</td>":"")+(is12Hours?'<td class="separator"></td>'+"<td>"+'<button type="button" class="btn btn-primary" data-action="togglePeriod"></button>'+"</td>":"")+"</tr>"+"<tr>"+'<td><a href="#" class="btn" data-action="decrementHours"><i class="icon-chevron-down"></i></a></td>'+'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="decrementMinutes"><i class="icon-chevron-down"></i></a></td>'+(showSeconds?'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="decrementSeconds"><i class="icon-chevron-down"></i></a></td>':"")+(is12Hours?'<td class="separator"></
td>':"")+"</tr>"+"</table>"+"</div>"+'<div class="timepicker-hours" data-action="selectHour">'+'<table class="table-condensed">'+"</table>"+"</div>"+'<div class="timepicker-minutes" data-action="selectMinute">'+'<table class="table-condensed">'+"</table>"+"</div>"+(showSeconds?'<div class="timepicker-seconds" data-action="selectSecond">'+'<table class="table-condensed">'+"</table>"+"</div>":"")}})(window.jQuery);
\ No newline at end of file
Added: juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-modal.js
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-modal.js?rev=1488448&view=auto
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-modal.js (added)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/js/bootstrap-modal.js Sat Jun 1 02:07:29 2013
@@ -0,0 +1,374 @@
+/* ===========================================================
+ * bootstrap-modal.js v2.1
+ * ===========================================================
+ * Copyright 2012 Jordan Schroter
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
+
+!function ($) {
+
+ "use strict"; // jshint ;_;
+
+ /* MODAL CLASS DEFINITION
+ * ====================== */
+
+ var Modal = function (element, options) {
+ this.init(element, options);
+ };
+
+ Modal.prototype = {
+
+ constructor: Modal,
+
+ init: function (element, options) {
+ this.options = options;
+
+ this.$element = $(element)
+ .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this));
+
+ this.options.remote && this.$element.find('.modal-body').load(this.options.remote);
+
+ var manager = typeof this.options.manager === 'function' ?
+ this.options.manager.call(this) : this.options.manager;
+
+ manager = manager.appendModal ?
+ manager : $(manager).modalmanager().data('modalmanager');
+
+ manager.appendModal(this);
+ },
+
+ toggle: function () {
+ return this[!this.isShown ? 'show' : 'hide']();
+ },
+
+ show: function () {
+ var e = $.Event('show');
+
+ if (this.isShown) return;
+
+ this.$element.trigger(e);
+
+ if (e.isDefaultPrevented()) return;
+
+ this.escape();
+
+ this.tab();
+
+ this.options.loading && this.loading();
+ },
+
+ hide: function (e) {
+ e && e.preventDefault();
+
+ e = $.Event('hide');
+
+ this.$element.trigger(e);
+
+ if (!this.isShown || e.isDefaultPrevented()) return (this.isShown = false);
+
+ this.isShown = false;
+
+ this.escape();
+
+ this.tab();
+
+ this.isLoading && this.loading();
+
+ $(document).off('focusin.modal');
+
+ this.$element
+ .removeClass('in')
+ .removeClass('animated')
+ .removeClass(this.options.attentionAnimation)
+ .removeClass('modal-overflow')
+ .attr('aria-hidden', true);
+
+ $.support.transition && this.$element.hasClass('fade') ?
+ this.hideWithTransition() :
+ this.hideModal();
+ },
+
+ layout: function () {
+ var prop = this.options.height ? 'height' : 'max-height',
+ value = this.options.height || this.options.maxHeight;
+
+ if (this.options.width){
+ this.$element.css('width', this.options.width);
+
+ var that = this;
+ this.$element.css('margin-left', function () {
+ if (/%/ig.test(that.options.width)){
+ return -(parseInt(that.options.width) / 2) + '%';
+ } else {
+ return -($(this).width() / 2) + 'px';
+ }
+ });
+ } else {
+ this.$element.css('width', '');
+ this.$element.css('margin-left', '');
+ }
+
+ this.$element.find('.modal-body')
+ .css('overflow', '')
+ .css(prop, '');
+
+ var modalOverflow = $(window).height() - 10 < this.$element.height();
+
+ if (value){
+ this.$element.find('.modal-body')
+ .css('overflow', 'auto')
+ .css(prop, value);
+ }
+
+ if (modalOverflow || this.options.modalOverflow) {
+ this.$element
+ .css('margin-top', 0)
+ .addClass('modal-overflow');
+ } else {
+ this.$element
+ .css('margin-top', 0 - this.$element.height() / 2)
+ .removeClass('modal-overflow');
+ }
+ },
+
+ tab: function () {
+ var that = this;
+
+ if (this.isShown && this.options.consumeTab) {
+ this.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) {
+ if (e.keyCode && e.keyCode == 9){
+ var $next = $(this),
+ $rollover = $(this);
+
+ that.$element.find('[data-tabindex]:enabled:not([readonly])').each(function (e) {
+ if (!e.shiftKey){
+ $next = $next.data('tabindex') < $(this).data('tabindex') ?
+ $next = $(this) :
+ $rollover = $(this);
+ } else {
+ $next = $next.data('tabindex') > $(this).data('tabindex') ?
+ $next = $(this) :
+ $rollover = $(this);
+ }
+ });
+
+ $next[0] !== $(this)[0] ?
+ $next.focus() : $rollover.focus();
+
+ e.preventDefault();
+ }
+ });
+ } else if (!this.isShown) {
+ this.$element.off('keydown.tabindex.modal');
+ }
+ },
+
+ escape: function () {
+ var that = this;
+ if (this.isShown && this.options.keyboard) {
+ if (!this.$element.attr('tabindex')) this.$element.attr('tabindex', -1);
+
+ this.$element.on('keyup.dismiss.modal', function (e) {
+ e.which == 27 && that.hide();
+ });
+ } else if (!this.isShown) {
+ this.$element.off('keyup.dismiss.modal')
+ }
+ },
+
+ hideWithTransition: function () {
+ var that = this
+ , timeout = setTimeout(function () {
+ that.$element.off($.support.transition.end);
+ that.hideModal();
+ }, 500);
+
+ this.$element.one($.support.transition.end, function () {
+ clearTimeout(timeout);
+ that.hideModal();
+ });
+ },
+
+ hideModal: function () {
+ this.$element
+ .hide()
+ .trigger('hidden');
+
+ var prop = this.options.height ? 'height' : 'max-height';
+ var value = this.options.height || this.options.maxHeight;
+
+ if (value){
+ this.$element.find('.modal-body')
+ .css('overflow', '')
+ .css(prop, '');
+ }
+
+ },
+
+ removeLoading: function () {
+ this.$loading.remove();
+ this.$loading = null;
+ this.isLoading = false;
+ },
+
+ loading: function (callback) {
+ callback = callback || function () {};
+
+ var animate = this.$element.hasClass('fade') ? 'fade' : '';
+
+ if (!this.isLoading) {
+ var doAnimate = $.support.transition && animate;
+
+ this.$loading = $('<div class="loading-mask ' + animate + '">')
+ .append(this.options.spinner)
+ .appendTo(this.$element);
+
+ if (doAnimate) this.$loading[0].offsetWidth; // force reflow
+
+ this.$loading.addClass('in');
+
+ this.isLoading = true;
+
+ doAnimate ?
+ this.$loading.one($.support.transition.end, callback) :
+ callback();
+
+ } else if (this.isLoading && this.$loading) {
+ this.$loading.removeClass('in');
+
+ var that = this;
+ $.support.transition && this.$element.hasClass('fade')?
+ this.$loading.one($.support.transition.end, function () { that.removeLoading() }) :
+ that.removeLoading();
+
+ } else if (callback) {
+ callback(this.isLoading);
+ }
+ },
+
+ focus: function () {
+ var $focusElem = this.$element.find(this.options.focusOn);
+
+ $focusElem = $focusElem.length ? $focusElem : this.$element;
+
+ $focusElem.focus();
+ },
+
+ attention: function (){
+ // NOTE: transitionEnd with keyframes causes odd behaviour
+
+ if (this.options.attentionAnimation){
+ this.$element
+ .removeClass('animated')
+ .removeClass(this.options.attentionAnimation);
+
+ var that = this;
+
+ setTimeout(function () {
+ that.$element
+ .addClass('animated')
+ .addClass(that.options.attentionAnimation);
+ }, 0);
+ }
+
+
+ this.focus();
+ },
+
+
+ destroy: function () {
+ var e = $.Event('destroy');
+ this.$element.trigger(e);
+ if (e.isDefaultPrevented()) return;
+
+ this.teardown();
+ },
+
+ teardown: function () {
+ if (!this.$parent.length){
+ this.$element.remove();
+ this.$element = null;
+ return;
+ }
+
+ if (this.$parent !== this.$element.parent()){
+ this.$element.appendTo(this.$parent);
+ }
+
+ this.$element.off('.modal');
+ this.$element.removeData('modal');
+ this.$element
+ .removeClass('in')
+ .attr('aria-hidden', true);
+ }
+ };
+
+
+ /* MODAL PLUGIN DEFINITION
+ * ======================= */
+
+ $.fn.modal = function (option, args) {
+ return this.each(function () {
+ var $this = $(this),
+ data = $this.data('modal'),
+ options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option);
+
+ if (!data) $this.data('modal', (data = new Modal(this, options)));
+ if (typeof option == 'string') data[option].apply(data, [].concat(args));
+ else if (options.show) data.show()
+ })
+ };
+
+ $.fn.modal.defaults = {
+ keyboard: true,
+ backdrop: true,
+ loading: false,
+ show: true,
+ width: null,
+ height: null,
+ maxHeight: null,
+ modalOverflow: false,
+ consumeTab: true,
+ focusOn: null,
+ replace: false,
+ resize: false,
+ attentionAnimation: 'shake',
+ manager: 'body',
+ spinner: '<div class="loading-spinner" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>'
+ };
+
+ $.fn.modal.Constructor = Modal;
+
+
+ /* MODAL DATA-API
+ * ============== */
+
+ $(function () {
+ $(document).off('click.modal').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
+ var $this = $(this),
+ href = $this.attr('href'),
+ $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))), //strip for ie7
+ option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());
+
+ e.preventDefault();
+ $target
+ .modal(option)
+ .one('hide', function () {
+ $this.focus();
+ })
+ });
+ });
+
+}(window.jQuery);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org