diff --git a/.gitignore b/.gitignore index 2a13c9d4b9..177a3d0a8d 100644 --- a/.gitignore +++ b/.gitignore @@ -406,38 +406,6 @@ donkey/donkey-test # /generator/templates/ -# /manager/ -/manager/.settings -/manager/MANIFEST.MF -/manager/bin -/manager/build -/manager/classes -/manager/dist -/manager/logs -/manager/build.xml -/manager/manifest.mf -/manager/nbproject - -# /manager/lib/ -/manager/lib/donkey-model.jar -/manager/lib/mirth-client-core.jar -/manager/lib/mirth-crypto.jar -/manager/lib/not-yet-commons-ssl-0.3.11.jar - -# /manager/src/ - -# /manager/src/com/ - -# /manager/src/com/mirth/ - -# /manager/src/com/mirth/connect/ - -# /manager/src/com/mirth/connect/manager/ - -# /manager/src/com/mirth/connect/manager/components/ - -# /manager/src/com/mirth/connect/manager/images/ - # /server/ /server/mirthdb /server/logs @@ -682,40 +650,3 @@ donkey/donkey-test # /server/src/org/mozilla/javascript/ # /server/src/org/mozilla/javascript/xmlimpl/ - -# /webadmin/ -/webadmin/build -/webadmin/dist - -# /webadmin/WebContent/ - -# /webadmin/WebContent/WEB-INF/ - -# /webadmin/WebContent/WEB-INF/jsp/ - -# /webadmin/WebContent/WEB-INF/jsp/common/ - -# /webadmin/WebContent/WEB-INF/lib/ - -# /webadmin/WebContent/css/ - -# /webadmin/WebContent/images/ - -# /webadmin/WebContent/images/ludo-jquery-treetable/ - -# /webadmin/WebContent/js/ - -# /webadmin/src/ - -# /webadmin/src/com/ - -# /webadmin/src/com/mirth/ - -# /webadmin/src/com/mirth/connect/ - -# /webadmin/src/com/mirth/connect/webadmin/ - -# /webadmin/src/com/mirth/connect/webadmin/action/ - -# /webadmin/src/com/mirth/connect/webadmin/utils/ - diff --git a/manager/.classpath b/manager/.classpath deleted file mode 100644 index 3a43a72677..0000000000 --- a/manager/.classpath +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/manager/Mirth Connect Manager.launch b/manager/Mirth Connect Manager.launch deleted file mode 100644 index 6bbd6a8be1..0000000000 --- a/manager/Mirth Connect Manager.launch +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/manager/ant-build.xml b/manager/ant-build.xml deleted file mode 100644 index 0ae14f9ea2..0000000000 --- a/manager/ant-build.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - OIE Manager Build Help - ----------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/manager/build.properties b/manager/build.properties deleted file mode 100644 index c4cbf388fd..0000000000 --- a/manager/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -# top level directories -src=${basedir}/src -classes=${basedir}/classes -lib=${basedir}/lib -logs=${basedir}/logs -dist=${basedir}/dist -dist.source=${dist}/source - -# jars -manager.jar=mirth-manager-launcher.jar - -# This value is used as the modified time for the files inside of jar, zip, and war files -archive.entry.date=1999-01-01T00:00:00.000Z diff --git a/manager/lib/commons-beanutils-1.9.4.jar b/manager/lib/commons-beanutils-1.9.4.jar deleted file mode 100644 index b73543cbac..0000000000 Binary files a/manager/lib/commons-beanutils-1.9.4.jar and /dev/null differ diff --git a/manager/lib/commons-codec-1.16.0.jar b/manager/lib/commons-codec-1.16.0.jar deleted file mode 100644 index 854fc7eb34..0000000000 Binary files a/manager/lib/commons-codec-1.16.0.jar and /dev/null differ diff --git a/manager/lib/commons-collections4-4.4.jar b/manager/lib/commons-collections4-4.4.jar deleted file mode 100644 index da06c3e4ba..0000000000 Binary files a/manager/lib/commons-collections4-4.4.jar and /dev/null differ diff --git a/manager/lib/commons-configuration2-2.8.0.jar b/manager/lib/commons-configuration2-2.8.0.jar deleted file mode 100644 index bd3d8d83b2..0000000000 Binary files a/manager/lib/commons-configuration2-2.8.0.jar and /dev/null differ diff --git a/manager/lib/commons-io-2.13.0.jar b/manager/lib/commons-io-2.13.0.jar deleted file mode 100644 index eb316f4020..0000000000 Binary files a/manager/lib/commons-io-2.13.0.jar and /dev/null differ diff --git a/manager/lib/commons-lang3-3.20.0.jar b/manager/lib/commons-lang3-3.20.0.jar deleted file mode 100644 index 8682b86d3f..0000000000 Binary files a/manager/lib/commons-lang3-3.20.0.jar and /dev/null differ diff --git a/manager/lib/commons-logging-1.2.jar b/manager/lib/commons-logging-1.2.jar deleted file mode 100644 index 93a3b9f6db..0000000000 Binary files a/manager/lib/commons-logging-1.2.jar and /dev/null differ diff --git a/manager/lib/commons-text-1.15.0.jar b/manager/lib/commons-text-1.15.0.jar deleted file mode 100644 index 1ac427909f..0000000000 Binary files a/manager/lib/commons-text-1.15.0.jar and /dev/null differ diff --git a/manager/lib/guava-32.0.1-jre.jar b/manager/lib/guava-32.0.1-jre.jar deleted file mode 100644 index 5f3a1eee94..0000000000 Binary files a/manager/lib/guava-32.0.1-jre.jar and /dev/null differ diff --git a/manager/lib/hk2-api-2.4.0-b31.jar b/manager/lib/hk2-api-2.4.0-b31.jar deleted file mode 100644 index 6a70ef3c18..0000000000 Binary files a/manager/lib/hk2-api-2.4.0-b31.jar and /dev/null differ diff --git a/manager/lib/hk2-locator-2.4.0-b31.jar b/manager/lib/hk2-locator-2.4.0-b31.jar deleted file mode 100644 index 1f38d250d1..0000000000 Binary files a/manager/lib/hk2-locator-2.4.0-b31.jar and /dev/null differ diff --git a/manager/lib/hk2-utils-2.4.0-b31.jar b/manager/lib/hk2-utils-2.4.0-b31.jar deleted file mode 100644 index 211ce37b11..0000000000 Binary files a/manager/lib/hk2-utils-2.4.0-b31.jar and /dev/null differ diff --git a/manager/lib/httpclient-4.5.13.jar b/manager/lib/httpclient-4.5.13.jar deleted file mode 100644 index 218ee25f2b..0000000000 Binary files a/manager/lib/httpclient-4.5.13.jar and /dev/null differ diff --git a/manager/lib/httpcore-4.4.13.jar b/manager/lib/httpcore-4.4.13.jar deleted file mode 100644 index 163dc438cb..0000000000 Binary files a/manager/lib/httpcore-4.4.13.jar and /dev/null differ diff --git a/manager/lib/httpmime-4.5.13.jar b/manager/lib/httpmime-4.5.13.jar deleted file mode 100644 index cc52f44a3a..0000000000 Binary files a/manager/lib/httpmime-4.5.13.jar and /dev/null differ diff --git a/manager/lib/javassist-3.26.0-GA.jar b/manager/lib/javassist-3.26.0-GA.jar deleted file mode 100644 index cb87f4a6a3..0000000000 Binary files a/manager/lib/javassist-3.26.0-GA.jar and /dev/null differ diff --git a/manager/lib/javax.annotation-api-1.3.2.jar b/manager/lib/javax.annotation-api-1.3.2.jar deleted file mode 100644 index a8a470a71a..0000000000 Binary files a/manager/lib/javax.annotation-api-1.3.2.jar and /dev/null differ diff --git a/manager/lib/javax.inject-2.4.0-b31.jar b/manager/lib/javax.inject-2.4.0-b31.jar deleted file mode 100644 index 1f60d98a76..0000000000 Binary files a/manager/lib/javax.inject-2.4.0-b31.jar and /dev/null differ diff --git a/manager/lib/javax.ws.rs-api-2.0.1.jar b/manager/lib/javax.ws.rs-api-2.0.1.jar deleted file mode 100644 index 7eb68b4a0a..0000000000 Binary files a/manager/lib/javax.ws.rs-api-2.0.1.jar and /dev/null differ diff --git a/manager/lib/jersey-client-2.22.1.jar b/manager/lib/jersey-client-2.22.1.jar deleted file mode 100644 index 687843e168..0000000000 Binary files a/manager/lib/jersey-client-2.22.1.jar and /dev/null differ diff --git a/manager/lib/jersey-common-2.22.1.jar b/manager/lib/jersey-common-2.22.1.jar deleted file mode 100644 index 9ee53873df..0000000000 Binary files a/manager/lib/jersey-common-2.22.1.jar and /dev/null differ diff --git a/manager/lib/jersey-guava-2.22.1.jar b/manager/lib/jersey-guava-2.22.1.jar deleted file mode 100644 index 70f3a0761a..0000000000 Binary files a/manager/lib/jersey-guava-2.22.1.jar and /dev/null differ diff --git a/manager/lib/jersey-media-multipart-2.22.1.jar b/manager/lib/jersey-media-multipart-2.22.1.jar deleted file mode 100644 index 6e7bc572a2..0000000000 Binary files a/manager/lib/jersey-media-multipart-2.22.1.jar and /dev/null differ diff --git a/manager/lib/jersey-proxy-client-2.22.1.jar b/manager/lib/jersey-proxy-client-2.22.1.jar deleted file mode 100644 index c64e39ca7a..0000000000 Binary files a/manager/lib/jersey-proxy-client-2.22.1.jar and /dev/null differ diff --git a/manager/lib/log4j-1.2-api-2.17.2.jar b/manager/lib/log4j-1.2-api-2.17.2.jar deleted file mode 100644 index bff129dc72..0000000000 Binary files a/manager/lib/log4j-1.2-api-2.17.2.jar and /dev/null differ diff --git a/manager/lib/log4j-api-2.17.2.jar b/manager/lib/log4j-api-2.17.2.jar deleted file mode 100644 index a03f315165..0000000000 Binary files a/manager/lib/log4j-api-2.17.2.jar and /dev/null differ diff --git a/manager/lib/log4j-core-2.17.2.jar b/manager/lib/log4j-core-2.17.2.jar deleted file mode 100644 index fbc0641dc4..0000000000 Binary files a/manager/lib/log4j-core-2.17.2.jar and /dev/null differ diff --git a/manager/lib/looks-2.3.1.jar b/manager/lib/looks-2.3.1.jar deleted file mode 100644 index 596605f60c..0000000000 Binary files a/manager/lib/looks-2.3.1.jar and /dev/null differ diff --git a/manager/lib/miglayout-core-4.2.jar b/manager/lib/miglayout-core-4.2.jar deleted file mode 100644 index eff5670b4d..0000000000 Binary files a/manager/lib/miglayout-core-4.2.jar and /dev/null differ diff --git a/manager/lib/miglayout-swing-4.2.jar b/manager/lib/miglayout-swing-4.2.jar deleted file mode 100644 index 25307d8e67..0000000000 Binary files a/manager/lib/miglayout-swing-4.2.jar and /dev/null differ diff --git a/manager/lib/mimepull-1.9.7.jar b/manager/lib/mimepull-1.9.7.jar deleted file mode 100644 index 9fb1fd67b6..0000000000 Binary files a/manager/lib/mimepull-1.9.7.jar and /dev/null differ diff --git a/manager/lib/reflections-0.9.10.jar b/manager/lib/reflections-0.9.10.jar deleted file mode 100644 index c255641827..0000000000 Binary files a/manager/lib/reflections-0.9.10.jar and /dev/null differ diff --git a/manager/lib/rhino-1.7.13.jar b/manager/lib/rhino-1.7.13.jar deleted file mode 100644 index 6433ffc3e7..0000000000 Binary files a/manager/lib/rhino-1.7.13.jar and /dev/null differ diff --git a/manager/lib/swagger-annotations-2.0.10.jar b/manager/lib/swagger-annotations-2.0.10.jar deleted file mode 100644 index cd67b28a2f..0000000000 Binary files a/manager/lib/swagger-annotations-2.0.10.jar and /dev/null differ diff --git a/manager/lib/swingx-core-1.6.2.jar b/manager/lib/swingx-core-1.6.2.jar deleted file mode 100644 index 6ec269948b..0000000000 Binary files a/manager/lib/swingx-core-1.6.2.jar and /dev/null differ diff --git a/manager/lib/xpp3-1.1.4c.jar b/manager/lib/xpp3-1.1.4c.jar deleted file mode 100644 index 451ac82af4..0000000000 Binary files a/manager/lib/xpp3-1.1.4c.jar and /dev/null differ diff --git a/manager/lib/xstream-1.4.20.jar b/manager/lib/xstream-1.4.20.jar deleted file mode 100644 index a8f7cd8028..0000000000 Binary files a/manager/lib/xstream-1.4.20.jar and /dev/null differ diff --git a/manager/src/com/mirth/connect/manager/BareBonesBrowserLaunch.java b/manager/src/com/mirth/connect/manager/BareBonesBrowserLaunch.java deleted file mode 100644 index c983ecdd35..0000000000 --- a/manager/src/com/mirth/connect/manager/BareBonesBrowserLaunch.java +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2025 Tony Germano -// SPDX-Contributor: Original Author Dem Pilafian (Original work licensed under WTFPL) - -package com.mirth.connect.manager; - -import java.util.Arrays; - -/** - * Utility class to open a web page from a Swing application - * in the user's default browser. - *

- * Supports: Mac OS X, Linux, Unix, Windows - *

- * Example usage:
- *    - * String url = "https://dna-engine.org/";
   - * BareBonesBrowserLaunch.openURL(url);
- *

- * Latest Version: - * https://centerkey.com/java/browser - *

- * Published: October 24, 2010 - * Modified: 2025 - *

- * - * @author Dem Pilafian - * @version 3.2 - */ -public class BareBonesBrowserLaunch { - - static final String[] browsers = { "xdg-open", "x-www-browser", "google-chrome", - "firefox", "opera", "epiphany", "konqueror", "conkeror", "midori", - "kazehakase", "mozilla" }; - - /** - * Open the specified web page in the user's default browser - * - * @param url A web address (URL) of a web page (example: - * "https://dna-engine.org/") - */ - public static void openURL(String url) { - try { // attempt to use Desktop library from JDK 1.6+ - Class d = Class.forName("java.awt.Desktop"); - d.getDeclaredMethod("browse", - new Class[] { java.net.URI.class }).invoke( - d.getDeclaredMethod("getDesktop").invoke(null), - new Object[] { java.net.URI.create(url) }); - } catch (Exception ignore) { // library not available or failed - String osName = System.getProperty("os.name"); - try { - if (osName.startsWith("Mac OS")) { - Class.forName("com.apple.eio.FileManager").getDeclaredMethod( - "openURL", new Class[] { String.class }).invoke(null, - new Object[] { url }); - } else if (osName.startsWith("Windows")) - Runtime.getRuntime().exec(new String[] { - "rundll32", "url.dll,FileProtocolHandler", url }); - else { // assume Unix or Linux - String browser = null; - for (String b : browsers) - if (browser == null - && Runtime.getRuntime().exec(new String[] { "which", b }).getInputStream().read() != -1) - Runtime.getRuntime().exec(new String[] { browser = b, url }); - if (browser == null) - throw new Exception(Arrays.toString(browsers)); - } - } catch (Exception e) { - ManagerController.getInstance().alertErrorDialog("Could not open web browser."); - } - } - } -} diff --git a/manager/src/com/mirth/connect/manager/BrandingConstants.java b/manager/src/com/mirth/connect/manager/BrandingConstants.java deleted file mode 100644 index 4ea97f0983..0000000000 --- a/manager/src/com/mirth/connect/manager/BrandingConstants.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.mirth.connect.manager; - -public class BrandingConstants { - - public static final String PRODUCT_NAME = "Open Integration Engine"; - public static final String COMPANY_NAME = "Open Integration Engine"; - - public static final String CONTACT_URL = "https://openintegrationengine.org/contact/"; -} diff --git a/manager/src/com/mirth/connect/manager/CmdUtil.java b/manager/src/com/mirth/connect/manager/CmdUtil.java deleted file mode 100644 index 10dada8b2d..0000000000 --- a/manager/src/com/mirth/connect/manager/CmdUtil.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.PrintStream; - -public class CmdUtil { - - public static int execCmd(String[] cmdLine, boolean waitFor) throws Exception { - String[] cmd = concat(ServiceControllerFactory.getServiceController().getCommand().split(" "), cmdLine); - Process process = Runtime.getRuntime().exec(cmd); - - if (!waitFor) { - return 0; - } - StreamPumper outPumper = new StreamPumper(process.getInputStream(), System.out); - StreamPumper errPumper = new StreamPumper(process.getErrorStream(), System.err); - - outPumper.start(); - errPumper.start(); - process.waitFor(); - outPumper.join(); - errPumper.join(); - - return process.exitValue(); - } - - public static int execCmd(String cmdLine, boolean waitFor) throws Exception { - return execCmd(cmdLine.split(" "), waitFor); - } - - public static String execCmdWithOutput(String[] cmdLine) throws Exception { - String[] cmd = concat(ServiceControllerFactory.getServiceController().getCommand().split(" "), cmdLine); - Process process = Runtime.getRuntime().exec(cmd); - - StreamPumper outPumper = new StreamPumper(process.getInputStream(), System.out); - StreamPumper errPumper = new StreamPumper(process.getErrorStream(), System.err); - - outPumper.start(); - errPumper.start(); - process.waitFor(); - outPumper.join(); - errPumper.join(); - - return outPumper.getOutput(); - } - - public static String execCmdWithOutput(String cmdLine) throws Exception { - return execCmdWithOutput(cmdLine.split(" ")); - } - - public static String execCmdWithErrorOutput(String[] cmdLine) throws Exception { - String[] cmd = concat(ServiceControllerFactory.getServiceController().getCommand().split(" "), cmdLine); - Process process = Runtime.getRuntime().exec(cmd); - - StreamPumper outPumper = new StreamPumper(process.getInputStream(), System.out); - StreamPumper errPumper = new StreamPumper(process.getErrorStream(), System.err); - - outPumper.start(); - errPumper.start(); - process.waitFor(); - outPumper.join(); - errPumper.join(); - - return errPumper.getOutput(); - } - - public static String execCmdWithErrorOutput(String cmdLine) throws Exception { - return execCmdWithErrorOutput(cmdLine.split(" ")); - } - - private static String[] concat(String[] a, String[] b) { - String[] c = new String[a.length + b.length]; - - int i = 0; - - for (int j = 0; j < a.length; j++) { - c[i] = a[j]; - i++; - } - - for (int j = 0; j < b.length; j++) { - c[i] = b[j]; - i++; - } - - return c; - } - - private static class StreamPumper extends Thread { - - private InputStream is; - private PrintStream os; - private StringBuffer output; - - public StreamPumper(InputStream is, PrintStream os) { - this.is = is; - this.os = os; - - output = new StringBuffer(); - } - - public void run() { - try { - BufferedReader br = new BufferedReader(new InputStreamReader(is)); - String line; - - while ((line = br.readLine()) != null) { - output.append(line + "\n"); - os.println(line); - } - - } catch (Exception e) { - e.printStackTrace(); - } - } - - public String getOutput() { - return output.toString(); - } - } -} diff --git a/manager/src/com/mirth/connect/manager/DisplayUtil.java b/manager/src/com/mirth/connect/manager/DisplayUtil.java deleted file mode 100644 index 94843d983e..0000000000 --- a/manager/src/com/mirth/connect/manager/DisplayUtil.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.Dialog; -import java.awt.Frame; - -import org.apache.commons.lang3.math.NumberUtils; - -public class DisplayUtil { - - /** - * Sets a dialog's resizable property. When JDK 11 or greater is used, the property is forced to - * be true due to https://bugs.openjdk.java.net/browse/JDK-8208743 - */ - public static void setResizable(Dialog dialog, boolean resizable) { - if (isJDK11OrGreater()) { - resizable = true; - } - dialog.setResizable(resizable); - } - - /** - * Sets a frame's resizable property. When JDK 11 or greater is used, the property is forced to - * be true due to https://bugs.openjdk.java.net/browse/JDK-8208743 - */ - public static void setResizable(Frame frame, boolean resizable) { - if (isJDK11OrGreater()) { - resizable = true; - } - frame.setResizable(resizable); - } - - public static boolean isJDK11OrGreater() { - String version = System.getProperty("java.version"); - - int index = version.indexOf('-'); - if (index > 0) { - version = version.substring(0, index); - } - - index = version.indexOf('.'); - if (index > 0) { - version = version.substring(0, index); - } - - return NumberUtils.toDouble(version) >= 11; - } -} diff --git a/manager/src/com/mirth/connect/manager/HeapSizeDialog.java b/manager/src/com/mirth/connect/manager/HeapSizeDialog.java deleted file mode 100644 index 1d0d33eddb..0000000000 --- a/manager/src/com/mirth/connect/manager/HeapSizeDialog.java +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.Color; -import java.awt.Font; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyEvent; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JSeparator; -import javax.swing.KeyStroke; -import javax.swing.border.TitledBorder; - -import net.miginfocom.swing.MigLayout; - -import org.apache.commons.lang3.StringUtils; - -public class HeapSizeDialog extends JDialog { - private String heapSize; - private ManagerController managerController; - - public HeapSizeDialog(String heapSize) { - super(PlatformUI.MANAGER_DIALOG, true); - - managerController = ManagerController.getInstance(); - getRootPane().registerKeyboardAction(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispose(); - } - }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); - - DisplayUtil.setResizable(this, false); - setBackground(Color.white); - setTitle("Web Start Settings"); - getContentPane().setBackground(Color.white); - - initComponents(); - - this.heapSize = StringUtils.isEmpty(heapSize) ? "512m" : heapSize; - - String heapSizeOption = HeapSize.toDisplayName(heapSize); - if (StringUtils.isBlank(heapSizeOption)) { - heapSizeOption = this.heapSize; - } - - // Add any non-default properties to the model - String property = (String) managerController.getServerProperties().getProperty(ManagerConstants.ADMINISTRATOR_MAX_HEAP_SIZE); - if (!heapSizeComboboxModel.contains(property) && !heapSizeComboboxModel.contains(HeapSize.toDisplayName(property))) { - heapSizeComboboxModel.add(formatCustomProperty(property)); - } - - // Resort list by sizes - List mbList = new ArrayList(); - List gbList = new ArrayList(); - for (String size : heapSizeComboboxModel) { - if (size.contains("M")) { - mbList.add(size); - } else { - gbList.add(size); - } - } - - Collections.sort(mbList); - Collections.sort(gbList); - mbList.addAll(gbList); - - heapSizeComboBox = new JComboBox(mbList.toArray()); - heapSizeComboBox.getModel().setSelectedItem(formatCustomProperty(heapSizeOption)); - - initLayout(); - pack(); - setLocationRelativeTo(PlatformUI.MANAGER_DIALOG); - setVisible(true); - } - - public String getHeapSize() { - String heapSize = HeapSize.fromDisplayName((String) heapSizeComboBox.getSelectedItem()); - if (StringUtils.isBlank(heapSize)) { - heapSize = (String) heapSizeComboBox.getSelectedItem(); - - String[] formattedHeapSize = heapSize.split(" "); - heapSize = formattedHeapSize[0] + formattedHeapSize[1].toLowerCase().substring(0, 1); - } - - return heapSize; - } - - private void initComponents() { - heapSizeComboboxModel = new ArrayList(); - Object customComboboxProperties = managerController.getServerProperties().getProperty(ManagerConstants.ADMINISTRATOR_MAX_HEAP_SIZE_OPTIONS); - if (customComboboxProperties instanceof String) { - heapSizeComboboxModel.add(formatCustomProperty((String) customComboboxProperties)); - } else if (customComboboxProperties instanceof List) { - for (String property : (ArrayList) customComboboxProperties) { - heapSizeComboboxModel.add(formatCustomProperty((String) property)); - } - } - - if (heapSizeComboboxModel.isEmpty()) { - heapSizeComboboxModel.add(HeapSize._256MB.getDisplayName()); - heapSizeComboboxModel.add(HeapSize._512MB.getDisplayName()); - heapSizeComboboxModel.add(HeapSize._1GB.getDisplayName()); - heapSizeComboboxModel.add(HeapSize._2GB.getDisplayName()); - } - - warningLabel = new JLabel("Note: The Administrator may fail to start
if the max heap size is set too high."); - - okButton = new JButton("OK"); - okButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispose(); - } - }); - - cancelButton = new JButton("Cancel"); - cancelButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispose(); - } - }); - } - - private void initLayout() { - setLayout(new MigLayout("insets 8, novisualpadding, hidemode 3, fill")); - JPanel panel = new JPanel(new MigLayout("insets 4, novisualpadding, hidemode 3, fill")); - panel.setBackground(Color.white); - panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, new Color(204, 204, 204)), "Web Start Settings", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Tahoma", 1, 11))); - - panel.add(new JLabel("Max Heap Size:"), "split"); - panel.add(heapSizeComboBox, "w 75!, left, wrap"); - - panel.add(warningLabel, "split"); - - add(panel); - add(new JSeparator(), "newline, growx, sx"); - add(okButton, "newline, h 22!, w 56!, sx, right, split"); - add(cancelButton, "h 22!, w 56!"); - } - - private String formatCustomProperty(String property) { // This should probably try/catch - String[] prop = property.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)"); - String units = String.valueOf(prop[1]); - if (StringUtils.isNotBlank(units)) { - units = units.toLowerCase().contains("m") ? "MB" : "GB"; - } - - return String.valueOf(prop[0]) + " " + units; - } - - private enum HeapSize { - _256MB("256 MB", "256m"), _512MB("512 MB", "512m"), _1GB("1 GB", "1g"), _2GB("2 GB", "2g"); - - private String displayName; - private String value; - - private HeapSize(String displayName, String value) { - this.displayName = displayName; - this.value = value; - } - - public String getDisplayName() { - return displayName; - } - - public String getValue() { - return value; - } - - public static String fromDisplayName(String displayName) { - for (HeapSize type : HeapSize.values()) { - if (type.getDisplayName().equals(displayName)) { - return type.value; - } - } - - return null; - } - - public static String toDisplayName(String value) { - for (HeapSize type : HeapSize.values()) { - if (type.getValue().equals(value)) { - return type.displayName; - } - } - - return null; - } - } - - private List heapSizeComboboxModel; - private JComboBox heapSizeComboBox; - - private JLabel warningLabel; - private JButton okButton; - private JButton cancelButton; -} diff --git a/manager/src/com/mirth/connect/manager/LinuxServiceController.java b/manager/src/com/mirth/connect/manager/LinuxServiceController.java deleted file mode 100644 index 946da44208..0000000000 --- a/manager/src/com/mirth/connect/manager/LinuxServiceController.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -public class LinuxServiceController implements ServiceController { - - private final String LINUX_SERVICE_NAME = "mcservice"; - private final String LINUX_SERVICE_CMD = "/etc/init.d/"; - private final String LINUX_SERVICE_START = "start"; - private final String LINUX_SERVICE_STOP = "stop"; - private final String LINUX_SERVICE_STATUS = "status"; - - @Override - public int checkService() { - try { - String[] input = new String[] { - LINUX_SERVICE_CMD + LINUX_SERVICE_NAME + " " + LINUX_SERVICE_STATUS }; - String output = CmdUtil.execCmdWithOutput(input); - System.out.println(output); - if (output.indexOf("running") != -1) { - return 1; - } else if (output.indexOf("stopped") != -1) { - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return -1; - } - - @Override - public boolean startService() { - try { - if (CmdUtil.execCmd(new String[] { - LINUX_SERVICE_CMD + LINUX_SERVICE_NAME + " " + LINUX_SERVICE_START }, true) == 0) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - - @Override - public boolean stopService() { - try { - if (CmdUtil.execCmd(new String[] { - LINUX_SERVICE_CMD + LINUX_SERVICE_NAME + " " + LINUX_SERVICE_STOP }, true) == 0) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - - @Override - public boolean isStartup() { - return false; - } - - @Override - public boolean isStartupPossible() { - return false; - } - - @Override - public void setStartup(boolean enabled) { - // Not available - } - - @Override - public String getCommand() { - return "sh -c"; - } - - @Override - public boolean isShowTrayIcon() { - return true; - } - - @Override - public boolean isShowServiceTab() { - return true; - } - - @Override - public void migrate() {} - -} diff --git a/manager/src/com/mirth/connect/manager/MacServiceController.java b/manager/src/com/mirth/connect/manager/MacServiceController.java deleted file mode 100644 index ad5764b399..0000000000 --- a/manager/src/com/mirth/connect/manager/MacServiceController.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -public class MacServiceController implements ServiceController { - - private final String MAC_SERVICE_NAME = "Mirth\\ Connect\\ Service"; - private final String MAC_SERVICE_CMD = "/Library/StartupItems/Mirth\\ Connect\\ Service/"; - private final String MAC_SERVICE_START = "start"; - private final String MAC_SERVICE_STOP = "stop"; - private final String MAC_SERVICE_STATUS = "status"; - - @Override - public int checkService() { - try { - String[] input = new String[] { - MAC_SERVICE_CMD + MAC_SERVICE_NAME + " " + MAC_SERVICE_STATUS }; - String output = CmdUtil.execCmdWithOutput(input); - System.out.println(output); - if (output.indexOf("running") != -1) { - return 1; - } else if (output.indexOf("stopped") != -1) { - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return -1; - } - - @Override - public boolean startService() { - try { - if (CmdUtil.execCmd(new String[] { - MAC_SERVICE_CMD + MAC_SERVICE_NAME + " " + MAC_SERVICE_START }, true) == 0) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - - @Override - public boolean stopService() { - try { - if (CmdUtil.execCmd(new String[] { - MAC_SERVICE_CMD + MAC_SERVICE_NAME + " " + MAC_SERVICE_STOP }, true) == 0) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - - @Override - public boolean isStartup() { - return false; - } - - @Override - public boolean isStartupPossible() { - return false; - } - - @Override - public void setStartup(boolean enabled) { - // Not available - } - - @Override - public String getCommand() { - return "sh -c"; - } - - @Override - public boolean isShowTrayIcon() { - return false; - } - - @Override - public boolean isShowServiceTab() { - return false; - } - - @Override - public void migrate() {} - -} diff --git a/manager/src/com/mirth/connect/manager/Manager.java b/manager/src/com/mirth/connect/manager/Manager.java deleted file mode 100644 index d1e45f0100..0000000000 --- a/manager/src/com/mirth/connect/manager/Manager.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import javax.swing.UIManager; - -public class Manager { - - private ManagerDialog dialog; - private ManagerTray tray; - private static Thread shutdownHook; - - public static void main(String[] args) { - - if (args.length > 0) { - PlatformUI.MIRTH_PATH = args[0]; - } else { - PlatformUI.MIRTH_PATH = ""; - } - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - UIManager.put("win.xpstyle.name", "metallic"); - } catch (Exception e) { - e.printStackTrace(); - } - - Manager manager = new Manager(); - - manager.setupDialog(); - manager.setupTray(); - - try { - ServiceControllerFactory.getServiceController().migrate(); - } catch (Exception e) { - e.printStackTrace(); - } - - ManagerController.getInstance().updateMirthServiceStatus(); - } - - public Manager() { - shutdownHook = new ShutdownHook(); - Runtime.getRuntime().addShutdownHook(shutdownHook); - } - - private class ShutdownHook extends Thread { - - public void run() { - shutdown(); - } - } - - /** - * Shuts down the manager. - * - */ - public static void shutdown() { - Runtime.getRuntime().removeShutdownHook(shutdownHook); - System.exit(0); - } - - private void setupDialog() { - dialog = new ManagerDialog(); - PlatformUI.MANAGER_DIALOG = dialog; - dialog.setupDialog(); - } - - private void setupTray() { - tray = new ManagerTray(); - PlatformUI.MANAGER_TRAY = tray; - tray.setupTray(); - - } -} diff --git a/manager/src/com/mirth/connect/manager/ManagerConstants.java b/manager/src/com/mirth/connect/manager/ManagerConstants.java deleted file mode 100644 index e9a6ad6622..0000000000 --- a/manager/src/com/mirth/connect/manager/ManagerConstants.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -public class ManagerConstants { - - // Server ports - public static final String SERVER_HTTP_PORT = "http.port"; - public static final String SERVER_HTTPS_PORT = "https.port"; - - // Configurable directories - public static final String DIR_APPDATA = "dir.appdata"; - public static final String DIR_LOGS = "dir.logs"; - - // Log4j - public static final String LOG4J_MIRTH_LOG_LEVEL = "rootLogger"; - public static final String LOG4J_DATABASE_LOG_LEVEL = "logger.sql.level"; - public static final String[] LOG4J_CHANNEL_LOG_LEVELS = new String[] { - "logger.transformer.level", "logger.preprocessor.level", "logger.postprocessor.level", - "logger.deploy.level", "logger.undeploy.level", "logger.filter.level", - "logger.db-connector.level", "logger.js-connector.level", "logger.attachment.level", - "logger.batch.level", "logger.response.level" }; - public static final String[] LOG4J_ERROR_CODES = new String[] { "ERROR", "WARN", "INFO", - "DEBUG", "TRACE" }; - public static final String[] LOG4J_ERROR_CODES_WITH_BLANK = new String[] { "", "ERROR", "WARN", - "INFO", "DEBUG", "TRACE" }; - - // Database - public static final String DATABASE_TYPE = "database"; - public static final String DATABASE_DRIVER = "database.driver"; - public static final String DATABASE_URL = "database.url"; - public static final String DATABASE_USERNAME = "database.username"; - public static final String DATABASE_PASSWORD = "database.password"; - - // Other Properties - public static final String PROPERTY_HTTP_CONTEXT_PATH = "http.contextpath"; - public static final String PROPERTY_SERVER_ID = "server.id"; - public static final String PROPERTY_SERVER_VERSION = "mirth.version"; - - // File paths - public static final String PATH_SERVER_PROPERTIES = "conf" + System.getProperty("file.separator") + "mirth.properties"; - public static final String PATH_LOG4J_PROPERTIES = "conf" + System.getProperty("file.separator") + "log4j2.properties"; - public static final String PATH_VERSION_FILE = "version.properties"; - public static final String PATH_SERVER_ID_FILE = "server.id"; - public static final String PATH_SERVICE_VMOPTIONS = "mcservice.vmoptions"; - - // Webstart commands - public static final String CMD_WEBSTART_PREFIX1 = "javaws "; - public static final String CMD_WEBSTART_PREFIX2 = "://localhost:"; - public static final String CMD_WEBSTART_SUFFIX = "/webstart.jnlp"; - public static final String CMD_TEST_JETTY_PREFIX = "https://localhost:"; - - //Administrator - public static final String ADMINISTRATOR_MAX_HEAP_SIZE = "administrator.maxheapsize"; - public static final String ADMINISTRATOR_MAX_HEAP_SIZE_OPTIONS = "administrator.maxheapsizeoptions"; -} diff --git a/manager/src/com/mirth/connect/manager/ManagerController.java b/manager/src/com/mirth/connect/manager/ManagerController.java deleted file mode 100644 index de6c57db19..0000000000 --- a/manager/src/com/mirth/connect/manager/ManagerController.java +++ /dev/null @@ -1,637 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.Component; -import java.awt.Cursor; -import java.awt.Desktop; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.net.ServerSocket; -import java.net.URI; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.swing.JOptionPane; -import javax.swing.SwingWorker; - -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder; -import org.apache.commons.configuration2.ex.ConfigurationException; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; - -import com.mirth.connect.client.core.Client; -import com.mirth.connect.client.core.ClientException; -import com.mirth.connect.client.core.PropertiesConfigurationUtil; -import com.mirth.connect.donkey.util.ResourceUtil; - -public class ManagerController { - - private static ManagerController managerController = null; - private static ServiceController serviceController = null; - - private ReloadingFileBasedConfigurationBuilder serverPropertiesBuilder; - private ReloadingFileBasedConfigurationBuilder log4jPropertiesBuilder; - - private PropertiesConfiguration serverProperties; - private PropertiesConfiguration log4jProperties; - private PropertiesConfiguration versionProperties; - private PropertiesConfiguration serverIdProperties; - - private boolean updating = false; - - public static ManagerController getInstance() { - if (managerController == null) { - managerController = new ManagerController(); - managerController.initialize(); - - try { - serviceController = ServiceControllerFactory.getServiceController(); - } catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } - - return managerController; - } - - public void initialize() { - serverPropertiesBuilder = initializeProperties(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_SERVER_PROPERTIES, true); - try { - serverProperties = serverPropertiesBuilder.getConfiguration(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - - log4jPropertiesBuilder = initializeProperties(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_LOG4J_PROPERTIES, true, true); - try { - log4jProperties = log4jPropertiesBuilder.getConfiguration(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - - try { - serverIdProperties = initializeProperties(PlatformUI.MIRTH_PATH + getServerProperties().getString(ManagerConstants.DIR_APPDATA) + System.getProperty("file.separator") + ManagerConstants.PATH_SERVER_ID_FILE, false).getConfiguration(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - - InputStream is = getClass().getResourceAsStream(ManagerConstants.PATH_VERSION_FILE); - if (is != null) { - try { - versionProperties = PropertiesConfigurationUtil.create(is); - } catch (ConfigurationException e) { - alertErrorDialog("Could not load resource: " + ManagerConstants.PATH_VERSION_FILE); - } finally { - ResourceUtil.closeResourceQuietly(is); - } - } else { - try { - versionProperties = initializeProperties(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_VERSION_FILE, true).getConfiguration(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - } - } - - private ReloadingFileBasedConfigurationBuilder initializeProperties(String path, boolean alert) { - return initializeProperties(path, alert, false); - } - - private ReloadingFileBasedConfigurationBuilder initializeProperties(String path, boolean alert, boolean commaDelimited) { - // Auto reload changes - ReloadingFileBasedConfigurationBuilder builder = PropertiesConfigurationUtil.createReloadingBuilder(new File(path), commaDelimited); - - PropertiesConfiguration properties = null; - try { - properties = builder.getConfiguration(); - PropertiesConfigurationUtil.createReloadTrigger(builder).start(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - - if ((properties == null || properties.isEmpty()) && alert) { - alertErrorDialog("Could not load properties from file: " + path); - } - - return builder; - } - - /** - * Test a port to see if it is already in use. - * - * @param port - * The port to test. - * @param name - * A friendly name to display in case of an error. - * @return An error message, or null if the port is not in use and there was no error. - */ - private String testPort(String port, String name) { - ServerSocket socket = null; - try { - socket = new ServerSocket(Integer.parseInt(port)); - } catch (NumberFormatException ex) { - return name + " port is invalid: " + port; - } catch (IOException ex) { - return name + " port is already in use: " + port; - } finally { - if (socket != null) { - try { - socket.close(); - } catch (IOException e) { - return "Could not close test socket for " + name + ": " + port; - } - } - } - return null; - } - - public void startMirthWorker() { - PlatformUI.MANAGER_DIALOG.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - ManagerController.getInstance().setEnabledOptions(false, false, false, false); - - SwingWorker worker = new SwingWorker() { - private String errorMessage = null; - - public Void doInBackground() { - errorMessage = startMirth(); - return null; - } - - public void done() { - if (errorMessage == null) { - PlatformUI.MANAGER_TRAY.alertInfo(String.format("The %s Service was started successfully.", BrandingConstants.PRODUCT_NAME)); - } else { - PlatformUI.MANAGER_TRAY.alertError(errorMessage); - } - - updateMirthServiceStatus(); - PlatformUI.MANAGER_DIALOG.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } - }; - - worker.execute(); - } - - private String startMirth() { - String httpPortResult = null; - if (isUsingHttp()) { - String httpPort = getServerProperties().getString(ManagerConstants.SERVER_HTTP_PORT); - httpPortResult = testPort(httpPort, "WebStart"); - } - - String httpsPort = getServerProperties().getString(ManagerConstants.SERVER_HTTPS_PORT); - String httpsPortResult = testPort(httpsPort, "Administrator"); - - if (httpPortResult != null || httpsPortResult != null) { - String errorMessage = ""; - if (httpPortResult != null) { - errorMessage += httpPortResult + "\n"; - } - if (httpsPortResult != null) { - errorMessage += httpsPortResult + "\n"; - } - errorMessage.substring(0, errorMessage.length() - 1); - return errorMessage; - } - - String errorMessage = null; - Client client = null; - - try { - updating = true; - - if (!serviceController.startService()) { - errorMessage = String.format("The %s Service could not be started. Please verify that it is installed and not already started.", BrandingConstants.PRODUCT_NAME); - } else { - String contextPath = getContextPath(); - - client = new Client(ManagerConstants.CMD_TEST_JETTY_PREFIX + getServerProperties().getString("https.port") + contextPath); - - int retriesLeft = 30; - long waitTime = 2000; - boolean started = false; - - while (!started && retriesLeft > 0) { - Thread.sleep(waitTime); - retriesLeft--; - - try { - // 0 - OK, 3 - Initial Deploy - int status = client.getStatus(); - if (status == 0 || status == 3) { - started = true; - } - } catch (ClientException e) { - } - } - - if (!started) { - errorMessage = String.format("The %s Service could not be started.", BrandingConstants.PRODUCT_NAME); - } - } - } catch (Throwable t) { // Need to catch Throwable in case Client fails - // internally - t.printStackTrace(); - errorMessage = String.format("The %s Service could not be started.", BrandingConstants.PRODUCT_NAME); - } finally { - if (client != null) { - client.close(); - } - } - - updating = false; - return errorMessage; - } - - public void stopMirthWorker() { - PlatformUI.MANAGER_DIALOG.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - setEnabledOptions(false, false, false, false); - - SwingWorker worker = new SwingWorker() { - private String errorMessage = null; - - public Void doInBackground() { - errorMessage = stopMirth(); - return null; - } - - public void done() { - if (errorMessage == null) { - PlatformUI.MANAGER_TRAY.alertInfo(String.format("The %s Service was stopped successfully.", BrandingConstants.PRODUCT_NAME)); - } else { - PlatformUI.MANAGER_TRAY.alertError(errorMessage); - } - - updateMirthServiceStatus(); - PlatformUI.MANAGER_DIALOG.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } - }; - - worker.execute(); - } - - private String stopMirth() { - String errorMessage = null; - try { - updating = true; - if (!serviceController.stopService()) { - errorMessage = String.format("The %s Service could not be stopped. Please verify that it is installed and started.", BrandingConstants.PRODUCT_NAME); - } - } catch (Exception e) { - e.printStackTrace(); - errorMessage = String.format("The %s Service could not be stopped. Please verify that it is installed and started.", BrandingConstants.PRODUCT_NAME); - } - - updating = false; - return errorMessage; - } - - public void restartMirthWorker() { - PlatformUI.MANAGER_DIALOG.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - setEnabledOptions(false, false, false, false); - - SwingWorker worker = new SwingWorker() { - private String errorMessage = null; - - public Void doInBackground() { - errorMessage = restartMirth(); - return null; - } - - public void done() { - if (errorMessage == null) { - PlatformUI.MANAGER_TRAY.alertInfo(String.format("The %s Service was restarted successfully.", BrandingConstants.PRODUCT_NAME)); - } else { - PlatformUI.MANAGER_TRAY.alertError(errorMessage); - } - - updateMirthServiceStatus(); - PlatformUI.MANAGER_DIALOG.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } - }; - - worker.execute(); - } - - private String restartMirth() { - String errorMessage = null; - - // Attempt to stop Mirth - errorMessage = stopMirth(); - - if (errorMessage == null) { - // Attempt to start Mirth - errorMessage = startMirth(); - } - - // Return the error message, if there were any - return errorMessage; - } - - public void launchAdministrator(String maxHeapSize) { - boolean success = false; - boolean usingHttp = isUsingHttp(); - - String port = getServerProperties().getString(usingHttp ? ManagerConstants.SERVER_HTTP_PORT : ManagerConstants.SERVER_HTTPS_PORT); - String contextPath = getContextPath(); - - try { - maxHeapSize = StringUtils.isBlank(maxHeapSize) ? "512m" : maxHeapSize; - String scheme = usingHttp ? "http" : "https"; - String url = scheme + ManagerConstants.CMD_WEBSTART_PREFIX2 + port + contextPath + ManagerConstants.CMD_WEBSTART_SUFFIX + "?maxHeapSize=" + maxHeapSize + "&time=" + new Date().getTime(); - - // Try opening the URL with the default browser first - if (Desktop.isDesktopSupported()) { - try { - Desktop.getDesktop().browse(new URI(url)); - success = true; - } catch (Exception e) { - // Ignore - } - } - - // If that failed, and we're not on JDK 11+, try with Java Web Start - if (!success && !DisplayUtil.isJDK11OrGreater()) { - String cmd = ManagerConstants.CMD_WEBSTART_PREFIX1 + url; - - if (CmdUtil.execCmd(new String[] { cmd }, false) == 0) { - success = true; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - - if (!success) { - PlatformUI.MANAGER_TRAY.alertError(String.format("The %s Administator could not be launched.", BrandingConstants.PRODUCT_NAME)); - } - } - - public boolean isUsingHttp() { - return getServerProperties().containsKey(ManagerConstants.SERVER_HTTP_PORT) && getServerProperties().getInt(ManagerConstants.SERVER_HTTP_PORT) > 0; - } - - public ReloadingFileBasedConfigurationBuilder getServerPropertiesBuilder() { - return serverPropertiesBuilder; - } - - public PropertiesConfiguration getServerProperties() { - return serverProperties; - } - - public void reloadServerProperties() { - try { - serverProperties = serverPropertiesBuilder.getConfiguration(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - } - - public void saveServerProperties() throws ConfigurationException { - PropertiesConfigurationUtil.saveTo(serverProperties, new File(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_SERVER_PROPERTIES)); - } - - public ReloadingFileBasedConfigurationBuilder getLog4jPropertiesBuilder() { - return log4jPropertiesBuilder; - } - - public PropertiesConfiguration getLog4jProperties() { - return log4jProperties; - } - - public void reloadLog4jProperties() { - try { - log4jProperties = log4jPropertiesBuilder.getConfiguration(); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - } - - public void saveLog4jProperties() throws ConfigurationException { - PropertiesConfigurationUtil.saveTo(log4jProperties, new File(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_LOG4J_PROPERTIES)); - } - - public String getServerVersion() { - if (versionProperties != null) { - return versionProperties.getString(ManagerConstants.PROPERTY_SERVER_VERSION, ""); - } - return ""; - } - - public String getServerId() { - if (serverIdProperties != null) { - return serverIdProperties.getString(ManagerConstants.PROPERTY_SERVER_ID, ""); - } - return ""; - } - - public List getLogFiles(String path) { - ArrayList files = new ArrayList(); - File dir = new File(path); - - String[] children = dir.list(); - if (children == null) { - // Either dir does not exist or is not a directory - } else { - for (int i = 0; i < children.length; i++) { - // Get filename of file or directory - files.add(children[i]); - } - } - - return files; - } - - public void openLogFile(String path) { - File file = new File(path); - - try { - Desktop.getDesktop().open(file); - } catch (Exception e) { - boolean editorOpened = false; - - String[] apps = new String[] { "notepad", "kate", "gedit", "gvim", "open -t" }; - - for (int i = 0; (i < apps.length) && !editorOpened; i++) { - try { - String output = CmdUtil.execCmdWithErrorOutput(new String[] { - apps[i] + " \"" + path + "\"" }); - - if (output.length() == 0) { - editorOpened = true; - } - } catch (Exception ex) { - // ignore exceptions - } - - } - - if (!editorOpened) { - e.printStackTrace(); - alertErrorDialog("Could not open file: " + path + "\nPlease make sure a text editor is associated with the log's file extension."); - } - } - } - - public String getServiceXmx() { - String match = ""; - - File file = new File(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_SERVICE_VMOPTIONS); - String contents = ""; - try { - contents = FileUtils.readFileToString(file); - } catch (IOException e) { - // Ignore error if file does not exist - } - - Pattern pattern = Pattern.compile("-Xmx(.*?)m"); - Matcher matcher = pattern.matcher(contents); - - if (matcher.find()) { - match = matcher.group(1); - } - - return match; - } - - public void setServiceXmx(String xmx) { - File file = new File(PlatformUI.MIRTH_PATH + ManagerConstants.PATH_SERVICE_VMOPTIONS); - String contents = ""; - - try { - contents = FileUtils.readFileToString(file); - } catch (IOException e) { - // Ignore error if file does not exist - } - - Pattern pattern = Pattern.compile("-Xmx(.*?)m"); - Matcher matcher = pattern.matcher(contents); - - if (matcher.find()) { - contents = matcher.replaceFirst("-Xmx" + xmx + "m"); - } else if (xmx.length() != 0) { - contents += "-Xmx" + xmx + "m"; - } - - try { - FileUtils.writeStringToFile(file, contents); - } catch (IOException e) { - alertErrorDialog("Error writing file to: " + file.getPath()); - } - } - - public void updateMirthServiceStatus() { - int status = serviceController.checkService(); - if (updating) { - return; - } - switch (status) { - case 0: - setEnabledOptions(true, false, false, false); - break; - case 1: - setEnabledOptions(false, true, true, true); - break; - default: - setEnabledOptions(false, false, false, false); - break; - } - } - - public void setEnabledOptions(boolean start, boolean stop, boolean restart, boolean launch) { - PlatformUI.MANAGER_DIALOG.setStartButtonActive(start); - PlatformUI.MANAGER_DIALOG.setStopButtonActive(stop); - PlatformUI.MANAGER_DIALOG.setRestartButtonActive(restart); - PlatformUI.MANAGER_DIALOG.setLaunchButtonActive(launch); - PlatformUI.MANAGER_TRAY.setStartButtonActive(start); - PlatformUI.MANAGER_TRAY.setStopButtonActive(stop); - PlatformUI.MANAGER_TRAY.setRestartButtonActive(restart); - PlatformUI.MANAGER_TRAY.setLaunchButtonActive(launch); - - if (start) { - PlatformUI.MANAGER_TRAY.setTrayIcon(ManagerTray.STOPPED); - } else if (stop) { - PlatformUI.MANAGER_TRAY.setTrayIcon(ManagerTray.STARTED); - } else { - PlatformUI.MANAGER_TRAY.setTrayIcon(ManagerTray.BUSY); - } - } - - public void setApplyEnabled(boolean enabled) { - PlatformUI.MANAGER_DIALOG.setApplyEnabled(enabled); - } - - public void alertErrorDialog(String message) { - alertErrorDialog(null, message); - } - - /** - * Alerts the user with an error dialog with the passed in 'message' - */ - public void alertErrorDialog(Component parent, String message) { - JOptionPane.showMessageDialog(parent, message, "Error", JOptionPane.ERROR_MESSAGE); - } - - public void alertInformationDialog(String message) { - alertInformationDialog(null, message); - } - - /** - * Alerts the user with an information dialog with the passed in 'message' - */ - public void alertInformationDialog(Component parent, String message) { - JOptionPane.showMessageDialog(parent, message, "Information", JOptionPane.INFORMATION_MESSAGE); - } - - public boolean alertOptionDialog(String message) { - return alertOptionDialog(null, message); - } - - /** - * Alerts the user with a yes/no option with the passed in 'message' - */ - public boolean alertOptionDialog(Component parent, String message) { - int option = JOptionPane.showConfirmDialog(parent, message, "Select an Option", JOptionPane.YES_NO_OPTION); - if (option == JOptionPane.YES_OPTION) { - return true; - } else { - return false; - } - } - - /** - * Get the context path property from the server, adding a starting slash if one does not exist, - * and then removing a trailing slash if one exists. - * - * @return Either "" or "/contextPath" - */ - private String getContextPath() { - String contextPath = getServerProperties().getString(ManagerConstants.PROPERTY_HTTP_CONTEXT_PATH, ""); - - // Add a starting slash if one does not exist - if (!contextPath.startsWith("/")) { - contextPath = "/" + contextPath; - } - - // Remove a trailing slash if one exists - if (contextPath.endsWith("/")) { - contextPath = contextPath.substring(0, contextPath.length() - 1); - } - - return contextPath; - } -} diff --git a/manager/src/com/mirth/connect/manager/ManagerDialog.java b/manager/src/com/mirth/connect/manager/ManagerDialog.java deleted file mode 100644 index 122afd95e0..0000000000 --- a/manager/src/com/mirth/connect/manager/ManagerDialog.java +++ /dev/null @@ -1,719 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.Color; -import java.awt.Cursor; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.util.HashMap; -import java.util.Map; - -import javax.swing.BorderFactory; -import javax.swing.DefaultComboBoxModel; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JDialog; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JSeparator; -import javax.swing.JTabbedPane; -import javax.swing.UIManager; -import javax.swing.event.ListSelectionEvent; - -import net.miginfocom.swing.MigLayout; - -import org.apache.commons.configuration2.ex.ConfigurationException; -import org.apache.commons.lang3.ArrayUtils; -import org.jdesktop.swingx.plaf.LookAndFeelAddons; -import org.jdesktop.swingx.plaf.windows.WindowsLookAndFeelAddons; - -import com.jgoodies.looks.plastic.PlasticLookAndFeel; -import com.jgoodies.looks.plastic.PlasticXPLookAndFeel; -import com.mirth.connect.manager.components.MirthComboBox; -import com.mirth.connect.manager.components.MirthFieldConstraints; -import com.mirth.connect.manager.components.MirthPasswordField; -import com.mirth.connect.manager.components.MirthTextField; - -public class ManagerDialog extends JDialog { - - private ServiceController serviceController = null; - private ManagerController managerController = null; - private boolean loading = false; - private String lastSelectedDatabaseType; - private Map databaseUrls = new HashMap(); - - private String heapSize = "512m"; - private ImageIcon icon = new ImageIcon(this.getClass().getResource("images/wrench.png")); - - public ManagerDialog() { - try { - PlasticLookAndFeel.setPlasticTheme(new MirthTheme()); - PlasticXPLookAndFeel look = new PlasticXPLookAndFeel(); - UIManager.setLookAndFeel(look); - UIManager.put("win.xpstyle.name", "metallic"); - - LookAndFeelAddons.setAddon(WindowsLookAndFeelAddons.class); - - getContentPane().setBackground(Color.WHITE); - setTitle(String.format("%s Server Manager", BrandingConstants.PRODUCT_NAME)); - setIconImage(new ImageIcon(this.getClass().getResource("images/NG_MC-ServerManager_Icon_F_32x32.png")).getImage()); - - DisplayUtil.setResizable(this, false); - - serviceController = ServiceControllerFactory.getServiceController(); - managerController = ManagerController.getInstance(); - heapSize = (String) managerController.getServerProperties().getProperty(ManagerConstants.ADMINISTRATOR_MAX_HEAP_SIZE); - } catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } - - public void setupDialog() { - initComponents(); - initLayout(); - - heapSizeButton.setIcon(icon); - - databaseUrls.put("derby", "jdbc:derby:${dir.appdata}/mirthdb;create=true"); - databaseUrls.put("postgres", "jdbc:postgresql://localhost:5432/mirthdb"); - databaseUrls.put("mysql", "jdbc:mysql://localhost:3306/mirthdb"); - databaseUrls.put("oracle", "jdbc:oracle:thin:@localhost:1521:DB"); - databaseUrls.put("sqlserver", "jdbc:jtds:sqlserver://localhost:1433/mirthdb"); - - // Remove the service tab if it's not supported - if (!serviceController.isShowServiceTab()) { - tabPanel.removeTabAt(0); - } - - pack(); - setLocationRelativeTo(null); - setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - addWindowListener(new WindowAdapter() { - - public void windowClosing(WindowEvent e) { - close(); - } - }); - - serverMemoryField.setDocument(new MirthFieldConstraints(0, false, false, true)); - - loadProperties(); - } - - public void open() { - managerController.updateMirthServiceStatus(); - loadProperties(); - if (serviceController.isStartupPossible()) { - startup.setEnabled(true); - - if (serviceController.isStartup()) { - startup.setSelected(true); - } else { - startup.setSelected(false); - } - } else { - startup.setEnabled(false); - } - setVisible(true); - } - - public void close() { - setVisible(false); - - // if there is no tray icon, shutdown and exit the manager - if (!serviceController.isShowTrayIcon()) { - Manager.shutdown(); - } - } - - public void setApplyEnabled(boolean enabled) { - applyButton.setEnabled(enabled); - } - - public boolean isApplyEnabled() { - return applyButton.isEnabled(); - } - - private void initServicePanel() { - servicePanel = new JPanel(new MigLayout("insets 8, novisualpadding, hidemode 3", "24[][][]", "[]12[]12[]12[]12[]")); - servicePanel.setBackground(new Color(255, 255, 255)); - servicePanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - servicePanel.setFocusable(false); - - startButton = new JButton("Start"); - startButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - startButtonActionPerformed(evt); - } - }); - startLabel = new JLabel(String.format("Starts the %s service", BrandingConstants.PRODUCT_NAME)); - - restartButton = new JButton("Restart"); - restartButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - restartButtonActionPerformed(evt); - } - }); - restartLabel = new JLabel(String.format("Restarts the %s service", BrandingConstants.PRODUCT_NAME)); - - stopButton = new JButton("Stop"); - stopButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - stopButtonActionPerformed(evt); - } - }); - stopLabel = new JLabel(String.format("Stops the %s service", BrandingConstants.PRODUCT_NAME)); - - refreshButton = new JButton("Refresh"); - refreshButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - refreshButtonActionPerformed(evt); - } - }); - refreshLabel = new JLabel(String.format("Refreshes the %s service status", BrandingConstants.PRODUCT_NAME)); - - startup = new JCheckBox(String.format("Start %s Server Manager on system startup", BrandingConstants.PRODUCT_NAME)); - startup.setFocusable(false); - startup.setToolTipText("Starts this application when logging into the operating system. Currently only enabled for Windows."); - startup.setBackground(new Color(255, 255, 255)); - startup.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - startupActionPerformed(evt); - } - }); - } - - private void initServerPanel() { - serverPanel = new JPanel(new MigLayout("insets 8, novisualpadding, hidemode 3, fill", "[right][left][right][left]")); - serverPanel.setFocusable(false); - serverPanel.setBackground(new Color(255, 255, 255)); - serverPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - - httpPortLabel = new JLabel("HTTP Port:"); - httpPortField = new MirthTextField(); - - httpsPortLabel = new JLabel("HTTPS Port:"); - httpsPortField = new MirthTextField(); - - serverMemoryLabel = new JLabel("Server Memory (mb):"); - serverMemoryField = new MirthTextField(); - - serverLogFiles = new JList(); - serverLogFiles.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(ListSelectionEvent evt) { - serverLogFilesValueChanged(evt); - } - }); - - serverLogFiles.addMouseListener(new MouseAdapter() { - public void mousePressed(MouseEvent evt) {} - - public void mouseReleased(MouseEvent evt) {} - - public void mouseClicked(MouseEvent evt) { - if (evt.getClickCount() >= 2) { - if (serverLogFiles.getSelectedIndex() != -1) { - viewFileButtonActionPerformed(null); - } - } - } - }); - - serverLogsScrollPane = new JScrollPane(); - serverLogsScrollPane.setViewportView(serverLogFiles); - - mainLogLevelLabel = new JLabel("Main Log Level:"); - mainLogLevelCombobox = new MirthComboBox(); - mainLogLevelCombobox.setModel(new DefaultComboBoxModel(ManagerConstants.LOG4J_ERROR_CODES)); // This can be combined with the above as a new ctor - - databaseLogLevelLabel = new JLabel("Database Log Level:"); - databaseLogLevelCombobox = new MirthComboBox(); - databaseLogLevelCombobox.setModel(new DefaultComboBoxModel(ManagerConstants.LOG4J_ERROR_CODES)); - - channelLogLevelLabel = new JLabel("Channel Log Level:"); - channelLogLevelCombobox = new MirthComboBox(); - channelLogLevelCombobox.setModel(new DefaultComboBoxModel(ManagerConstants.LOG4J_ERROR_CODES_WITH_BLANK)); - - refreshServiceButton = new JButton("Refresh"); - refreshServiceButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - refreshServiceButtonActionPerformed(evt); - } - }); - - viewFileButton = new JButton("View File"); - viewFileButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - viewFileButtonActionPerformed(evt); - } - }); - } - - private void initDatabasePanel() { - databasePanel = new JPanel(new MigLayout("insets 8, novisualpadding, hidemode 3", "[right][left]")); - databasePanel.setFocusable(false); - databasePanel.setBackground(new Color(255, 255, 255)); - databasePanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - - databaseTypeLabel = new JLabel("Type:"); - databaseTypeCombobox = new MirthComboBox(); - databaseTypeCombobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "derby", - "postgres", "mysql", "oracle", "sqlserver" })); - databaseTypeCombobox.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - databaseTypeActionPerformed(evt); - } - }); - - databaseUrlLabel = new JLabel("URL:"); - databaseUrlField = new MirthTextField(); - - databaseUsernameLabel = new JLabel("Username:"); - databaseUsernameField = new MirthTextField(); - - passwordLabel = new JLabel("Password:"); - databasePasswordField = new MirthPasswordField(); - } - - private void initInfoPanel() { - infoPanel = new JPanel(new MigLayout("insets 8, novisualpadding, hidemode 3", "[right][left]")); - infoPanel.setBackground(new Color(255, 255, 255)); - infoPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - - serverVersionLabel = new JLabel("Server Version:"); - serverVersionField = new JLabel("version"); - - serverIdLabel = new JLabel("Server ID:"); - serverIdField = new JLabel("serverId"); - - javaVersionLabel = new JLabel("Java Version:"); - javaVersionField = new JLabel("javaVersion"); - - contactPrefixLabel = new JLabel("Need Help? Contact"); - mirthSupportLink = new JLabel(String.format("%s", BrandingConstants.COMPANY_NAME)); - mirthSupportLink.setToolTipText(String.format("Visit %s's website.", BrandingConstants.COMPANY_NAME)); - mirthSupportLink.setCursor(new Cursor(Cursor.HAND_CURSOR)); - mirthSupportLink.addMouseListener(new MouseAdapter() { - public void mouseClicked(MouseEvent evt) { - mirthSupportLinkMouseClicked(evt); - } - }); - - contactPostfixLabel = new JLabel("for professional support."); - } - - private void initComponents() { - initServicePanel(); - initServerPanel(); - initDatabasePanel(); - initInfoPanel(); - - tabPanel = new JTabbedPane(); - tabPanel.setBackground(new Color(255, 255, 255)); - tabPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); - tabPanel.setFocusable(false); - tabPanel.addTab("Service", servicePanel); - tabPanel.addTab("Server", serverPanel); - tabPanel.addTab("Database", databasePanel); - tabPanel.addTab("Info", infoPanel); - - launchButton = new JButton("Administrator"); - launchButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - launchButtonActionPerformed(evt); - } - }); - - heapSizeButton = new JButton(); - heapSizeButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - heapSizeButtonActionPerformed(evt); - } - }); - - applyButton = new JButton("Apply"); - applyButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - applyButtonActionPerformed(evt); - } - }); - - okButton = new JButton("OK"); - okButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - okButtonActionPerformed(evt); - } - }); - - cancelButton = new JButton("Cancel"); - cancelButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - cancelButtonActionPerformed(evt); - } - }); - } - - private void initLayout() { - setLayout(new MigLayout("insets 0 0 8 0, novisualpadding, hidemode 3")); - - add(new MirthHeadingPanel(), "wrap, grow"); - - servicePanel.add(startButton, "w 80!, h 22!, split"); - servicePanel.add(startLabel, "wrap"); - servicePanel.add(restartButton, "w 80!, h 22!, split"); - servicePanel.add(restartLabel, "wrap"); - servicePanel.add(stopButton, "w 80!, h 22!, split"); - servicePanel.add(stopLabel, "wrap"); - servicePanel.add(refreshServiceButton, "w 80!, h 22!, split"); - servicePanel.add(refreshLabel, "wrap"); - servicePanel.add(startup, "span, push"); - - serverPanel.add(httpPortLabel); - serverPanel.add(httpPortField, "w 55!, h 22!"); - serverPanel.add(mainLogLevelLabel); - serverPanel.add(mainLogLevelCombobox, "w 80!, wrap"); - - serverPanel.add(httpsPortLabel); - serverPanel.add(httpsPortField, "w 55!, h 22!"); - serverPanel.add(databaseLogLevelLabel); - serverPanel.add(databaseLogLevelCombobox, "w 80!, wrap"); - - serverPanel.add(serverMemoryLabel); - serverPanel.add(serverMemoryField, "w 55!, h 22!"); - serverPanel.add(channelLogLevelLabel); - serverPanel.add(channelLogLevelCombobox, "w 80!, wrap"); - - serverPanel.add(new JLabel("Log Files:")); - serverPanel.add(serverLogsScrollPane, "w 205!, h 70!, span 2 2"); - serverPanel.add(refreshButton, "w 80!, h 22!, cell 3 3"); - serverPanel.add(viewFileButton, "w 80!, h 22!, cell 3 4"); - - databasePanel.add(databaseTypeLabel); - databasePanel.add(databaseTypeCombobox, "wrap"); - databasePanel.add(databaseUrlLabel); - databasePanel.add(databaseUrlField, "wrap, w 350!"); - databasePanel.add(databaseUsernameLabel); - databasePanel.add(databaseUsernameField, "wrap, w 145!"); - databasePanel.add(passwordLabel); - databasePanel.add(databasePasswordField, "w 145!"); - - infoPanel.add(serverVersionLabel); - infoPanel.add(serverVersionField, "wrap"); - infoPanel.add(serverIdLabel); - infoPanel.add(serverIdField, "wrap"); - infoPanel.add(javaVersionLabel); - infoPanel.add(javaVersionField, "wrap"); - infoPanel.add(contactPrefixLabel, "split 3, span, gaptop 90"); - infoPanel.add(mirthSupportLink, "gaptop 90"); - infoPanel.add(contactPostfixLabel, "gaptop 90"); - - JPanel tabContainer = new JPanel(new MigLayout("insets 8 8 0 8, novisualpadding, hidemode 3")); - tabContainer.setBackground(Color.white); - tabContainer.add(tabPanel); - - add(tabContainer, "wrap"); - add(new JSeparator(), "newline, growx, sx, gapleft 8, gapright 8"); - add(launchButton, "split, gapleft 8"); - add(heapSizeButton, "w 22!, h 22!, left"); - add(okButton, "w 56!, gapleft 145"); - add(cancelButton, "w 56!"); - add(applyButton, "w 56!"); - } - - private void mirthSupportLinkMouseClicked(MouseEvent evt) { - BareBonesBrowserLaunch.openURL(BrandingConstants.CONTACT_URL); - } - - private void startupActionPerformed(ActionEvent evt) { - setApplyEnabled(true); - } - - private void refreshServiceButtonActionPerformed(ActionEvent evt) { - managerController.updateMirthServiceStatus(); - } - - private void okButtonActionPerformed(ActionEvent evt) { - if (saveProperties()) { - close(); - } - } - - private void cancelButtonActionPerformed(ActionEvent evt) { - close(); - } - - private void applyButtonActionPerformed(ActionEvent evt) { - if (startup.isSelected()) { - serviceController.setStartup(true); - } else { - serviceController.setStartup(false); - } - saveProperties(); - } - - private void serverLogFilesValueChanged(ListSelectionEvent evt) { - if (serverLogFiles.getSelectedIndex() != -1) { - viewFileButton.setEnabled(true); - } else { - viewFileButton.setEnabled(false); - } - } - - private void refreshButtonActionPerformed(ActionEvent evt) { - refreshLogs(); - } - - private void databaseTypeActionPerformed(ActionEvent evt) { - // If the properties are loading, don't do anything here. If the database - // value is changing, then set the default values. - if (loading) { - lastSelectedDatabaseType = (String) databaseTypeCombobox.getSelectedItem(); - } else if (!databaseTypeCombobox.getSelectedItem().equals(lastSelectedDatabaseType)) { - - // If the last selection was not using the default values, then prompt - // to see if the user wants to continue. - if (!databaseUrlField.getText().equals(databaseUrls.get(lastSelectedDatabaseType)) || !databaseUsernameField.getText().equals("") || !new String(databasePasswordField.getPassword()).equals("")) { - if (!managerController.alertOptionDialog(this, "Changing your database type will clear your database URL, username, and password.\nAre you sure you want to continue?")) { - databaseTypeCombobox.setSelectedItem(lastSelectedDatabaseType); - return; - } - } - lastSelectedDatabaseType = (String) databaseTypeCombobox.getSelectedItem(); - - databaseUrlField.setText(databaseUrls.get(lastSelectedDatabaseType)); - databaseUsernameField.setText(""); - databasePasswordField.setText(""); - - } - } - - private void launchButtonActionPerformed(ActionEvent evt) { - managerController.launchAdministrator(heapSize); - } - - private void viewFileButtonActionPerformed(ActionEvent evt) { - managerController.openLogFile(managerController.getLog4jProperties().getString(ManagerConstants.DIR_LOGS) + System.getProperty("file.separator") + (String) serverLogFiles.getSelectedValue()); - } - - private void restartButtonActionPerformed(ActionEvent evt) { - managerController.restartMirthWorker(); - } - - private void stopButtonActionPerformed(ActionEvent evt) { - managerController.stopMirthWorker(); - } - - private void startButtonActionPerformed(ActionEvent evt) { - managerController.startMirthWorker(); - } - - private void heapSizeButtonActionPerformed(ActionEvent evt) { - HeapSizeDialog dialog = new HeapSizeDialog(heapSize); - heapSize = dialog.getHeapSize(); - } - - private void loadProperties() { - loading = true; - - serverIdField.setText(managerController.getServerId()); - serverMemoryField.setText(managerController.getServiceXmx()); - serverVersionField.setText(managerController.getServerVersion()); - javaVersionField.setText(System.getProperty("java.version")); - httpPortField.setText(managerController.getServerProperties().getString(ManagerConstants.SERVER_HTTP_PORT)); - httpsPortField.setText(managerController.getServerProperties().getString(ManagerConstants.SERVER_HTTPS_PORT)); - - boolean applyEnabled = isApplyEnabled(); - - databaseTypeCombobox.setSelectedItem(managerController.getServerProperties().getString(ManagerConstants.DATABASE_TYPE)); - databaseUrlField.setText((String) managerController.getServerProperties().getProperty(ManagerConstants.DATABASE_URL)); - databaseUsernameField.setText(managerController.getServerProperties().getString(ManagerConstants.DATABASE_USERNAME)); - databasePasswordField.setText(managerController.getServerProperties().getString(ManagerConstants.DATABASE_PASSWORD)); - - String rootLogCode = managerController.getLog4jProperties().getStringArray(ManagerConstants.LOG4J_MIRTH_LOG_LEVEL)[0]; - if (ArrayUtils.contains(ManagerConstants.LOG4J_ERROR_CODES, rootLogCode)) { - mainLogLevelCombobox.setSelectedItem(rootLogCode); - } - - databaseLogLevelCombobox.setSelectedItem(managerController.getLog4jProperties().getString(ManagerConstants.LOG4J_DATABASE_LOG_LEVEL)); - - String channelLogCode = null; - for (int i = 0; (i < ManagerConstants.LOG4J_CHANNEL_LOG_LEVELS.length) && !ManagerConstants.LOG4J_ERROR_CODES_WITH_BLANK[0].equals(channelLogCode); i++) { - String tempLogCode = managerController.getLog4jProperties().getString(ManagerConstants.LOG4J_CHANNEL_LOG_LEVELS[i]); - - if (tempLogCode == null) { // log code not found, stop - channelLogCode = ManagerConstants.LOG4J_ERROR_CODES_WITH_BLANK[0]; - } else if (channelLogCode == null) { // first code found, save and continue - channelLogCode = tempLogCode; - } else if (!channelLogCode.equalsIgnoreCase(tempLogCode)) { // different code, stop - channelLogCode = ManagerConstants.LOG4J_ERROR_CODES_WITH_BLANK[0]; - } - } - - channelLogLevelCombobox.setSelectedItem(channelLogCode); - - setApplyEnabled(applyEnabled); - - refreshLogs(); - serverLogFilesValueChanged(null); - - loading = false; - } - - public boolean saveProperties() { - if (managerController.getServerPropertiesBuilder().getReloadingController().isInReloadingState()) { - if (!managerController.alertOptionDialog(this, "Server properties have changed on disk since the manager was opened. Are you sure you wish to overwrite them?")) { - return false; - } - managerController.reloadServerProperties(); - } - - if (managerController.getLog4jPropertiesBuilder().getReloadingController().isInReloadingState()) { - if (!managerController.alertOptionDialog(this, "Log4j properties have changed on disk since the manager was opened. Are you sure you wish to overwrite them?")) { - return false; - } - managerController.reloadLog4jProperties(); - } - - managerController.getServerProperties().setProperty(ManagerConstants.SERVER_HTTP_PORT, httpPortField.getText()); - managerController.getServerProperties().setProperty(ManagerConstants.SERVER_HTTPS_PORT, httpsPortField.getText()); - - managerController.getServerProperties().setProperty(ManagerConstants.DATABASE_TYPE, ((String) databaseTypeCombobox.getSelectedItem())); - managerController.getServerProperties().setProperty(ManagerConstants.DATABASE_URL, databaseUrlField.getText()); - managerController.getServerProperties().setProperty(ManagerConstants.DATABASE_USERNAME, databaseUsernameField.getText()); - managerController.getServerProperties().setProperty(ManagerConstants.DATABASE_PASSWORD, new String(databasePasswordField.getPassword())); - - try { - managerController.saveServerProperties(); - } catch (ConfigurationException e) { - managerController.alertErrorDialog(this, "Error saving " + managerController.getServerPropertiesBuilder().getFileHandler().getFile().getPath() + ":\n" + e.getMessage()); - } - - String[] logLevel = managerController.getLog4jProperties().getStringArray(ManagerConstants.LOG4J_MIRTH_LOG_LEVEL); - logLevel[0] = (String) mainLogLevelCombobox.getSelectedItem(); - managerController.getLog4jProperties().setProperty(ManagerConstants.LOG4J_MIRTH_LOG_LEVEL, logLevel); - - managerController.getLog4jProperties().setProperty(ManagerConstants.LOG4J_DATABASE_LOG_LEVEL, (String) databaseLogLevelCombobox.getSelectedItem()); - - String channelLogLevelCode = (String) channelLogLevelCombobox.getSelectedItem(); - - // Only set all of the log levels if the selected value is not blank - if (!ManagerConstants.LOG4J_ERROR_CODES_WITH_BLANK[0].equals(channelLogLevelCode)) { - for (String channelLogLevel : ManagerConstants.LOG4J_CHANNEL_LOG_LEVELS) { - managerController.getLog4jProperties().setProperty(channelLogLevel, channelLogLevelCode); - } - } - - try { - managerController.saveLog4jProperties(); - } catch (ConfigurationException e) { - managerController.alertErrorDialog(this, "Error saving " + managerController.getLog4jPropertiesBuilder().getFileHandler().getFile().getPath() + ":\n" + e.getMessage()); - } - - managerController.setServiceXmx(serverMemoryField.getText()); - - setApplyEnabled(false); - return true; - } - - private void refreshLogs() { - String logPath = managerController.getLog4jProperties().getString(ManagerConstants.DIR_LOGS); - serverLogFiles.setListData(managerController.getLogFiles(logPath).toArray()); - } - - public void setStartButtonActive(boolean active) { - startButton.setEnabled(active); - startLabel.setEnabled(active); - } - - public void setStopButtonActive(boolean active) { - stopButton.setEnabled(active); - stopLabel.setEnabled(active); - } - - public void setRestartButtonActive(boolean active) { - restartButton.setEnabled(active); - restartLabel.setEnabled(active); - } - - public void setLaunchButtonActive(boolean active) { - launchButton.setEnabled(active); - } - - // Service Panel - private JPanel servicePanel; - private JButton startButton; - private JLabel startLabel; - private JButton restartButton; - private JLabel restartLabel; - private JButton stopButton; - private JLabel stopLabel; - private JLabel refreshLabel; - private JButton refreshServiceButton; - private JCheckBox startup; - - // Server Panel, a lot of the labels can probably just be added to the layout... - private JPanel serverPanel; - private JLabel httpPortLabel; - private MirthTextField httpPortField; - private JLabel httpsPortLabel; - private MirthTextField httpsPortField; - private JLabel serverMemoryLabel; - private MirthTextField serverMemoryField; - private JList serverLogFiles; - private JScrollPane serverLogsScrollPane; - private JLabel mainLogLevelLabel; - private MirthComboBox mainLogLevelCombobox; - private JLabel databaseLogLevelLabel; - private MirthComboBox databaseLogLevelCombobox; - private JLabel channelLogLevelLabel; - private MirthComboBox channelLogLevelCombobox; - private JButton refreshButton; - private JButton viewFileButton; - - // Database Panel - private JPanel databasePanel; - private JLabel databaseTypeLabel; - private MirthComboBox databaseTypeCombobox; - private JLabel databaseUrlLabel; - private MirthTextField databaseUrlField; - private JLabel databaseUsernameLabel; - private MirthTextField databaseUsernameField; - private JLabel passwordLabel; - private MirthPasswordField databasePasswordField; - - // Info Panel - private JPanel infoPanel; - private JLabel serverVersionLabel; - private JLabel serverVersionField; - private JLabel serverIdLabel; - private JLabel serverIdField; - private JLabel javaVersionLabel; - private JLabel javaVersionField; - private JLabel contactPrefixLabel; - private JLabel mirthSupportLink; - private JLabel contactPostfixLabel; - - // Bottom Panel - private JButton launchButton; - private JButton okButton; - private JButton cancelButton; - private JButton applyButton; - private JButton heapSizeButton; - private JTabbedPane tabPanel; -} diff --git a/manager/src/com/mirth/connect/manager/ManagerTray.java b/manager/src/com/mirth/connect/manager/ManagerTray.java deleted file mode 100644 index 93557cceca..0000000000 --- a/manager/src/com/mirth/connect/manager/ManagerTray.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.MenuItem; -import java.awt.PopupMenu; -import java.awt.SystemTray; -import java.awt.TrayIcon; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.ImageIcon; - -public class ManagerTray { - - private TrayIcon mirthTrayIcon; - private PopupMenu menu; - private MenuItem viewItem; - private MenuItem startItem; - private MenuItem stopItem; - private MenuItem restartItem; - private MenuItem administratorItem; - private MenuItem quitItem; - public static final int STARTED = 1; - public static final int STOPPED = 0; - public static final int BUSY = -1; - - /** Creates a new instance of ManagerTray */ - public ManagerTray() {} - - public void setupTray() { - menu = new PopupMenu(String.format("%s Server Manager", BrandingConstants.PRODUCT_NAME)); - - viewItem = new MenuItem("Show Manager"); -// viewItem.setIcon(new ImageIcon(this.getClass().getResource("images/start.png"))); - viewItem.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - PlatformUI.MANAGER_DIALOG.open(); - } - }); - menu.add(viewItem); - - menu.addSeparator(); - - administratorItem = new MenuItem("Launch Administrator"); - administratorItem.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - ManagerController.getInstance().launchAdministrator(null); - } - }); - menu.add(administratorItem); - - startItem = new MenuItem(String.format("Start %s", BrandingConstants.PRODUCT_NAME)); -// startItem.setIcon(new ImageIcon(this.getClass().getResource("images/start.png"))); - startItem.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - ManagerController.getInstance().startMirthWorker(); - } - }); - menu.add(startItem); - - stopItem = new MenuItem(String.format("Stop %s", BrandingConstants.PRODUCT_NAME)); -// stopItem.setIcon(new ImageIcon(this.getClass().getResource("images/stop.png"))); - stopItem.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - ManagerController.getInstance().stopMirthWorker(); - } - }); - menu.add(stopItem); - - restartItem = new MenuItem(String.format("Restart %s", BrandingConstants.PRODUCT_NAME)); -// restartItem.setIcon(new ImageIcon(this.getClass().getResource("images/restart.png"))); - restartItem.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - ManagerController.getInstance().restartMirthWorker(); - } - }); - menu.add(restartItem); - - menu.addSeparator(); - - quitItem = new MenuItem("Close Manager"); - quitItem.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent evt) { - PlatformUI.MANAGER_DIALOG.close(); - Manager.shutdown(); - } - }); - menu.add(quitItem); - - ImageIcon icon = new ImageIcon(this.getClass().getResource("images/NG_MC_Icon_Grey_32x32.png")); - mirthTrayIcon = new TrayIcon(icon.getImage(), String.format("%s Server Manager", BrandingConstants.PRODUCT_NAME), menu); - mirthTrayIcon.setImageAutoSize(true); - - // Action listener for left click. - mirthTrayIcon.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - PlatformUI.MANAGER_DIALOG.open(); - } - }); - - try { - if (ServiceControllerFactory.getServiceController().isShowTrayIcon()) { - SystemTray tray = null; - try { - tray = SystemTray.getSystemTray(); - tray.add(mirthTrayIcon); - } catch (Throwable t) { - // Exit the manager in case of the following error: - // java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Mirth\lib\tray.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform - t.printStackTrace(); - System.exit(1); - } - } else { - // If no tray dialog is being shown, open the manager dialog automatically - PlatformUI.MANAGER_DIALOG.open(); - } - } catch (Exception e) { - // Ignore exceptions getting the service controller. - // The tray icon will not be displayed if there was a problem. - } - } - - public void setStartButtonActive(boolean active) { - startItem.setEnabled(active); - } - - public void setStopButtonActive(boolean active) { - stopItem.setEnabled(active); - } - - public void setRestartButtonActive(boolean active) { - restartItem.setEnabled(active); - } - - public void setLaunchButtonActive(boolean active) { - administratorItem.setEnabled(active); - } - - public void alertError(final String text) { - mirthTrayIcon.displayMessage("Error", text, TrayIcon.MessageType.ERROR); - } - - public void alertInfo(final String text) { - mirthTrayIcon.displayMessage("Information", text, TrayIcon.MessageType.INFO); - } - - public void alertWarning(final String text) { - mirthTrayIcon.displayMessage("Warning", text, TrayIcon.MessageType.WARNING); - } - - public void setTrayIcon(int icon) { - ImageIcon imageIcon; - if (icon == STARTED) { - imageIcon = new ImageIcon(this.getClass().getResource("images/NG_MC_Icon_32x32.png")); - } else if (icon == STOPPED) { - imageIcon = new ImageIcon(this.getClass().getResource("images/NG_MC_Icon_Grey_32x32.png")); - } else { - imageIcon = new ImageIcon(this.getClass().getResource("images/NG_MC_Icon_Grey_32x32.png")); - } - - mirthTrayIcon.setImage(imageIcon.getImage()); - } -} diff --git a/manager/src/com/mirth/connect/manager/MirthHeadingPanel.java b/manager/src/com/mirth/connect/manager/MirthHeadingPanel.java deleted file mode 100644 index 116c91ab60..0000000000 --- a/manager/src/com/mirth/connect/manager/MirthHeadingPanel.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Graphics; - -import javax.swing.ImageIcon; -import javax.swing.JLabel; -import javax.swing.JPanel; - -import net.miginfocom.swing.MigLayout; - -/** - * Creates the heading panel that is used for wizards, login, etc. - */ -public class MirthHeadingPanel extends JPanel { - - /** Creates new form MirthHeadingPanel */ - public MirthHeadingPanel() { - setLayout(new MigLayout("insets 8, novisualpadding, hidemode 3, fill")); - setupPanel(); - setOpaque(false); - setPreferredSize(new Dimension(138, 22)); - } - - protected void paintComponent(Graphics g) { - g.drawImage(new ImageIcon(getClass().getResource("images/header_nologo.png")).getImage(), 0, 0, getWidth(), getHeight(), null); - super.paintComponent(g); - } - - private void setupPanel() { - JLabel headingLabel = new JLabel(); - headingLabel.setFont(new Font("Tahoma", 1, 18)); // NOI18N - headingLabel.setForeground(new Color(255, 255, 255)); - headingLabel.setText(String.format("%s Server Manager", BrandingConstants.PRODUCT_NAME)); - - add(headingLabel); - } -} diff --git a/manager/src/com/mirth/connect/manager/MirthTheme.java b/manager/src/com/mirth/connect/manager/MirthTheme.java deleted file mode 100644 index 1c1431fad3..0000000000 --- a/manager/src/com/mirth/connect/manager/MirthTheme.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.awt.Color; - -import javax.swing.UIDefaults; -import javax.swing.plaf.ColorUIResource; - -import com.jgoodies.looks.plastic.PlasticScrollBarUI; -import com.jgoodies.looks.plastic.theme.SkyBluer; - -public class MirthTheme extends SkyBluer { - - public String getName() { - return "Mirth"; - } - - protected ColorUIResource getPrimary1() { - return new ColorUIResource(Color.DARK_GRAY); - } - - protected ColorUIResource getPrimary2() { - return new ColorUIResource(0x9EB1C9); - } - - protected ColorUIResource getPrimary3() { - return new ColorUIResource(0xc0d2dc); - } - - /* - * protected ColorUIResource getSecondary1() { return Colors.GRAY_MEDIUMDARK; } - * - * protected ColorUIResource getSecondary2() { return Colors.GRAY_LIGHT; } - * - * protected ColorUIResource getSecondary3() { return Colors.GRAY_LIGHTER; } - * - * public ColorUIResource getMenuItemSelectedBackground() { return getPrimary2(); } - * - * public ColorUIResource getMenuItemSelectedForeground() { return getWhite(); } - * - * public ColorUIResource getMenuSelectedBackground() { return getSecondary2(); } - * - * public ColorUIResource getFocusColor() { return PlasticLookAndFeel.useHighContrastFocusColors - * ? Colors.YELLOW_FOCUS : super.getFocusColor(); } - */ - /* - * TODO: The following two lines are likely an improvement. However, they require a rewrite of - * the PlasticInternalFrameTitlePanel. public ColorUIResource getWindowTitleBackground() { - * return getPrimary1(); } public ColorUIResource getWindowTitleForeground() { return WHITE; } - */ - public void addCustomEntriesToTable(UIDefaults table) { - super.addCustomEntriesToTable(table); - Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, 30, }; - table.putDefaults(uiDefaults); - } -} diff --git a/manager/src/com/mirth/connect/manager/PlatformUI.java b/manager/src/com/mirth/connect/manager/PlatformUI.java deleted file mode 100644 index a964a53a90..0000000000 --- a/manager/src/com/mirth/connect/manager/PlatformUI.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -public class PlatformUI { - public static ManagerDialog MANAGER_DIALOG; - public static ManagerTray MANAGER_TRAY; - public static String MIRTH_PATH; -} diff --git a/manager/src/com/mirth/connect/manager/ServiceController.java b/manager/src/com/mirth/connect/manager/ServiceController.java deleted file mode 100644 index 216060e919..0000000000 --- a/manager/src/com/mirth/connect/manager/ServiceController.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -public interface ServiceController { - - public int checkService(); - - public boolean startService(); - - public boolean stopService(); - - public boolean isStartupPossible(); - - public void setStartup(boolean enabled); - - public boolean isStartup(); - - public String getCommand(); - - public boolean isShowTrayIcon(); - - public boolean isShowServiceTab(); - - public void migrate(); -} diff --git a/manager/src/com/mirth/connect/manager/ServiceControllerFactory.java b/manager/src/com/mirth/connect/manager/ServiceControllerFactory.java deleted file mode 100644 index 1c21e20e1e..0000000000 --- a/manager/src/com/mirth/connect/manager/ServiceControllerFactory.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import org.apache.commons.lang3.SystemUtils; - -public class ServiceControllerFactory { - - private static ServiceController serviceController; - - public static ServiceController getServiceController() throws Exception { - synchronized (ServiceController.class) { - if (serviceController == null) { - if (SystemUtils.IS_OS_WINDOWS) { - serviceController = new WindowsServiceController(); - } else if (SystemUtils.IS_OS_MAC) { - serviceController = new MacServiceController(); - } else if (SystemUtils.IS_OS_UNIX) { - serviceController = new LinuxServiceController(); - } else { - throw new Exception("Operating system must be Windows, Mac, or Unix/Linux."); - } - } - - return serviceController; - } - } - -} diff --git a/manager/src/com/mirth/connect/manager/WindowsServiceController.java b/manager/src/com/mirth/connect/manager/WindowsServiceController.java deleted file mode 100644 index 556a2a59d9..0000000000 --- a/manager/src/com/mirth/connect/manager/WindowsServiceController.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager; - -import java.io.File; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class WindowsServiceController implements ServiceController { - - private final String WINDOWS_PATH_SERVER_MANAGER_EXE = "mcmanager.exe"; - private final String WINDOWS_SERVICE_NAME = String.format("%s Service", BrandingConstants.PRODUCT_NAME); - private final String WINDOWS_CMD_START = "net start \""; - private final String WINDOWS_CMD_STOP = "net stop \""; - private final String WINDOWS_CMD_STATUS = "net continue \""; - private final int WINDOWS_STATUS_RUNNING = 2191; - private final int WINDOWS_STATUS_STOPPED = 2184; - private final String WINDOWS_STATUS_CHANGING = "2189"; - private final String WINDOWS_CMD_QUERY_REGEX = "NET HELPMSG ([0-9]{4})"; - private final String WINDOWS_CMD_REG_QUERY = String.format("REG QUERY HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v \"%s Server Manager\"", BrandingConstants.PRODUCT_NAME); - private final String WINDOWS_CMD_REG_DELETE = String.format("REG DELETE HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /f /v \"%s Server Manager\"", BrandingConstants.PRODUCT_NAME); - private final String WINDOWS_CMD_REG_ADD = String.format("REG ADD HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /f /v \"%s Server Manager\" /d ", BrandingConstants.PRODUCT_NAME); - - @Override - public int checkService() { - Pattern pattern = Pattern.compile(WINDOWS_CMD_QUERY_REGEX); - Matcher matcher; - String key = "-1"; - do { - try { - matcher = pattern.matcher(CmdUtil.execCmdWithErrorOutput(WINDOWS_CMD_STATUS + WINDOWS_SERVICE_NAME + "\"").replace('\n', ' ').replace('\r', ' ')); - while (matcher.find()) { - key = matcher.group(1); - } - - if (key.equals(WINDOWS_STATUS_CHANGING)) { - Thread.sleep(100); - } else { - if (Integer.parseInt(key) == WINDOWS_STATUS_STOPPED) { - return 0; - } else if (Integer.parseInt(key) == WINDOWS_STATUS_RUNNING) { - return 1; - } - } - } catch (Exception e) { - } - } while (key.equals(WINDOWS_STATUS_CHANGING)); - - return -1; - } - - @Override - public boolean startService() { - try { - if (CmdUtil.execCmd(WINDOWS_CMD_START + WINDOWS_SERVICE_NAME + "\"", true) == 0) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - - @Override - public boolean stopService() { - try { - if (CmdUtil.execCmd(WINDOWS_CMD_STOP + WINDOWS_SERVICE_NAME + "\"", true) == 0) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - - @Override - public boolean isStartupPossible() { - return true; - } - - @Override - public void setStartup(boolean enabled) { - if (enabled) { - try { - String absolutePath = new File(PlatformUI.MIRTH_PATH).getAbsolutePath(); - CmdUtil.execCmd(WINDOWS_CMD_REG_ADD + "\"\\\"" + absolutePath + System.getProperty("file.separator") + WINDOWS_PATH_SERVER_MANAGER_EXE + "\\\"\"", true); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - try { - CmdUtil.execCmd(WINDOWS_CMD_REG_DELETE, true); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean isStartup() { - int keyQueryResult = 1; - try { - keyQueryResult = CmdUtil.execCmd(WINDOWS_CMD_REG_QUERY, true); - } catch (Exception e) { - e.printStackTrace(); - } - - if (keyQueryResult == 0) { - return true; - } else { - return false; - } - } - - @Override - public String getCommand() { - return "cmd /c"; - } - - @Override - public boolean isShowTrayIcon() { - return true; - } - - @Override - public boolean isShowServiceTab() { - return true; - } - - @Override - public void migrate() { - // If the old value exists in the registry, then we should remove and re-add it - try { - String output = CmdUtil.execCmdWithOutput(WINDOWS_CMD_REG_QUERY); - if (output.indexOf("Mirth Connect Server Manager.exe") != -1) { - setStartup(false); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/manager/src/com/mirth/connect/manager/components/MirthComboBox.java b/manager/src/com/mirth/connect/manager/components/MirthComboBox.java deleted file mode 100644 index c6ba37ff3d..0000000000 --- a/manager/src/com/mirth/connect/manager/components/MirthComboBox.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager.components; - -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; - -import com.mirth.connect.manager.ManagerController; -import com.mirth.connect.manager.PlatformUI; - -/** - * Mirth's implementation of the JComboBox. Adds enabling of the apply button in dialog. - */ -public class MirthComboBox extends javax.swing.JComboBox { - - public MirthComboBox() { - super(); - this.setFocusable(true); - this.addActionListener(new java.awt.event.ActionListener() { - - public void actionPerformed(java.awt.event.ActionEvent evt) { - comboBoxChanged(evt); - } - }); - this.addKeyListener(new KeyListener() { - - public void keyPressed(KeyEvent e) { - boolean isAccelerated = (e.getModifiers() & java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) > 0; - if ((e.getKeyCode() == KeyEvent.VK_S) && isAccelerated) { - PlatformUI.MANAGER_DIALOG.saveProperties(); - } - } - - public void keyReleased(KeyEvent e) {} - - public void keyTyped(KeyEvent e) {} - }); - } - - public void comboBoxChanged(java.awt.event.ActionEvent evt) { - ManagerController.getInstance().setApplyEnabled(true); - } -} diff --git a/manager/src/com/mirth/connect/manager/components/MirthFieldConstraints.java b/manager/src/com/mirth/connect/manager/components/MirthFieldConstraints.java deleted file mode 100644 index 24d2b0a0f9..0000000000 --- a/manager/src/com/mirth/connect/manager/components/MirthFieldConstraints.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager.components; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.swing.text.AttributeSet; -import javax.swing.text.BadLocationException; -import javax.swing.text.PlainDocument; - -/** - * Document that can be set with certain field constraints. - */ -public class MirthFieldConstraints extends PlainDocument { - - private int limit; - // optional uppercase conversion, letters only, and numbers only. - private boolean toUppercase = false; - private Pattern pattern; - private static final String NUMERIC_PATTERN = "^[0-9]*$"; - private static final String ALPHA_PATTERN = "^[a-zA-Z_\\-\\s]*$"; - private static final String ALPHA_NUMERIC_PATTERN = "^[a-zA-Z_0-9\\-\\s]*$"; - private static final String MATCH_ALL_PATTERN = "^.*$"; - - /** - * Constructor that sets a character number limit. Set limit to 0 for no limit. - */ - public MirthFieldConstraints(int limit) { - super(); - this.limit = limit; - pattern = Pattern.compile(MATCH_ALL_PATTERN); - } - - public MirthFieldConstraints(String newPattern) { - super(); - this.limit = 0; - pattern = Pattern.compile(newPattern); - } - - /** - * Constructor that sets a character number limit, uppercase conversion, letters only, and - * numbers only. Set limit to 0 for no limit. - */ - public MirthFieldConstraints(int limit, boolean toUppercase, boolean lettersOnly, boolean numbersOnly) { - super(); - this.limit = limit; - this.toUppercase = toUppercase; - String patternString = MATCH_ALL_PATTERN; - if (lettersOnly && numbersOnly) { - patternString = ALPHA_NUMERIC_PATTERN; - } else if (lettersOnly) { - patternString = ALPHA_PATTERN; - } else if (numbersOnly) { - patternString = NUMERIC_PATTERN; - } - pattern = Pattern.compile(patternString); - } - - /** - * Overwritten insertString method to check if the string should actually be inserted based on - * the constraints. - */ - public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { - if (str == null) { - return; - } - - if ((getLength() + str.length()) <= limit || limit == 0) { - if (toUppercase) { - str = str.toUpperCase(); - } - - Matcher matcher = pattern.matcher(this.getText(0, getLength()) + str); - - if (!matcher.find()) { - return; - } - - super.insertString(offset, str, attr); - } - } -} diff --git a/manager/src/com/mirth/connect/manager/components/MirthPasswordField.java b/manager/src/com/mirth/connect/manager/components/MirthPasswordField.java deleted file mode 100644 index 7d901057c4..0000000000 --- a/manager/src/com/mirth/connect/manager/components/MirthPasswordField.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager.components; - -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; - -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.text.Document; - -import com.mirth.connect.manager.ManagerController; -import com.mirth.connect.manager.PlatformUI; - -/** - * Mirth's implementation of the JPasswordField. Adds enabling of the apply button in dialog. - */ -public class MirthPasswordField extends javax.swing.JPasswordField { - - public MirthPasswordField() { - super(); - this.setFocusable(true); - this.addKeyListener(new KeyListener() { - - public void keyPressed(KeyEvent e) { - boolean isAccelerated = (e.getModifiers() & java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) > 0; - if ((e.getKeyCode() == KeyEvent.VK_S) && isAccelerated) { - PlatformUI.MANAGER_DIALOG.saveProperties(); - } - } - - public void keyReleased(KeyEvent e) {} - - public void keyTyped(KeyEvent e) {} - }); - } - - /** - * Overrides setDocument(Document doc) so that a document listener is added to the current - * document to listen for changes. - */ - public void setDocument(Document doc) { - super.setDocument(doc); - - this.getDocument().addDocumentListener(new DocumentListener() { - - public void changedUpdate(DocumentEvent e) {} - - public void removeUpdate(DocumentEvent e) { - ManagerController.getInstance().setApplyEnabled(true); - } - - public void insertUpdate(DocumentEvent e) { - ManagerController.getInstance().setApplyEnabled(true); - } - }); - } - - /** - * Overrides setText(String t) so that the save button is disabled when Mirth sets the text of a - * field. - */ - public void setText(String t) { - super.setText(t); - ManagerController.getInstance().setApplyEnabled(false); - } -} diff --git a/manager/src/com/mirth/connect/manager/components/MirthTextField.java b/manager/src/com/mirth/connect/manager/components/MirthTextField.java deleted file mode 100644 index 9ee81a3c64..0000000000 --- a/manager/src/com/mirth/connect/manager/components/MirthTextField.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.manager.components; - -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; - -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.text.Document; - -import com.mirth.connect.manager.ManagerController; -import com.mirth.connect.manager.PlatformUI; - -/** - * Mirth's implementation of the JTextField. Adds enabling of the apply button in dialog. - */ -public class MirthTextField extends javax.swing.JTextField { - - public MirthTextField() { - super(); - this.setFocusable(true); - this.addKeyListener(new KeyListener() { - - public void keyPressed(KeyEvent e) { - boolean isAccelerated = (e.getModifiers() & java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) > 0; - if ((e.getKeyCode() == KeyEvent.VK_S) && isAccelerated) { - PlatformUI.MANAGER_DIALOG.saveProperties(); - } - } - - public void keyReleased(KeyEvent e) {} - - public void keyTyped(KeyEvent e) {} - }); - } - - /** - * Overrides setDocument(Document doc) so that a document listener is added to the current - * document to listen for changes. - */ - public void setDocument(Document doc) { - super.setDocument(doc); - - this.getDocument().addDocumentListener(new DocumentListener() { - - public void changedUpdate(DocumentEvent e) {} - - public void removeUpdate(DocumentEvent e) { - ManagerController.getInstance().setApplyEnabled(true); - } - - public void insertUpdate(DocumentEvent e) { - ManagerController.getInstance().setApplyEnabled(true); - } - }); - } - - /** - * Overrides setText(String t) so that the save button is disabled when Mirth sets the text of a - * field. - */ - public void setText(String t) { - super.setText(t); - ManagerController.getInstance().setApplyEnabled(false); - } -} diff --git a/manager/src/com/mirth/connect/manager/images/NG_MC-ServerManager_Icon_F_32x32.png b/manager/src/com/mirth/connect/manager/images/NG_MC-ServerManager_Icon_F_32x32.png deleted file mode 100644 index 9471ac3a25..0000000000 Binary files a/manager/src/com/mirth/connect/manager/images/NG_MC-ServerManager_Icon_F_32x32.png and /dev/null differ diff --git a/manager/src/com/mirth/connect/manager/images/NG_MC_Icon_32x32.png b/manager/src/com/mirth/connect/manager/images/NG_MC_Icon_32x32.png deleted file mode 100644 index 4f1f3d1349..0000000000 Binary files a/manager/src/com/mirth/connect/manager/images/NG_MC_Icon_32x32.png and /dev/null differ diff --git a/manager/src/com/mirth/connect/manager/images/NG_MC_Icon_Grey_32x32.png b/manager/src/com/mirth/connect/manager/images/NG_MC_Icon_Grey_32x32.png deleted file mode 100644 index 86ffa36fd7..0000000000 Binary files a/manager/src/com/mirth/connect/manager/images/NG_MC_Icon_Grey_32x32.png and /dev/null differ diff --git a/manager/src/com/mirth/connect/manager/images/header_nologo.png b/manager/src/com/mirth/connect/manager/images/header_nologo.png deleted file mode 100644 index 2a51148c64..0000000000 Binary files a/manager/src/com/mirth/connect/manager/images/header_nologo.png and /dev/null differ diff --git a/manager/src/com/mirth/connect/manager/images/wrench.png b/manager/src/com/mirth/connect/manager/images/wrench.png deleted file mode 100644 index 5c8213fef5..0000000000 Binary files a/manager/src/com/mirth/connect/manager/images/wrench.png and /dev/null differ diff --git a/manager/src/log4j2.properties b/manager/src/log4j2.properties deleted file mode 100644 index 13b36f56cb..0000000000 --- a/manager/src/log4j2.properties +++ /dev/null @@ -1,8 +0,0 @@ -# sample properties to initialise log4j -rootLogger=ERROR, stdout - -# stdout appender -appender.console.type=Console -appender.console.name=stdout -appender.console.layout.type=PatternLayout -appender.console.layout.pattern=%-5p %d [%t] %c: %m%n \ No newline at end of file diff --git a/server/build.properties b/server/build.properties index d3c6f27082..17b624559c 100644 --- a/server/build.properties +++ b/server/build.properties @@ -54,7 +54,6 @@ setup.server.lib=${setup}/server-lib setup.server.lib.donkey=${setup}/lib/donkey setup.server.launcher.lib=${setup}/server-launcher-lib setup.client.lib=${setup}/client-lib -setup.manager.lib=${setup}/manager-lib setup.cli.lib=${setup}/cli-lib setup.conf=${setup}/conf setup.extensions=${setup}/extensions diff --git a/server/build.xml b/server/build.xml index 32dd10eb8c..8e7a8e346e 100644 --- a/server/build.xml +++ b/server/build.xml @@ -966,7 +966,6 @@ - diff --git a/server/mirth-build.properties b/server/mirth-build.properties index e5ac8d4915..b947208760 100644 --- a/server/mirth-build.properties +++ b/server/mirth-build.properties @@ -1,8 +1,6 @@ donkey=../donkey server=../server client=../client -webadmin=../webadmin -manager=../manager cli=../command version=4.5.2 diff --git a/server/mirth-build.xml b/server/mirth-build.xml index e4fc700ade..ff69752c53 100644 --- a/server/mirth-build.xml +++ b/server/mirth-build.xml @@ -25,15 +25,6 @@ - - - - - @@ -69,23 +60,6 @@ - - - - - - - - - - - - - - - - - @@ -126,7 +100,7 @@ - + @@ -142,7 +116,7 @@ - + Application version: ${version} @@ -173,17 +147,9 @@ -

- -
-
- -
- -
diff --git a/webadmin/.classpath b/webadmin/.classpath deleted file mode 100644 index 79ab88054a..0000000000 --- a/webadmin/.classpath +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webadmin/WebContent/WEB-INF/c.tld b/webadmin/WebContent/WEB-INF/c.tld deleted file mode 100644 index f92efa8888..0000000000 --- a/webadmin/WebContent/WEB-INF/c.tld +++ /dev/null @@ -1,587 +0,0 @@ - - - - - JSTL 1.2 core library - JSTL core - 1.2 - c - http://java.sun.com/jsp/jstl/core - - - - Provides core validation features for JSTL tags. - - - org.apache.taglibs.standard.tlv.JstlCoreTLV - - - - - - Catches any Throwable that occurs in its body and optionally - exposes it. - - catch - org.apache.taglibs.standard.tag.common.core.CatchTag - JSP - - - Name of the exported scoped variable for the - exception thrown from a nested action. The type of the - scoped variable is the type of the exception thrown. - - var - false - false - - - - - - Simple conditional tag that establishes a context for - mutually exclusive conditional operations, marked by - <when> and <otherwise> - - choose - org.apache.taglibs.standard.tag.common.core.ChooseTag - JSP - - - - - Simple conditional tag, which evalutes its body if the - supplied condition is true and optionally exposes a Boolean - scripting variable representing the evaluation of this condition - - if - org.apache.taglibs.standard.tag.rt.core.IfTag - JSP - - - The test condition that determines whether or - not the body content should be processed. - - test - true - true - boolean - - - - Name of the exported scoped variable for the - resulting value of the test condition. The type - of the scoped variable is Boolean. - - var - false - false - - - - Scope for var. - - scope - false - false - - - - - - Retrieves an absolute or relative URL and exposes its contents - to either the page, a String in 'var', or a Reader in 'varReader'. - - import - org.apache.taglibs.standard.tag.rt.core.ImportTag - org.apache.taglibs.standard.tei.ImportTEI - JSP - - - The URL of the resource to import. - - url - true - true - - - - Name of the exported scoped variable for the - resource's content. The type of the scoped - variable is String. - - var - false - false - - - - Scope for var. - - scope - false - false - - - - Name of the exported scoped variable for the - resource's content. The type of the scoped - variable is Reader. - - varReader - false - false - - - - Name of the context when accessing a relative - URL resource that belongs to a foreign - context. - - context - false - true - - - - Character encoding of the content at the input - resource. - - charEncoding - false - true - - - - - - The basic iteration tag, accepting many different - collection types and supporting subsetting and other - functionality - - forEach - org.apache.taglibs.standard.tag.rt.core.ForEachTag - org.apache.taglibs.standard.tei.ForEachTEI - JSP - - - Collection of items to iterate over. - - items - false - true - java.lang.Object - - java.lang.Object - - - - - If items specified: - Iteration begins at the item located at the - specified index. First item of the collection has - index 0. - If items not specified: - Iteration begins with index set at the value - specified. - - begin - false - true - int - - - - If items specified: - Iteration ends at the item located at the - specified index (inclusive). - If items not specified: - Iteration ends when index reaches the value - specified. - - end - false - true - int - - - - Iteration will only process every step items of - the collection, starting with the first one. - - step - false - true - int - - - - Name of the exported scoped variable for the - current item of the iteration. This scoped - variable has nested visibility. Its type depends - on the object of the underlying collection. - - var - false - false - - - - Name of the exported scoped variable for the - status of the iteration. Object exported is of type - javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested - visibility. - - varStatus - false - false - - - - - - Iterates over tokens, separated by the supplied delimeters - - forTokens - org.apache.taglibs.standard.tag.rt.core.ForTokensTag - JSP - - - String of tokens to iterate over. - - items - true - true - java.lang.String - - java.lang.String - - - - - The set of delimiters (the characters that - separate the tokens in the string). - - delims - true - true - java.lang.String - - - - Iteration begins at the token located at the - specified index. First token has index 0. - - begin - false - true - int - - - - Iteration ends at the token located at the - specified index (inclusive). - - end - false - true - int - - - - Iteration will only process every step tokens - of the string, starting with the first one. - - step - false - true - int - - - - Name of the exported scoped variable for the - current item of the iteration. This scoped - variable has nested visibility. - - var - false - false - - - - Name of the exported scoped variable for the - status of the iteration. Object exported is of - type - javax.servlet.jsp.jstl.core.LoopTag - Status. This scoped variable has nested - visibility. - - varStatus - false - false - - - - - - Like <%= ... >, but for expressions. - - out - org.apache.taglibs.standard.tag.rt.core.OutTag - JSP - - - Expression to be evaluated. - - value - true - true - - - - Default value if the resulting value is null. - - default - false - true - - - - Determines whether characters <,>,&,'," in the - resulting string should be converted to their - corresponding character entity codes. Default value is - true. - - escapeXml - false - true - - - - - - - Subtag of <choose> that follows <when> tags - and runs only if all of the prior conditions evaluated to - 'false' - - otherwise - org.apache.taglibs.standard.tag.common.core.OtherwiseTag - JSP - - - - - Adds a parameter to a containing 'import' tag's URL. - - param - org.apache.taglibs.standard.tag.rt.core.ParamTag - JSP - - - Name of the query string parameter. - - name - true - true - - - - Value of the parameter. - - value - false - true - - - - - - Redirects to a new URL. - - redirect - org.apache.taglibs.standard.tag.rt.core.RedirectTag - JSP - - - The URL of the resource to redirect to. - - url - false - true - - - - Name of the context when redirecting to a relative URL - resource that belongs to a foreign context. - - context - false - true - - - - - - Removes a scoped variable (from a particular scope, if specified). - - remove - org.apache.taglibs.standard.tag.common.core.RemoveTag - empty - - - Name of the scoped variable to be removed. - - var - true - false - - - - Scope for var. - - scope - false - false - - - - - - Sets the result of an expression evaluation in a 'scope' - - set - org.apache.taglibs.standard.tag.rt.core.SetTag - JSP - - - Name of the exported scoped variable to hold the value - specified in the action. The type of the scoped variable is - whatever type the value expression evaluates to. - - var - false - false - - - - Expression to be evaluated. - - value - false - true - - java.lang.Object - - - - - Target object whose property will be set. Must evaluate to - a JavaBeans object with setter property property, or to a - java.util.Map object. - - target - false - true - - - - Name of the property to be set in the target object. - - property - false - true - - - - Scope for var. - - scope - false - false - - - - - - Creates a URL with optional query parameters. - - url - org.apache.taglibs.standard.tag.rt.core.UrlTag - JSP - - - Name of the exported scoped variable for the - processed url. The type of the scoped variable is - String. - - var - false - false - - - - Scope for var. - - scope - false - false - - - - URL to be processed. - - value - false - true - - - - Name of the context when specifying a relative URL - resource that belongs to a foreign context. - - context - false - true - - - - - - Subtag of <choose> that includes its body if its - condition evalutes to 'true' - - when - org.apache.taglibs.standard.tag.rt.core.WhenTag - JSP - - - The test condition that determines whether or not the - body content should be processed. - - test - true - true - boolean - - - - diff --git a/webadmin/WebContent/WEB-INF/displaytag.tld b/webadmin/WebContent/WEB-INF/displaytag.tld deleted file mode 100644 index edd34dff7b..0000000000 --- a/webadmin/WebContent/WEB-INF/displaytag.tld +++ /dev/null @@ -1,743 +0,0 @@ - - - - 1.1 - 1.2 - display - http://displaytag.sf.net - Display *: Tag Library - - The display tag library is an open source suite of custom tags that provide high level web presentation patterns - which will work in a MVC model, and provide a significant amount of functionality while still being simple and - straight-forward to use. The primary tag in the library is the Table tag. - - - table - org.displaytag.tags.TableTag - org.displaytag.tags.TableTagExtraInfo - JSP - table - - Displays a list in an html table, formatting each item in the list according to the Column tags nested inside of - this tag. Use the list attribute to indicate the Collection of data, in some scope, that the tag should operate - on. Supports the export of the list data to alternative formats such as CSV, Excel, and XML. The contents of the - list can be sorted, and the list can be broken into individual pages for display. If you use this tag in Struts, - or in some other framework where the page is included via a jsp:include, you should use the requestURI attribute - to indicate where tag generated links should point. - - - list - false - true - - Reference to the object used as source for the table. Can be an expression like requestScope.object.property . - You must define either the name attribute or the list attribute. Using "Name" is suggested. - - - - name - false - true - - reference to the object used as source for the table. Can be an expression like requestScope.object.property. In - the EL version of the taglibrary this must be an EL expression which points to the source object. - - - - length - false - true - int - number of records to be shown - - - offset - false - true - int - index of the first record to be shown - - - pagesize - false - true - int - number of records in a page - - - decorator - false - true - java.lang.String - - Fully qualified class name for a TableDecorator. Use a TableDecorator to provide custom operations against the - whole list, such as computing totals. Must extend org.displaytag.decorator.TableDecorator. - - - - requestURI - false - true - java.lang.String - - When the present, links for sorting, exports, and paging are formed by adding any tag generated parameters to - the value of requestURI attribute. - - - - requestURIcontext - false - true - boolean - - Enable/disable prepending of application context to generated links. Default is true, you can set it to false in - order to generate cross-context links. - - - - excludedParams - false - true - java.lang.String - - Whitespace separated list containg the name of parameters which should NOT be forwarded during paging or - sorting. You can use excludedParams="*" to match (exclude) any parameter. - - - - varTotals - false - true - java.lang.String - - Store a java.util.Map of the column totals in a pageContext variable by this name. The keys of the map are - "column" and the column number (first column is "column1", etc); values are the corresponding total for the - column; columns that are not marked as to total="true" will be omitted from the map. The variable will ONLY be - available within the footer tag and after the end of the table, it is not available with the body of the table - or columns. - - - - style - false - true - java.lang.String - html pass through attribute - - - class - false - true - java.lang.String - html pass through attribute - - - cellspacing - false - true - java.lang.String - html pass through attribute - - - cellpadding - false - true - java.lang.String - html pass through attribute. Better using "padding" css attribute in style or class - - - frame - false - true - java.lang.String - html pass through attribute. - - - rules - false - true - java.lang.String - html pass through attribute. - - - summary - false - true - java.lang.String - html pass through attribute - - - htmlId - false - true - java.lang.String - html "id" pass through attribute - - - export - false - true - boolean - enable/disable export. Valid values are true or false - - - id - false - true - java.lang.String - - See "uid". The id attribute can't be a runtime expression in jsp 1.0 compliant containers, while uid will allow - it. - - - - uid - false - true - java.lang.String - - Unique id used to identify this table. The object representing the current row is also added to the pageContext - under this name and the current row number is added using the key uid_rowNum. Two tables in the same page can't - have the same uid (paging and sorting will affect both). If no "htmlId" is specified the same value will be used - for the html id of the generated table. - - - - sort - false - true - java.lang.String - - Use 'page' if you want to sort only visible records, or 'list' if you want to sort the full list, or 'external' - if the data is sorted outside displaytag. - - - - defaultsort - false - true - int - The index of the column that will be used by default for sorting (starting from 1) - - - defaultorder - false - true - java.lang.String - - The default order for the sorted column. Valid values are "ascending" (default) or "descending" - - - - partialList - false - true - boolean - enable/disable partialLists. Valid values are true or false - - - size - false - true - - Used only when partialList=true. Reference to the Integer object containing the size of the total dataset. Can - be an expression like requestScope.object.property. In the EL version of the taglibrary this must be an EL - expression which points to the source object. - - - - keepStatus - false - true - boolean - - Preserve the current paging/sort status across session. The default is false (do not use sessions). Note that - for this to work properly you need to assign to each table in your application a different id. - - - - clearStatus - false - true - boolean - Clears the current paging/sort status saved in session. - - - form - false - true - - Uses post for paging/sorting links, by submitting the for with the given name. Note that this form will not be - created by displaytag, and it must exist in page. - - - - - - - - -]]> - - - - column - org.displaytag.tags.ColumnTag - JSP - column - - Displays a property of a row object inside a table. MUST be nested inside of a Table tag. The value displayed will - be the results of a decorator (if any); else the property named by the 'property' attribute; or if the 'property' - attribute is null, then the results of evaluating the JSP body of the tag. - - - property - false - true - java.lang.String - - name of the property in the bean specified in the parent table tag (via the "name" attribute) mapped to this - column - - - - sortProperty - false - true - java.lang.String - - name of the property in the bean specified in the parent table tag (via the "name" attribute) which will be used - to sort values in the column. This can be used when the column body is filled or a decorator is used and column - should sort on undecorated values. - - - - title - false - true - java.lang.String - title of the column (text for the th cell) - - - comparator - false - true - - The classname of comparator to use when sorting this column, or the comparator itself. Defaults to the - DefaultComparator. - - - - titleKey - false - true - - Resource key used to lookup the title value. Only works if "title" is not defined. Works together with a - configured I18nResourceProvider, specified via the displaytag.properties file. By default, if JSTL is available, - the JSTL provider is used, which makes this attribute work the same as fmt:message's key property. - - - - nulls - false - true - boolean - - By default, null values don't appear in the list. By setting 'nulls' to 'true', then null values will appear as - "null" in the list (mostly useful for debugging). Defaults to 'false'. - - - - total - false - true - boolean - - If true, will total the contents of this column. This value is available via the Map named in varTotals for the - table. Column values need to Numbers. - - - - sortable - false - true - boolean - Set to 'true' to make the column sortable. Defaults to 'false'. - - - defaultorder - false - true - java.lang.String - - The default sort order for this column. Valid values are "ascending" (default) or "descending" - - - - autolink - false - true - boolean - - Automatically hyperlink URLs and email addresses that appear in the column. Defaults to 'false'. - - - - format - false - true - java.lang.String - - A MessageFormat patter that will be used to decorate objects in the column. Can be used as a "shortcut" for - simple column decorations. @since 1.1 - - - - escapeXml - false - true - boolean - - Set it to true to escape special characters in html and xml output. Defaults to 'false'. @since 1.1 - - - - media - false - true - java.lang.String - - Use this attribute to keep a column from being output during an export. The column will only render for the - named media type(s) - it won't be added to the table if the current request media is not supported. Can be any - space separated combination of 'html', 'csv', 'xml', 'all', or 'excel'. Defaults to 'all'. See the export page - in the example webapp for more details. - - - - href - false - true - java.lang.String - - tag with the url provided through this attribute. Typically you - would use this attribute along with one of the struts-like param attributes (param*) to create a dynamic link so - that each row creates a different URL based on the data that is being viewed. An empty href value will generate - a link to the current page, preserving parameters just like for paging links.]]> - - - - url - false - true - java.lang.String - - The base URL used to construct the dynamic link. This attribute has the same functionality as the href - attribute, but it pre-pends the contextPath. - - - - paramId - false - true - java.lang.String - - The name of the request parameter that will be dynamically added to the generated href URL. The corresponding - value is defined by the paramProperty and (optional) paramName attributes, optionally scoped by the paramScope - attribute. - - - - paramName - false - true - java.lang.String - - The name of a JSP bean that is a String containing the value for the request parameter named by paramId (if - paramProperty is not specified), or a JSP bean whose property getter is called to return a String (if - paramProperty is specified). The JSP bean is constrained to the bean scope specified by the paramScope property, - if it is specified. If paramName is omitted, then it is assumed that the current object being iterated on is the - target bean. - - - - paramProperty - false - true - java.lang.String - - The name of a property of the current object being iterated on, whose return value will be used as the value of - the parameter (named by the paramId attribute) that will be dynamically added to this href URL. If paramName is - also specified the property will not be fetched from the object being iterated on, but from the bean specified - by paramName. The support of paramProperty in conjunction with paramName will be probably removed in future: use - paramProperty only if you need a property in the iterated object, elsewhere use only paramName (you can select a - property using an expression name.property). - - - - paramScope - false - true - java.lang.String - - @deprecated - use Expressions in paramName. The scope within which to search for the bean specified by the - paramName attribute. If not specified, all scopes are searched. If paramName is not provided, then the current - object being iterated on is assumed to be the target bean. - - - - maxLength - false - true - int - - If this attribute is provided, then the column's displayed is limited to this number of characters. An elipse - (...) is appended to the end if this column is linked, and the user can mouseover the elipse to get the full - text. Be careful on using this attribute for String which can contain html tags or entities, or together with - the autolink attribute turned on: displaytag will do its best trying to avoid leaving unclosed tags or broken - entities in the output, but a complex or bad input could lead to unattended results. - - - - maxWords - false - true - int - - If this attribute is provided, then the column's displayed is limited to this number of words. An elipse (...) - is appended to the end if this column is linked, and the user can mouseover the elipse to get the full text. Be - careful on using this attribute for String which can contain html tags or entities, or together with the - autolink attribute turned on: displaytag will do its best trying to avoid leaving unclosed tags or broken - entities in the output, but a complex or bad input could lead to unattended results. - - - - class - false - true - java.lang.String - - html pass through attribute; use this instead of directly coding presentational atttributes. - - - - headerClass - false - true - java.lang.String - "class" html attribute added only for header cells. - - - style - false - true - java.lang.String - html pass through attribute. - - - group - false - true - int - - The grouping level (starting at 1 and incrementing) of this column (indicates if successive contain the same - values, then they should not be displayed). The level indicates that if a lower level no longer matches, then - the matching for this higher level should start over as well. If this attribute is not included, then no - grouping is performed. - - - - decorator - false - true - java.lang.String - - Whitespace separated list of column decorators to apply to the current column. A table decorator name can be the - name of an object in page, request, session or application scope or a fully qualified class name of a class - implementing the org.displaytag.decorator.DisplaytagColumnDecorator interface. If a decorator is specified for - the entire table, then this decorator will decorate that decorator. - - - - sortName - false - true - java.lang.String - - Used with sort="external", the name that should be given to the server to sort this column. IE if - sortName="buzz", then the href for this column to sort will have a parameter d-(encodedId)-s=buzz. If sortName - is ommitted the value for the sort param will default to the column number. - - - - headerScope - false - true - java.lang.String - "scope" html attribute added only for header cells. - - - scope - false - true - java.lang.String - "scope" html attribute. - - - value - false - true - java.lang.Object - - Static value to be used for the column. It has the same meaning of setting a value in the tag body, but values - set using this attribute will not be coerced to Strings. You may need to use the value attribute instead of a - scriptlet in the tag body if you need to calculate totals on numeric values. - - - - - setProperty - org.displaytag.tags.SetPropertyTag - JSP - setProperty - - Sets the indicated property on the enclosing Table tag. MUST be nested within a Table tag. As an alternative, you - may create a property file that holds sitewide defaults; see the configuration documentation or the - DisplayPropertiesLoaderServlet javadoc for information. - - - name - true - true - java.lang.String - The name of the property to set on the enclosing Table tag. - - - value - false - true - java.lang.String - - The value to which the property is set. You can also set the property value in the tag body. - - - - -or -bottom -]]> - - - - footer - org.displaytag.tags.TableFooterTag - JSP - footer - - Tag wich should be nested into a table tag to provide a custom table footer. The body of the tag is into the tfoot - section of the table. The totals variable, if designated, will be in pageContext in this tag. - - - media - false - true - java.lang.String - - Use this attribute to keep a footer from being output during an export. The caption will only render for the - named media type(s) - it won't be added to the table if the current request media is not supported. Can be any - space separated combination of 'html', 'csv', 'xml', 'all', or 'excel'. Defaults to 'all'. See the export page - in the example webapp for more details. - - - - - - - - - Total Bill: - - - - -]]> - - - - caption - org.displaytag.tags.CaptionTag - JSP - caption - - Simple tag which mimics the html caption tag. Use it inside a table tag to display a caption. - - - style - false - true - java.lang.String - html pass through attribute. - - - class - false - true - java.lang.String - html pass through attribute. - - - id - false - true - java.lang.String - html pass through attribute. - - - title - false - true - java.lang.String - html pass through attribute. - - - lang - false - true - java.lang.String - html pass through attribute. - - - dir - false - true - java.lang.String - html pass through attribute. - - - media - false - true - java.lang.String - - Use this attribute to keep a caption from being output during an export. The caption will only render for the - named media type(s) - it won't be added to the table if the current request media is not supported. Can be any - space separated combination of 'html', 'csv', 'xml', 'all', or 'excel'. Defaults to 'all'. See the export page - in the example webapp for more details. - - - - - - - This is the table caption - -]]> - - - \ No newline at end of file diff --git a/webadmin/WebContent/WEB-INF/fmt.tld b/webadmin/WebContent/WEB-INF/fmt.tld deleted file mode 100644 index 8cf5cee642..0000000000 --- a/webadmin/WebContent/WEB-INF/fmt.tld +++ /dev/null @@ -1,686 +0,0 @@ - - - - - JSTL 1.1 i18n-capable formatting library - JSTL fmt - 1.1 - fmt - http://java.sun.com/jsp/jstl/fmt - - - - Provides core validation features for JSTL tags. - - - org.apache.taglibs.standard.tlv.JstlFmtTLV - - - - - - Sets the request character encoding - - requestEncoding - org.apache.taglibs.standard.tag.rt.fmt.RequestEncodingTag - empty - - - Name of character encoding to be applied when - decoding request parameters. - - value - false - true - - - - - - Stores the given locale in the locale configuration variable - - setLocale - org.apache.taglibs.standard.tag.rt.fmt.SetLocaleTag - empty - - - A String value is interpreted as the - printable representation of a locale, which - must contain a two-letter (lower-case) - language code (as defined by ISO-639), - and may contain a two-letter (upper-case) - country code (as defined by ISO-3166). - Language and country codes must be - separated by hyphen (-) or underscore - (_). - - value - true - true - - - - Vendor- or browser-specific variant. - See the java.util.Locale javadocs for - more information on variants. - - variant - false - true - - - - Scope of the locale configuration variable. - - scope - false - false - - - - - - Specifies the time zone for any time formatting or parsing actions - nested in its body - - timeZone - org.apache.taglibs.standard.tag.rt.fmt.TimeZoneTag - JSP - - - The time zone. A String value is interpreted as - a time zone ID. This may be one of the time zone - IDs supported by the Java platform (such as - "America/Los_Angeles") or a custom time zone - ID (such as "GMT-8"). See - java.util.TimeZone for more information on - supported time zone formats. - - value - true - true - - - - - - Stores the given time zone in the time zone configuration variable - - setTimeZone - org.apache.taglibs.standard.tag.rt.fmt.SetTimeZoneTag - empty - - - The time zone. A String value is interpreted as - a time zone ID. This may be one of the time zone - IDs supported by the Java platform (such as - "America/Los_Angeles") or a custom time zone - ID (such as "GMT-8"). See java.util.TimeZone for - more information on supported time zone - formats. - - value - true - true - - - - Name of the exported scoped variable which - stores the time zone of type - java.util.TimeZone. - - var - false - false - - - - Scope of var or the time zone configuration - variable. - - scope - false - false - - - - - - Loads a resource bundle to be used by its tag body - - bundle - org.apache.taglibs.standard.tag.rt.fmt.BundleTag - JSP - - - Resource bundle base name. This is the bundle's - fully-qualified resource name, which has the same - form as a fully-qualified class name, that is, it uses - "." as the package component separator and does not - have any file type (such as ".class" or ".properties") - suffix. - - basename - true - true - - - - Prefix to be prepended to the value of the message - key of any nested <fmt:message> action. - - prefix - false - true - - - - - - Loads a resource bundle and stores it in the named scoped variable or - the bundle configuration variable - - setBundle - org.apache.taglibs.standard.tag.rt.fmt.SetBundleTag - empty - - - Resource bundle base name. This is the bundle's - fully-qualified resource name, which has the same - form as a fully-qualified class name, that is, it uses - "." as the package component separator and does not - have any file type (such as ".class" or ".properties") - suffix. - - basename - true - true - - - - Name of the exported scoped variable which stores - the i18n localization context of type - javax.servlet.jsp.jstl.fmt.LocalizationC - ontext. - - var - false - false - - - - Scope of var or the localization context - configuration variable. - - scope - false - false - - - - - - Maps key to localized message and performs parametric replacement - - message - org.apache.taglibs.standard.tag.rt.fmt.MessageTag - JSP - - - Message key to be looked up. - - key - false - true - - - - Localization context in whose resource - bundle the message key is looked up. - - bundle - false - true - - - - Name of the exported scoped variable - which stores the localized message. - - var - false - false - - - - Scope of var. - - scope - false - false - - - - - - Supplies an argument for parametric replacement to a containing - <message> tag - - param - org.apache.taglibs.standard.tag.rt.fmt.ParamTag - JSP - - - Argument used for parametric replacement. - - value - false - true - - - - - - Formats a numeric value as a number, currency, or percentage - - formatNumber - org.apache.taglibs.standard.tag.rt.fmt.FormatNumberTag - JSP - - - Numeric value to be formatted. - - value - false - true - - - - Specifies whether the value is to be - formatted as number, currency, or - percentage. - - type - false - true - - - - Custom formatting pattern. - - pattern - false - true - - - - ISO 4217 currency code. Applied only - when formatting currencies (i.e. if type is - equal to "currency"); ignored otherwise. - - currencyCode - false - true - - - - Currency symbol. Applied only when - formatting currencies (i.e. if type is equal - to "currency"); ignored otherwise. - - currencySymbol - false - true - - - - Specifies whether the formatted output - will contain any grouping separators. - - groupingUsed - false - true - - - - Maximum number of digits in the integer - portion of the formatted output. - - maxIntegerDigits - false - true - - - - Minimum number of digits in the integer - portion of the formatted output. - - minIntegerDigits - false - true - - - - Maximum number of digits in the - fractional portion of the formatted output. - - maxFractionDigits - false - true - - - - Minimum number of digits in the - fractional portion of the formatted output. - - minFractionDigits - false - true - - - - Name of the exported scoped variable - which stores the formatted result as a - String. - - var - false - false - - - - Scope of var. - - scope - false - false - - - - - - Parses the string representation of a number, currency, or percentage - - parseNumber - org.apache.taglibs.standard.tag.rt.fmt.ParseNumberTag - JSP - - - String to be parsed. - - value - false - true - - - - Specifies whether the string in the value - attribute should be parsed as a number, - currency, or percentage. - - type - false - true - - - - Custom formatting pattern that determines - how the string in the value attribute is to be - parsed. - - pattern - false - true - - - - Locale whose default formatting pattern (for - numbers, currencies, or percentages, - respectively) is to be used during the parse - operation, or to which the pattern specified - via the pattern attribute (if present) is - applied. - - parseLocale - false - true - - - - Specifies whether just the integer portion of - the given value should be parsed. - - integerOnly - false - true - - - - Name of the exported scoped variable which - stores the parsed result (of type - java.lang.Number). - - var - false - false - - - - Scope of var. - - scope - false - false - - - - - - Formats a date and/or time using the supplied styles and pattern - - formatDate - org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag - empty - - - Date and/or time to be formatted. - - value - true - true - - - - Specifies whether the time, the date, or both - the time and date components of the given - date are to be formatted. - - type - false - true - - - - Predefined formatting style for dates. Follows - the semantics defined in class - java.text.DateFormat. Applied only - when formatting a date or both a date and - time (i.e. if type is missing or is equal to - "date" or "both"); ignored otherwise. - - dateStyle - false - true - - - - Predefined formatting style for times. Follows - the semantics defined in class - java.text.DateFormat. Applied only - when formatting a time or both a date and - time (i.e. if type is equal to "time" or "both"); - ignored otherwise. - - timeStyle - false - true - - - - Custom formatting style for dates and times. - - pattern - false - true - - - - Time zone in which to represent the formatted - time. - - timeZone - false - true - - - - Name of the exported scoped variable which - stores the formatted result as a String. - - var - false - false - - - - Scope of var. - - scope - false - false - - - - - - Parses the string representation of a date and/or time - - parseDate - org.apache.taglibs.standard.tag.rt.fmt.ParseDateTag - JSP - - - Date string to be parsed. - - value - false - true - - - - Specifies whether the date string in the - value attribute is supposed to contain a - time, a date, or both. - - type - false - true - - - - Predefined formatting style for days - which determines how the date - component of the date string is to be - parsed. Applied only when formatting a - date or both a date and time (i.e. if type - is missing or is equal to "date" or "both"); - ignored otherwise. - - dateStyle - false - true - - - - Predefined formatting styles for times - which determines how the time - component in the date string is to be - parsed. Applied only when formatting a - time or both a date and time (i.e. if type - is equal to "time" or "both"); ignored - otherwise. - - timeStyle - false - true - - - - Custom formatting pattern which - determines how the date string is to be - parsed. - - pattern - false - true - - - - Time zone in which to interpret any time - information in the date string. - - timeZone - false - true - - - - Locale whose predefined formatting styles - for dates and times are to be used during - the parse operation, or to which the - pattern specified via the pattern - attribute (if present) is applied. - - parseLocale - false - true - - - - Name of the exported scoped variable in - which the parsing result (of type - java.util.Date) is stored. - - var - false - false - - - - Scope of var. - - scope - false - false - - - - diff --git a/webadmin/WebContent/WEB-INF/fn.tld b/webadmin/WebContent/WEB-INF/fn.tld deleted file mode 100644 index 9ca571df4f..0000000000 --- a/webadmin/WebContent/WEB-INF/fn.tld +++ /dev/null @@ -1,222 +0,0 @@ - - - - - JSTL 1.1 functions library - JSTL functions - 1.1 - fn - http://java.sun.com/jsp/jstl/functions - - - - Tests if an input string contains the specified substring. - - contains - org.apache.taglibs.standard.functions.Functions - boolean contains(java.lang.String, java.lang.String) - - <c:if test="${fn:contains(name, searchString)}"> - - - - - - Tests if an input string contains the specified substring in a case insensitive way. - - containsIgnoreCase - org.apache.taglibs.standard.functions.Functions - boolean containsIgnoreCase(java.lang.String, java.lang.String) - - <c:if test="${fn:containsIgnoreCase(name, searchString)}"> - - - - - - Tests if an input string ends with the specified suffix. - - endsWith - org.apache.taglibs.standard.functions.Functions - boolean endsWith(java.lang.String, java.lang.String) - - <c:if test="${fn:endsWith(filename, ".txt")}"> - - - - - - Escapes characters that could be interpreted as XML markup. - - escapeXml - org.apache.taglibs.standard.functions.Functions - java.lang.String escapeXml(java.lang.String) - - ${fn:escapeXml(param:info)} - - - - - - Returns the index withing a string of the first occurrence of a specified substring. - - indexOf - org.apache.taglibs.standard.functions.Functions - int indexOf(java.lang.String, java.lang.String) - - ${fn:indexOf(name, "-")} - - - - - - Joins all elements of an array into a string. - - join - org.apache.taglibs.standard.functions.Functions - java.lang.String join(java.lang.String[], java.lang.String) - - ${fn:join(array, ";")} - - - - - - Returns the number of items in a collection, or the number of characters in a string. - - length - org.apache.taglibs.standard.functions.Functions - int length(java.lang.Object) - - You have ${fn:length(shoppingCart.products)} in your shopping cart. - - - - - - Returns a string resulting from replacing in an input string all occurrences - of a "before" string into an "after" substring. - - replace - org.apache.taglibs.standard.functions.Functions - java.lang.String replace(java.lang.String, java.lang.String, java.lang.String) - - ${fn:replace(text, "-", "•")} - - - - - - Splits a string into an array of substrings. - - split - org.apache.taglibs.standard.functions.Functions - java.lang.String[] split(java.lang.String, java.lang.String) - - ${fn:split(customerNames, ";")} - - - - - - Tests if an input string starts with the specified prefix. - - startsWith - org.apache.taglibs.standard.functions.Functions - boolean startsWith(java.lang.String, java.lang.String) - - <c:if test="${fn:startsWith(product.id, "100-")}"> - - - - - - Returns a subset of a string. - - substring - org.apache.taglibs.standard.functions.Functions - java.lang.String substring(java.lang.String, int, int) - - P.O. Box: ${fn:substring(zip, 6, -1)} - - - - - - Returns a subset of a string following a specific substring. - - substringAfter - org.apache.taglibs.standard.functions.Functions - java.lang.String substringAfter(java.lang.String, java.lang.String) - - P.O. Box: ${fn:substringAfter(zip, "-")} - - - - - - Returns a subset of a string before a specific substring. - - substringBefore - org.apache.taglibs.standard.functions.Functions - java.lang.String substringBefore(java.lang.String, java.lang.String) - - Zip (without P.O. Box): ${fn:substringBefore(zip, "-")} - - - - - - Converts all of the characters of a string to lower case. - - toLowerCase - org.apache.taglibs.standard.functions.Functions - java.lang.String toLowerCase(java.lang.String) - - Product name: ${fn.toLowerCase(product.name)} - - - - - - Converts all of the characters of a string to upper case. - - toUpperCase - org.apache.taglibs.standard.functions.Functions - java.lang.String toUpperCase(java.lang.String) - - Product name: ${fn.UpperCase(product.name)} - - - - - - Removes white spaces from both ends of a string. - - trim - org.apache.taglibs.standard.functions.Functions - java.lang.String trim(java.lang.String) - - Name: ${fn.trim(name)} - - - - diff --git a/webadmin/WebContent/WEB-INF/jsp/common/layoutmain.jsp b/webadmin/WebContent/WEB-INF/jsp/common/layoutmain.jsp deleted file mode 100644 index 10685cb945..0000000000 --- a/webadmin/WebContent/WEB-INF/jsp/common/layoutmain.jsp +++ /dev/null @@ -1,83 +0,0 @@ -<%@page contentType="text/html;charset=ISO-8859-1" language="java"%> -<%@include file="/WEB-INF/jsp/common/taglibs.jsp"%> -<% - String ua = request.getHeader("User-Agent").toLowerCase(); - boolean mobile = ua.matches("(?i).*(android.+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino).*") || ua.substring(0, 4).matches("(?i)1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-"); - pageContext.setAttribute("mobile", mobile); -%> - - - - - - Mirth Connect Web Administrator - - - - - - - - -
- -
- - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/webadmin/WebContent/WEB-INF/jsp/common/taglibs.jsp b/webadmin/WebContent/WEB-INF/jsp/common/taglibs.jsp deleted file mode 100644 index 9dc06cfc7b..0000000000 --- a/webadmin/WebContent/WEB-INF/jsp/common/taglibs.jsp +++ /dev/null @@ -1,7 +0,0 @@ -<%@taglib prefix="s" uri="http://stripes.sourceforge.net/stripes.tld"%> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> -<%@taglib prefix="d" uri="http://displaytag.sf.net"%> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> - - \ No newline at end of file diff --git a/webadmin/WebContent/WEB-INF/jsp/dashboardstatistics.jsp b/webadmin/WebContent/WEB-INF/jsp/dashboardstatistics.jsp deleted file mode 100644 index 95d0cf88e3..0000000000 --- a/webadmin/WebContent/WEB-INF/jsp/dashboardstatistics.jsp +++ /dev/null @@ -1,207 +0,0 @@ -<%@include file="/WEB-INF/jsp/common/taglibs.jsp"%> - - - - - - - - - - -
- × -

Error connecting to Server. Refresh the page or Login

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameStatusReceivedFilteredQueuedSentErrored
${dashboardStatus.name}${deployedStatus}${dashboardStatus.statistics[RECEIVED]}${dashboardStatus.statistics[FILTERED]}${dashboardStatus.queued}${dashboardStatus.statistics[SENT]} style="background-color:LightPink;" > ${dashboardStatus.statistics[ERROR]}
${childStatus.name}${deployedStatus}${childStatus.statistics[RECEIVED]}${childStatus.statistics[FILTERED]}${childStatus.queued}${childStatus.statistics[SENT]} style="background-color:LightPink;" > ${childStatus.statistics[ERROR]}
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/webadmin/WebContent/WEB-INF/jsp/index.jsp b/webadmin/WebContent/WEB-INF/jsp/index.jsp deleted file mode 100644 index 57cabbab28..0000000000 --- a/webadmin/WebContent/WEB-INF/jsp/index.jsp +++ /dev/null @@ -1,323 +0,0 @@ -<%@include file="/WEB-INF/jsp/common/taglibs.jsp"%> - - - - - - - Mirth Connect Administrator - - - - - - - - - - - - onload="document.loginform.username.focus();"> -
-
-
- -
- -
-

Mirth Connect Administrator

- -
-
- Click the big green button below, and choose to open the file with the Administrator Launcher instead of using Java Web Start. If you don't have the Administrator Launcher installed, click the big blue button below. -
- Launch Mirth Connect Administrator - -
- -
-
- Mirth Connect Administrator Launcher:
This is a separate application that replaces
Java Web Start and allows you to launch the Administrator from your local workstation. -
- Download Administrator Launcher - -
-
- -
-

Web Dashboard Sign in

- - - -
-
-

Invalid login credentials

-
-
-
- - - - -
- Security Reminder:
Sign out of your account when you finish your session. -
-
-
-
- -
-
-
- -
-

The Mirth Connect Web Dashboard must be accessed over HTTPS. Click below button to switch to the secure site.

-
-
Note:
You may see a certificate error if your server is using a self-signed certificate. To prevent further warnings, you can add this certificate to your browser or operating system. -
-
- -
-
-
-
-
-
-

© 2024 NextGen Healthcare | Mirth Connect

-
- - - - - - \ No newline at end of file diff --git a/webadmin/WebContent/WEB-INF/lib/commons-logging-1.2.jar b/webadmin/WebContent/WEB-INF/lib/commons-logging-1.2.jar deleted file mode 100644 index 93a3b9f6db..0000000000 Binary files a/webadmin/WebContent/WEB-INF/lib/commons-logging-1.2.jar and /dev/null differ diff --git a/webadmin/WebContent/WEB-INF/lib/displaytag-1.2.jar b/webadmin/WebContent/WEB-INF/lib/displaytag-1.2.jar deleted file mode 100644 index 4f379bdf3b..0000000000 Binary files a/webadmin/WebContent/WEB-INF/lib/displaytag-1.2.jar and /dev/null differ diff --git a/webadmin/WebContent/WEB-INF/lib/json-simple-1.1.1.jar b/webadmin/WebContent/WEB-INF/lib/json-simple-1.1.1.jar deleted file mode 100644 index 66347a6c86..0000000000 Binary files a/webadmin/WebContent/WEB-INF/lib/json-simple-1.1.1.jar and /dev/null differ diff --git a/webadmin/WebContent/WEB-INF/lib/stripes.jar b/webadmin/WebContent/WEB-INF/lib/stripes.jar deleted file mode 100644 index 503124f35e..0000000000 Binary files a/webadmin/WebContent/WEB-INF/lib/stripes.jar and /dev/null differ diff --git a/webadmin/WebContent/WEB-INF/stripes.tld b/webadmin/WebContent/WEB-INF/stripes.tld deleted file mode 100644 index dfe13807ac..0000000000 --- a/webadmin/WebContent/WEB-INF/stripes.tld +++ /dev/null @@ -1,2262 +0,0 @@ - - - - - - - - Provides tags for use with the Stripes presentation framework. There are three main - groups of tags in this tag library. First come the HTML form tags. These include - the form tag itself as well as tags for most of the input tag variants. The second - is a set of tags for output error information, including 'errors', 'individual-error' - and others. Last is a set of utility tags. These include the wizard-fields tag which - can write out hidden fields for values in the request, the useActionBean tag to use - ActionBeans as view helpers and the link tags for generating links similar to forms. - - Stripes Tag Library - 1.0 - stripes - http://stripes.sourceforge.net/stripes.tld - - - Tag that generates HTML form fields of type - <input type="button" ... /> which render buttons for submitting forms. - The only capability offered above and beyond a pure html tag is the ability to lookup - the value of the button (i.e. the text on the button that the user sees) from a - localized resource bundle.

- -

The tag will set its value using the first non-null result from the following list:

-
    -
  • resource: {actionFQN}.{buttonName}
  • -
  • resource: {actionPath}.{buttonName} (deprecated)
  • -
  • resource: {buttonName}
  • -
  • the body of the tag
  • -
  • the value attribute of the tag
  • -
- ]]>
- button - button - net.sourceforge.stripes.tag.InputButtonTag - JSP - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - A default value for the form field. Can be a literal value, or an EL expression.valuefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Implements an HTML tag that generates form fields of type <input type=" - checkbox"/>. - Since a single checkbox widget on a HTML page can have only a single value, the value tag - attribute must always resolve to a scalar value which will be converted to a String using - the Stripes Formatting system, or by caling toString() if an appropriate Formatter is - not found.

- -

Checkboxes are commonly used in two ways. The first and simplest case uses a single - checkbox to set a boolean or Boolean value on the ActionBean. To do this use the - following syntax:

- -
<stripes:checkbox name="likesChocolate"/>
- -

When the value attribute is omitted, as above, the checkbox defaults to - the simple behaviour of sending "true" to the server when checked and nothing to the - server when unchecked. For this reason it is best to use boolean values, - or Boolean values initialized to Boolean.FALSE.

- -

The other common usage is to use checkboxes in a manner similar to a multi-select. - For example:

- -
-<stripes:checkbox name="likes" value="chocolate"/>
-<stripes:checkbox name="likes" value="marshmallows"/>
-<stripes:checkbox name="likes" value="ice cream"/>
-
- -

In this case there are multiple checkboxes each with the same name, but different - values. A value is submitted to the server for each checked checkbox, and normally - bound to an array or List property on the ActionBean.

- -

Checkboxes perform automatic (re-)population of state. They prefer, in order, values - in the HttpServletRequest, values in the ActionBean and lastly values set using - checked="" on the page. The "checked" attribute is a complex - attribute and may be a Collection, an Array or a scalar Java Object. In the first - two cases a check is performed to see if the value in the value="foo" - attribute is one of the elements in the checked collection or array. In the last case, - the value is matched directly against the String form of the checked attribute. - If in any case a checkbox's value matches then a checked="checked" - attribute will be added to the HTML written.

- -

The tag may include a body and if present the body is converted to a String and - overrides the checked tag attribute.

- ]]>
- checkbox - checkbox - net.sourceforge.stripes.tag.InputCheckBoxTag - JSP - - - - References either a scalar object/String or an Array or a Collection. If the value - of the checkbox is found to equal or be contained by the 'checked' object then the - checkbox will default to rendering as checked. - - checked - false - true - java.lang.Object - - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - - true (or more - correctly Boolean.TRUE). While other inputs like text and password repopulate their - state into the value attribute, this is not the case with checkbox, where the value - is an invariant. - ]]> - value - false - true - java.lang.Object - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - The errors tag has two modes, one where it displays all validation errors in a list - and a second mode when there is a single enclosed field-error tag that has no name attribute - in which case this tag iterates over the body, displaying each error in turn in place - of the field-error tag.

- -

In the first mode, where the default output is used, it is possible to change the output - for the entire application using a set of resources in the error messages bundle - (StripesResources.properties unless you have configured another). If the properties are - undefined, the tag will output the text "Validation Errors" in a div with css class errorHeader, - then output an unordered list of error messages. The following four resource strings - (shown with their default values) can be modified to create different default ouput:

- -
    -
  • stripes.errors.header=<div class="errorHeader">Validation Errors</div><ul>
  • -
  • stripes.errors.footer=</ul>
  • -
  • stripes.errors.beforeError=<li>
  • -
  • stripes.errors.afterError=</li>
  • -
- -

The second mode allows customization of the output for a specific page by nesting - the following tag inside the errors tag: <stripes:individual-error>, - <stripes:error-header> and <stripes:error-footer>. An example, re-creating - the default output using this technique follows:

- -
<stripes:errors>
-     <stripes:errors-header><div class="errorHeader">Validation Errors</div><ul></stripes:errors-header>
-     <li><stripes:individual-error/></li>
-     <stripes:errors-footer></ul></stripes:errors-footer>
-</stripes:errors>
-
- -

The errors tag can be used to display errors for a single field by supplying it - with a 'field' attribute which matches the name of a field on the page. In this case the tag - will display only if errors exist for the named field. In this mode the tag will first look for - resources named:

- -
    -
  • stripes.fieldErrors.header
  • -
  • stripes.fieldErrors.footer
  • -
  • stripes.fieldErrors.beforeError
  • -
  • stripes.fieldErrors.afterError
  • -
- -

If the fieldErrors resources cannot be found, the tag will default to using the - sames resources and defaults as when displaying for all fields.

- -

Similar to the above, field specific, manner of display the errors tag can also be used - to output only errors not associated with a field, i.e. global errors. This is done by setting - the globalErrorsOnly attribute to true.

- -

This tag has several ways of being attached to the errors of a specific action request. - If the tag is inside a form tag, it will display only errors that are associated - with that form. If supplied with an 'action' attribute, it will display errors only errors - associated with a request to that URL. Finally, if neither is the case, it will display - errors associated with the action bean for the current request.

- - ]]>
- errors - errors - net.sourceforge.stripes.tag.ErrorsTag - net.sourceforge.stripes.tag.ErrorsTagExtraInfo - JSP - - - If supplied, the errors tag will only output errors for a form that posted to the - supplied action path. Can be used when there are multiple forms on the page and - you wish to display errors in different places for each form, but not necessarily - inside of the form tags. - - actionfalsetrue - - - - The fully qualified name of an ActionBean class, or alternatively a Class instance - for an ActionBean class. An alternative to the 'action' attribute, the 'beanclass' - attribute will generate an action appropriate for the ActionBean identified. Note - that if an "ActionBean" that does not yet exist is identified an exception will - be thrown! - - beanclassfalsetrue - java.lang.Object - - - - If supplied, the errors tag will only output errors associated with the - named field. - - fieldfalsetrue - - - - If set to true then the tag will display only errors that are not directly - associated with a field, i.e. global errors. - - globalErrorsOnlyfalsetrue - -
- - - - Tag contents are displayed only when showing the last row of an errors tag. - - errors-footer - errors-footer - net.sourceforge.stripes.tag.ErrorsFooterTag - JSP - - - - - Tag contents are displayed only when showing the first row of an errors tag. - - errors-header - errors-header - net.sourceforge.stripes.tag.ErrorsHeaderTag - JSP - - - - Tag that generates HTML form fields of type <input type="file" ... />. - The only functionality provided above and beyond a straight HTML input tag is that the - tag will find its enclosing form tag and ensure that the for is set to POST instead of - GET, and that the encoding type of the form is properly set to multipart/form-data as - both these settings are necessary to correctly perform file uploads.

- -

Does not perform repopulation because default values for - <input type="file"/> are not allowed by the HTML specification. One - can only imagine this is because a malicous page author could steal a user's files by - defaulting the value and using JavaScript to auto-submit forms! As a result the tag - does not accept a body because it would have no use for any generated content.

- ]]>
- file - file - net.sourceforge.stripes.tag.InputFileTag - empty - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - - A comma separated list of mime-types accepted for file uploads. (HTML Pass-through) - acceptfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - - Stripes' HTML form tag. Provides a standard HTML form tag interface, but allows - other stripes input tags to re-populate their values. Also includes a hidden field in - the form for the page name that the form is being rendered on (to allow forwarding to - the same page in the case of a validation error. - - form - form - net.sourceforge.stripes.tag.FormTag - JSP - - - - The URL to which this form will post. Expected to be a web-app relative path - the - tag will prepend the context path to any action that begins with a slash and does - not already begin with the context path. Should match a URL to which an ActionBean - has been bound. Required unless 'beanclass' is provided. - - actionfalsetrue - - - - The fully qualified name of an ActionBean class, or alternatively a Class instance - for an ActionBean class. An alternative to the 'action' attribute, the 'beanclass' - attribute will generate an action appropriate for the ActionBean identified. Note - that if an "ActionBean" that does not yet exist is identified an exception will - be thrown! - - beanclassfalsetrue - java.lang.Object - - - - The name of the form field that should receive focus when the page is loaded. Two - special values are recognized, 'first' and the empty string; these values cause - the form to set focus on the first element in the form. If any value is set, - and the form has validation errors, the behaviour is altered and the first field - with validation errors is focused instead. - - focusfalsetrue - java.lang.String - - - A comma separated list of content types that it is acceptable to submit through this form. (HTML Pass-through) - acceptfalsetrue - - - A comma separated list of possible character sets for form data. Will be written to the page as accept-charset. (HTML Pass-through) - acceptcharsetfalsetrue - - - - The mime type used to encode the content of this form. This value will be overridden if one or more Stripes - file input tags is used within the body of the form. - - enctypefalsetrue - - - The HTTP method used for sending data to the server. Options are GET and POST. Default is POST. (HTML Pass-through) - methodfalsetrue - - - The unique name of the form. (HTML Pass-through) - namefalsetrue - - - Where the target URL is to be opened. One of _blank, _self, _parent and _top. (HTML Pass-through) - targetfalsetrue - - - - Scripting code run when the form is reset. (HTML Pass-through) - onresetfalsetrue - - - Scripting code run prior to the form being submitted to the server, (HTML Pass-through) - onsubmitfalsetrue - - - - partialfalsetrue - - - - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false - - - - Generates one or more <input type="hidden" ... /> HTML tags based on - the value supplied. The hidden tag assigns the value attribute by scanning in the - following order: -
    -
  • for one or more values with the same name in the HttpServletRequest
  • -
  • for a field on the ActionBean with the same name (if a bean instance is present)
  • -
  • by collapsing the body content to a String, if a body is present
  • -
  • referring to the result of the EL expression contained in the value attribute of the tag.
  • -
-

- -

The result of this scan can produce either a Collection, an Array or any other - Object. In the first two cases the tag will output an HTML hidden form field tag for - each value in the Collection or Array. In all other cases the Object is toString()'d - (unless it is null) and a single hidden field will be written.

- ]]>
- hidden - hidden - net.sourceforge.stripes.tag.InputHiddenTag - JSP - - - The name of the form field.nametruetrue - - A default value for the form field. Can be a literal value, or an EL expression. - value - false - true - java.lang.Object - - - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Tag that generates an image input button for use in HTML forms, e.g:

- -
<input name="foo" type="image" src="/app/foo.gif" alt="foo"/>
- -

Provides a couple of facilities above and beyond using the plain HTML tag. The main - advantage is a localization capability. The tag looks in the Stripes Field Name - message bundle for resources to be used as the src URL for the image and the - alt text of the image. In order it will look for and use:

- -
    -
  • resource: actionFQN.inputName.[src|alt]
  • -
  • resource: actionPath.inputName.[src|alt] (deprecated)
  • -
  • resource: inputName.[src|alt]
  • -
  • tag attributes: src and alt -
- -

If localized values exist these are preferred over the values specified directly - on the tag.

- -

Additionally if the 'src' URL (whether acquired from the tag attribute or the - resource bundle) starts with a slash, the tag will prepend the context path of the - web application.

- ]]>
- image - image - net.sourceforge.stripes.tag.InputImageTag - empty - - - The name of the form field.nametruetrue - - A symbolic value that will get submitted to the server when the image button is clicked. (HTML Pass-through) - valuefalsetruejava.lang.String - - - - Defines the alignment of text following the image. Deprecated, use style instead. (HTML Pass-through) - alignfalsetrue - - - - The alternative text for the image button. Used only if a localized value cannot be found as described - in the in the tag description. (HTML Pass-through) - - altfalsetrue - - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - The src URL for the image button. If the value starts with a slash it will have the context path - prepended. Used only if a localized value cannot be found as described in the tag description. (HTML Pass-through) - - srcfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - - Placeholder tag that is to be used only inside of a errors tag. When nested inside - an errors tag, causes the errors tag to operate as an iterator, outputting its body - for each error present, placing the text of the error where the individual-error tag - is found. - - individual-error - individual-error - net.sourceforge.stripes.tag.IndividualErrorTag - empty - - - - Label tag that can look up localized field labels and render differently when the - labelled field is in error. While the label field is usually used to generated form - field labels, it can be used to generate HTML label tags with arbitrary localized or - non-localized values.

- -

It is important to understand the relationship between the name and - for attributes of the stripes:label tag. The for attribute - is used directly to generated the for attribute of the generated HTML - label tag, and as such should correspond to the HTML id attribute - of the input tag for which it is a label. If the name attribute is omitted - then the value of the for attribute will also be used as the name - attribute.

- -

The value of the label is set by searching for a non-null value in the following - order:

- -
    -
  • resource: {actionFQN}.{name}
  • -
  • resource: {actionPath}.{name} (deprecated)
  • -
  • resource: {name}
  • -
  • The body of the label tag
  • -
  • A warning message telling you to supply a label value somewhere!
  • -
- -

In the case of indexed or mapped form fields (e.g. foo[3].bar) the - indexing and mapping will be removed from the name prior to using it to lookup - labels (e.g. foo.bar). This is done to remain consistent with the way - field names are looked up for error messages.

- -

It should be noted that in cases where a form field and HTML control are - one-to-one (e.g. text, password, select) the name of the label will usually equal - the name of the control. However, this need not be the case. You may use any value - for the name of the label, but the label will only perform error rendering - correctly if the name is equal to the name of the form field being labelled. To - illustrate this point consider the following example:

- -
-<th>
-    <stripes:label for="bug.status"/>:
-</th>
-<td>
-    <c:forEach var="status" items="<%=Status.values()%>">
-        <stripes:radio id="bug.status.${stripes:enumName(status)}"
-                       name="bug.status"
-                       value="${stripes:enumName(status)}"/>
-        <stripes:label for="bug.status.${stripes:enumName(status)}">
-            ${stripes:enumName(status)}
-        </stripes:label>
-    </c:forEach>
-</td>
-
- -

The above example uses one label tag at the top (with for="bug.status") that - labels a row in the table and will display differently when the bug.status field - is in error. It then employs a label tag for each radio button. These are bound to the - individual radio buttons (clicking on the label will select the appropriate radio button), - and default to the name of the enum value if a localized name isn't found. Since these - labels do not match the field name exactly, they will not render differently when the - field is in error.

- ]]>
- label - label - net.sourceforge.stripes.tag.InputLabelTag - JSP - - - - The name of the field being labelled (or of the label if it is not specific to a - field) if the name of the field is not the same as the HTML id of the field. If the - name and id are the same, the for attribute should be used alone. - - name - false - true - - - - - The HTML id of the field/control being labelled. If the name attribute is - omitted, the value of this attribute will also be used as the name. - - for - false - true - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Tag that generates HTML links, used for linking to pages and ActionBean events - within a Stripes application. Works in concert with zero or more nested param tags - in order to allow addition of arbitrary parameters to any URL. The body of the tag, - minus any param tags, is trimmed for whitespace at either end, and is then used - as the contents of the link body.

- -

There are two attributes which are not a mirrors of attributes on the HTML anchor - tag. The first is the 'event' attribute. This allows specification of a specific event - to trigger when linking to an ActionBean URL. The second is 'beanclass' which allows - the specification of the class name or Class instance for an ActionBean as an - alternative to specifying the 'href' attribute.

- ]]>
- link - link - net.sourceforge.stripes.tag.LinkTag - JSP - - - - The (optional) event that should be fired if the link is to an ActionBean. If not - supplied then the tag will not render an explicit event (but one may by built in - to the URL/href supplied). - - eventfalsetrue - - - - Indicates if the _sourcePage parameter should be appended to the URL. Default - value is false. - - addSourcePagefalsetrue - - - - Indicates if the application context path should be included at the beginning of - the generated URL. - - prependContextfalsetrue - java.lang.Boolean - - - - The fully qualified name of an ActionBean class, or alternatively a Class instance - for an ActionBean class. An alternative to the 'href' attribute, the 'beanclass' - attribute will generate an href appropriate for the ActionBean identified. Note - that if an ActionBean that does not yet exist is identified an exception will - be thrown! - - beanclassfalsetrue - java.lang.Object - - - - The (optional) anchor that is appended at the end of the generated URL. - If the URL specified by the value attribute already contains the anchor then - the anchor specified by this attribute takes precedence. - - anchorfalsetrue - - - The character set used to encode the referenced page. (HTML Pass-through) - charsetfalsetrue - - - Used to define a region for clicking in an image map. (HTML Pass-through) - coordsfalsetrue - - - - The target URL. If the URL starts with a slash and does not contain the current - web application context path, then the context path will be prepended to the URL. - (HTML Pass-through) - - hreffalsetrue - - - The language of the target page. (HTML Pass-through) - hreflangfalsetrue - - - The name of an anchor. (HTML Pass-through) - namefalsetrue - - - - Specified the relationship between the current page and the target URL. - (HTML Pass-through) - - relfalsetrue - - - Like rel, but in reverse. - revfalsetrue - - - Used to define a shape within an image map. - shapefalsetrue - - - The frame or window in which the link will open. - targetfalsetrue - - - The MIME type of the target URL. - typefalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Displays a list of non-error messages to the user. The list of messages can come from - either the request (preferred) or the session (checked 2nd). Lists of messages can be stored - under any arbitrary key in request or session and the key can be specified to the messages - tag. If no key is specified then the default key (and therefore default set of messages) is - used. Note that by default the ActionBeanContext stores messages in a flash scope which - causes them to be exposed as request attributes in both the current and subsequent requests - (assuming a redirect is used).

- -

While similar in concept to the ErrorsTag, the MessagesTag is significantly simpler. It deals - with a List of Message objects, and does not understand any association between messages and - form fields, or even between messages and forms. It is designed to be used to show arbitrary - messages to the user, the prime example being a confirmation message displayed on the subsequent - page following an action.

- -

The messages tag outputs a header before the messages, the messages themselves, and a footer - after the messages. Default values are set for each of these four items. Different values - can be specified in the error messages resource bundle (StripesResources.properties unless you - have configured another). The default configuration would look like this: - -

    -
  • stripes.messages.header=<ul class="messages">
  • -
  • stripes.messages.footer=</ul>
  • -
  • stripes.messages.beforeMessage=<li>
  • -
  • stripes.messages.afterMessage=</li>
  • -
- -

It should also be noted that while the errors tag supports custom headers and footers - through the use of nested tags, the messages tag does not support this. In fact the - messages tag does not support body content at all - it will simply be ignored.

- ]]>
- messages - messages - net.sourceforge.stripes.tag.MessagesTag - empty - - - The name of the request or session attribute that the tag will use to find - messages for display. - - key - false - true - -
- - - Generates an <option value="foo">Fooey</option> HTML tag. - Coordinates with an enclosing select tag to determine its state (i.e. whether or not - it is selected.) As a result some of the logic regarding state repopulation is a bit - complex.

- -

Since options can have only a single value per option the value attribute of the tag - must be a scalar, which will be converted into a String using a Formatter if an - appropriate one can be found, otherwise the toString() method will be invoked.The - presence of a "selected" attribute is used as an indication that this option - believes it should be selected by default - the value (as opposed to the presence) - of the selected attribute is never used....

- -

The option tag delegates to its enclosing select tag to determine whether or not it - should be selected. See the stripes:select for documentation on how it determines - selection status. If the select tag has no opinion on selection state - (note that this is not the same as select tag deeming the option should not be selected) - then the presence of the selected attribute (or lack thereof) is used to turn selection - on or off.

- -

If the option has a body then the String value of that body will be used to generate - the body of the generated HTML option. If the body is empty or not present then the - label attribute will be written into the body of the tag.

- -

If the label attribute's value is used, it will be HTML-encoded before being written - out. However, the tag body, if present, will not be HTML-encoded. This allows - the explicit use of HTML character entities within the tag, which would be impossible - otherwise. If you choose to set the tag body and you want the output to be HTML-encoded, - you must use something like the escapeXml attribute of the <c:out> tag to - HTML-encode the value before passing it to <stripes:option>.

- ]]>
- option - option - net.sourceforge.stripes.tag.InputOptionTag - JSP - - - - The value that will be submitted to the server if this option is selected. Will be - rendered as a String using the Stripes Formatting service, which will apply a - formatter if an applicable one is found, or call toString() if one is not. - - value - false - true - java.lang.Object - - - A value to use as the body of the generated HTML label tag. - labelfalsetrue - - - - If present, and the parent select tag had no value= attribute, causes - the option to be selected by default. The value is ignored, only presence in meaningful. - - selectedfalsetrue - - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Writes a set of <option value="foo">bar</option> tags to the - page based on the contents of a Collection, Iterable or Array. Each element in the collection is - represented by a single option tag on the page. Uses the label and value attributes - on the tag to name the properties of the objects in the Collection that should be used - to generate the body of the HTML option tag and the value attribute of the HTML option - tag respectively. If either (or both) of the label or value properties are ommitted - the item itself will be used for the label/value instead - this is done to support - collections of simple types like Strings and Numbers.

- -

E.g. a tag declaration that looks like:

-
<stripes:options-collection collection="${cats}" value="catId" label="name"/>
- -

would cause the container to look for a Collection called "cats" across - the various JSP scopes and set it on the tag. The tag would then proceed to iterate - through that collection calling getCatId() and getName() on each cat to produce - HTML option tags.

- -

The tag will attempt to localize the labels attributes of the option tags that are - generated. To do this it will look up labels in the field resource bundle using:

- -
    -
  • {className}.{labelPropertyValue}
  • -
  • {packageName}.{className}.{labelPropertyValue}
  • -
  • {className}.{valuePropertyValue}
  • -
  • {packageName}.{className}.{valuePropertyValue}
  • -
- -

For example for a class com.myco.Gender supplied to the options-collection tag with - label="description" and value="key", when rendering for an instance - Gender[key="M", description="Male"] the following localized properites will be looked for: - -

    -
  • Gender.Male
  • -
  • com.myco.Gender.Male
  • -
  • Gender.M
  • -
  • com.myco.Gender.M
  • -
- -

If no localized label can be found then the value of the label property will be used.

- -

Optionally, the group attribute may be used to generate <optgroup> tags. The value of - this attribute is used to retrieve the corresponding property on each object of the collection. - A new optgroup will be created each time the value changes. -

- -

The rendered group may be localized by specifying one of the following properties:

- -
    -
  • {className}.{groupPropertyValue}
  • -
  • {packageName}.{className}.{groupPropertyValue}
  • -
- -

All other attributes on the tag (other than collection, value, label and group) are passed directly - directly through to the stripes:option tag which is used to generate the individual - HTML options tags. As a result the stripes:options-collection will exhibit the - same re-population/selection behaviour as the regular options tag.

- -

Since the tag has no use for one it does not allow a body.

- ]]>
- options-collection - options-collection - net.sourceforge.stripes.tag.InputOptionsCollectionTag - empty - - - - The name of the property (of the beans in the collection) that should be used to - generate the value of each option (i.e. the value that is sent to the server). - - valuefalsetrue - - - The name of the property (of the beans in the collection) that should be used to - generate the label of each option (i.e. the text displayed to the user). - - labelfalsetrue - - - - A comma separated list of bean properties by which the collection - should be sorted before rendering the options. Special values of - 'label' and 'value' indicate that the options should be sorted by the - label and value respectively - even when using localized or derived values. - - sortfalsetrue - - - - The 'collection' of beans to use to generate options. This value must resolve to - one of the following: a real java.util.Collection, an instance of - java.lang.Iterable or an array. It will therefore most often be an EL expression - (or a scriptlet, if you must). - - collection - true - true - java.lang.Object - - - - groupfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Writes a set of <option value="foo">bar</option> tags to the - page based on the contents of a Map. Each Map.Entry in the Map is represented by a single - option tag on the page. Uses the label and value attributes on the tag to name the - properties of the objects in the Map.Entry that should be used to generate the body of the - HTML option tag and the value attribute of the HTML option tag respectively. If either - (or both) of the label or value properties are ommitted the Map.Entry value or key will - be used respectively.

- -

E.g. a tag declaration that looks like:

-
<stripes:options-map map="${cats}"/>
- -

would cause the container to look for a Map called "cats" across - the various JSP scopes and set it on the tag. The tag would then proceed to iterate - through that Map calling getKey() and getValue() on each cat to produce HTML option tags.

- -

The tag will attempt to localize the labels attributes of the option tags that are - generated. To do this it will look up labels in the field resource bundle. If no - localized label can be found then the value of the label property will be used.

- -

All other attributes on the tag (other than map, label, and sort) are passed - directly through to the stripes:option tag which is used to generate the individual - HTML options tags. As a result the stripes:options-map will exhibit the - same re-population/selection behaviour as the regular options tag.

- -

Since the tag has no use for one it does not allow a body.

- ]]>
- options-map - options-map - net.sourceforge.stripes.tag.InputOptionsMapTag - empty - - - - The name of the property (of the map entry) that should be used to generate - the label of each option (i.e. the text displayed to the user). Defaults - to "value". - - labelfalsetrue - - - - The name of the property (of the map entry) that should be used to - generate the value of each option (i.e. the value that is sent to the server). - Defaults to "key". - - valuefalsetrue - - - - A comma separated list of bean properties by which the collection - should be sorted before rendering the options. Special values of - 'label' and 'value' indicate that the options should be sorted by the - label and value respectively - even when using localized or derived values. - - sortfalsetrue - - - - The Map to use to generate options. - - map - true - true - java.util.Map - - - - groupfalsetrue - - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Writes a set of <option value="foo">bar</option> tags to the page based on the - values of a enum. Each value in the enum is represented by a single option tag on the page. The - options will be generated in ordinal value order (i.e. the order they are declared in the - enum).

- -

The label (the value the user sees) is generated in one of three ways: by looking up a - localized value, by using the property named by the 'label' tag attribute if it is supplied - and lastly by toString()'ing the enumeration value. For example the following tag:

- -
<stripes:options-enumeration enum="net.kitty.EyeColor" label="description"/>
- - when generating the option for the value EyeColor.BLUE will look for a label in the - following order:

- -
    -
  • resource: EyeColor.BLUE
  • -
  • resource: net.kitty.EyeColor.BLUE
  • -
  • property: EyeColor.BLUE.getDescription() (because of the label="description" above)
  • -
  • failsafe: EyeColor.BLUE.toString()
  • -
- -

If the class specified does not exist, or does not specify a Java 1.5 enum then a - JspException will be raised.

- -

All attributes of the tag, other than enum and label, are passed directly through to - the <stripes:option/> which is used to generate the individual HTML - options tags. As a result the <stripes:options-enumeration/> will exhibit - the same re-population/selection behaviour as the regular options tag.

- -

Since the tag has no use for one it does not allow a body.

- ]]>
- options-enumeration - options-enumeration - net.sourceforge.stripes.tag.InputOptionsEnumerationTag - empty - - - - The fully qualified name of a Class that is a JDK1.5 enum. - - enumtruetrue - - - - The name of the property to be used at the label of each option. If not specifed, - and no localized value can be found, the toString() method will be called on the - enumerated objects to supply the user-visible text. - - labelfalsetrue - - - - A comma separated list of bean properties by which the enum values - should be sorted before rendering the options. Special values of - 'label' and 'value' indicate that the options should be sorted by the - label and value respectively - even when using localized or derived values. - - sortfalsetrue - - - - groupfalsetrue - - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - - param - param - net.sourceforge.stripes.tag.ParamTag - JSP - - The name of the parameter. - name - true - true - - - The value (or values) of the parameter. - value - false - true - java.lang.Object - - - - - Tag that generates HTML form fields of type - <input type="password" name="foo" value="bar"/>, - which can optionally re-populate their value, and provide error display/formatting - consistent with the rest of the Stripes input tags. Password tags may have only a single - value, whose default may be set using either the body of the tag, or using the - value="" attribute of the tag. At runtime the contents of the text field are - determined by looking first for a non-null body and if one is not found, then a - non-null value attribute.

- -

Repopulation of values for password tags is optional, and by default is not - performed. To control this behaviour explicitly use the repopluate tag - attribute.

- - ]]>
- password - password - net.sourceforge.stripes.tag.InputPasswordTag - JSP - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - A default value for the form field. Can be a literal value, or an EL expression.valuefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - Indicates that the value of this field cannot be modified. (HTML Pass-through)readonlyfalsetrue - The maximum number of characters that can be entered in the field. (HTML Pass-through)maxlengthfalsetrue - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - Determines whether value repopulation will occur. If set to true the values will be repopulated - in a manner identical to regular text fields. If set to false (the default) then repopluation - will not occur. - - repopulate - false - true - boolean - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Generates <input type="radio" value="foo"/> HTML tags - based on the attribute set on the tag and the state of the form. Since a single radio - button widget on a HTML page can have only a single value, the value tag attribute must - be a Scalar object. The value will be converted to a String using the Stripes - formatting system (with appropriate defaults), or by calling toString if an appropriate - Formatter does not exist. Similarly since radio button sets can have only a single - selected value at a time the checked attribute of the tag must also be a scalar value.

- -

Radio buttons perform automatic (re-)population of state. They prefer, in order, the value - in the HttpServletRequest, the value in the ActionBean and lastly the value set using - checked="" on the page. If the value of the current radio button matches the checked value - from the preferred source then the attribute checked="checked" will be written in the HTML - tag.

- -

The tag may include a body and if present the body is converted to a String and overrides the - checked tag attribute.

- ]]>
- radio - radio - net.sourceforge.stripes.tag.InputRadioButtonTag - JSP - - - - When the form is first rendered, if this attribute is present then checked=checked - will be written to the HTML tag to select it by default. - - checkedfalsetrue - - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - - A default value for the form field. Can be a literal value, or an EL expression. - value - true - true - java.lang.Object - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Tag that generates HTML form fields of type - <input type="reset" ... /> which render buttons for resetting forms. - The only capability offered above and beyond a pure html tag is the ability to lookup - the value of the button (i.e. the text on the button that the user sees) from a - localized resource bundle.

- -

The tag will set its value using the first non-null result from the following list:

-
    -
  • resource: {actionFQN}.{buttonName}
  • -
  • resource: {actionPath}.{buttonName} (deprecated)
  • -
  • resource: {buttonName}
  • -
  • the body of the tag
  • -
  • the value attribute of the tag
  • -
- ]]>
- reset - reset - net.sourceforge.stripes.tag.InputResetTag - JSP - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - A default value for the form field. Can be a literal value, or an EL expression.valuefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Coordinates with one or more other tags to produce a well formed HTML select tag - with state repopulation. The select tag itself really only writes out the basic - <select> name="foo"> ... </select> piece of the structure, - and provides mechanisms for child options to determine whether or not they should - render themselves as selected.

- ]]>
- select - select - net.sourceforge.stripes.tag.InputSelectTag - JSP - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - - - Determines what options within the select are rendered selected by default. May be a String, - Object, Array or Collection. In the first two cases, any option with a matching - value will be rendered as selected. In the second two cases any option with a value - matching one of potentially many values will be rendered as selected. - - value - false - true - java.lang.Object - - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - If the value passed in matches the empty string or (ignoring case) "multiple", - or if the value can reasonably be converted to true then the attribute will be - rendered as multiple="multiple" causing the select to render as a multi-select. - In all other cases the attribute will be omitted. - - multiplefalsetrue - - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Tag that generates HTML form fields of type - <input type="submit" ... /> which render buttons for submitting forms. - The only capability offered above and beyond a pure html tag is the ability to lookup - the value of the button (i.e. the text on the button that the user sees) from a - localized resource bundle.

- -

The tag will set its value using the first non-null result from the following list:

-
    -
  • resource: {actionFQN}.{buttonName}
  • -
  • resource: {actionPath}.{buttonName} (deprecated)
  • -
  • resource: {buttonName}
  • -
  • the body of the tag
  • -
  • the value attribute of the tag
  • -
- ]]>
- submit - submit - net.sourceforge.stripes.tag.InputSubmitTag - JSP - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - A default value for the form field. Can be a literal value, or an EL expression.valuefalsetrue - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Tag that generates HTML form fields of type - <input type="text" name="foo" value="bar"/>, which can - dynamically re-populate their value. Text tags may have only a single value, whose - default may be set using either the body of the tag, or using the value="" - attribute of the tag. At runtime the contents of the text field are determined by - looking for the first non-null value in the following list:

- -
    -
  • A value with the same name in the HttpServletRequest
  • -
  • A value on the ActionBean if an ActionBean instance is present
  • -
  • The contents of the body of the tag
  • -
  • The value attribute of the tag
  • -
- ]]>
- text - text - net.sourceforge.stripes.tag.InputTextTag - JSP - - - The name of the form field.nametruetrue - The size of the form field. (HTML Pass-through)sizefalsetrue - - A default value for the form field. Can be a literal value, or an EL expression. - value - false - true - java.lang.Object - - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - Indicates that the value of this field cannot be modified. (HTML Pass-through)readonlyfalsetrue - The maximum number of characters that can be entered in the field. (HTML Pass-through)maxlengthfalsetrue - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - Tag that generates HTML form fields of type - <textarea name="foo"> ... </textarea>, which can dynamically - re-populate their value. Textareas may have only a single value, whose default may be - set using either the body of the textarea, or using the value="" attribute - of the tag. At runtime the contents of the textarea are determined by looking for the - first non-null value in the following list:

- -
    -
  • A value with the same name in the HttpServletRequest
  • -
  • A value on the ActionBean if an ActionBean instance is present
  • -
  • The contents of the body of the textarea
  • -
  • The value attribute of the tag
  • -
- ]]>
- textarea - textarea - net.sourceforge.stripes.tag.InputTextAreaTag - JSP - - - The name of the form field.nametruetrue - - A default value for the form field. Can be a literal value, or an EL expression. - value - false - true - java.lang.Object - - Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)disabledfalsetrue - - - Indicates that the value of this field cannot be modified. (HTML Pass-through)readonlyfalsetrue - - The number of rows high to make the textarea. (HTML Pass-through) - rowsfalsetrue - - - The number of columns wide to make the textarea. (HTML Pass-through) - colsfalsetrue - - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - Keyboard shortcut to access the element. (HTML Pass-through)accesskeyfalsetrue - The CSS class to be applied to the element. (HTML Pass-through)classfalsetrue - Text direction. (HTML Pass-through)dirfalsetrue - A unique identifier for the HTML tag on the page. (HTML Pass-through)idfalsetrue - The language code of the element. (HTML Pass-through)langfalsetrue - Scripting code run when the element loses focus. (HTML Pass-through)onblurfalsetrue - Scripting code run when the element changes. (HTML Pass-through)onchangefalsetrue - Scripting code run on each mouse click. (HTML Pass-through)onclickfalsetrue - Scripting code run on a double-click of the mouse. (HTML Pass-through)ondblclickfalsetrue - Scripting code run when the element acquires focus. (HTML Pass-through)onfocusfalsetrue - Scripting code run when a key is depressed. (HTML Pass-through)onkeydownfalsetrue - Scripting code run when a key is pressed and released. (HTML Pass-through)onkeypressfalsetrue - Scripting code run when a key is released. (HTML Pass-through)onkeyupfalsetrue - Scripting code run when a mouse button is depressed. (HTML Pass-through)onmousedownfalsetrue - Scripting code run when the mouse pointer is moved. (HTML Pass-through)onmousemovefalsetrue - Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)onmouseoutfalsetrue - Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)onmouseoverfalsetrue - Scripting code run when a mouse button is released. (HTML Pass-through)onmouseupfalsetrue - Scripting code run when an element is selected. (HTML Pass-through)onselectfalsetrue - Inline CSS style fragment that applies to the element (HTML Pass-through)stylefalsetrue - The tab order of the element. (HTML Pass-through)tabindexfalsetrue - Tool-tip text for the element. (HTML Pass-through)titlefalsetrue - - false -
- - - - url - url - net.sourceforge.stripes.tag.UrlTag - JSP - - - The target URL. If the URL starts with a slash and does not contain the current - web application context path, then the context path will be prepended to the URL. - - valuefalsetrue - - - - The (optional) name of a scoped variable to store the generated URL in. If no - name is specified then the URl will be written directly to the page instead. See - also the 'scope' attribute to control which scope the variable gets set in. - - varfalsetrue - - - - The (optional) name of the JSP scope into which to set the variable specified by - the var attribute. Valid values are 'page', 'request', 'session' and 'application'. - Defaults to 'page'. - - scopefalsetrue - - - - The (optional) event that should be fired if the link is to an ActionBean. If not - supplied then the tag will not render an explicit event (but one may by built in - to the URL/href supplied). - - eventfalsetrue - - - - The fully qualified name of an ActionBean class, or alternatively a Class instance - for an ActionBean class. An alternative to the 'value' attribute, the 'beanclass' - attribute will generate an href appropriate for the ActionBean identified. Note - that if an ActionBean that does not yet exist is identified an exception will - be thrown! - - beanclassfalsetrue - java.lang.Object - - - - The (optional) anchor that is appended at the end of the generated URL. - If the URL specified by the value attribute already contains the anchor then - the anchor specified by this attribute takes precedence. - - anchorfalsetrue - - - - Indicates if the application context path should be included at the beginning of - the generated URL. - - prependContextfalsetrue - java.lang.Boolean - - - - Indicates if the _sourcePage parameter should be appended to the URL. Default - value is false. - - addSourcePagefalsetrue - - - - - Puts the ActionBean with the specified binding into page context under the - supplied name. If the ActionBean does not already exist, it will be instantiated - and binding will be run to bind values from the HttpServletRequest onto the - ActionBean. Validation will not be run, and any error messages produced from - the binding/type conversion process will be discarded. The ActionBean will - then be placed in request scope, just as done by the DispatcherServlet.

- -

If the ActionBean did not previously exist, and an event is specified, the event - handler will be executed on the ActionBean. If the ActionBean already existed, - supplying the event attribute has no effect.

- -

Lastly, if the var or id attribute is supplied (they are synonymous and only - one should be supplied) the ActionBean is bound in to page context using the name - supplied. This is true in all cases, regardless of whether the ActionBean is newly - instantiated, or pre-existing. This allows the tag to be used to provide an easier - name for the ActionBean than referring to it by binding.

- ]]>
- useActionBean - useActionBean - net.sourceforge.stripes.tag.UseActionBeanTag - net.sourceforge.stripes.tag.UseActionBeanTagExtraInfo - empty - - - The URL to which the action bean is bound, as specified in the @UrlBinding - for the ActionBean in question. Required if 'beanclass' is not specified. - - bindingfalsetrue - - - - Either the fully qualified name or a Class object representing an ActionBean - class. Can be used as an alternative to 'binding' to identify the type of - ActionBean that should be resolved and/or instantiated. - - beanclassfalsetrue - java.lang.Object - - - - The (optional) name of an event to execute. If no event is provided, the - ActionBean is instantiated and bound, but no event is executed. To execute the - default event handler you must give it a name in the ActionBean and name it here. - - eventfalsetrue - - - - Determines whether validation is run on this ActionBean. False by default. - - validatefalsetrue - boolean - - - - Determines if the event handler method will be run in the case that the - ActionBean is already present when the useActionBean is executed. By - default Stripes does not execute the event handler method if the bean - is not instantiated by the tag. - - alwaysExecuteEventfalsetrue - boolean - - - - Determines if the Resolution should be executed if the ActionBean or an - interceptor returns one. False by default. - - executeResolutionfalsetrue - boolean - - - - The (optional) name of an attribute to bind the bean to in page context. - - varfalsetrue - - - - Synonym for var. - - idfalsetrue - -
- - - Examines the request and include hidden fields for all parameters that have do - not have form fields in the current form. Will include multiple values for - parameters that have them. Excludes 'special' parameters like the source - page parameter, and the paramter that conveyed the event name.

- -

Very useful for implementing basic wizard flow without relying on session - scoping of ActionBeans, and without having to name all the parameters that - should be carried forward in the form.

- ]]>
- wizard-fields - wizard-fields - net.sourceforge.stripes.tag.WizardFieldsTag - empty - - - currentFormOnly - boolean - -
- - - - Defines a reusable layout. This tag is designed to wrap the entire contents of a - JSP that is to be re-used to manage the layout of multiple pages. It can contain - HTML, JSP content, scriptlets etc. It may also contain stripes:layout-component - tags. The stripes:layout-component names a section of the layout that can be - supplied during rendering (it may be empty, or have default contents).

- -

Layout definitions will also have access to, through PageContext, - any attributes/parameters supplied at rendering time. These can be referenced in the layout - definition using EL, for example as ${myCustomParameter}. This allows layouts not - only to templatize look and feel, but to potentially render differently based on - the values of parameters passed in at rendering time.

- ]]>
- layout-definition - net.sourceforge.stripes.tag.layout.LayoutDefinitionTag - JSP -
- - - Used to define or supply a component of a layout. The stripes:layout-component - tag can be nested inside both the stripes:layout-definition and - stripes:layout-render tags. In the former case it defines a named component in the - layout, and the (optional) body provides a default for the component. When nested in - a stripes:layout-render tag, the body overrides the named component defined in the - layout.

- -

The vanilla case would be to have a layout which defines the header/footer etc. for - your site and that has a component named "body" or "contents" or something similar, - which wraps the area where page content would normally be displayed. Then, when - using that layout through a stripes:layout-render tag, you would use a - stripes:layout-component tag to provide a value for the "body" or "contents" - component of the layout.

- ]]>
- layout-component - net.sourceforge.stripes.tag.layout.LayoutComponentTag - JSP - - - The name of the component being defined (in the layout definition) or overridden - (when rendering the layout). - - name - true - true - -
- - - Renders the named layout, supplying it with any specified parameters and overridden - components. In addition to being able to supply nested stripes:layout-component tags, - you may also supply any number of dynamic or arbitrary parameters to this tag. All - parameters (except name) will be made available to the layout definition through the - page context.

- ]]>
- layout-render - net.sourceforge.stripes.tag.layout.LayoutRenderTag - JSP - - - The name of the layout. Since only JSP layouts are supported, this should be the - web application relative path to the JSP that defines the layout. - - name - true - true - - true -
- - - - format - format - net.sourceforge.stripes.tag.FormatTag - empty - - - The object to be formatted. - - valuetruetrue - - - - The (optional) name of a scoped variable to store the formatted value in. If no - name is specified then the value will be written directly to the page instead. See - also the 'scope' attribute to control which scope the variable gets set in. - - varfalsetrue - - - - The (optional) name of the JSP scope into which to set the variable specified by - the var attribute. Valid values are 'page', 'request', 'session' and 'application'. - Defaults to 'page'. - - scopefalsetrue - - The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.formatTypefalsetrue - The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.formatPatternfalsetrue - - - - - field-metadata - field-metadata - net.sourceforge.stripes.tag.FieldMetadataTag - JSP - - - The name of the JavaScript variable to place the field metadata into. - - vartruetrue - - - - Comma separated list of fields to provide metadata for. Stripes input tags - that come before the field-metadata tag inside a Stripes form tag will - automatically be included. This attribute may be used if you aren't using - Stripes form or input tags or if you are dynamically building the form. - - fieldsfalsetrue - - - - Setting this to true causes the class names to be included in the output. - - includeTypefalsetrue - - - - Setting this to true causes the fully qualified class name to be included - instead of the simple class name. - - fqnfalsetrue - - - - If supplied, should match a URL to which an ActionBean has been bound. Unused - if this tag is enclosed in a Stripes form tag. - - actionfalsetrue - - - - The fully qualified name of an ActionBean class, or alternatively a Class instance - for an ActionBean class. An alternative to the 'action' attribute. Unused - if this tag is enclosed in a Stripes form tag. - - beanclassfalsetrue - java.lang.Object - - - - - - page-options - page-options - net.sourceforge.stripes.tag.PageOptionsTag - empty - - - The type of HTML to write. Valid values are "html" and "xhtml". By default - Stripes writes XHTML-compatible output which is also valid HTML4, though - the default output does generate warnings with some HTML validators. The - HTML mode specified by this tag overrides the Stripes.HtmlMode global - configuration property. - - htmlModefalsetrue - - - - - - Returns the name of the supplied Java 5 enumeration value; useful since EL will - only access JavaBean style properties, and the name attribute of an enum is always - accessed using the function name(), not getName(). - - enumName - net.sourceforge.stripes.tag.ElFunctions - java.lang.String name(java.lang.Enum) - - - - - Indicates if validation errors exist for the given field of the given ActionBean. - This allows for use of JSTL logic tags such as c:if and c:choose. - - hasErrors - net.sourceforge.stripes.tag.ElFunctions - boolean hasErrors(net.sourceforge.stripes.action.ActionBean, java.lang.String) - -
diff --git a/webadmin/WebContent/WEB-INF/web.xml b/webadmin/WebContent/WEB-INF/web.xml deleted file mode 100644 index a1e37e0acc..0000000000 --- a/webadmin/WebContent/WEB-INF/web.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - StripesFilter - net.sourceforge.stripes.controller.StripesFilter - - ActionResolver.Packages - com.mirth.connect.webadmin.action - - - - ActionBeanContext.Class - com.mirth.connect.webadmin.action.BaseActionBeanContext - - - - - DispatcherServlet - net.sourceforge.stripes.controller.DispatcherServlet - 1 - - - - DispatcherServlet - *.action - - - - StripesFilter - DispatcherServlet - REQUEST - FORWARD - - - - - http://java.sun.com/jsp/jstl/core - /WEB-INF/c.tld - - - http://java.sun.com/jsp/jstl/fmt - /WEB-INF/fmt.tld - - - http://java.sun.com/jsp/jstl/functions - /WEB-INF/fn.tld - - - http://stripes.sourceforge.net/stripes.tld - /WEB-INF/stripes.tld - - - http://displaytag.sf.net - /WEB-INF/displaytag.tld - - - - - index.html - - diff --git a/webadmin/WebContent/css/TreeGrid.css b/webadmin/WebContent/css/TreeGrid.css deleted file mode 100644 index f3db9189f7..0000000000 --- a/webadmin/WebContent/css/TreeGrid.css +++ /dev/null @@ -1,100 +0,0 @@ -.ux-maximgb-treegrid-breadcrumbs -{ - color: #15428B; - border-bottom: 1px solid #D0D0D0; - font: normal 11px arial, tahoma, helvetica, sans-serif; - -moz-outline: none; - -moz-user-focus: normal; - line-height: 15px; - padding: 4px 3px 4px 6px; -} - -.ux-maximgb-treegrid-brditem -{ - color: #15428B; -} - -.ux-maximgb-treegrid-uiwrap -{ - float: left; - position: relative; - height: 18px; - white-space: nowrap; - overflow: hidden; -} - -.ux-maximgb-treegrid-elbow-empty -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; -} - -.ux-maximgb-treegrid-elbow-line -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow-line.gif) repeat-x; -} - -.ux-maximgb-treegrid-elbow -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow.gif) no-repeat; -} - -.ux-maximgb-treegrid-elbow-end -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow-end.gif) no-repeat; -} - -.ux-maximgb-treegrid-elbow-active -{ - cursor: pointer; -} - -.ux-maximgb-treegrid-elbow-minus -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow-minus.gif) no-repeat; -} - -.ux-maximgb-treegrid-elbow-end-minus -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow-end-minus.gif) no-repeat; -} - -.ux-maximgb-treegrid-elbow-plus -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow-plus.gif) no-repeat; -} - -.ux-maximgb-treegrid-elbow-end-plus -{ - position: absolute; - height: 18px; - width: 16px; - overflow: hidden; - background: url(../images/elbow-end-plus.gif) no-repeat; -} \ No newline at end of file diff --git a/webadmin/WebContent/css/TreeGridLevels.css b/webadmin/WebContent/css/TreeGridLevels.css deleted file mode 100644 index c035647cf5..0000000000 --- a/webadmin/WebContent/css/TreeGridLevels.css +++ /dev/null @@ -1,43 +0,0 @@ -.ux-maximgb-treegrid-level-0 -{ -} - -.ux-maximgb-treegrid-level-1 -{ - background-color: #DFE7FF; -} - -.ux-maximgb-treegrid-level-2 -{ - background-color: #BFCFFF; -} - -.ux-maximgb-treegrid-level-3 -{ - background-color: #9FB7FF; -} - -.ux-maximgb-treegrid-level-4 -{ - background-color: #809FFF; -} - -.ux-maximgb-treegrid-level-5 -{ - background-color: #6087FF; -} - -.ux-maximgb-treegrid-level-6 -{ - background-color: #4070FF; -} - -.ux-maximgb-treegrid-level-7 -{ - background-color: #2058FF; -} - -.ux-maximgb-treegrid-level-8 -{ - background-color: #0040FF; -} \ No newline at end of file diff --git a/webadmin/WebContent/css/bootstrap.css b/webadmin/WebContent/css/bootstrap.css deleted file mode 100644 index 4295d4ff11..0000000000 --- a/webadmin/WebContent/css/bootstrap.css +++ /dev/null @@ -1,5826 +0,0 @@ -/*! - * Bootstrap v3.1.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: .67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -.5em; -} -sub { - bottom: -.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -@media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .table td, - .table th { - background-color: #fff !important; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 62.5%; - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #428bca; - text-decoration: none; -} -a:hover, -a:focus { - color: #2a6496; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #999; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -cite { - font-style: normal; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-muted { - color: #999; -} -.text-primary { - color: #428bca; -} -a.text-primary:hover { - color: #3071a9; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #428bca; -} -a.bg-primary:hover { - background-color: #3071a9; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #999; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -blockquote:before, -blockquote:after { - content: ""; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - white-space: nowrap; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: 0; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: 0; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: 0; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: 0; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: 0; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: 0; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: 0; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: 0; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0; - } -} -table { - max-width: 100%; - background-color: transparent; -} -th { - text-align: left; -} -.table { - width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -/* -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -}*/ -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -@media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-x: scroll; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; -} -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); -} -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; -} -.form-control::-webkit-input-placeholder { - color: #999; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eee; - opacity: 1; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -input[type="date"] { - line-height: 34px; -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - display: block; - min-height: 20px; - padding-left: 20px; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - display: inline; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.has-feedback .form-control-feedback { - position: absolute; - top: 25px; - right: 0; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.form-control-static { - margin-bottom: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} -.form-horizontal .form-control-static { - padding-top: 7px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - top: 0; - right: 15px; -} -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: #333; - background-color: #ebebeb; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #428bca; - border-color: #357ebd; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: #fff; - background-color: #3276b1; - border-color: #285e8e; -} -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #428bca; - border-color: #357ebd; -} -.btn-primary .badge { - color: #428bca; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: #fff; - background-color: #47a447; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: #fff; - background-color: #39b3d7; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ed9c28; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: #fff; - background-color: #d2322d; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #428bca; - cursor: pointer; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #2a6496; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #999; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height .35s ease; - transition: height .35s ease; -} -@font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #428bca; - outline: 0; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #999; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { - right: auto; - left: 0; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #999; -} -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px solid; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; -} -.nav > li.disabled > a { - color: #999; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #999; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #428bca; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #428bca; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - max-height: 340px; - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: none; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } - .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - } -} -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-form.navbar-right:last-child { - margin-right: -15px; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } - .navbar-text.navbar-right:last-child { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #999; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #999; -} -.navbar-inverse .navbar-nav > li > a { - color: #999; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #999; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #999; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; -} -.breadcrumb > .active { - color: #999; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #428bca; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #2a6496; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #428bca; - border-color: #428bca; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #999; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -.label[href]:hover, -.label[href]:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #999; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #808080; -} -.label-primary { - background-color: #428bca; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #3071a9; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #999; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #428bca; - background-color: #fff; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.container .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #428bca; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable { - padding-right: 35px; -} -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #428bca; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - transition: width .6s ease; -} -.progress-striped .progress-bar { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.media, -.media-body { - overflow: hidden; - zoom: 1; -} -.media, -.media .media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media-object { - display: block; -} -.media-heading { - margin: 0 0 5px; -} -.media > .pull-left { - margin-right: 10px; -} -.media > .pull-right { - margin-left: 10px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - padding-left: 0; - margin-bottom: 20px; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -a.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; -} -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #428bca; - border-color: #428bca; -} -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:hover .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:hover .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: #e1edf7; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table { - margin-bottom: 0; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - overflow: hidden; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #428bca; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #428bca; - border-color: #428bca; -} -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #428bca; -} -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #428bca; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ebccd1; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: auto; - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -moz-transition: -moz-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; -} -.modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 20px; -} -.modal-footer { - padding: 19px 20px 20px; - margin-top: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 12px; - line-height: 1.4; - visibility: visible; - filter: alpha(opacity=0); - opacity: 0; -} -.tooltip.in { - filter: alpha(opacity=90); - opacity: .9; -} -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - right: 5px; - bottom: 0; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - content: ""; - border-width: 10px; -} -.popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; -} -.popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; -} -.popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; -} -.popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); -} -.popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); -} -.popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - filter: alpha(opacity=50); - opacity: .5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: none; - opacity: .9; -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - margin-left: -15px; - font-size: 30px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} -.clearfix:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-right: auto; - margin-left: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; - visibility: hidden !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} -/*# sourceMappingURL=bootstrap.css.map */ - -/* Extra CSS to enable tablesorter to have bootstrap styling */ -table .header { - cursor: pointer; -} -table .header:after { - content: ""; - float: right; - margin-top: 7px; - border-width: 0 4px 4px; - border-style: solid; - border-color: #000000 transparent; - visibility: hidden; -} -table .headerSortUp, table .headerSortDown { - background-color: #f7f7f9; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); -} -table .header:hover:after { - visibility: visible; -} -table .headerSortDown:after, table .headerSortDown:hover:after { - visibility: visible; - filter: alpha(opacity=60); - -moz-opacity: 0.6; - opacity: 0.6; -} -table .headerSortUp:after { - border-bottom: none; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #000000; - visibility: visible; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - filter: alpha(opacity=60); - -moz-opacity: 0.6; - opacity: 0.6; -} \ No newline at end of file diff --git a/webadmin/WebContent/css/glyphicons-halflings.png b/webadmin/WebContent/css/glyphicons-halflings.png deleted file mode 100644 index 79bc568c21..0000000000 Binary files a/webadmin/WebContent/css/glyphicons-halflings.png and /dev/null differ diff --git a/webadmin/WebContent/css/jquery.treeTable.css b/webadmin/WebContent/css/jquery.treeTable.css deleted file mode 100644 index 7ca192971e..0000000000 --- a/webadmin/WebContent/css/jquery.treeTable.css +++ /dev/null @@ -1,55 +0,0 @@ -/* jQuery treeTable stylesheet - * - * This file contains styles that are used to display the tree table. Each tree - * table is assigned the +treeTable+ class. - * ========================================================================= */ - -/* jquery.treeTable.collapsible - * ------------------------------------------------------------------------- */ -.treeTable tr td .expander { - cursor: pointer; - padding: 0; - zoom: 1; /* IE7 Hack */ -} - -.treeTable tr td a.expander { - background-position: left center; - background-repeat: no-repeat; - color: #000; - text-decoration: none; -} - -.treeTable tr.collapsed td a.expander { - background-image: url(../images/ludo-jquery-treetable/toggle-expand-dark.png); -} - -.treeTable tr.expanded td a.expander { - background-image: url(../images/ludo-jquery-treetable/toggle-collapse-dark.png); -} - -/* jquery.treeTable.sortable - * ------------------------------------------------------------------------- */ -.treeTable tr.selected, .treeTable tr.accept { - background-color: #3875d7; -} - -.treeTable tr.selected a.expander, .treeTable tr.accept a.expander { - color: #fff; -} - -.treeTable tr.collapsed.selected td a.expander, .treeTable tr.collapsed.accept td a.expander { - background-image: url(../images/ludo-jquery-treetable/toggle-expand-light.png); -} - -.treeTable tr.expanded.selected td a.expander, .treeTable tr.expanded.accept td a.expander { - background-image: url(../images/ludo-jquery-treetable/toggle-collapse-light.png); -} - -.treeTable .ui-draggable-dragging { - color: #000; - z-index: 1; -} - -/* Layout helper taken from jQuery UI. This way I don't have to require the - * full jQuery UI CSS to be loaded. */ -.ui-helper-hidden { display: none; } diff --git a/webadmin/WebContent/css/main.css b/webadmin/WebContent/css/main.css deleted file mode 100644 index b729132b65..0000000000 --- a/webadmin/WebContent/css/main.css +++ /dev/null @@ -1,1133 +0,0 @@ -* { - margin: 0; - padding: 0 -} - -#bodyWrapper { - width: 960px; - margin: 0 auto 0 auto; - padding: 0 20px 0 20px; - position: relative; - border: 5px solid #0e4a69; - border-top: 0; - -webkit-border-radius: 0 0 25px 50px; - -moz-border-radius: 0 0 25px 50px; - -khtml-border-radius: 0 0 25px 50px; - -o-border-radius: 0 0 25px 50px; - border-radius: 0 0 25px 50px; - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box; - background-color: #fff; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), - to(#fff) ); - background-image: -webkit-linear-gradient(top, #fff, #fff); - background-image: -moz-linear-gradient(top, #fff, #fff); - background-image: -ms-linear-gradient(top, #fff, #fff); - background-image: -o-linear-gradient(top, #fff, #fff); - background-image: linear-gradient(to bottom, #fff, #fff) -} - -header,footer,aside,nav,article,section { - display: block; - padding: 10px -} - -header { - padding-top: 0; - margin-top: -5px -} - -body { - font-size: 11pt; - font-family: "Helvetica Neue", Helvetica, sans-serif; - font-smooth: always; - line-height: 18px; - background: #fff; -} - -p { - font-size: 14px; -} - -label { - color: #333333; - font-weight: normal; - font-size: 14px; - font-weight: normal; - line-height: 18px; -} - -input, textarea { - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -ms-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} - -input, textarea, select, .uneditable-input { - display: inline-block; - width: 230px; - padding: 4px; - margin-bottom: 9px; - font-size: 14px; - line-height: 18px; - color: #555555; - border: 1px solid #ccc; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.help-block { - color: #999; - margin-bottom: 5px; -} - -h1,h2,h3,h4,h5,h6 { - font-family: "Helvetica Neue", Helvetica, sans-serif; - font-weight: 400 -} - -h1 { - margin: 20px 0; - letter-spacing: 2px; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3) -} - -h1 small { - display: block; - color: #444; - padding-top: 4px -} - -h2 { - margin: 10px 0; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3) -} - -h2 div { - font-size: 14pt; - line-height: 14pt; - color: #444 -} - -.nameHeader h3,.nameHeader h5 { - text-align: center; - max-width: 440px -} - -h1,h2 { - color: #0e4a69 !important -} - -h3,h4,h5,h6 { - color: #0e4a69 !important -} - -li { - list-style-type: none -} - -a,a:visited,a>img { - border: 0 -} - -a { - color: #2079b5; - -moz-transition: .2s linear; - -webkit-transition: .2s linear; - transition: .2s linear -} - -a:hover { - color: black -} - -.secondaryText,.nestedLabel { - font-style: italic; - font-size: 13px; - color: #999 -} - -span.disabled { - color: #999 -} - -span.h4 { - font-size: 16pt; - color: #0e4a69 -} - -#listTop { - height: 80px; - margin: 0 -30px; - position: relative; - background: #fff url(images/stock.jpg) no-repeat -25px 0; - border-top: 3px solid #0e4a69; - border-bottom: 3px solid #0e4a69; - -webkit-box-shadow: 0 1px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 1px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 7px rgba(0, 0, 0, 0.3) -} - -#contentWrap { - margin-top: 5px; - width: 100%; - position: relative -} - -section#mainContent { - width: 670px; - min-height: 352px; - padding: 0 10px; - border-left: 1px solid #0e4a69 -} - -aside#providerSearch { - width: 230px; - padding-right: 20px; - padding-left: 10px -} - -#search .search-controls { - margin-top: 15px; - padding-right: 10px -} - -#search .search-controls a { - padding-top: 10px; - float: left -} - -#search .search-controls .btn { - float: right -} - -#results { - padding: 0 -} - -#resultsTop { - padding: 10px; - border-bottom: 1px solid #0e4a69 -} - -#resultsFooter { - padding: 10px; - border-top: 1px solid #0e4a69 -} - -div.specialistLeft,div.specialistRight { - padding: 5px 5px 5px 0; - vertical-align: top; - position: relative; - display: inline-block; - zoom: 1; - *display: inline; - vertical-align: top -} - -div.specialistRight { - width: 274px -} - -div.specialistLeft { - width: 314px -} - -div.specialistLeft>div { - padding-left: 28px; - min-height: 24px -} - -div.specialistLeft .org { - background: url("/MirthMail-UI/css/img/icons/Buildings/hospital_24.png") - no-repeat top left scroll -} - -div.specialistLeft .sub-org { - background: url("/MirthMail-UI/css/img/icons/Buildings/org_sub.png") - no-repeat top left scroll -} - -div.specialistLeft .provider { - background: url("/MirthMail-UI/css/img/icons/doctor/doctor_24.png") - no-repeat top left scroll -} - -.specialistLeft ul { - margin: 0 0 9px 0 -} - -.searchResultRow { - padding: 10px; - border-bottom: 1px solid #0e4a69 -} - -.searchResultRow:last-child { - border: 0 -} - -.specialistLeft .entityAffiliations { - margin-top: 9px; - padding-left: 6px -} - -.provider-icon { - background: url("/MirthMail-UI/css/img/icons/doctor/doctor_16.png") - no-repeat top left scroll; - padding-left: 21px -} - -.sub-org-icon { - background: url("/MirthMail-UI/css/img/icons/Buildings/org_sub.png") - no-repeat top left scroll; - padding-left: 21px -} - -.nameHeader { - margin-bottom: 10px; - border-bottom: 1px solid #0e4a69; - padding-bottom: 10px; - position: relative -} - -.nameHeader h2 { - margin: 0 -} - -.nameHeader img,.leftIcon { - float: left; - padding: 6px 10px 10px 0 -} - -.nameHeader .entityAffiliations { - position: absolute; - right: 0; - bottom: 10px -} - -.aka { - font-size: 20px; - color: #999; - margin-bottom: 5px -} - -.whitepage { - position: relative; - padding: 10px -} - -.profile-section { - padding-bottom: 20px -} - -.profile-section-header { - text-transform: uppercase; - font-size: 16px; - font-weight: bold; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); - margin-bottom: 5px -} - -.profile-section table th { - text-align: left; - width: 130px; - padding: 0 20px; - vertical-align: top -} - -div.subInfo { - margin: 0; - margin-left: 5px -} - -div.paging a,div.paging span { - padding: .3em .4em; - margin-right: 5px -} - -div.paging span.disablePagination { - color: #999 -} - -div.paging a { - text-decoration: none; - border: 1px solid #0e4a69; - color: #000 -} - -div.paging a:hover { - color: white; - background-color: #0e4a69 -} - -#mirthLogo { - height: 65px -} - -.logoBar { - border-bottom: 3px solid #0e4a69; - -webkit-box-shadow: 0 1px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 1px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 7px rgba(0, 0, 0, 0.3); - padding: 10px 10px 10px 30px; - margin: 0 -20px; - min-height: 80px -} - -.linksWrapper { - position: absolute; - top: 20px; - right: 20px; - margin: 0 auto; - padding: 0 10px -} - -.headerLink { - float: right; - display: block -} - -.headerLogin { - text-align: right; - padding-bottom: 5px -} - -.headerLogin a { - padding: 0 7px; - text-decoration: none -} - -a.aBox { - background: #CCC; - color: #555; - font-size: 12px; - font-weight: normal; - margin-left: 20px; - padding: 4px 14px 4px 14px; - text-align: center; - -webkit-transition: opacity .1s linear; - -moz-transition: opacity .1s linear; - -ms-transition: opacity .1s linear; - -o-transition: opacity .1s linear; - transition: opacity .1s linear; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -khtml-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box -} - -.truncatedAddress { - cursor: pointer -} - -.truncatedAddress:hover { - text-decoration: underline -} - -.resultsTable { - border-color: #0e4a69; - border-collapse: collapse; - border-spacing: 0; - width: 100% -} - -.resultsTable th { - text-align: left; - padding: 5px 5px 5px 15px -} - -.resultsTable td { - padding: 15px -} - -.resultsTable thead,.resultsTable td { - border-bottom: 1px solid white -} - -#assertionSearchForm table td,#assertionSearchForm table th { - padding: 0 8px; - text-align: center -} - -.assertResultRow { - cursor: pointer -} - -#profileSummary .assertResultRow { - cursor: default -} - -tr.notAccepted { - color: #999; - cursor: default; - text-decoration: none -} - -#accountSide { - width: 150px; - padding-right: 20px; - padding-left: 0; - vertical-align: top -} - -.navMenu>li>a { - padding-left: 10px; - display: block; - -moz-transition: none; - -webkit-transition: none; - transition: none -} - -.navMenu>li>a.selected { - text-decoration: none; - color: #000; - cursor: default; - background: url("images/selected-section.png") no-repeat scroll 0 0 - transparent; - line-height: 31px; - height: 31px; - width: 170px -} - -.navMenu>li { - height: 31px; - line-height: 31px -} - -.navMenu { - width: 150px; - margin: 0 -} - -.account-summary-section { - margin: 0 0 20px 0 -} - -#mainForm { - padding: 0 -} - -#sectionWrap { - border-left: 3px solid #0e4a69; - width: 780px; - padding-bottom: 15px -} - -.subpage #centerWrapper,.vetsubpage #centerWrapper { - margin: 50px auto 0 auto; - border: 5px solid #0e4a69; - padding: 20px; - -webkit-border-radius: 25px 50px 25px 50px; - -moz-border-radius: 25px 50px 25px 50px; - -khtml-border-radius: 25px 50px 25px 50px; - -o-border-radius: 25px 50px 25px 50px; - border-radius: 25px 50px 25px 50px; - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box -} - -.subpage #centerWrapper { - width: 770px; - background-color: #fff; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), - to(#fff) ); - background-image: -webkit-linear-gradient(top, #fff, #fff); - background-image: -moz-linear-gradient(top, #fff, #fff); - background-image: -ms-linear-gradient(top, #fff, #fff); - background-image: -o-linear-gradient(top, #fff, #fff); - background-image: linear-gradient(to bottom, #fff, #fff) -} - -.dropdown { - display: inline-block; -} - -.dropdown-menu { - min-width: 210px; - border-radius: 5px 5px 5px 5px; - font-size: 10pt; -} - -.dropdown-menu li span.text-center { - font-size: 11pt; -} - -.dropdown-menu li span.pull-left { - padding-left: 10px; - padding-top: 2px; -} - -.dropdown-menu select { - margin-bottom: 0; -} - -.opt-button { - height: 38px; - width: 38px; - padding: 3px 3px 2px 3px; - border: none; -} - -.opt-button:hover { - border: 1px solid #CCC; -} - -.opt-button span { - padding-top: 2px; - font-size: 24px; -} - -.dropdown-label { - height: 28px; - line-height: 28px; -} - -.dropdown-select { - height: 28px; - width: auto; -} - -.dropdown-warning { - margin: 5px 10px; - font-size: 13px; - color: #999; -} - -.subpage #webdashboardsignin { - border-left: 1px solid #A5A5A5; - padding-left: 30px; - margin-left: 1%; -} - -#webLoginSecurityReminder { - width: 230px; -} - -#webLoginButton input { - width: auto; -} - -.btn-md { - padding: 9px 14px; - font-size: 16px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.col-xs-6-custom { - width: 48.5%; -} - -.subpage h1 { - font-size: 30px; -} - -#centerWrapper{ - text-align: left; -} - -#mcadministrator { - margin-left: 12px; -} - -#mirthLogoWrapper{ - padding: 10px; - text-align: center; -} - -#securesiteaccess{ - height: 233px; - width: 310px; -} - -#httpsInfoParagraph { - height: 100px; -} - -#webLoginWrapper{ - margin: 0 40px; - height: 200px; -} - -#webLoginForm{ - margin-bottom: -9px; - height: 282px; -} - -#loginErrorAlert{ - margin-left: 40px; - width: 230px; - height: 30px; - padding: 5px 10px; - text-align: center; -} - -#webLoginButton{ - text-align: center; -} - -#accesssecuresitebutton{ - text-align: center; -} - -#launchbuttoncontainer{ - height: 150px; -} - -#smallSubPage{ - width: 100%; - text-align: center; - padding-top: 8px; -} - -.vetsubpage #centerWrapper-top { - margin: 50px auto 0 auto; - border: solid #0e4a69; - border-width: 5px 5px 0 5px; - padding: 20px 20px 0 20px; - -webkit-border-radius: 25px 50px 0 0; - -moz-border-radius: 25px 50px 0 0; - -khtml-border-radius: 25px 50px 0 0; - -o-border-radius: 25px 50px 0 0; - border-radius: 25px 50px 0 0; - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box -} - -.vetsubpage #centerWrapper-bottom { - margin: 0 auto; - border: solid #0e4a69; - border-width: 0 5px 5px 5px; - padding: 10px 20px 20px 20px; - -webkit-border-radius: 0 0 25px 50px; - -moz-border-radius: 0 0 25px 50px; - -khtml-border-radius: 0 0 25px 50px; - -o-border-radius: 0 0 25px 50px; - border-radius: 0 0 25px 50px; - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box -} - -.vetsubpage #centerWrapper-top { - background-image: - url("/MirthMail-UI/css/careaccord/images/DSM_Provider_Checklist_Header.jpg") -} - -.vetsubpage #centerWrapper-top { - background-repeat: no-repeat; - background-position: top left; - background-attachment: scroll -} - -.vetsubpage #centerWrapper-bottom,.vetsubpage #centerWrapper { - background-color: #fff; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), - to(#fff) ); - background-image: -webkit-linear-gradient(top, #fff, #fff); - background-image: -moz-linear-gradient(top, #fff, #fff); - background-image: -ms-linear-gradient(top, #fff, #fff); - background-image: -o-linear-gradient(top, #fff, #fff); - background-image: linear-gradient(to bottom, #fff, #fff) -} - -.vetsubpage #centerWrapper-bottom,.vetsubpage #centerWrapper-top,.vetsubpage #centerWrapper { - width: 700px -} - -.registration-page-wrapper { - margin: 10px 40px -} - -.vetsubpage li { - list-style: disc inside none -} - -#errors li { - list-style: none -} - -.subpage th { - vertical-align: middle; - text-align: right; - padding-right: 10px; - width: 150px -} - -.subpage.input[type=text] { - color: #0e4a69; - font-size: 16px; - font-weight: bold; - padding: 3px -} - -.subpageHeaders { - border-bottom: 1px solid #e5e5e5; - padding-bottom: 10px; - margin-bottom: 20px -} - -.checklistIcon { - width: 50px; - height: 50px -} - -.form-blob { - margin-bottom: 10px -} - -.form-blob .row { - margin-bottom: 3px -} - -.reg-pho-label { - padding-top: 5px; - text-align: right -} - -.editSection { - margin-bottom: 20px -} - -.editSectionHeader { - border-bottom: 2px solid black; - margin-bottom: 5px; - padding-bottom: 3px -} - -.editSectionBody { - margin: 20px 0 -} - -.editSectionRow { - padding: 2px 0 -} - -.editSectionRow th { - text-align: left; - padding-right: 5px -} - -.licenseWrapper { - border-bottom: 1px solid #f9f9f9; - margin-bottom: 15px -} - -#licenses .licenseWrapper:last-child { - border-bottom: 0; - margin-bottom: 0 -} - -footer { - color: #000; - height: 40px; - text-align: center; - width: 960px; - margin: 0 auto; - padding-top: 0; - font-size: 10pt -} - -footer table { - width: 100% -} - -footer td { - padding: 0 5px 5px 5px -} - -footer.subpage { - width: 700px -} - -footer.smallSubPage { - width: 500px; - padding-top: 5px -} - -footer.smallSubPage td { - padding: 0 -} - -#loadingSpinner { - position: absolute; - top: 0; - left: 630px; - margin-top: 110px; - width: 50px; - display: block -} - -.inlineBlock { - display: inline-block; - zoom: 1; - *display: inline; - vertical-align: top -} - -#timeout-popup { - padding: 20px; - height: 120px; - width: 420px; - border: 4px solid #0e4a69 -} - -tr.row-spacer td { - padding-bottom: 15px -} - -.secondaryListText { - font-size: 80%; - padding-top: 0; - padding-bottom: 3px; - color: #999; - font-style: italic; - margin: 0 0 0 5px; - padding: 0; - display: inline -} - -.smush-left { - float: left; - margin-left: 8px -} - -.section-header { - margin-top: 15px; - margin-bottom: 10px -} - -.sub-section-header { - border-bottom: 1px solid #fafafa; - margin-bottom: 5px -} - -.top-label { - padding-left: 2px; - padding-right: 2px -} - -section { - padding: 0 -} - -a.fancy-block { - width: 680px -} - -.fancy-block { - display: block; - cursor: pointer; - padding: 10px; - border-bottom: 1px solid #0e4a69 -} - -body .fancy-block:last-child { - border-bottom: 0 -} - -.fancy-block:hover { - -webkit-box-shadow: 0 0 1px 1px #888; - -moz-box-shadow: 0 0 1px 1px #888; - box-shadow: 0 0 1px 1px #888; - color: #39f; - background-color: #fefefe; - text-decoration: none -} - -.fancy-block.no-hover { - cursor: default -} - -.fancy-block.no-hover:hover { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - color: inherit; - background-color: inherit -} - -.fancy-block.no-hover:hover span.h4 { - color: inherit -} - -.placeholder { - color: #aaa -} - -.help-section { - margin-top: 5px -} - -.help-section .alert { - display: none; - margin-bottom: 0 -} - -#need-help { - padding: 5px; - position: fixed; - bottom: 0; - right: 20px; - border: 1px solid #aaa; - border-bottom: 0 -} - -#mainForm label { - font-weight: bolder -} - -label.inline-radio { - padding-left: 10px; - font-weight: normal -} - -label.inline-radio input { - margin-bottom: 5px -} - -.index-hero { - color: #0e4a69; - margin-left: 385px; - margin-top: 16px; - min-height: 60px; - *padding-top: 3px; - font-size: 32pt; - letter-spacing: 2px; - line-height: 20pt; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4) -} - -.index-hero small { - display: block; - font-size: 18pt; - padding-top: 4px -} - -#mainContent p { - margin: 0 -} - -.callout-search form input[type="text"] { - width: auto; - border: 2px solid #0e4a69; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px -} - -.callout-search form input[type="text"]:hover { - border: 2px solid #2079b5 -} - -.callout-search form input[type="text"]:focus { - border: 2px solid black -} - -.callout-search { - border: 1px solid #0e4a69; - background-color: #fff; - background-color: rgba(255, 255, 255, 0.8); - padding: 20px -} - -.callout-search form div { - margin-bottom: 8px -} - -.cell { - display: table-cell -} - -body .select2-container .select2-results li { - font-size: 13px; - line-height: 15px; - padding: 4px 7px 5px -} - -.select2-container .select2-choice span { - font-size: 13px -} - -@media print { - body { - background: 0 - } -} - -.btn-downloadbutton { - background-color: #1fd7ff; - background-image: -moz-linear-gradient(top, #22dbff, #1bd0e0); - background-image: -ms-linear-gradient(top, #22dbff, #1bd0e0); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#22dbff), - to(#1bd0e0) ); - background-image: -webkit-linear-gradient(top, #22dbff, #1bd0e0); - background-image: -o-linear-gradient(top, #22dbff, #1bd0e0); - background-image: linear-gradient(top, #22dbff, #1bd0e0); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#22dbff', - endColorstr='#1bd0e0', GradientType=0 ); - border-color: #1bd0e0 #1bd0e0 #13929e; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled= false ); - color: #333 -} - -.btn-downloadbutton:hover,.btn-downloadbutton:active,.btn-downloadbutton.active,.btn-downloadbutton.disabled,.btn-downloadbutton[disabled] - { - background-color: #1bd0e0 -} - -.btn-downloadbutton:active,.btn-downloadbutton.active { - background-color: #16a6b2 9 -} - -.btn-themebutton { - background-color: #a9e351; - background-image: -moz-linear-gradient(top, #b9e871, #92dc22); - background-image: -ms-linear-gradient(top, #b9e871, #92dc22); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b9e871), - to(#92dc22) ); - background-image: -webkit-linear-gradient(top, #b9e871, #92dc22); - background-image: -o-linear-gradient(top, #b9e871, #92dc22); - background-image: linear-gradient(top, #b9e871, #92dc22); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b9e871', - endColorstr='#92dc22', GradientType=0 ); - border-color: #92dc22 #92dc22 #669a18; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled= false ); - color: #333 -} - -.btn-themebutton:hover,.btn-themebutton:active,.btn-themebutton.active,.btn-themebutton.disabled,.btn-themebutton[disabled] - { - background-color: #92dc22 -} - -.btn-themebutton:active,.btn-themebutton.active { - background-color: #75b01b \9 -} - -.fancy-block:hover span.h4 { - color: #39f -} -#body{ - width: 720px; - margin: 0 auto; -} \ No newline at end of file diff --git a/webadmin/WebContent/css/statistics.css b/webadmin/WebContent/css/statistics.css deleted file mode 100644 index 3092950d40..0000000000 --- a/webadmin/WebContent/css/statistics.css +++ /dev/null @@ -1,79 +0,0 @@ -body { - padding-top: 80px; - line-height: 18px; -} - -#navbarList { - display: inline-block; -} - -#userButtonContainer { - float: right !important; -} - -#userButton { - height: 28px !important; - padding: 3px 8px !important; - margin-top: 3px; -} - -#statisticsNavbarContainer { - padding-left: 0; - margin-left: 0; -} - -#errorAlert { - width: 410px; - padding: 10px; -} - -#errorAlert p { - margin-top: 3px; -} - -.table-bordered { - border-collapse: separate; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.table { - margin-left: auto; - margin-right: auto; - margin-bottom: 18px; -} - -table { - margin: 1em 0; - clear: both; - max-width: 100%; - border-spacing: 0; -} - -.table-bordered th + th, .table-bordered td + td, .table-bordered th + td, .table-bordered td + th { - border-left: 1px solid #ddd; -} - -.table th, .table td { - padding: 3px 5px !important; - line-height: 18px; - text-align: left; - border-top: 1px solid #ddd; -} - -.table tr { - height: 27px; -} - -a.expander { - margin-left: 0 !important; -} - -.table > thead > tr > th { - border-bottom-width: 1px; -} - -td.child { - padding-left: 39px !important; -} \ No newline at end of file diff --git a/webadmin/WebContent/fonts/glyphicons-halflings-regular.eot b/webadmin/WebContent/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 4a4ca865d6..0000000000 Binary files a/webadmin/WebContent/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/webadmin/WebContent/fonts/glyphicons-halflings-regular.svg b/webadmin/WebContent/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index e3e2dc739d..0000000000 --- a/webadmin/WebContent/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/webadmin/WebContent/fonts/glyphicons-halflings-regular.ttf b/webadmin/WebContent/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 67fa00bf83..0000000000 Binary files a/webadmin/WebContent/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/webadmin/WebContent/fonts/glyphicons-halflings-regular.woff b/webadmin/WebContent/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 8c54182aa5..0000000000 Binary files a/webadmin/WebContent/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/webadmin/WebContent/images/MirthConnect_Logo_WordMark_Big.png b/webadmin/WebContent/images/MirthConnect_Logo_WordMark_Big.png deleted file mode 100644 index 26e3d022f4..0000000000 Binary files a/webadmin/WebContent/images/MirthConnect_Logo_WordMark_Big.png and /dev/null differ diff --git a/webadmin/WebContent/images/MirthConnect_Logo_WordMark_RGB.png b/webadmin/WebContent/images/MirthConnect_Logo_WordMark_RGB.png deleted file mode 100644 index a1765ebb7f..0000000000 Binary files a/webadmin/WebContent/images/MirthConnect_Logo_WordMark_RGB.png and /dev/null differ diff --git a/webadmin/WebContent/images/MirthConnect_Logo_WordMark_white.png b/webadmin/WebContent/images/MirthConnect_Logo_WordMark_white.png deleted file mode 100644 index bd51c074aa..0000000000 Binary files a/webadmin/WebContent/images/MirthConnect_Logo_WordMark_white.png and /dev/null differ diff --git a/webadmin/WebContent/images/MirthConnect_NLogo_WM_RGB.png b/webadmin/WebContent/images/MirthConnect_NLogo_WM_RGB.png deleted file mode 100644 index bb0572be31..0000000000 Binary files a/webadmin/WebContent/images/MirthConnect_NLogo_WM_RGB.png and /dev/null differ diff --git a/webadmin/WebContent/images/NG_MC_Icon_128x128.png b/webadmin/WebContent/images/NG_MC_Icon_128x128.png deleted file mode 100644 index 3a85b40c24..0000000000 Binary files a/webadmin/WebContent/images/NG_MC_Icon_128x128.png and /dev/null differ diff --git a/webadmin/WebContent/images/NG_MC_Icon_16x16.png b/webadmin/WebContent/images/NG_MC_Icon_16x16.png deleted file mode 100644 index 0bc458afeb..0000000000 Binary files a/webadmin/WebContent/images/NG_MC_Icon_16x16.png and /dev/null differ diff --git a/webadmin/WebContent/images/favicon.ico b/webadmin/WebContent/images/favicon.ico deleted file mode 100644 index 44519dd761..0000000000 Binary files a/webadmin/WebContent/images/favicon.ico and /dev/null differ diff --git a/webadmin/WebContent/images/glyphicons_003_user.png b/webadmin/WebContent/images/glyphicons_003_user.png deleted file mode 100644 index 8e49bf4da0..0000000000 Binary files a/webadmin/WebContent/images/glyphicons_003_user.png and /dev/null differ diff --git a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-collapse-dark.png b/webadmin/WebContent/images/ludo-jquery-treetable/toggle-collapse-dark.png deleted file mode 100644 index 76577a57a2..0000000000 Binary files a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-collapse-dark.png and /dev/null differ diff --git a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-collapse-light.png b/webadmin/WebContent/images/ludo-jquery-treetable/toggle-collapse-light.png deleted file mode 100644 index ed1612fd9b..0000000000 Binary files a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-collapse-light.png and /dev/null differ diff --git a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-expand-dark.png b/webadmin/WebContent/images/ludo-jquery-treetable/toggle-expand-dark.png deleted file mode 100644 index cfb42a4512..0000000000 Binary files a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-expand-dark.png and /dev/null differ diff --git a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-expand-light.png b/webadmin/WebContent/images/ludo-jquery-treetable/toggle-expand-light.png deleted file mode 100644 index 27b52344dc..0000000000 Binary files a/webadmin/WebContent/images/ludo-jquery-treetable/toggle-expand-light.png and /dev/null differ diff --git a/webadmin/WebContent/index.html b/webadmin/WebContent/index.html deleted file mode 100644 index 5b7733fb7e..0000000000 --- a/webadmin/WebContent/index.html +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/webadmin/WebContent/js/bootstrap.min.js b/webadmin/WebContent/js/bootstrap.min.js deleted file mode 100644 index b04a0e82ff..0000000000 --- a/webadmin/WebContent/js/bootstrap.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.1.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/webadmin/WebContent/js/jquery-3.5.1.min.js b/webadmin/WebContent/js/jquery-3.5.1.min.js deleted file mode 100644 index b0614034ad..0000000000 --- a/webadmin/WebContent/js/jquery-3.5.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me",debug:!1,headerList:[],empties:{},strings:{},parsers:[],globalize:0,imgAttr:0},css:{table:"tablesorter",cssHasChild:"tablesorter-hasChildRow",childRow:"tablesorter-childRow",colgroup:"tablesorter-colgroup",header:"tablesorter-header",headerRow:"tablesorter-headerRow",headerIn:"tablesorter-header-inner",icon:"tablesorter-icon",processing:"tablesorter-processing",sortAsc:"tablesorter-headerAsc",sortDesc:"tablesorter-headerDesc",sortNone:"tablesorter-headerUnSorted"},language:{sortAsc:"Ascending sort applied, ",sortDesc:"Descending sort applied, ",sortNone:"No sort applied, ",sortDisabled:"sorting is disabled",nextAsc:"activate to apply an ascending sort",nextDesc:"activate to apply a descending sort",nextNone:"activate to remove the sort"},regex:{templateContent:/\{content\}/g,templateIcon:/\{icon\}/g,templateName:/\{name\}/i,spaces:/\s+/g,nonWord:/\W/g,formElements:/(input|select|button|textarea)/i,chunk:/(^([+\-]?(?:\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,chunks:/(^\\0|\\0$)/,hex:/^0x[0-9a-f]+$/i,comma:/,/g,digitNonUS:/[\s|\.]/g,digitNegativeTest:/^\s*\([.\d]+\)/,digitNegativeReplace:/^\s*\(([.\d]+)\)/,digitTest:/^[\-+(]?\d+[)]?$/,digitReplace:/[,.'"\s]/g},string:{max:1,min:-1,emptymin:1,emptymax:-1,zero:0,none:0,"null":0,top:!0,bottom:!1},keyCodes:{enter:13},dates:{},instanceMethods:{},setup:function(t,r){if(t&&t.tHead&&0!==t.tBodies.length&&!0!==t.hasInitialized){var e,o="",s=A(t),a=A.metadata;t.hasInitialized=!1,t.isProcessing=!0,t.config=r,A.data(t,"tablesorter",r),L.debug(r,"core")&&(console[console.group?"group":"log"]("Initializing tablesorter v"+L.version),A.data(t,"startoveralltimer",new Date)),r.supportsDataObject=((e=A.fn.jquery.split("."))[0]=parseInt(e[0],10),1':"",d.$headers=A(A.map(d.$table.find(d.selectorHeaders),function(e,t){var r,o,s,a,n,i=A(e);if(!L.getClosest(i,"tr").hasClass(d.cssIgnoreRow))return/(th|td)/i.test(e.nodeName)||(n=L.getClosest(i,"th, td"),i.attr("data-column",n.attr("data-column"))),r=L.getColumnData(d.table,d.headers,t,!0),d.headerContent[t]=i.html(),""===d.headerTemplate||i.find("."+L.css.headerIn).length||(a=d.headerTemplate.replace(L.regex.templateContent,i.html()).replace(L.regex.templateIcon,i.find("."+L.css.icon).length?"":l),d.onRenderTemplate&&(o=d.onRenderTemplate.apply(i,[t,a]))&&"string"==typeof o&&(a=o),i.html('
'+a+"
")),d.onRenderHeader&&d.onRenderHeader.apply(i,[t,d,d.$table]),s=parseInt(i.attr("data-column"),10),e.column=s,n=L.getOrder(L.getData(i,r,"sortInitialOrder")||d.sortInitialOrder),d.sortVars[s]={count:-1,order:n?d.sortReset?[1,0,2]:[1,0]:d.sortReset?[0,1,2]:[0,1],lockedOrder:!1,sortedBy:""},void 0!==(n=L.getData(i,r,"lockedOrder")||!1)&&!1!==n&&(d.sortVars[s].lockedOrder=!0,d.sortVars[s].order=L.getOrder(n)?[1,1]:[0,0]),d.headerList[t]=e,i.addClass(L.css.header+" "+d.cssHeader),L.getClosest(i,"tr").addClass(L.css.headerRow+" "+d.cssHeaderRow).attr("role","row"),d.tabIndex&&i.attr("tabindex",0),e})),d.$headerIndexed=[],r=0;r'),t=n.$table.width(),s=(o=n.$tbodies.find("tr:first").children(":visible")).length,a=0;a").css("width",r));n.$table.prepend(i)}},getData:function(e,t,r){var o,s,a="",n=A(e);return n.length?(o=!!A.metadata&&n.metadata(),s=" "+(n.attr("class")||""),void 0!==n.data(r)||void 0!==n.data(r.toLowerCase())?a+=n.data(r)||n.data(r.toLowerCase()):o&&void 0!==o[r]?a+=o[r]:t&&void 0!==t[r]?a+=t[r]:" "!==s&&s.match(" "+r+"-")&&(a=s.match(new RegExp("\\s"+r+"-([\\w-]+)"))[1]||""),A.trim(a)):""},getColumnData:function(e,t,r,o,s){if("object"!=typeof t||null===t)return t;var a,n=(e=A(e)[0]).config,i=s||n.$headers,d=n.$headerIndexed&&n.$headerIndexed[r]||i.find('[data-column="'+r+'"]:last');if(void 0!==t[r])return o?t[r]:t[i.index(d)];for(a in t)if("string"==typeof a&&d.filter(a).add(d.find(a)).length)return t[a]},isProcessing:function(e,t,r){var o=(e=A(e))[0].config,s=r||e.find("."+L.css.header);t?(void 0!==r&&0'),A.fn.detach?t.detach():t.remove();var o=A(e).find("colgroup.tablesorter-savemyplace");t.insertAfter(o),o.remove(),e.isProcessing=!1},clearTableBody:function(e){A(e)[0].config.$tbodies.children().detach()},characterEquivalents:{a:"áàâãäąå",A:"ÁÀÂÃÄĄÅ",c:"çćč",C:"ÇĆČ",e:"éèêëěę",E:"ÉÈÊËĚĘ",i:"íìİîïı",I:"ÍÌİÎÏ",o:"óòôõöō",O:"ÓÒÔÕÖŌ",ss:"ß",SS:"ẞ",u:"úùûüů",U:"ÚÙÛÜŮ"},replaceAccents:function(e){var t,r="[",o=L.characterEquivalents;if(!L.characterRegex){for(t in L.characterRegexArray={},o)"string"==typeof t&&(r+=o[t],L.characterRegexArray[t]=new RegExp("["+o[t]+"]","g"));L.characterRegex=new RegExp(r+"]")}if(L.characterRegex.test(e))for(t in o)"string"==typeof t&&(e=e.replace(L.characterRegexArray[t],t));return e},validateOptions:function(e){var t,r,o,s,a="headers sortForce sortList sortAppend widgets".split(" "),n=e.originalSettings;if(n){for(t in L.debug(e,"core")&&(s=new Date),n)if("undefined"===(o=typeof L.defaults[t]))console.warn('Tablesorter Warning! "table.config.'+t+'" option not recognized');else if("object"===o)for(r in n[t])o=L.defaults[t]&&typeof L.defaults[t][r],A.inArray(t,a)<0&&"undefined"===o&&console.warn('Tablesorter Warning! "table.config.'+t+"."+r+'" option not recognized');L.debug(e,"core")&&console.log("validate options time:"+L.benchmark(s))}},restoreHeaders:function(e){var t,r,o=A(e)[0].config,s=o.$table.find(o.selectorHeaders),a=s.length;for(t=0;t tr").children("th, td");!1===t&&0<=A.inArray("uitheme",a.widgets)&&(s.triggerHandler("applyWidgetId",["uitheme"]),s.triggerHandler("applyWidgetId",["zebra"])),n.find("tr").not(i).remove(),o="sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets removeWidget destroy mouseup mouseleave "+"keypress sortBegin sortEnd resetToLoadState ".split(" ").join(a.namespace+" "),s.removeData("tablesorter").unbind(o.replace(L.regex.spaces," ")),a.$headers.add(d).removeClass([L.css.header,a.cssHeader,a.cssAsc,a.cssDesc,L.css.sortAsc,L.css.sortDesc,L.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled","true"),i.find(a.selectorSort).unbind("mousedown mouseup keypress ".split(" ").join(a.namespace+" ").replace(L.regex.spaces," ")),L.restoreHeaders(e),s.toggleClass(L.css.table+" "+a.tableClass+" tablesorter-"+a.theme,!1===t),s.removeClass(a.namespace.slice(1)),e.hasInitialized=!1,delete e.config.cache,"function"==typeof r&&r(e),L.debug(a,"core")&&console.log("tablesorter has been removed")}}};A.fn.tablesorter=function(t){return this.each(function(){var e=A.extend(!0,{},L.defaults,t,L.instanceMethods);e.originalSettings=t,!this.hasInitialized&&L.buildTable&&"TABLE"!==this.nodeName?L.buildTable(this,e):L.setup(this,e)})},window.console&&window.console.log||(L.logs=[],console={},console.log=console.warn=console.error=console.table=function(){var e=1> Using",n?h:"cookies"),b.parseJSON&&(o=n?b.parseJSON(y[h][t]||"null")||{}:(l=_.cookie.split(/[;\s|=]/),0!==(a=b.inArray(t,l)+1)&&b.parseJSON(l[a]||"null")||{})),void 0===r||!y.JSON||!JSON.hasOwnProperty("stringify"))return o&&o[m]?o[m][g]:"";o[m]||(o[m]={}),o[m][g]=r,n?y[h][t]=JSON.stringify(o):((s=new Date).setTime(s.getTime()+31536e6),_.cookie=t+"="+JSON.stringify(o).replace(/\"/g,'"')+"; expires="+s.toGMTString()+"; path=/")}}(e,window,document),function(C){"use strict";var z=C.tablesorter||{};z.themes={bootstrap:{table:"table table-bordered table-striped",caption:"caption",header:"bootstrap-header",sortNone:"",sortAsc:"",sortDesc:"",active:"",hover:"",icons:"",iconSortNone:"bootstrap-icon-unsorted",iconSortAsc:"glyphicon glyphicon-chevron-up",iconSortDesc:"glyphicon glyphicon-chevron-down",filterRow:"",footerRow:"",footerCells:"",even:"",odd:""},jui:{table:"ui-widget ui-widget-content ui-corner-all",caption:"ui-widget-content",header:"ui-widget-header ui-corner-all ui-state-default",sortNone:"",sortAsc:"",sortDesc:"",active:"ui-state-active",hover:"ui-state-hover",icons:"ui-icon",iconSortNone:"ui-icon-carat-2-n-s ui-icon-caret-2-n-s",iconSortAsc:"ui-icon-carat-1-n ui-icon-caret-1-n",iconSortDesc:"ui-icon-carat-1-s ui-icon-caret-1-s",filterRow:"",footerRow:"",footerCells:"",even:"ui-widget-content",odd:"ui-state-default"}},C.extend(z.css,{wrapper:"tablesorter-wrapper"}),z.addWidget({id:"uitheme",priority:10,format:function(e,t,r){var i,a,l,s,n,o,c,d,f,h,u,p,g,m=z.themes,b=t.$table.add(C(t.namespace+"_extra_table")),y=t.$headers.add(C(t.namespace+"_extra_headers")),_=t.theme||"jui",v=m[_]||{},w=C.trim([v.sortNone,v.sortDesc,v.sortAsc,v.active].join(" ")),x=C.trim([v.iconSortNone,v.iconSortDesc,v.iconSortAsc].join(" ")),S=z.debug(t,"uitheme");for(S&&(n=new Date),b.hasClass("tablesorter-"+_)&&t.theme===t.appliedTheme&&r.uitheme_applied||(r.uitheme_applied=!0,h=m[t.appliedTheme]||{},u=(g=!C.isEmptyObject(h))?[h.sortNone,h.sortDesc,h.sortAsc,h.active].join(" "):"",p=g?[h.iconSortNone,h.iconSortDesc,h.iconSortAsc].join(" "):"",g&&(r.zebra[0]=C.trim(" "+r.zebra[0].replace(" "+h.even,"")),r.zebra[1]=C.trim(" "+r.zebra[1].replace(" "+h.odd,"")),t.$tbodies.children().removeClass([h.even,h.odd].join(" "))),v.even&&(r.zebra[0]+=" "+v.even),v.odd&&(r.zebra[1]+=" "+v.odd),b.children("caption").removeClass(h.caption||"").addClass(v.caption),d=b.removeClass((t.appliedTheme?"tablesorter-"+(t.appliedTheme||""):"")+" "+(h.table||"")).addClass("tablesorter-"+_+" "+(v.table||"")).children("tfoot"),t.appliedTheme=t.theme,d.length&&d.children("tr").removeClass(h.footerRow||"").addClass(v.footerRow).children("th, td").removeClass(h.footerCells||"").addClass(v.footerCells),y.removeClass((g?[h.header,h.hover,u].join(" "):"")||"").addClass(v.header).not(".sorter-false").unbind("mouseenter.tsuitheme mouseleave.tsuitheme").bind("mouseenter.tsuitheme mouseleave.tsuitheme",function(e){C(this)["mouseenter"===e.type?"addClass":"removeClass"](v.hover||"")}),y.each(function(){var e=C(this);e.find("."+z.css.wrapper).length||e.wrapInner('
')}),t.cssIcon&&y.find("."+z.css.icon).removeClass(g?[h.icons,p].join(" "):"").addClass(v.icons||""),z.hasWidget(t.table,"filter")&&(a=function(){b.children("thead").children("."+z.css.filterRow).removeClass(g&&h.filterRow||"").addClass(v.filterRow||"")},r.filter_initialized?a():b.one("filterInit",function(){a()}))),i=0;i> Applied "+_+" theme"+z.benchmark(n))},remove:function(e,t,r,i){if(r.uitheme_applied){var a=t.$table,l=t.appliedTheme||"jui",s=z.themes[l]||z.themes.jui,n=a.children("thead").children(),o=s.sortNone+" "+s.sortDesc+" "+s.sortAsc,c=s.iconSortNone+" "+s.iconSortDesc+" "+s.iconSortAsc;a.removeClass("tablesorter-"+l+" "+s.table),r.uitheme_applied=!1,i||(a.find(z.css.header).removeClass(s.header),n.unbind("mouseenter.tsuitheme mouseleave.tsuitheme").removeClass(s.hover+" "+o+" "+s.active).filter("."+z.css.filterRow).removeClass(s.filterRow),n.find("."+z.css.icon).removeClass(s.icons+" "+c))}}})}(e),function(b){"use strict";var y=b.tablesorter||{};y.addWidget({id:"columns",priority:65,options:{columns:["primary","secondary","tertiary"]},format:function(e,t,r){var i,a,l,s,n,o,c,d,f=t.$table,h=t.$tbodies,u=t.sortList,p=u.length,g=r&&r.columns||["primary","secondary","tertiary"],m=g.length-1;for(c=g.join(" "),a=0;a=]/g,query:"(q|query)",wild01:/\?/g,wild0More:/\*/g,quote:/\"/g,isNeg1:/(>=?\s*-\d)/,isNeg2:/(<=?\s*\d)/},types:{or:function(e,t,r){if(!O.orTest.test(t.iFilter)&&!O.orSplit.test(t.filter)||O.regex.test(t.filter))return null;var i,a,l,s=A.extend({},t),n=t.filter.split(O.orSplit),o=t.iFilter.split(O.orSplit),c=n.length;for(i=0;i]=?/,gtTest:/>/,gteTest:/>=/,ltTest:/'+(a.data("placeholder")||a.attr("data-placeholder")||d.filter_placeholder.select||"")+"":"",0<=(i=s=t).indexOf(d.filter_selectSourceSeparator)&&(i=(s=t.split(d.filter_selectSourceSeparator))[1],s=s[0]),e+="");c.$table.find("thead").find("select."+b.filter+'[data-column="'+l+'"]').append(e),(n="function"==typeof(i=d.filter_selectSource)||E.getColumnData(r,i,l))&&I.buildSelect(c.table,l,"",!0,a.hasClass(d.filter_onlyAvail))}I.buildDefault(r,!0),I.bindSearch(r,c.$table.find("."+b.filter),!0),d.filter_external&&I.bindSearch(r,d.filter_external),d.filter_hideFilters&&I.hideFilters(c),c.showProcessing&&(i="filterStart filterEnd ".split(" ").join(c.namespace+"filter-sp "),c.$table.unbind(i.replace(E.regex.spaces," ")).bind(i,function(e,t){a=t?c.$table.find("."+b.header).filter("[data-column]").filter(function(){return""!==t[A(this).data("column")]}):"",E.isProcessing(r,"filterStart"===e.type,t?a:"")})),c.filteredRows=c.totalRows,i="tablesorter-initialized pagerBeforeInitialized ".split(" ").join(c.namespace+"filter "),c.$table.unbind(i.replace(E.regex.spaces," ")).bind(i,function(){I.completeInit(this)}),c.pager&&c.pager.initialized&&!d.filter_initialized?(c.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){I.filterInitComplete(c)},100)):d.filter_initialized||I.completeInit(r)},completeInit:function(e){var t=e.config,r=t.widgetOptions,i=I.setDefaults(e,t,r)||[];i.length&&(t.delayInit&&""===i.join("")||E.setFilters(e,i,!0)),t.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){r.filter_initialized||I.filterInitComplete(t)},100)},formatterUpdated:function(e,t){var r=e&&e.closest("table"),i=r.length&&r[0].config,a=i&&i.widgetOptions;a&&!a.filter_initialized&&(a.filter_formatterInit[t]=1)},filterInitComplete:function(e){var t,r,i=e.widgetOptions,a=0,l=function(){i.filter_initialized=!0,e.lastSearch=e.$table.data("lastSearch"),e.$table.triggerHandler("filterInit",e),I.findRows(e.table,e.lastSearch||[]),E.debug(e,"filter")&&console.log("Filter >> Widget initialized")};if(A.isEmptyObject(i.filter_formatter))l();else{for(r=i.filter_formatterInit.length,t=0;t';for(l=0;l").appendTo(t.$table.children("thead").eq(0)).children("td"),l=0;l").appendTo(i):((d=E.getColumnData(e,r.filter_formatter,l))?(r.filter_formatterCount++,(g=d(i,l))&&0===g.length&&(g=i.children("input")),g&&(0===g.parent().length||g.parent().length&&g.parent()[0]!==i[0])&&i.append(g)):g=A('').appendTo(i),g&&(f=s.data("placeholder")||s.attr("data-placeholder")||r.filter_placeholder.search||"",g.attr("placeholder",f))),g&&(c=(A.isArray(r.filter_cssFilter)?void 0!==r.filter_cssFilter[l]&&r.filter_cssFilter[l]||"":r.filter_cssFilter)||"",g.addClass(b.filter+" "+c),(f=(c=r.filter_filterLabel).match(/{{([^}]+?)}}/g))||(f=["{{label}}"]),A.each(f,function(e,t){var r=new RegExp(t,"g"),i=s.attr("data-"+t.replace(/{{|}}/g,"")),a=void 0===i?s.text():i;c=c.replace(r,A.trim(a))}),g.attr({"data-column":i.attr("data-column"),"aria-label":c}),o&&(g.attr("placeholder","").addClass(b.filterDisabled)[0].disabled=!0)))},bindSearch:function(a,e,t){if(a=A(a)[0],(e=A(e)).length){var r,l=a.config,s=l.widgetOptions,i=l.namespace+"filter",n=s.filter_$externalFilters;!0!==t&&(r=s.filter_anyColumnSelector+","+s.filter_multipleColumnSelector,s.filter_$anyMatch=e.filter(r),n&&n.length?s.filter_$externalFilters=s.filter_$externalFilters.add(e):s.filter_$externalFilters=e,E.setFilters(a,l.$table.data("lastSearch")||[],!1===t)),r="keypress keyup keydown search change input ".split(" ").join(i+" "),e.attr("data-lastSearchTime",(new Date).getTime()).unbind(r.replace(E.regex.spaces," ")).bind("keydown"+i,function(e){if(e.which===o.escape&&!a.config.widgetOptions.filter_resetOnEsc)return!1}).bind("keyup"+i,function(e){s=a.config.widgetOptions;var t=parseInt(A(this).attr("data-column"),10),r="boolean"==typeof s.filter_liveSearch?s.filter_liveSearch:E.getColumnData(a,s.filter_liveSearch,t);if(void 0===r&&(r=s.filter_liveSearch.fallback||!1),A(this).attr("data-lastSearchTime",(new Date).getTime()),e.which===o.escape)this.value=s.filter_resetOnEsc?"":l.lastSearch[t];else{if(""!==this.value&&("number"==typeof r&&this.value.length=o.left&&e.which<=o.down)))return;if(!1===r&&""!==this.value&&e.which!==o.enter)return}I.searching(a,!0,!0,t)}).bind("search change keypress input blur ".split(" ").join(i+" "),function(e){var t=parseInt(A(this).attr("data-column"),10),r=e.type,i="boolean"==typeof s.filter_liveSearch?s.filter_liveSearch:E.getColumnData(a,s.filter_liveSearch,t);!a.config.widgetOptions.filter_initialized||e.which!==o.enter&&"search"!==r&&"blur"!==r&&("change"!==r&&"input"!==r||!0!==i&&(!0===i||"INPUT"===e.target.nodeName)||this.value===l.lastSearch[t])||(e.preventDefault(),A(this).attr("data-lastSearchTime",(new Date).getTime()),I.searching(a,"keypress"!==r,!0,t))})}},searching:function(e,t,r,i){var a,l=e.config.widgetOptions;void 0===i?a=!1:void 0===(a="boolean"==typeof l.filter_liveSearch?l.filter_liveSearch:E.getColumnData(e,l.filter_liveSearch,i))&&(a=l.filter_liveSearch.fallback||!1),clearTimeout(l.filter_searchTimer),void 0===t||!0===t?l.filter_searchTimer=setTimeout(function(){I.checkFilters(e,t,r)},a?l.filter_searchDelay:10):I.checkFilters(e,t,r)},equalFilters:function(e,t,r){var i,a=[],l=[],s=e.columns+1;for(t=A.isArray(t)?t:[],r=A.isArray(r)?r:[],i=0;i=e.columns&&(n=e.columns-1);s<=n;s++)h[h.length]=s;t=t.replace(a[d],"")}if(!r&&/,/.test(t))for(f=(o=t.split(/\s*,\s*/)).length,c=0;c> Starting filter widget search",r),m=new Date),F.filteredRows=0,t=$||[],c=F.totalRows=0;c> Searching through "+(v&&_> Completed search"+E.benchmark(m)),R.filter_initialized&&(F.$table.triggerHandler("filterBeforeEnd",F),F.$table.triggerHandler("filterEnd",F)),setTimeout(function(){E.applyWidget(F.table)},0)}},getOptionSource:function(e,t,r){var i=(e=A(e)[0]).config,a=!1,l=i.widgetOptions.filter_selectSource,s=i.$table.data("lastSearch")||[],n="function"==typeof l||E.getColumnData(e,l,t);if(r&&""!==s[t]&&(r=!1),!0===n)a=l(e,t,r);else{if(n instanceof A||"string"===A.type(n)&&0<=n.indexOf(""))return n;if(A.isArray(n))a=n;else if("object"===A.type(l)&&n&&null===(a=n(e,t,r)))return null}return!1===a&&(a=I.getOptions(e,t,r)),I.processOptions(e,t,a)},processOptions:function(a,l,r){if(!A.isArray(r))return!1;var s,e,t,i,n,o,c=(a=A(a)[0]).config,d=null!=l&&0<=l&&l'+(p.data("placeholder")||p.attr("data-placeholder")||u.filter_placeholder.select||"")+"",m=h.$table.find("thead").find("select."+b.filter+'[data-column="'+t+'"]').val();if(void 0!==r&&""!==r||null!==(r=I.getOptionSource(e,t,a))){if(A.isArray(r)){for(l=0;l"}else""+f!="[object Object]"&&(0<=(s=n=f=(""+f).replace(O.quote,""")).indexOf(u.filter_selectSourceSeparator)&&(s=(o=n.split(u.filter_selectSourceSeparator))[0],n=o[1]),g+=""!==f?"":"");r=[]}c=(h.$filters?h.$filters:h.$table.children("thead")).find("."+b.filter),u.filter_$externalFilters&&(c=c&&c.length?c.add(u.filter_$externalFilters):u.filter_$externalFilters),(d=c.filter('select[data-column="'+t+'"]')).length&&(d[i?"html":"append"](g),A.isArray(r)||d.append(r).val(m),d.val(m))}}},buildDefault:function(e,t){var r,i,a,l=e.config,s=l.widgetOptions,n=l.columns;for(r=0;r'),w=d.parent().addClass(F.css.stickyHide).css({position:m.length?"absolute":"fixed",padding:parseInt(d.parent().parent().css("padding-left"),10),top:c+v,left:0,visibility:"hidden",zIndex:p.stickyHeaders_zIndex||2}),f=d.children("thead:first"),x="",h=function(e,t){var r,i,a,l,s,n=e.filter(":visible"),o=n.length;for(r=0;rr.top&&o thead:gt(0), tr.sticky-false").hide(),d.find("> tbody, > tfoot").remove(),d.find("caption").toggle(p.stickyHeaders_includeCaption),l=f.children().children(),d.css({height:0,width:0,margin:0}),l.find("."+F.css.resizer).remove(),g.addClass("hasStickyHeaders").bind("pagerComplete"+s,function(){C()}),F.bindEvents(e,f.children().children("."+F.css.header)),p.stickyHeaders_appendTo?z(p.stickyHeaders_appendTo).append(w):g.after(w),r.onRenderHeader)for(i=(a=f.children("tr").children()).length,t=0;t";d("head").append(e)}),f.resizable={init:function(e,t){if(!e.$table.hasClass("hasResizable")){e.$table.addClass("hasResizable");var r,i,a,l,s=e.$table,n=s.parent(),o=parseInt(s.css("margin-top"),10),c=t.resizable_vars={useStorage:f.storage&&!1!==t.resizable,$wrap:n,mouseXPosition:0,$target:null,$next:null,overflow:"auto"===n.css("overflow")||"scroll"===n.css("overflow")||"auto"===n.css("overflow-x")||"scroll"===n.css("overflow-x"),storedSizes:[]};for(f.resizableReset(e.table,!0),c.tableWidth=s.width(),c.fullWidth=Math.abs(n.width()-c.tableWidth)<20,c.useStorage&&c.overflow&&(f.storage(e.table,"tablesorter-table-original-css-width",c.tableWidth),l=f.storage(e.table,"tablesorter-table-resized-width")||"auto",f.resizable.setWidth(s,l,!0)),t.resizable_vars.storedSizes=a=(c.useStorage?f.storage(e.table,f.css.resizableStorage):[])||[],f.resizable.setWidths(e,t,a),f.resizable.updateStoredSizes(e,t),t.$resizable_container=d('
').css({top:o}).insertBefore(s),i=0;i').appendTo(t.$resizable_container).attr({"data-column":i,unselectable:"on"}).data("header",r).bind("selectstart",!1);f.resizable.bindings(e,t)}},updateStoredSizes:function(e,t){var r,i,a=e.columns,l=t.resizable_vars;for(l.storedSizes=[],r=0;r> Saving last sort: "+e.sortList+c.benchmark(a))):(l.addClass("hasSaveSort"),n="",c.storage&&(n=d(e),o&&console.log('saveSort >> Last sort loaded: "'+n+'"'+c.benchmark(a)),l.bind("saveSortReset",function(e){e.stopPropagation(),c.storage(t,"tablesorter-savesort","")})),i&&n&&0 0) { - node.addClass("parent"); - } - - if(node.hasClass("parent")) { - var cell = $(node.children("td")[options.treeColumn]); - var padding = getPaddingLeft(cell) + options.indent; - - childNodes.each(function() { - $(this).children("td")[options.treeColumn].style.paddingLeft = padding + "px"; - }); - - if(options.expandable) { - var newLink = ''; - - if(options.clickableNodeNames) { - cell.wrapInner(newLink); - } else { - cell.html(newLink+cell.html()); - } - - $(cell[0].firstChild).click(function() { node.toggleBranch(); return false; }).mousedown(function() { return false; }); - $(cell[0].firstChild).keydown(function(e) { if(e.keyCode == 13) { node.toggleBranch(); return false; }}); - - if(options.clickableNodeNames) { - cell[0].style.cursor = "pointer"; - $(cell).click(function(e) { - // Don't double-toggle if the click is on the existing expander icon - if (e.target.className != 'expander') { - node.toggleBranch(); - } - }); - } - - if (options.persist && getPersistedNodeState(node)) { - node.addClass('expanded'); - } - - // Check for a class set explicitly by the user, otherwise set the default class - if(!(node.hasClass("expanded") || node.hasClass("collapsed"))) { - node.addClass(options.initialState); - } - - if(node.hasClass("expanded")) { - node.expand(); - } - } - } - } - }; - - function move(node, destination) { - node.insertAfter(destination); - childrenOf(node).reverse().each(function() { move($(this), node[0]); }); - }; - - function parentOf(node) { - var classNames = node[0].className.split(' '); - - for(var key=0; key2)?arguments[2]:{};r.push(esc(c_key)+'='+esc(c_val));for(var idx=0;idx2)?arguments[2]:{},now=get_now(),expire_at,cfg={};if(opt.expires){var expires=opt.expires*RATIO;cfg.expires=new Date(now.getTime()+expires);cfg.expires=cfg.expires.toGMTString();} -var keys=['path','domain','secure'];for(var i=0;i=9){return true;} -if(window.location.protocol=='file:'){return false;}}else{return true;}}else{return false;} -return window.localStorage?true:false;}catch(e){return false;}},methods:{key:function(key){return this.name+'>'+key;},init:function(){this.store=localStorage;},get:function(key){key=this.key(key);return this.store.getItem(key);},set:function(key,val){key=this.key(key);this.store.setItem(key,val);return val;},remove:function(key){var val;key=this.key(key);val=this.store.getItem(key);this.store.removeItem(key);return val;},iterate:function(fn,scope){var l=this.store,key,keys;for(var i=0;i');if((keys.length==2)&&(keys[0]==this.name)){fn.call(scope||this,keys[1],l.getItem(key));}}}}},ie:{prefix:'_persist_data-',size:64*1024,test:function(){return window.ActiveXObject?true:false;},make_userdata:function(id){var el=document.createElement('div');el.id=id;el.style.display='none';el.addBehavior('#default#userdata');document.body.appendChild(el);return el;},methods:{init:function(){var id=B.ie.prefix+esc(this.name);this.el=B.ie.make_userdata(id);if(this.o.defer){this.load();}},get:function(key){var val;key=esc(key);if(!this.o.defer){this.load();} -val=this.el.getAttribute(key);return val;},set:function(key,val){key=esc(key);this.el.setAttribute(key,val);if(!this.o.defer){this.save();} -return val;},remove:function(key){var val;key=esc(key);if(!this.o.defer){this.load();} -val=this.el.getAttribute(key);this.el.removeAttribute(key);if(!this.o.defer){this.save();} -return val;},load:function(){this.el.load(esc(this.name));},save:function(){this.el.save(esc(this.name));}}},cookie:{delim:':',size:4000,test:function(){return P.Cookie.enabled?true:false;},methods:{key:function(key){return this.name+B.cookie.delim+key;},get:function(key,fn){var val;key=this.key(key);val=ec.get(key);return val;},set:function(key,val,fn){key=this.key(key);ec.set(key,val,this.o);return val;},remove:function(key,val){var val;key=this.key(key);val=ec.remove(key);return val;}}},flash:{test:function(){try{if(!swfobject){return false;}}catch(e){return false;} -var major=swfobject.getFlashPlayerVersion().major;return(major>=8)?true:false;},methods:{init:function(){if(!B.flash.el){var key,el,fel,cfg=C.flash;el=document.createElement('div');el.id=cfg.div_id;fel=document.createElement('div');fel.id=cfg.id;el.appendChild(fel);document.body.appendChild(el);B.flash.el=swfobject.createSWF({id:cfg.id,data:this.o.swf_path||cfg.path,width:cfg.size.w,height:cfg.size.h},cfg.params,cfg.id);} -this.el=B.flash.el;},get:function(key){var val;key=esc(key);val=this.el.get(this.name,key);return val;},set:function(key,val){var old_val;key=esc(key);old_val=this.el.set(this.name,key,val);return old_val;},remove:function(key){var val;key=esc(key);val=this.el.remove(this.name,key);return val;}}}};init=function(){var i,l,b,key,fns=C.methods,keys=C.search_order;for(var idx=0,len=fns.length;idx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webadmin/src/com/mirth/connect/webadmin/action/BaseActionBean.java b/webadmin/src/com/mirth/connect/webadmin/action/BaseActionBean.java deleted file mode 100644 index 8d5cf02d3e..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/action/BaseActionBean.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.action; - -import net.sourceforge.stripes.action.ActionBean; -import net.sourceforge.stripes.action.ActionBeanContext; - -public abstract class BaseActionBean implements ActionBean { - private BaseActionBeanContext context; - - public void setContext(ActionBeanContext context) { - this.context = (BaseActionBeanContext) context; - } - - /** Gets the ActionBeanContext set by Stripes during initialization. */ - public BaseActionBeanContext getContext() { - return this.context; - } - - public String getSlashedContextPath(String contextPath) { - // Add a starting slash if one does not exist - if (!contextPath.startsWith("/")) { - contextPath = "/" + contextPath; - } - - // Remove a trailing slash if one exists - if (contextPath.endsWith("/")) { - contextPath = contextPath.substring(0, contextPath.length() - 1); - } - return contextPath; - } -} \ No newline at end of file diff --git a/webadmin/src/com/mirth/connect/webadmin/action/BaseActionBeanContext.java b/webadmin/src/com/mirth/connect/webadmin/action/BaseActionBeanContext.java deleted file mode 100644 index b6cd81ad4c..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/action/BaseActionBeanContext.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.action; - -import net.sourceforge.stripes.action.ActionBeanContext; - -import com.mirth.connect.client.core.Client; -import com.mirth.connect.model.User; - -/** - * ActionBeanContext subclass that manages where values like the logged in user are stored. - */ -public class BaseActionBeanContext extends ActionBeanContext { - public User getUser() { - return (User) getRequest().getSession().getAttribute("user"); - } - - public void setUser(User currentUser) { - getRequest().getSession().setAttribute("user", currentUser); - } - - public boolean getAuthorized() { - return (Boolean) getRequest().getSession().getAttribute("authorized"); - } - - public void setAuthorized(boolean authorized) { - getRequest().getSession().setAttribute("authorized", authorized); - } - - public Client getClient() { - return (Client) getRequest().getSession().getAttribute("client"); - } - - public void setClient(Client client) { - getRequest().getSession().setAttribute("client", client); - } - - public String getHttpPort() { - return (String) getRequest().getSession().getAttribute("httpPort"); - } - - public void setHttpPort(String httpPort) { - getRequest().getSession().setAttribute("httpPort", httpPort); - } - - public String getHttpsPort() { - return (String) getRequest().getSession().getAttribute("httpsPort"); - } - - public void setHttpsPort(String httpsPort) { - getRequest().getSession().setAttribute("httpsPort", httpsPort); - } - - public String getContextPath() { - return (String) getRequest().getSession().getAttribute("contextPath"); - } - - public void setContextPath(String contextPath) { - getRequest().getSession().setAttribute("contextPath", contextPath); - } - - public String getServerAddress() { - return (String) getRequest().getSession().getAttribute("serverAddress"); - } - - public void setServerAddress(String serverAddress) { - getRequest().getSession().setAttribute("serverAddress", serverAddress); - } - - public String getCurrentScheme() { - return (String) getRequest().getSession().getAttribute("currentScheme"); - } - - public void setCurrentScheme(String currentScheme) { - getRequest().getSession().setAttribute("currentScheme", currentScheme); - } - - public String getCurrentPort() { - return (String) getRequest().getSession().getAttribute("currentPort"); - } - - public void setCurrentPort(String currentPort) { - getRequest().getSession().setAttribute("currentPort", currentPort); - } - - public String getMaxHeapSize() { - return (String) getRequest().getSession().getAttribute("maxHeapSize"); - } - - public void setMaxHeapSize(String maxHeapSize) { - getRequest().getSession().setAttribute("maxHeapSize", maxHeapSize); - } - - public String getMaxHeapSizeOptions() { - return (String) getRequest().getSession().getAttribute("maxHeapSizeOptions"); - } - - public void setMaxHeapSizeOptions(String maxHeapSizeOptions) { - getRequest().getSession().setAttribute("maxHeapSizeOptions", maxHeapSizeOptions); - } - - // Logs the user out by invalidating the session. - public void logout() { - getRequest().getSession().invalidate(); - } - - public String getNonce() { - return (String) getRequest().getSession().getAttribute("nonce"); - } - public void setNonce(String nonce) { - getRequest().getSession().setAttribute("nonce", nonce); - } -} diff --git a/webadmin/src/com/mirth/connect/webadmin/action/DashboardStatisticsActionBean.java b/webadmin/src/com/mirth/connect/webadmin/action/DashboardStatisticsActionBean.java deleted file mode 100644 index 083b5b8bbc..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/action/DashboardStatisticsActionBean.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.action; - -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import net.sourceforge.stripes.action.DefaultHandler; -import net.sourceforge.stripes.action.ForwardResolution; -import net.sourceforge.stripes.action.Resolution; -import net.sourceforge.stripes.action.StreamingResolution; - -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; - -import com.mirth.connect.client.core.Client; -import com.mirth.connect.client.core.ClientException; -import com.mirth.connect.donkey.model.channel.DeployedState; -import com.mirth.connect.donkey.model.message.Status; -import com.mirth.connect.model.DashboardStatus; -import com.mirth.connect.webadmin.utils.Constants; - -public class DashboardStatisticsActionBean extends BaseActionBean { - private List dashboardStatusList; - private int nextNodeCount = 1; - private boolean showLifetimeStats = false; - private boolean showAlert; - - @DefaultHandler - public Resolution list() { - Client client = getContext().getClient(); - - if (client != null) { - // Put message Status enums into scope for statistics map key retrieval - HttpServletRequest request = getContext().getRequest(); - for (Status status : Status.values()) { - request.setAttribute(status.toString(), status); - } - - try { - dashboardStatusList = client.getAllChannelStatuses(); - setShowAlert(false); - } catch (ClientException e) { - setShowAlert(true); - } - } else { - setShowAlert(true); - } - return new ForwardResolution(Constants.DASHBOARD_STATS_JSP); - } - - private JSONObject populateStats(DashboardStatus dashboardStatus, String nodeId, boolean lifetimeStats) { - JSONObject jsonObj = new JSONObject(); - jsonObj.put("id", nodeId); - - Map statistics = (lifetimeStats ? dashboardStatus.getLifetimeStatistics() : dashboardStatus.getStatistics()); - - jsonObj.put("name", dashboardStatus.getName()); - jsonObj.put("status", checkState(dashboardStatus.getState())); - jsonObj.put("received", checkNullValue(statistics.get(Status.RECEIVED))); - jsonObj.put("filtered", checkNullValue(statistics.get(Status.FILTERED))); - jsonObj.put("queued", checkNullValue(dashboardStatus.getQueued())); - jsonObj.put("sent", checkNullValue(statistics.get(Status.SENT))); - jsonObj.put("errored", checkNullValue(statistics.get(Status.ERROR))); - - return jsonObj; - } - - public Resolution getStats() { - JSONObject hashMap = new JSONObject(); - JSONArray jsonArray = new JSONArray(); - Client client = getContext().getClient(); - - if (client != null) { - try { - dashboardStatusList = client.getAllChannelStatuses(); - - // Check if channel was deployed/undeployed - if (getContext().getRequest().getSession().getAttribute("size") != null) { - if ((Integer) getContext().getRequest().getSession().getAttribute("size") != dashboardStatusList.size()) { - getContext().getRequest().getSession().setAttribute("size", dashboardStatusList.size()); - return new StreamingResolution("application/json", "0"); - } - } - getContext().getRequest().getSession().setAttribute("size", dashboardStatusList.size()); - - setShowAlert(false); - } catch (ClientException e) { - setShowAlert(true); - } - - if (dashboardStatusList != null) { - for (int i = 0; i < dashboardStatusList.size(); i++) { - DashboardStatus dashboardStatus = dashboardStatusList.get(i); - jsonArray.add(populateStats(dashboardStatus, "node-" + i, showLifetimeStats)); - - List childStatuses = dashboardStatus.getChildStatuses(); - for (int j = 0; j < childStatuses.size(); j++) { - String childId = ((childStatuses.get(j).getName()).replaceAll("\\s", "-")) + "-" + i; - jsonArray.add(populateStats(childStatuses.get(j), childId, showLifetimeStats)); - } - } - } - } else { - setShowAlert(true); - } - - return new StreamingResolution("application/json", jsonArray.toString()); - } - - // Getters & Setters - public List getDashboardStatusList() { - return dashboardStatusList; - } - - public void setDashboardStatusList(List dashboardStatusList) { - this.dashboardStatusList = dashboardStatusList; - } - - public int getNextNodeCount() { - return nextNodeCount++; - } - - public void setNextNodeCount(int nextNodeCount) { - this.nextNodeCount = nextNodeCount; - } - - public boolean isShowLifetimeStats() { - return showLifetimeStats; - } - - public void setShowLifetimeStats(boolean showLifetimeStats) { - this.showLifetimeStats = showLifetimeStats; - } - - public boolean isShowAlert() { - return showAlert; - } - - public void setShowAlert(boolean showAlert) { - this.showAlert = showAlert; - } - - // Private Helper Functions - private long checkNullValue(Long value) { - if (value == null) { - return 0; - } - return value; - } - - private String checkState(DeployedState state) { - if (state == DeployedState.STARTING) - return "STARTING"; - if (state == DeployedState.STARTED) - return "STARTED"; - if (state == DeployedState.PAUSING) - return "PAUSING"; - if (state == DeployedState.PAUSED) - return "PAUSED"; - if (state == DeployedState.STOPPING) - return "STOPPING"; - if (state == DeployedState.STOPPED) - return "STOPPED"; - return null; - } -} \ No newline at end of file diff --git a/webadmin/src/com/mirth/connect/webadmin/action/IndexActionBean.java b/webadmin/src/com/mirth/connect/webadmin/action/IndexActionBean.java deleted file mode 100644 index a3dbb81533..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/action/IndexActionBean.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.action; - -import java.io.IOException; -import java.io.InputStream; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Properties; -import java.util.UUID; - -import javax.servlet.http.HttpServletRequest; - -import net.sourceforge.stripes.action.DefaultHandler; -import net.sourceforge.stripes.action.ForwardResolution; -import net.sourceforge.stripes.action.Resolution; - -import com.mirth.connect.donkey.util.ResourceUtil; -import com.mirth.connect.webadmin.utils.Constants; - -public class IndexActionBean extends BaseActionBean { - private boolean secureHttps; - - @DefaultHandler - public Resolution init() { - BaseActionBeanContext context = getContext(); - HttpServletRequest request = context.getRequest(); - InputStream mirthPropertiesStream = getClass().getResourceAsStream("/mirth.properties"); - - // Set the default properties in case mirth.properties fails to load - String httpsPort = "8443"; - String httpPort = "8080"; - String contextPath = "/"; - String httpsHost = "0.0.0.0"; - String maxHeapSize = "512m"; - String maxHeapSizeOptions = "256m,512m,1g,2g"; - - if (mirthPropertiesStream != null) { - Properties mirthProps = new Properties(); - - try { - mirthProps.load(mirthPropertiesStream); - - httpsPort = mirthProps.getProperty("https.port", httpsPort); - httpPort = mirthProps.getProperty("http.port", httpPort); - maxHeapSize = mirthProps.getProperty("administrator.maxheapsize", maxHeapSize); - maxHeapSizeOptions = mirthProps.getProperty("administrator.maxheapsizeoptions", maxHeapSizeOptions); - contextPath = getSlashedContextPath(mirthProps.getProperty("http.contextpath", contextPath)); - } catch (IOException e) { - // Ignore - } finally { - ResourceUtil.closeResourceQuietly(mirthPropertiesStream); - } - } - - context.setCurrentScheme(request.getScheme()); - context.setCurrentPort(String.valueOf(request.getServerPort())); - context.setHttpsPort(httpsPort); - context.setHttpPort(httpPort); - context.setContextPath(contextPath); - context.setServerAddress(getWebServerUrl("https://", httpsHost, httpsPort, contextPath)); - context.setMaxHeapSize(maxHeapSize); - context.setMaxHeapSizeOptions(maxHeapSizeOptions); - context.setNonce(UUID.randomUUID().toString()); - - // Check if http or https - secureHttps = request.isSecure(); - - return new ForwardResolution(Constants.INDEX_JSP); - } - - - - public boolean isSecureHttps() { - return secureHttps; - } - - public void setSecureHttps(boolean secureHttps) { - this.secureHttps = secureHttps; - } - - private String getWebServerUrl(String prefix, String host, String port, String contextPath) { - if (host.equals("0.0.0.0") || host.equals("::")) { - try { - host = InetAddress.getLocalHost().getHostAddress(); - } catch (UnknownHostException e) { - host = "localhost"; - } - } else if (host.isEmpty()) { - host = "localhost"; - } - - return prefix + host + ":" + port + contextPath; - } -} diff --git a/webadmin/src/com/mirth/connect/webadmin/action/LoginActionBean.java b/webadmin/src/com/mirth/connect/webadmin/action/LoginActionBean.java deleted file mode 100644 index 03b3ffb29b..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/action/LoginActionBean.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.action; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -import javax.servlet.http.HttpServletRequest; - -import net.sourceforge.stripes.action.DefaultHandler; -import net.sourceforge.stripes.action.RedirectResolution; -import net.sourceforge.stripes.action.Resolution; -import net.sourceforge.stripes.action.ErrorResolution; - -import com.mirth.connect.client.core.Client; -import com.mirth.connect.donkey.util.ResourceUtil; -import com.mirth.connect.model.LoginStatus; -import com.mirth.connect.model.User; -import com.mirth.connect.webadmin.utils.Constants; - -public class LoginActionBean extends BaseActionBean { - @DefaultHandler - public Resolution login() { - Client client; - HttpServletRequest request = getContext().getRequest(); - LoginStatus loginStatus = null; - InputStream mirthPropertiesStream = getClass().getResourceAsStream("/mirth.properties"); - String contextPath = "/"; - - if (mirthPropertiesStream != null) { - Properties mirthProps = new Properties(); - - try { - mirthProps.load(mirthPropertiesStream); - - contextPath = getSlashedContextPath(mirthProps.getProperty("http.contextpath", contextPath)); - - } catch (IOException e) { - // Ignore - } finally { - ResourceUtil.closeResourceQuietly(mirthPropertiesStream); - } - } - - - String nonce = request.getParameter("nonce"); - if (nonce == null || nonce.isEmpty() || !nonce.equals(getContext().getNonce())) { - return new ErrorResolution(403, "Invalid request"); - } - - String username = request.getParameter("username"); - String password = request.getParameter("password"); - - try { - client = new Client(getContext().getServerAddress()); - loginStatus = client.login(username, password); - } catch (Exception e) { - return new RedirectResolution(Constants.INDEX_PAGE).addParameter("showAlert", true); - } - - if ((loginStatus != null) && ((loginStatus.getStatus() == LoginStatus.Status.SUCCESS) || (loginStatus.getStatus() == LoginStatus.Status.SUCCESS_GRACE_PERIOD))) { - try { - User validUser = client.getUser(loginStatus.getUpdatedUsername() != null ? loginStatus.getUpdatedUsername() : username); - - // recreate the session to prevent session fixation attack - request.getSession().invalidate(); - request.getSession(true); - - // set the sessions attributes - getContext().setUser(validUser); - getContext().setAuthorized(true); - getContext().setClient(client); - - getContext().setCurrentPort(String.valueOf(request.getServerPort())); - getContext().setContextPath(contextPath); - getContext().setCurrentScheme(request.getScheme()); - - // this prevents the session from timing out - request.getSession().setMaxInactiveInterval(-1); - - // Redirect to Dashboard Statistics - return new RedirectResolution(Constants.DASHBOARD_STATS); - - } catch (Exception e) { - e.printStackTrace(); - return new RedirectResolution(Constants.INDEX_PAGE).addParameter("showAlert", true); - } - } else { - return new RedirectResolution(Constants.INDEX_PAGE).addParameter("showAlert", true); - } - } -} diff --git a/webadmin/src/com/mirth/connect/webadmin/action/LogoutActionBean.java b/webadmin/src/com/mirth/connect/webadmin/action/LogoutActionBean.java deleted file mode 100644 index 03000efb2e..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/action/LogoutActionBean.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.action; - -import java.io.IOException; - -import net.sourceforge.stripes.action.DefaultHandler; -import net.sourceforge.stripes.action.RedirectResolution; -import net.sourceforge.stripes.action.Resolution; - -import com.mirth.connect.client.core.Client; -import com.mirth.connect.client.core.ClientException; -import com.mirth.connect.webadmin.utils.Constants; - -public class LogoutActionBean extends BaseActionBean { - @DefaultHandler - public Resolution logout() throws IOException, ClientException { - try { - Client client = getContext().getClient(); - - // invalidate the current session and logout - getContext().logout(); - client.logout(); - - return new RedirectResolution(Constants.INDEX_PAGE); - } catch (Exception e) { - return new RedirectResolution(Constants.INDEX_PAGE).addParameter("showAlert", true); - } - } -} diff --git a/webadmin/src/com/mirth/connect/webadmin/utils/ChannelStatusDecorator.java b/webadmin/src/com/mirth/connect/webadmin/utils/ChannelStatusDecorator.java deleted file mode 100644 index 530e0de00d..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/utils/ChannelStatusDecorator.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.utils; - -import javax.servlet.jsp.PageContext; - -import org.displaytag.decorator.DisplaytagColumnDecorator; -import org.displaytag.exception.DecoratorException; -import org.displaytag.properties.MediaTypeEnum; - -public class ChannelStatusDecorator implements DisplaytagColumnDecorator { - @Override - public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) throws DecoratorException { - boolean status = (Boolean) columnValue; - - if (status) { - return "Enabled"; - } - return "Disabled"; - } -} diff --git a/webadmin/src/com/mirth/connect/webadmin/utils/Constants.java b/webadmin/src/com/mirth/connect/webadmin/utils/Constants.java deleted file mode 100644 index 9b9bc43d91..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/utils/Constants.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.utils; - -public class Constants { - public static final String DASHBOARD_STATS = "/DashboardStatistics.action"; - public static final String DASHBOARD_STATS_JSP = "/WEB-INF/jsp/dashboardstatistics.jsp"; - public static final String INDEX_PAGE = "/Index.action"; - public static final String INDEX_JSP = "/WEB-INF/jsp/index.jsp"; -} diff --git a/webadmin/src/com/mirth/connect/webadmin/utils/DateDecorator.java b/webadmin/src/com/mirth/connect/webadmin/utils/DateDecorator.java deleted file mode 100644 index 484ac3df45..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/utils/DateDecorator.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.utils; - -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; - -import javax.servlet.jsp.PageContext; - -import org.displaytag.decorator.DisplaytagColumnDecorator; -import org.displaytag.exception.DecoratorException; -import org.displaytag.properties.MediaTypeEnum; - -public class DateDecorator implements DisplaytagColumnDecorator { - private SimpleDateFormat simpleDate = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss.SSS"); - - private String formatDate(Date date) { - return simpleDate.format(date); - } - - @Override - public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) throws DecoratorException { - Calendar cal = (Calendar) columnValue; - return formatDate(cal.getTime()); - } -} diff --git a/webadmin/src/com/mirth/connect/webadmin/utils/ErrorStatsDecorator.java b/webadmin/src/com/mirth/connect/webadmin/utils/ErrorStatsDecorator.java deleted file mode 100644 index 86e3b8a7e6..0000000000 --- a/webadmin/src/com/mirth/connect/webadmin/utils/ErrorStatsDecorator.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) Mirth Corporation. All rights reserved. - * - * http://www.mirthcorp.com - * - * The software in this package is published under the terms of the MPL license a copy of which has - * been included with this distribution in the LICENSE.txt file. - */ - -package com.mirth.connect.webadmin.utils; - -import org.displaytag.decorator.TableDecorator; - -import com.mirth.connect.donkey.model.message.Status; -import com.mirth.connect.model.DashboardStatus; - -public class ErrorStatsDecorator extends TableDecorator { - @Override - public String addRowClass() { - long errorCount = ((DashboardStatus) getCurrentRowObject()).getStatistics().get(Status.ERROR); - - if (errorCount > 0) { - return "bad"; - } - return ("good"); - } -}