From 5a3e61c67fd84cab34f232beb2e24edfee4d0265 Mon Sep 17 00:00:00 2001 From: Musachy Barroso Date: Thu, 16 Apr 2009 21:46:33 +0000 Subject: [PATCH] move admin bundle to trunk git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@765776 13f79535-47bb-0310-9956-ffa450edef68 --- bundles/admin/pom.xml | 78 ++++ .../osgi/admin/actions/BundlesAction.java | 208 +++++++++ .../osgi/admin/actions/ShellAction.java | 91 ++++ .../src/main/resources/JQUERY-LICENSE.txt | 25 ++ bundles/admin/src/main/resources/LICENSE.txt | 174 ++++++++ bundles/admin/src/main/resources/NOTICE.txt | 8 + .../resources/osgi/admin/commandResult.ftl | 1 + .../src/main/resources/osgi/admin/shell.ftl | 62 +++ .../main/resources/osgi/admin/viewBundle.ftl | 147 +++++++ .../main/resources/osgi/admin/viewBundles.ftl | 71 +++ .../src/main/resources/static/css/main.css | 103 +++++ .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 182 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 124 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 123 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 4033 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 130 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_217bc0_256x240.png | Bin 0 -> 5399 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_469bdd_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 5399 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 0 -> 5399 bytes .../css/redmond/jquery-ui-1.7.1.custom.css | 404 ++++++++++++++++++ .../src/main/resources/static/css/shell.css | 43 ++ .../resources/static/js/jquery-1.3.2.min.js | 19 + .../static/js/jquery-ui-1.7.1.custom.min.js | 20 + .../src/main/resources/static/js/shell.js | 83 ++++ bundles/admin/src/main/resources/struts.xml | 49 +++ 32 files changed, 1586 insertions(+) create mode 100644 bundles/admin/pom.xml create mode 100644 bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/BundlesAction.java create mode 100644 bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/ShellAction.java create mode 100644 bundles/admin/src/main/resources/JQUERY-LICENSE.txt create mode 100644 bundles/admin/src/main/resources/LICENSE.txt create mode 100644 bundles/admin/src/main/resources/NOTICE.txt create mode 100644 bundles/admin/src/main/resources/osgi/admin/commandResult.ftl create mode 100644 bundles/admin/src/main/resources/osgi/admin/shell.ftl create mode 100644 bundles/admin/src/main/resources/osgi/admin/viewBundle.ftl create mode 100644 bundles/admin/src/main/resources/osgi/admin/viewBundles.ftl create mode 100644 bundles/admin/src/main/resources/static/css/main.css create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_217bc0_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_2e83ff_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_469bdd_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_6da8d5_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_cd0a0a_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_d8e7f3_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_f9bd01_256x240.png create mode 100644 bundles/admin/src/main/resources/static/css/redmond/jquery-ui-1.7.1.custom.css create mode 100644 bundles/admin/src/main/resources/static/css/shell.css create mode 100644 bundles/admin/src/main/resources/static/js/jquery-1.3.2.min.js create mode 100644 bundles/admin/src/main/resources/static/js/jquery-ui-1.7.1.custom.min.js create mode 100644 bundles/admin/src/main/resources/static/js/shell.js create mode 100644 bundles/admin/src/main/resources/struts.xml diff --git a/bundles/admin/pom.xml b/bundles/admin/pom.xml new file mode 100644 index 000000000..2fa95838f --- /dev/null +++ b/bundles/admin/pom.xml @@ -0,0 +1,78 @@ + + + 4.0.0 + org.apache.struts.osgi + struts2-admin-bundle + 1.0.0-SNAPSHOT + bundle + Struts 2 OSGi Admin Bundle + + + + org.apache.struts + struts2-osgi-plugin + 1.0.0-SNAPSHOT + + + javax.servlet + servlet-api + 2.4 + provided + + + junit + junit + test + 3.8.1 + + + + + 1.5 + + + + + + org.apache.felix + maven-bundle-plugin + true + 2.0.0 + + + META-INF + true + *,com.opensymphony.xwork2 + org.apache.struts2.osgi.admin* + *;create-asynchronously:=false + + + + + true + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar + + + + + + + + + maven-compiler-plugin + + 1.5 + 1.5 + + + + + + diff --git a/bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/BundlesAction.java b/bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/BundlesAction.java new file mode 100644 index 000000000..ee64f301c --- /dev/null +++ b/bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/BundlesAction.java @@ -0,0 +1,208 @@ +/* + * $Id$ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.struts2.osgi.admin.actions; + +import com.opensymphony.xwork2.ActionSupport; +import com.opensymphony.xwork2.config.Configuration; +import com.opensymphony.xwork2.config.entities.PackageConfig; +import com.opensymphony.xwork2.inject.Inject; +import org.apache.struts2.osgi.BundleAccessor; +import org.apache.struts2.osgi.OsgiHost; +import org.apache.struts2.osgi.StrutsOsgiListener; +import org.apache.struts2.osgi.OsgiConfigurationProvider; +import org.apache.struts2.util.ServletContextAware; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleException; + +import javax.servlet.ServletContext; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Collections; +import java.util.Comparator; +import java.util.Map; +import java.util.HashMap; +import java.util.Enumeration; +import java.util.Dictionary; + +public class BundlesAction extends ActionSupport implements ServletContextAware { + + private String id; + + private BundleAccessor bundleAccessor; + private Configuration configuration; + private OsgiHost osgiHost; + + public BundlesAction() { + } + + public String index() { + return SUCCESS; + } + + public String view() { + return SUCCESS; + } + + public String start() throws BundleException { + Bundle bundle = osgiHost.getBundles().get(id); + try { + bundle.start(); + + //start() fires a BundleEvent.STARTED, which loads the config + //we need to wait until the config is loaded from that bundle but + //there no easy way/elegant way to know if the bundle was processed already + Thread.sleep(1000); + } catch (Exception e) { + addActionError(e.toString()); + } + + return view(); + } + + public String stop() throws BundleException { + Bundle bundle = osgiHost.getBundles().get(id); + try { + bundle.stop(); + } catch (Exception e) { + addActionError(e.toString()); + } + + return view(); + } + + public String update() throws BundleException { + Bundle bundle = osgiHost.getBundles().get(id); + try { + bundle.update(); + } catch (Exception e) { + addActionError(e.toString()); + } + + return view(); + } + + public boolean isStrutsEnabled(Bundle bundle) { + return "true".equalsIgnoreCase((String) bundle.getHeaders().get(OsgiHost.OSGI_HEADER_STRUTS_ENABLED)); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Bundle getBundle() { + return osgiHost.getBundles().get(id); + } + + public List getPackages() { + List pkgs = new ArrayList(); + Bundle bundle = getBundle(); + if (bundle.getState() == Bundle.ACTIVE) { + for (String name : bundleAccessor.getPackagesByBundle(bundle)) { + PackageConfig packageConfig = configuration.getPackageConfig(name); + if (packageConfig != null) + pkgs.add(packageConfig); + } + } + return pkgs; + } + + public ArrayList getHeaderKeys() { + return Collections.list(getBundle().getHeaders().keys()); + } + + public Collection getBundles() { + List bundles = new ArrayList(osgiHost.getBundles().values()); + Collections.sort(bundles, new Comparator() { + public int compare(Bundle bundle1, Bundle bundle2) { + boolean bundle1StrutsEnabled = isStrutsEnabled(bundle1); + boolean bundle2StrutsEnabled = isStrutsEnabled(bundle2); + + if ((bundle1StrutsEnabled && bundle2StrutsEnabled) || (!bundle1StrutsEnabled && !bundle2StrutsEnabled)) + return bundle1.getSymbolicName().compareTo(bundle2.getSymbolicName()); + else { + return bundle1StrutsEnabled ? -1 : 1; + } + } + }); + return bundles; + } + + public String displayProperty(Object obj) { + if (obj.getClass().isArray()) { + return Arrays.asList((Object[])obj).toString(); + } else { + return obj.toString(); + } + } + + public String getBundleState(Bundle bundle) { + switch (bundle.getState()) { + case Bundle.ACTIVE : return "Active"; + case Bundle.INSTALLED : return "Installed"; + case Bundle.RESOLVED : return "Resolved"; + case Bundle.STARTING : return "Starting"; + case Bundle.STOPPING : return "Stopping"; + case Bundle.UNINSTALLED : return "Uninstalled"; + default : throw new IllegalStateException("Invalid state"); + } + } + + public boolean isAllowedAction(Bundle bundle, String val) { + int state = -1; + try { + state = bundle.getState(); + } catch (Exception e) { + addActionError("Unable to determine bundle state: " + e.getMessage()); + return false; + } + + if ("start".equals(val)) { + return state == Bundle.RESOLVED; + } else if ("stop".equals(val)) { + return state == Bundle.ACTIVE; + } else if ("update".equals(val)) { + return state == Bundle.ACTIVE || state == Bundle.INSTALLED + || state == Bundle.RESOLVED; + } + throw new IllegalArgumentException("Invalid state"); + } + + @Inject + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } + + @Inject + public void setBundleAccessor(BundleAccessor bundleAccessor) { + this.bundleAccessor = bundleAccessor; + } + + public void setServletContext(ServletContext servletContext) { + osgiHost = (OsgiHost) servletContext.getAttribute(StrutsOsgiListener.OSGI_HOST); + } +} diff --git a/bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/ShellAction.java b/bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/ShellAction.java new file mode 100644 index 000000000..eba64bbd9 --- /dev/null +++ b/bundles/admin/src/main/java/org/apache/struts2/osgi/admin/actions/ShellAction.java @@ -0,0 +1,91 @@ +/* + * $Id$ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.struts2.osgi.admin.actions; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import org.apache.struts2.osgi.DefaultBundleAccessor; +import org.apache.felix.shell.ShellService; +import org.osgi.framework.ServiceReference; + +import com.opensymphony.xwork2.Action; +import com.opensymphony.xwork2.ActionSupport; + +/** + * This action executes commands on the Felix Shell + */ +public class ShellAction extends ActionSupport { + private String command; + private String output; + + public String execute() { + // get service + ByteArrayOutputStream outByteStream = new ByteArrayOutputStream(); + ByteArrayOutputStream errByteStream = new ByteArrayOutputStream(); + PrintStream outStream = new PrintStream(outByteStream); + PrintStream errStream = new PrintStream(errByteStream); + + String outString = null; + String errString = null; + try { + executeCommand(command, outStream, errStream); + outString = outByteStream.toString().trim(); + errString = errByteStream.toString().trim(); + } catch (Exception e) { + errString = e.getMessage(); + } finally { + outStream.close(); + errStream.close(); + } + + output = errString != null && errString.length() > 0 ? errString : outString; + return Action.SUCCESS; + } + + public String getCommand() { + return command; + } + + public void setCommand(String command) { + this.command = command; + } + + public String getOutput() { + return output; + } + + public void executeCommand(String commandLine, PrintStream out, PrintStream err) throws Exception { + ShellService shellService = getShellService(); + if (shellService != null) + shellService.executeCommand(commandLine, out, err); + else + err.println("Apache Felix Shell service is not installed"); + } + + private ShellService getShellService() { + //bundle can be de-activated, so keeping a reference aorund is not a good idea + DefaultBundleAccessor bundleAcessor = DefaultBundleAccessor.getInstance(); + ServiceReference ref = bundleAcessor.getServiceReference(ShellService.class.getName()); + return (ShellService) bundleAcessor.getService(ref); + } +} diff --git a/bundles/admin/src/main/resources/JQUERY-LICENSE.txt b/bundles/admin/src/main/resources/JQUERY-LICENSE.txt new file mode 100644 index 000000000..f0f2ba90b --- /dev/null +++ b/bundles/admin/src/main/resources/JQUERY-LICENSE.txt @@ -0,0 +1,25 @@ +Copyright (c) 2009 Paul Bakaus, http://jqueryui.com/ + +This software consists of voluntary contributions made by many +individuals (AUTHORS.txt, http://jqueryui.com/about) For exact +contribution history, see the revision history and logs, available +at http://jquery-ui.googlecode.com/svn/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/bundles/admin/src/main/resources/LICENSE.txt b/bundles/admin/src/main/resources/LICENSE.txt new file mode 100644 index 000000000..dd5b3a58a --- /dev/null +++ b/bundles/admin/src/main/resources/LICENSE.txt @@ -0,0 +1,174 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/bundles/admin/src/main/resources/NOTICE.txt b/bundles/admin/src/main/resources/NOTICE.txt new file mode 100644 index 000000000..0721f5a79 --- /dev/null +++ b/bundles/admin/src/main/resources/NOTICE.txt @@ -0,0 +1,8 @@ +Apache Struts +Copyright 2000-2007 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +The binary distributions includes the following third party software: +JQuery (http://jquery.com/). diff --git a/bundles/admin/src/main/resources/osgi/admin/commandResult.ftl b/bundles/admin/src/main/resources/osgi/admin/commandResult.ftl new file mode 100644 index 000000000..44dd1b58a --- /dev/null +++ b/bundles/admin/src/main/resources/osgi/admin/commandResult.ftl @@ -0,0 +1 @@ +${output!} diff --git a/bundles/admin/src/main/resources/osgi/admin/shell.ftl b/bundles/admin/src/main/resources/osgi/admin/shell.ftl new file mode 100644 index 000000000..8c788d6b6 --- /dev/null +++ b/bundles/admin/src/main/resources/osgi/admin/shell.ftl @@ -0,0 +1,62 @@ + + + + OSGi Console + + " /> + " /> + " /> + + + + + + + +
+
+
+ Welcome to the OSGi console! Type 'help' to see the list of available commands. +
+
+ <@s.url var="execUrl" namespace="/osgi/admin" action="execCommand" /> + + +
+
+ + diff --git a/bundles/admin/src/main/resources/osgi/admin/viewBundle.ftl b/bundles/admin/src/main/resources/osgi/admin/viewBundle.ftl new file mode 100644 index 000000000..13a1ae864 --- /dev/null +++ b/bundles/admin/src/main/resources/osgi/admin/viewBundle.ftl @@ -0,0 +1,147 @@ + + + ${bundle.symbolicName!} + + " /> + " /> + + + + + + + + + + + +<@s.actionerror /> + +
+ +
+ + + + + + + + + + + + + + + + + +
Id${bundle.bundleId!}
Name${bundle.symbolicName!}
Location${bundle.location!}
Status${action.getBundleState(bundle)}
+
+
+ <#list (bundle.registeredServices)! as service> + + <#list (service.propertyKeys)! as key > + + + + + +
${key}${action.displayProperty(service.getProperty(key))}
+
+ +
+
+ <#list (bundle.servicesInUse)! as service> + + <#list (service.propertyKeys)! as key > + + + + + +
${key}${action.displayProperty(service.getProperty(key))!}
+
+ +
+
+ <#list packages! as pkg> + + + + + + + + + +
Name${pkg.name}
Actions +
    + <#list (pkg.actionConfigs.keySet())! as name > +
  • ${name}
  • + +
+
+
+ +
+
+ + <#list headerKeys as header> + + + + + +
${header}
${bundle.headers.get(header)}
+
+
+ + \ No newline at end of file diff --git a/bundles/admin/src/main/resources/osgi/admin/viewBundles.ftl b/bundles/admin/src/main/resources/osgi/admin/viewBundles.ftl new file mode 100644 index 000000000..96ee51b19 --- /dev/null +++ b/bundles/admin/src/main/resources/osgi/admin/viewBundles.ftl @@ -0,0 +1,71 @@ + + + OSGi Bundles + + " /> + " /> + + + + + + + + + + + + + + + + + + <#list bundles as bundle> + + + + + + + + +
NameStatusStruts BundleActions
+ ${bundle.symbolicName} + ${action.getBundleState(bundle)}${action.isStrutsEnabled(bundle)?string("yes", "no")} + <#if action.isAllowedAction(bundle, "start")> + + + Start + + + + <#if action.isAllowedAction(bundle, "stop")> + + + Stop + + + + <#if action.isAllowedAction(bundle, "update")> + + + Update + + +
+ + diff --git a/bundles/admin/src/main/resources/static/css/main.css b/bundles/admin/src/main/resources/static/css/main.css new file mode 100644 index 000000000..985aba8fa --- /dev/null +++ b/bundles/admin/src/main/resources/static/css/main.css @@ -0,0 +1,103 @@ +.right { + clear: both; + float: right; +} + +.left { + clear: both; + float: left; +} + +.bundleDetails td { + border: 1px solid #C8C8C8; +} + +.rowTitle { + width: 141px; + font-weight: bold; + vertical-align: top; +} + +table.properties { + border-style: solid; + border-width: 1px; + border-color: #3366CC; +} + +table.properties td { + border-style: solid; + border-width: 1px; + border-color: #3366CC; +} + +table.properties td.name { + background-color: #C3D9FF; + vertical-align: top; +} + +table.properties th { + background-color: #C3D9FF; +} + +img { + border-style: none; +} + +.fg-button { + outline: 0; + margin: 0 4px 0 0; + padding: .4em 1em; + text-decoration: none !important; + cursor: pointer; + position: relative; + text-align: center; + zoom: 1; +} + +.fg-button .ui-icon { + margin-left: -3px; + margin-top: -8px; + position: absolute; + top: 50%; +} + +.fg-button-small { + outline: 0; + margin: 0 4px 0 0; + padding: 0em 1em; + text-decoration: none !important; + cursor: pointer; + position: relative; + text-align: center; +} + +.fg-button-small .ui-icon { + margin-left: -3px; + margin-top: -8px; + position: absolute; + top: 50%; +} + +.fg-button-icon-left .ui-icon { + left: 0em; + margin-left: 0; + right: auto; +} + +.menu { + clear: both; + padding-bottom: 10px; + height:25px; +} + +.tabs { + clear: both; +} + +.propertyValue { + width: 600px; + overflow: auto; +} + + + diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..47acaadd737478ddb090f47f618810712163317b GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA993)+ za~~)OO5|O5sDCi_{N8&XlRv*c;OQ6|AR59NN?mFzWBXJVGojypu|S6~c)I$ztaD0e F0syyrGF|`x literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb564f8d0a117f17aa6b844490309dadbd94821 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|on978O6-=0_GYj6;7zWBfT zzjhI`OjAO{6(N>+Em!s|xjZW|^1EO|(5d{JeUmv{p6fa-GJh;t>KCH4`R~7(L8qj} Y_egNRQF(If70@^aPgg&ebxsLQ0Qgob)Bpeg literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..014951529c315d6042e72febc310a4d2db5b4a82 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|lm978O6-<~(*YA_IRxoBVf zfAX@vsV!R#l$@#*eLnw)_Sv|_?i7P!ORnX)SxaXh+BPpZ!Fw~yjr&#G|Jw^YMHDhV X&EsZx`7bsSXc~j3tDnm{r-UW|&(SK+ literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..4443fdc1a156babad4336f004eaf5ca5dfa0f9ab GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0cdbda36a554acfdd6b713fcfcbc4fa49100a213 GIT binary patch literal 4033 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 literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_217bc0_256x240.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_217bc0_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..0d979071bed6ec2ac95e88800e67eb6c6ba4a797 GIT binary patch literal 5399 zcmd^@RaX>_*M+Aj>5yg^8UzGsaHv62x>ZtAx;usjX%VDB1Y|%$8UbfuR1k*dCoSC~ zLpS_g@7H+GIv0CiowaYCwf0HU*HtIK$9xX}0FY~HJTU|Sfd3=_PYnL2>UBdr|Cv2~ zZDUoAP|W|IJ#NYJ`4?Q*&rsJ0z(^$qA=XF7aS}IaewN3mtCEWY>2tnx|US_|qcUvq{Q}Bq$bao!sxB&oY zlQo|x8wVBcS(4h#wNexQ)N-lHExXQT`4})RwB5)%H{0@}#?jS9`q{XD_uZYZ8k|Cg z6_Zevkj+@49TUW!hFQkL_@9WBUO4QauTz0RXg6bK#5#E_1>Ox?wbY!V$x-gYZ$BND ziubnNfbKDPTVBkftI>B}ZK=R-xFMv;`Y(FV2e znn~pApD@o~JO!+rN%p3>8$2W!gWtRile4vpl{8|WD|}XG@c3I-h#@9-iIY-;gVt8l zM%XG>i(G6t4eZ|W0kdVL#yHnk97hoe`%%trRd{QLv-=j5I zr2{{ud-r{y8OQ#gl`h@2Tq_Tnsnm5=JsYIS-_k(MaL;En0~=Uop38!QM-3F{fS+G5J=&h;`U^!b}$ z^LLQ_A)eH$v&J{+~b#!CA=_{`gWhLXW#~*dwwy}sTZoI!JjhgKcga_`HOPRz-1-T^(bvxTTR zxL=L3YwMgX+wg~3K7;d)p`WTv@a#Jm>Nk3W7blCF*51tY>q1m?OS$T_l>qLG+twgt zdZJy+c(a~CtRrv*nc%V#P8kQ@4U4q+} zXk&M7$~m%f{32U;bx$Gev{$;LR10LIgPeH-%BZ2{qKNmAHh)R!Fi5JN189ChyTz); zA4wwxF%B-S`R`Z&S(xZ<{#9QgD`~cl#~&eyZnt=F%HTFgC9$kTpeQx$cJ$#@T5HS0 zQ8w)&@lc$X2n}xi+9PK0X(>eLol(n~GUJ5D$1jt>!KQIPL@8E2s6Zu=C)0N zP3RDG<=r5pZgf6tJ};2_{lvz}zEP6e z|Fm~#axLVJFiiZ4k5?u=zcMyez7Jv_wVXH1*VmHpn3Af-ENHU;UK&v@=p1plfeLO_ zOe*pFq%}zTNhNNk!+u9M!oIS?-O~J_3Fh#>W}VOJG4?dZ zy*-YFPNIv#=1V6h?7eLfb&?w4$P+7)a3j=!!Lyr&Lvu@}v=1{fW}!TQ&yRqCP*{XG z92etge4P7&6VMkjA+9%*!p}c>9fS-ANJkO`EjYA(-xZeybTNpm-LydCy#rl6AH}tG z_6lJ&j{>u-!n)GJF{wYdDnAc6oCW^S)mGl)h9;*60KZ-wm=xFcqyWJa0iC$(b7Bo* znHOFLiy!Lu6OjnS)racb9i?bs%{`W6q8g)>RJ7;)MjU%R50Z*>(Tn^8)k` zGA?;AJ8|h1$<{|f89s}4DGKiS;A3d~*skY)LFhN${%B!&229O{ZH1IB{4tb02-Mnk z+{ci)tR%{{a{+cmzc1s2NA~o-5B>Fk$U?KbyNtK%}g|Gg=) z*X9iyEk9it;p<+(61nO|h0I4-EawzQRCR^ibS%^$LV~!xSmh=-IqRAphMdhYN%ZC$dDUEc95eEgsduRHN{ zBpG;k)0Yiz$d?GAn^+&u9q1J83>0ChI$t-@JWQezeSaz|v_{CG4&XU98c*ib7|dweL4IbM9LERe9qBIA0$MYc6%E4UjGTr8~vf-|8O_JL%SP$l_$14`#^!; zrHIX1+3T92)*mn}MwGt+bfvBl81vuzT1S_IiJent!mawdhMES3x$N{F_w8rDV&401 z=2ekp(7iD^dEcQrt3TK^pP=cPH)s|zs<*;7DjO_fY_pe8=5>h-7%eit^+D-@O9+RC z>({we(v?^|6wIzj1y>_n=jE9Pt%HQ7!42)!8RmMF^Rk^xK?tnl94-7zvog+oGA7YoqqfRLt|RfENJ#cD z17cEg(^?<%O?Zx;_rAQ`L0rL?J63tp9d%i?{gM1y#w1e&oDvTh`@EVJ-p_iug(=GG3#Oz zA`?y_Arv;Rtm+cnBdj!VE(RkKJdWePhU|spaC^(-T{A8rB(C5-@O&6K-u2xKef`Lq zzTC2E@1Sw2wpH$ zA%)TaRQKfCJ(QKQDq8F4i+B5@zxyen1;Hw-;zmf%-fX5o(WM|{foCYLH7MK>fgrYE zC)1YNS$M{CPYeNyMJqZ7LguB2XlOvqQ!Vn{CiGOui@&?IQYwJ2esgOD?>o#WV8GB3 zbOnX|%q_o0drUt?c;sdNaoihRAQ0^|GU;S5{?ht!-w-TNbnF^73Kz411mAW6GLvv= z)6_1F8flMXaj#2$&i+I)#=u=-0LtWBFq=CvMkE_8wtDGzffC~1NP{vbZw^hkgWf^C zc0;J9!1KQxA*31J^1Q~}(H@_3no z8P$2^tzeo$t#nPmmQGIPeC=lZ`_;ikiUu0z8>I_EwDf#Xob(Bqq+kL#dp+ojGQu!A zgTR4ar=t}{ly(;hJdA5>+M?&C^u^hF`0v>;QY&Q2FF=csVK_gtO$S~_;SVp?0F zd&FFX?%BrD2cvp+3gW*z^r8>-DTzTIS>T{X`5_2AvOY1>N}jtaS+xhET}~)U7%OSN zdy`+^4>>x%y$oN3M=ZY8EBQTEE5*aj&C1&ASsSjOm?jj~lSKrUQn+2+w>>5OqVkM7 zZd#~uad#~vbm7gErhXXe`v9s@Z5npQ>XSBQ%fM@gr6vrd z)eiFOb|Q8 zCTw{L>D>u_e8G? z?nt>;TMip>?;KwLtU@ZMctEz4r&kB3?NGpe^HX%+9%KwJZ2^g~WP zd_I>|j!G}0mPPPW8`4|^Z{MKp17`Omo{zpsdZFEWZQko;5abXrJ99`dei0fR*Uu12esPU;u0Oz`%*y zbbZ!g@JTJjB^5yIG972R&Gq5M6`RfLTUr&QE64|tG$LZoxrTN8=|4xH_*u@`P*(VB z&;b^a_?=QDr6orX?Rst%aLy+5OP0L3ZX$D$q%BRrJO`e9ab^>|QM2SzFBg352eQ-lU-bzq7IIQrw_UuV zoT`-yKi6{Hxj!u;pVbJ3;ipz*`$n@H>p#h#VO@PaKA=6i9F-Vl3}9sVP-;|rCg2dh zRjJ_=Emk^)CH^>2BRKP~3kzx%PCNyri6_vzJ_bja226hUsST3Vw5X#SzTQf+)=ARU z(~~Ep`hl8BYDySlFIX~f`Gu^harDzIaoU~`Y+ZyDYr0RKTy>2+7p7l)gR9;U2^0d1 zVCH1yv@`G2#7)QyoKZm0Y~+?~Ok3<~L4n=N+Vt|`H>(MlUivC08>!q#4GsJOVZUsX z=jVa$Zq?VP$*CmL+{SfqQLesPjoQO`j8KUFpd>ugH@mcIKP3e@dlymCMaiVk%Z5Q@zjtDb#n zO=T(-;zF-}RzNDvTFdN`GAF8X(xcB`lIoP&9on*=o9vX~FQ?|pmyvJZ#>S?zi`spl zjm+^QY7ZP~GmG%}PoV{1D+d~YqyvA9XoaX+N`j#nkM|jJ;1kL#Y=4E57T)bxkgKI?YODyQLpNAFnG%=k)CV(rj3 z8Evv6YpH8hl$3{#*5Wnc`&1;eMPjWkcs{orFCi%>G?)XY3g;hG^GwB zzMF7(pw3lM<}F~PMB$^q6$)sg`m2!BN#`FM!?>4r0pX{v&DQBn^#zNSrwVv~WS~t{ zzzIjQs~y^4Ir}cP1>BZwdKWl+XX$zilDkN#fd2+&aFZqR>A=t_)rI~Q*k7%jqOqPRrM^%-?ppm8GtYuh@rYjnJwTZwevmM z|D7jwLNnS~OQUu6z?doEHtP8QC&Y<;&rTM{23*Hl0DSE7P$n}{RF>>nOCRm~I04QttRm_> zI)+Bb+Y*~xU`~9@-SCy6%GR@7doWpS9wr#Fq&TB zsV*+x3=aVSk$hDTZ5fiie3!*>qJaa}YgjfHohIY%x^&xE&3QA;!+p%F;<-%eP{7r( z?W5zb{D7tpf;~k#K1~R3BrOaA2MZ_Dgn(WnaWOGLK)z?Eq9Z94-Nen7O}sJ!@$$kX z6F?WfT!zF}gfrVCd$#Hfo@o|MKIP<61@S{sxL*@?VS&sm#5BMQbS2dejn-cCNLI=! z=@!yisA?U%Y=(3+d!VhI^GAIurY#}s_VeYBsoB0++!Dnh=I(Zx!^tq zx-evhQlqrQvv_==I(YI}TT=8d(_EMkP1>61%+qT0%fxV5e1 zorp+bCw~RiTXM-<+bz4s&+3J<@mUnB;;-J9VJ5Lfpef@nEUrGL{YSLEg+?`WOWDnk zcjw33lTHgVA78LouTDT(dq$h@{Z={;-&Kcwtl8Wre2`cEZ@8#vzJUkNUUz1h!?JgF zhzEr*pye_k!}+R**$+i9ll=Bvom)+}sC%cgY+xwAypM`D1DU!uMcA>3M(Q=YT)QdK z0s?zz`=z?k%MsE>Q z`XBf{7SZC;8mFDFqV*s-Y=@meBE`xj)${`9l3@|VH?!Ml_mG>izTZe0OilTZwRqg7 zXX%+({_8}upEC)%=ZM%QMK1S34hE}5k?gOV>AJb#*LS8nOHUW5Su~?mK@FC_#LcP& zm#9yueh?i`V}>=No70H7SpBv~(AP+)-cBrCjVJ;^AARf!{)$hCJ4+ss(|1_T4oxwP z(->FLni;Z_q+QxpBr87s6^75F2cQW9+GPfx_hop_ldAxYvlsOq>33Yyw-V;vupv({ zC=({ZOFZ#Y;G-7x-)}_u*jAEK0@c|tWEk3191Wa--YVtGa8OWbjre*6&P%V?F4+vD zl!pZK*2K{+nyhfqkMP%Y{?dVVY&7-de_fsY=|Mlm3&-It%Wdcl=P&y<(C4mYFVnCw zcVV7c&F<7ZO!qZj*D|$$LRzUs)1xwmV6C397YUbdrY>2;FxihNGaADFiEofxI|N>u zy{NEed8pfq_Lpr2()wjM2Z~)hF5e_F%Ro1ErNBn# z{_gcJDalOBA2ekvLjvD79O8VUo@ZTSALl>BlS;Cg+a{1#cm!sx__+6po`jI5KJ0j0 z_StcF4=yv0BT@B;0E91f+1T)eCTh>>UQ{1fP|uu<#0;dd<~St--1=Es@!(ToIWeUU z6IHMgJrM>?c$g4IhwsKZks_F|-@FK!zJKcwWG|ss>AQ{MdzqY*nJv=Rk1Kbye zy$y8gdw9d*^tJ0A{3uP5lW_Jsti-PxRbNeVT9yftY$U^xB8!e)0+DL!d6l1wx!9H< z8`E-xk+uGTpZ&&reB|y(UB6?2=@LS4kHNM-35|bLj!vegH>(x+YQH6_+m^K7J;sU( zkJf1Yr_>=G`$>BionQC3*_w(J*EMZT$i``ii$|WrfZrF zE3Bv;#ELa#Aw&D_*9|PD*1%dLGYO75B78%GAQQt_=2GsW=v@AQP=FQmJ}c?BTwZGV z@|xkSLfAppIa)yYACwMxwmbQB3(cV}uq43`oOqb)2!3r$Y{)&}vkb^%6Fw90fE+I; z6nowanOA*8<-~nAu<*FyUx|Lmq8=LQP0ae1seSBWD!KGK1IkAiei<=kqTR)|aPC%6 zT0S>yep59d3FK42Kd|EnULs`xD5kSu*}idJ-Y>)uwsj(L2ts0 z>NU7KhaDc@Opc0?U0?heS@n3f;(PAjE9FBA*^$2UGNIlRyx9}483fN<33nB?uv2o# z@n}@tDats%+9K6kT%_7)Ihzs{rDzpkL9AmxA@g z?94|ULdrW*9|@Y{gbKyMp8Fm;?dfxi58m=Tm3a1f!a2;VDTn5MAV^cKqe6}Rok{Uu zCYCZ+*?5Urky?vm=iZp*SNRhcpVXsAf!A84?%U4U)TH{$614>z<22S@%<;c(jnM?P zo$`-e(<$AqP9@DOLgoAkN-b&7>HxmsgoMnh{!0UI&GQc@O!hu9?Xmp1LBde9@2cIG z$7%+6scX+!l;MQ>S~_oiqt;>cX30!QlPiqrKEr(!!9WhPWH5Hr`q+D|??TbCfklun zV$bMd#nDRfQ`s!WJMxI8dq}eh>YaAZGIZG&?^_X6%WujRkxE(J&5&nuxy=to;{3owbsEmiTG;uzZm9Q8q!M#l0JF!*=F&6F1L@%8epRG?U((4l)JRb^f!e?7}=uQg`|iw zMngp5oRAYUA||#3(p8u9)KP6>y+K_c)oJ18z#ptrd}V%C4{K%a4dNLjhyMu1eh>~P ztfr_Xuk9!JhpdD9c^~)f*eDL2`hwS$+Jty+bj=paCB}Xjiw1eEK7d{ev~hgu8F?Sq zTe#kw(0b&w=FR&^Htrp<)X?j@UxVf6@X{yN)&_A&G1#EV8Qcw8niLn`rRgiV-e!8X zaR8TFzCz;iPK3?$qu7_;QE6KRvYKQWAhABY zpWT7HoJBiaobBu=%1i=0Njes|Y~PpCd;0S;Dw9QHT2;G=ijL&Qpnd+ShSQ(YvJuYq zVC;5P$-JF~hoA?O|4)z}32ggbEwr9c-q1dVX&KyMq9NA`(_h?b{vPg33vrbzDM58? ziEE%x=b)CW^(tdc1IM?)7d_n1mg`|v#sqU}r5x_2G!M&79E_j=Ydqu*@shZoqp2QfgO%{= zFiIvI*sbsZ8>4?7ObXJH(Z4x(gd7Rsi*7iun9@0dXye#XC>LYM4pSQFV-^gnE18ZAS;S$gH^t zo~kC9R%K?(S+KAmNcg*ew8vT}$E!j;X^l0=o!G3<;=&&Thg}y;FGl6&^@lEqZuRaH zzp3iqn=MY&V$=LKa%=EzE_8u|Tr{wH^_OKFvn`*+Xn13*%MxaX-mrq*ywI>(c(k5s z`D{6rP}@8uzLLFYR%?T#sdYP1!i7PqzWgnNttQ^(XOOw(WDlj^m%atUP!An=K{9Q( zCwlXmY8barOt%?dYbrW=hWug*iMtq>ye{r1obb3CXs2P@8Q*7O@$phMPg1n2NZ&gw zv;(~{6wUknG^3~&m{#BPpL~Q@DG`&LVJ4#yaznLiJDCp`eGKbPGyew)!z}7MM&Mw% zw=g;=L|gdhlX&u*2ND1uLo{HMF$d;)um5RCf>m67E_p>H`mzSe) ze;4AgFafbTo9B#J2xg^G=zIg4764QrM7d&Rgrd=2Bu7e zUfp@9Lw(||X#gi>ENrsQZdCk&aGQ8^kdAS8_i5G9$F5-R?>TR-EnVURj%+8fnufYS({vVRn=EIYQJ`Rmd&IQsZER%>4nj#XLo&mo<{oZLT75t$3R>e+#{>+83^s!}c3sv~hJ^@il z#I(uPOq) zY=x3WGUp1~Y|iec&yFY@qu3t~dy@_^TM8sut2=g4#Ym-RpXOKI+ru4W^d5?{!pEGU zdfVn-j@d%Z$4MIC;sw-#I&^PpOiuDUsasbEiEHz`2dY*Bt=o|CbSv%rrq7Tkj!>P~ z8l8*&w-l;fejA+ZM&loTjvhGWfKLI-1|!O*&}qA08E@U5S{o975tf%;xImX{_}4Mu zu4+;nB+CR+8aStNz~-cU>eX2KUrC<;ehrDs>19Oh>_TQYG{k@oC?)gB-JKsji9qM^ z!nA$ifsqbVPojuRctG#cSE`U&8Y6zgkz8`b{nu2VKvAk~;bPVcM(flZVa5^ma(-TOlE9*6i6LGnB0) zvW>_LBDd^26CU0F#`C()^*QIKbFTBl`&{o&oGC{C42&NJ0Kl2+2D&!^0CZXc>x_`o zmwesu;54n6-muU^XZ`s93B#Z9rKgKy{BL5+0bVvaD5EJcGE?Tfg}2s2EI-E=7GX7R zZ39EZUGb|orJ@yL2_IbhzV;~V3cPQ@RW!VQT2@&vag-~%2BQZj722oeSG!Yk&>Eg$ zDbCK{42}Q*o^)LoWf7dca-Z2@vXPy>&!BuhDplIeW%;g=s?%1gyW6;DP)Y~{4iZYD3IctGVxpn~fL!lxWoKdvs+o&5n{aIu;^~P_ z!h$)fC}i`bbMF=bg-&Pb?eaP1KV=U?VsaMaQ0nQDTtDu+Js{5e1n+bHV*| zG$F_=xmIzRd+Fp-P0-YdmW0S(W;oHo8q{@>+2=K=S4;T^_@f@wJrMiyR&TcBNn3l# zJ7M9%F1|{Nm&CG}mTPvcuVt2#(Rn0`!mqwpp~f*qplPFS47MS<<42U9xq1zBTglac zXZOe3(@u-hAG4UP)+Qlsy<;s8ek)#t?Wxg!tlc`me~?r9Z@7p^zP>y6eoscZ{fbw1 zusaz)sOdZ?&GEXI$rp(?mH75jjZ0OhsAspUd~i6wqMw2?1(~=shuboXMCi6S-?%N@ z3bAAqj1GvrDHI6yKU+0OypbVh_oF0~fBiO_rn+e~|LyT&jSuDVDpL8FsDc`11}|X~ z+8@{f2Hxu27OR!7tobM@beD}zJlWDY#pDwDia`;?C!@!3?}&@ManM8_N=g2Y^*HR7 zN7=a;zMBNopR@5g7YLYU1x~j@b~?)?;q0$lX*#*!(t9&qWoHXi&0CNvphk;dVx~0$ z%amsnUx>Dc5#2h$)p68Jv|-0R@M{EAcQ=NnN)U#ijz4w>eZ|Gco+pjU>e;Vkha?-s zs!u3u&JNp3P_OJLkQAQ(3dQBo{89Kpt#bX(2h!XZN!5V*`OCUb^g3_oSqkxNT9YQ} zl<-sFW$w6X@Nui!?>8d6tgDI10cxyh5 zn=`Wb(e;7Bp94nwyriB89p4lFnG$?Zul|l75runFfl8vJwWt>OXuTz<*_3qLKf#Cy zjn!)Yr_^C>yV)rFokKW1KRmDm-eoGO#2@2|=VJhP)ipu5l4*^&}?=usB%jTt2 ztgIW%$%h_hUZDDi{XuGz=6aIOwo>iu14`n3!3jsX4&YKFLSybBuZ4detI#?BN2EAe z!I+Dlh`gF(3J3PPzPbA?zbe#YX0?zAFGA+G46PG)6N%;D=}=yp(5vuiW36u1#S3== zQ}em#7q(RV6G7eue1p3V;ALVufMh%mmg%41;rT)sc4bp@T*%`T1t|m-GDv}JsRwa= z+xf?L0@+E(CX#h8QOHoWX{0^7UjZ31PI zr!k1c#CsKt4<>z_5E9PwSS_RTYe5+Sd-&Op1ueST^zz-T_i5qaYVwmbh;F6Yqv{ESDnANZ0M+(jUw@4n=-^r%`te;-eCXZJORF{rD)ctJ zVS_qX*NFYo+ewkpG8;=jBdVXyResO?d!@Xo!MjrTUd1y51in&XsQ00}c1PO$(xbQB&&6MSo^%TJY|f#&9STrY>M2k|KPO_` zm&xUfHC7%%W`yR__=Pv7`PF`erDqMOF`!hl%x%Xho08aYRlKfXbArm!hd%lDtq}^Z zx?AzFdnUQZ#j&J?S+IgHUa>V5TI0_<5+9#YJ#c04ty%ujr1Abo#(m~Lw}@!6)_v87 zau^MNPc^N1^Kz_Ue{0vBZGD0!4rv>stmNdb0k=oV8 z({niAL`)o!1*wqll%S7c?W5J<3U&X&DRY)GFA_ej990alJjuq3x4QKJu9&Xe&b&f3 zmKax7W!nePxBuo)jsx|fVn82{ttLYK_*YN^?wdkT+e@|ARwi-QdFi$Le_EbBU2EFP zu>o^MYG4-_khzg0@fPBnvw*V7E~WmDoxo)^ ziztW)j019NMnpxIK{{%(9@;9+EVn2dW7@4;?6|`XvXAu7ni0*6{UIEk#K<3km=8i> z__bu!r1gV%zu*n<0MFC@U2BEmGhc8zl3Ngu&F;Bk*@T!6<53{bwMWn!0oD%BJt7`r z`wBN&;@gfL*S&b2$i%)Qlo@z__ieQJ99H(s%1S>rF&Yy%HH*DPO_k*2y)ttx*UMDb zCKljy&6iJD*$uazc@p!=Yg%Gw;pwnbXB8`uzmy62Ug_RYMx^6^$L^=+>cKMk->xFfHp&%l9xRYOsrJNeQxZ zTTC5^ya2UWYfv6<9z3}VzU+~n<3O^v^90lw+Yzk#)&fvMBB=ZLwF8N4o9gdxx1G~E zoRLI@$zu6c^*-3hhYXYVwq1^@(6N!DK7jmc+`E#qj!ex=Rz0RNkxNe*MC{WGTHE&kA*e0IWMDkX^pFxtxJt-g~uBy z7B5y(@O3TIVyoFprghc`s%noTIZOzo;=|WE)Mo5eaSoAdMsipDedSvKJ@TsfL1sNANGk;MmInNgHCmLh(;~fDS6AgW-J!1{Wt;`z%?jn)tob zTr0o}P1blgKsAiaLbv&({p7{JP7a^q2sIuHmmRKK-_3Zu7oGZ^f}nPgp#HK-7`6*&7$&=oauC_Kp8z*^4Yp}?9K=7 zo8a;~OQ+C~w;^p{5g@||99+j(P{&T&icsCn&4WA#kVj^cE)?|bU+=);*q^m=dpzt- z2YV3v#Yu?e`8+51Vh{_JOyeEgG6$d{p47+DOy(Hw$0(nQdYqO)-1uXcb zp((`n>_EIcU_O90X^}_>*AN!p^6>xt>Gy6^nZO5?x5~D93+FD4r;V?8nXAB#5Ag6R z0=iwccE(uR%G$-_pw*IIrea_dUiC-E=>!%r|4{#;WQp%+6s=8%k*bQf^yD|&ab5p% z#zru4G-JM?-TM4q+T5u836kych!^n)y)93avAky+S&UG8@o8c8y&cRUTKBOS3vAp8 zs=H(M<%BiFY=Wo`E?z_~szLXs$7LnH6MJ;D5!iN*2cQ~N(1tY$N3+z*Z~hE<<^a_$ zRqtBzyCYxY{9FHYH!9!AOVr>Qdt5SDCJ0_WjY{47%5dlI^!l(^R%l*Y;UZ18@m~l3 z`znd;kW6DpS-`yVA*-X(nb+fKeguM|PmR0iCp1F7Vg>#wOkg{)ZD%E_b~gwn1(Mvo^PJ2!}O? zmo7<4Q7+MxcJN5AlVTGBD{XCsmyJ+=vbwJ|0vRLJwjSi3+M9h%rV&2@N3k-~(@#He MT@RyMrHzgFA9(vu;s5{u literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_6da8d5_256x240.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_6da8d5_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..60e20ca1891cb17243a78b1db1aaceaff5ba72f7 GIT binary patch literal 4379 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 MT^FlUsfCO99~F39u>b%7 literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_cd0a0a_256x240.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2db88b796a36dc0501745c6f90920cf601bfbccd GIT binary patch literal 4379 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 M>tS>&wXu=^1FE+S0{{R3 literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_d8e7f3_256x240.png b/bundles/admin/src/main/resources/static/css/redmond/images/ui-icons_d8e7f3_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..8da5e0a8fee20c65a7e4d2aae2c11b12693448db GIT binary patch literal 5399 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 PKY*5+-lICCZOs1wkD^8x literal 0 HcmV?d00001 diff --git a/bundles/admin/src/main/resources/static/css/redmond/jquery-ui-1.7.1.custom.css b/bundles/admin/src/main/resources/static/css/redmond/jquery-ui-1.7.1.custom.css new file mode 100644 index 000000000..3e15a2e15 --- /dev/null +++ b/bundles/admin/src/main/resources/static/css/redmond/jquery-ui-1.7.1.custom.css @@ -0,0 +1,404 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + +/* +* jQuery UI CSS Framework +* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; outline: none; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; outline: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; outline: none; } +.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; outline: none; } +.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; outline: none; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; outline: none; text-decoration: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; } +.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; } +.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; } +.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; } +.ui-corner-right { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; } +.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; } +.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; } +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Dialog +----------------------------------*/ +.ui-dialog { position: relative; padding: .2em; width: 300px; } +.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { padding: .2em; zoom: 1; } +.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; } +.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/bundles/admin/src/main/resources/static/css/shell.css b/bundles/admin/src/main/resources/static/css/shell.css new file mode 100644 index 000000000..cf22837ad --- /dev/null +++ b/bundles/admin/src/main/resources/static/css/shell.css @@ -0,0 +1,43 @@ +/* + * $Id: webconsole.css 590812 2007-10-31 20:32:54Z apetrelli $ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +#shell { + clear: both; +} + +.wc-results { + overflow: auto; + margin: 0px; + padding: 5px; + font-family: courier; + color: white; + background-color: black; + height: 400px; +} +.wc-results pre { + display: inline; +} +.wc-command { + margin: 0px; + font-family: courier; + color: white; + background-color: black; + width: 100%; +} diff --git a/bundles/admin/src/main/resources/static/js/jquery-1.3.2.min.js b/bundles/admin/src/main/resources/static/js/jquery-1.3.2.min.js new file mode 100644 index 000000000..b1ae21d8b --- /dev/null +++ b/bundles/admin/src/main/resources/static/js/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/bundles/admin/src/main/resources/static/js/jquery-ui-1.7.1.custom.min.js b/bundles/admin/src/main/resources/static/js/jquery-ui-1.7.1.custom.min.js new file mode 100644 index 000000000..c50a6e173 --- /dev/null +++ b/bundles/admin/src/main/resources/static/js/jquery-ui-1.7.1.custom.min.js @@ -0,0 +1,20 @@ +/* + * jQuery UI 1.7.1 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.1",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* + * jQuery UI Tabs 1.7.1 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * ui.core.js + */ (function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.1",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"
",spinner:"Loading…",tabTemplate:'
  • #{label}
  • '}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i 0) { + history_pointer--; + $('#wc-command').val(commands_history[history_pointer]); + } + break; + case 40: // this is the arrow down + if (history_pointer < commands_history.length - 1 ) { + history_pointer++; + $('#wc-command').val(commands_history[history_pointer]); + } + break; + default: + break; + } + } + + var commands_history = new Array(); + var history_pointer; diff --git a/bundles/admin/src/main/resources/struts.xml b/bundles/admin/src/main/resources/struts.xml new file mode 100644 index 000000000..a6e545e5f --- /dev/null +++ b/bundles/admin/src/main/resources/struts.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + {1} + viewBundle.ftl + + + + viewBundles.ftl + + + + + commandResult.ftl + + + + shell.ftl + + +