From 670689b6abc165ccd934370dcbf9e7d8a3e079bb Mon Sep 17 00:00:00 2001 From: Denes Bodo Date: Thu, 16 Jan 2025 15:58:49 +0100 Subject: [PATCH] OOZIE-3725 Drop support for the webui --- .gitignore | 2 + distro/src/main/bin/addtowar.sh | 42 +- distro/src/main/bin/oozie-setup.sh | 28 +- docs/src/site/markdown/AG_Install.md | 26 +- docs/src/site/markdown/DG_Examples.md | 2 - docs/src/site/markdown/DG_QuickStart.md | 15 +- docs/src/site/markdown/DG_SLAMonitoring.md | 6 +- .../site/markdown/DG_ShellActionExtension.md | 3 - .../site/markdown/DG_SparkActionExtension.md | 3 - .../site/markdown/DG_SqoopActionExtension.md | 3 - docs/src/site/markdown/WebServicesAPI.md | 2 +- .../site/markdown/WorkflowFunctionalSpec.md | 23 +- pom.xml | 3 +- .../oozie/server/EmbeddedOozieServer.java | 5 - .../org/apache/oozie/server/FilterMapper.java | 3 - .../org/apache/oozie/server/JspHandler.java | 162 - .../oozie/server/WebRootResourceLocator.java | 39 - .../server/guice/JspHandlerProvider.java | 49 - .../oozie/server/guice/OozieGuiceModule.java | 3 - .../oozie/server/TestEmbeddedOozieServer.java | 17 +- .../apache/oozie/server/TestJspHandler.java | 94 - webapp/src/main/webapp/403.html | 31 - webapp/src/main/webapp/404.html | 31 - webapp/src/main/webapp/META-INF/context.xml | 19 - webapp/src/main/webapp/WEB-INF/web.xml | 329 -- webapp/src/main/webapp/admin/jvminfo.jsp | 91 - webapp/src/main/webapp/blank.gif | Bin 42 -> 0 bytes .../main/webapp/console/sla/css/ColVis.css | 76 - .../webapp/console/sla/css/TableTools.css | 321 -- .../console/sla/css/images/arrow-down.gif | Bin 916 -> 0 bytes .../console/sla/css/images/arrow-left.gif | Bin 891 -> 0 bytes .../console/sla/css/images/arrow-right.gif | Bin 897 -> 0 bytes .../console/sla/css/images/arrow-up.gif | Bin 916 -> 0 bytes .../images/ui-bg_flat_100_DEECFD_40x100.png | Bin 206 -> 0 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 262 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 207 -> 0 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 278 -> 0 bytes .../css/images/ui-icons_222222_256x240.png | Bin 6922 -> 0 bytes .../sla/css/jquery-ui-1.10.3.custom.min.css | 5 - .../console/sla/css/jquery.dataTables.css | 221 -- .../console/sla/css/oozie-sla-graph.css | 86 - .../console/sla/css/oozie-sla-table.css | 171 - .../main/webapp/console/sla/css/oozie-sla.css | 225 -- .../console/sla/js/graph/jquery.flot.min.js | 28 - .../sla/js/graph/jquery.flot.navigate.min.js | 96 - .../sla/js/graph/jquery.flot.selection.min.js | 79 - .../sla/js/graph/jquery.flot.time.min.js | 9 - .../webapp/console/sla/js/oozie-sla-graph.js | 392 -- .../webapp/console/sla/js/oozie-sla-table.js | 191 - .../main/webapp/console/sla/js/oozie-sla.js | 191 - .../webapp/console/sla/js/table/ColVis.min.js | 34 - .../console/sla/js/table/TableTools.min.js | 76 - .../console/sla/js/table/copy_csv_xls_pdf.swf | Bin 58814 -> 0 bytes .../console/sla/js/table/jquery-1.8.3.min.js | 2 - .../js/table/jquery-ui-1.10.3.custom.min.js | 7 - .../js/table/jquery-ui-timepicker-addon.js | 2103 ----------- .../sla/js/table/jquery.dataTables.min.js | 155 - .../main/webapp/console/sla/oozie-sla.html | 167 - webapp/src/main/webapp/index.jsp | 85 - webapp/src/main/webapp/oozie-console.css | 33 - webapp/src/main/webapp/oozie-console.js | 3346 ----------------- webapp/src/main/webapp/oozie_50x.png | Bin 4660 -> 0 bytes 62 files changed, 25 insertions(+), 9105 deletions(-) delete mode 100644 server/src/main/java/org/apache/oozie/server/JspHandler.java delete mode 100644 server/src/main/java/org/apache/oozie/server/WebRootResourceLocator.java delete mode 100644 server/src/main/java/org/apache/oozie/server/guice/JspHandlerProvider.java delete mode 100644 server/src/test/java/org/apache/oozie/server/TestJspHandler.java delete mode 100644 webapp/src/main/webapp/403.html delete mode 100644 webapp/src/main/webapp/404.html delete mode 100755 webapp/src/main/webapp/META-INF/context.xml delete mode 100644 webapp/src/main/webapp/WEB-INF/web.xml delete mode 100644 webapp/src/main/webapp/admin/jvminfo.jsp delete mode 100644 webapp/src/main/webapp/blank.gif delete mode 100755 webapp/src/main/webapp/console/sla/css/ColVis.css delete mode 100755 webapp/src/main/webapp/console/sla/css/TableTools.css delete mode 100644 webapp/src/main/webapp/console/sla/css/images/arrow-down.gif delete mode 100644 webapp/src/main/webapp/console/sla/css/images/arrow-left.gif delete mode 100644 webapp/src/main/webapp/console/sla/css/images/arrow-right.gif delete mode 100644 webapp/src/main/webapp/console/sla/css/images/arrow-up.gif delete mode 100644 webapp/src/main/webapp/console/sla/css/images/ui-bg_flat_100_DEECFD_40x100.png delete mode 100755 webapp/src/main/webapp/console/sla/css/images/ui-bg_glass_100_f6f6f6_1x400.png delete mode 100755 webapp/src/main/webapp/console/sla/css/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100755 webapp/src/main/webapp/console/sla/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png delete mode 100755 webapp/src/main/webapp/console/sla/css/images/ui-icons_222222_256x240.png delete mode 100755 webapp/src/main/webapp/console/sla/css/jquery-ui-1.10.3.custom.min.css delete mode 100644 webapp/src/main/webapp/console/sla/css/jquery.dataTables.css delete mode 100644 webapp/src/main/webapp/console/sla/css/oozie-sla-graph.css delete mode 100644 webapp/src/main/webapp/console/sla/css/oozie-sla-table.css delete mode 100644 webapp/src/main/webapp/console/sla/css/oozie-sla.css delete mode 100644 webapp/src/main/webapp/console/sla/js/graph/jquery.flot.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/graph/jquery.flot.navigate.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/graph/jquery.flot.selection.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/graph/jquery.flot.time.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/oozie-sla-graph.js delete mode 100644 webapp/src/main/webapp/console/sla/js/oozie-sla-table.js delete mode 100644 webapp/src/main/webapp/console/sla/js/oozie-sla.js delete mode 100644 webapp/src/main/webapp/console/sla/js/table/ColVis.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/table/TableTools.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/table/copy_csv_xls_pdf.swf delete mode 100644 webapp/src/main/webapp/console/sla/js/table/jquery-1.8.3.min.js delete mode 100755 webapp/src/main/webapp/console/sla/js/table/jquery-ui-1.10.3.custom.min.js delete mode 100644 webapp/src/main/webapp/console/sla/js/table/jquery-ui-timepicker-addon.js delete mode 100644 webapp/src/main/webapp/console/sla/js/table/jquery.dataTables.min.js delete mode 100644 webapp/src/main/webapp/console/sla/oozie-sla.html delete mode 100644 webapp/src/main/webapp/index.jsp delete mode 100644 webapp/src/main/webapp/oozie-console.css delete mode 100644 webapp/src/main/webapp/oozie-console.js delete mode 100644 webapp/src/main/webapp/oozie_50x.png diff --git a/.gitignore b/.gitignore index a4285a0d77..87c5aba053 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ distro/downloads SecurityAuth.audit build webapp/overlays +# macos +.DS_Store diff --git a/distro/src/main/bin/addtowar.sh b/distro/src/main/bin/addtowar.sh index 9b0512494a..433caa21d3 100644 --- a/distro/src/main/bin/addtowar.sh +++ b/distro/src/main/bin/addtowar.sh @@ -114,7 +114,6 @@ function printUsage() { echo " -outputwar OUTPUT_OOZIE_WAR" echo " [-hadoop HADOOP_VERSION HADOOP_PATH]" echo " [-hadoopJarsSNAPSHOT] (if Hadoop jars version on system is SNAPSHOT)" - echo " [-extjs EXTJS_PATH] (expanded or ZIP)" echo " [-jars JARS_PATH] (multiple JAR path separated by ':')" echo " [-secureWeb WEB_XML_PATH] (path to secure web.xml)" echo @@ -129,12 +128,10 @@ if [ $# -eq 0 ]; then fi addHadoop="" -addExtjs="" addJars="" hadoopVersion="" hadoopHome="" hadoopJarsSuffix="" -extjsHome="" jarsPath="" inputWar="" outputWar="" @@ -166,17 +163,6 @@ do elif [ "$1" = "-hadoopJarsSNAPSHOT" ]; then shift hadoopJarsSuffix="SNAPSHOT" - elif [ "$1" = "-extjs" ]; then - shift - if [ $# -eq 0 ]; then - echo - echo "Missing option value, ExtJS path" - echo - printUsage - exit -1 - fi - extjsHome=$1 - addExtjs=true elif [ "$1" = "-jars" ]; then shift if [ $# -eq 0 ]; then @@ -223,7 +209,7 @@ do shift done -if [ "${addHadoop}${addExtjs}${addJars}" == "" ]; then +if [ "${addHadoop}${addJars}" == "" ]; then echo echo "Nothing to do" echo @@ -242,10 +228,6 @@ if [ "${addHadoop}" = "true" ]; then checkFileExists ${hadoopHome} getHadoopJars ${hadoopVersion} fi - -if [ "${addExtjs}" = "true" ]; then - checkFileExists ${extjsHome} -fi if [ "${addJars}" = "true" ]; then for jarPath in ${jarsPath//:/$'\n'} @@ -291,28 +273,6 @@ if [ "${addHadoop}" = "true" ]; then done fi -if [ "${addExtjs}" = "true" ]; then - if [ ! "${components}" = "" ];then - components="${components}, " - fi - components="${components}ExtJS library" - if [ -e ${tmpWarDir}/ext-2.2 ]; then - echo - echo "Specified Oozie WAR '${inputWar}' already contains ExtJS library files" - echo - cleanUp - exit -1 - fi - #If the extjs path given is a ZIP, expand it and use it from there - if [ -f ${extjsHome} ]; then - unzip ${extjsHome} -d ${tmpDir} > /dev/null - extjsHome=${tmpDir}/ext-2.2 - fi - #Inject the library in oozie war - cp -r ${extjsHome} ${tmpWarDir}/ext-2.2 - checkExec "copying ExtJS files into staging" -fi - if [ "${addJars}" = "true" ]; then if [ ! "${components}" = "" ];then components="${components}, " diff --git a/distro/src/main/bin/oozie-setup.sh b/distro/src/main/bin/oozie-setup.sh index f21b9966bc..4e481e8628 100644 --- a/distro/src/main/bin/oozie-setup.sh +++ b/distro/src/main/bin/oozie-setup.sh @@ -44,8 +44,6 @@ function printUsage() { echo " created by export" echo " (without options prints this usage information)" echo - echo " EXTJS can be downloaded from http://www.extjs.com/learn/Ext_Version_Archives" - echo } #Creating temporary directory @@ -117,10 +115,8 @@ JETTY_LIB_DIR=${JETTY_WEBAPP_DIR}/WEB-INF/lib/ source ${BASEDIR}/bin/oozie-sys.sh -silent -addExtjs="" addHadoopJars="" additionalDir="" -extjsHome="" jarsPath="" prepareWar="" @@ -181,15 +177,7 @@ log_ready_to_start() { echo } -check_extjs() { - if [ "${addExtjs}" = "true" ]; then - checkFileExists ${extjsHome} - else - echo "INFO: Oozie webconsole disabled, ExtJS library not specified" - fi -} - -# Check if it is necessary to add extension JARs and ExtJS +# Check if it is necessary to add extension JARs check_adding_extensions() { libext=${OOZIE_HOME}/libext if [ "${additionalDir}" != "" ]; then @@ -204,10 +192,6 @@ check_adding_extensions() { addJars="true" done fi - if [ -f "${libext}/ext-2.2.zip" ]; then - extjsHome=${libext}/ext-2.2.zip - addExtjs=true - fi fi } @@ -219,16 +203,6 @@ cleanup_and_exit() { prepare_jetty() { check_adding_extensions - check_extjs - - if [ "${addExtjs}" = "true" -a ! -e ${JETTY_WEBAPP_DIR}/ext-2.2 ]; then - unzip ${extjsHome} -d ${JETTY_WEBAPP_DIR} - checkExec "Extracting ExtJS to ${JETTY_WEBAPP_DIR}/" - elif [ "${addExtjs}" = "true" -a -e ${JETTY_WEBAPP_DIR}/ext-2.2 ]; then - # TODO - echo "${JETTY_WEBAPP_DIR}/ext-2.2 already exists" - cleanup_and_exit - fi if [ "${addJars}" = "true" ]; then for jarPath in ${jarsPath//:/$'\n'} diff --git a/docs/src/site/markdown/AG_Install.md b/docs/src/site/markdown/AG_Install.md index 1bcdb82f37..a86a3fc398 100644 --- a/docs/src/site/markdown/AG_Install.md +++ b/docs/src/site/markdown/AG_Install.md @@ -82,15 +82,12 @@ Usage : oozie-setup.sh If a directory `libext/` is present in Oozie installation directory, the `oozie-setup.sh` script will include all JARs in Jetty's `webapp/WEB_INF/lib/` directory. -If the ExtJS ZIP file is present in the `libext/` directory, it will be added to the Jetty's `webapp/` directory as well. -The ExtJS library file name be `ext-2.2.zip`. - ### Setting Up Oozie with an Alternate Tomcat Use the `addtowar.sh` script to prepare the Oozie server only if Oozie will run with a different servlet container than the embedded Jetty provided with the distribution. -The `addtowar.sh` script adds Hadoop JARs, JDBC JARs and the ExtJS library to the Oozie WAR file. +The `addtowar.sh` script adds Hadoop JARs, JDBC JARs to the Oozie WAR file. The `addtowar.sh` script options are: @@ -100,19 +97,18 @@ The `addtowar.sh` script options are: Options: -inputwar INPUT_OOZIE_WAR -outputwar OUTPUT_OOZIE_WAR [-hadoop HADOOP_VERSION HADOOP_PATH] - [-extjs EXTJS_PATH] [-jars JARS_PATH] (multiple JAR path separated by ':') [-secureWeb WEB_XML_PATH] (path to secure web.xml) ``` The original `oozie.war` file is in the Oozie server installation directory. -After the Hadoop JARs and the ExtJS library has been added to the `oozie.war` file Oozie is ready to run. +After the Hadoop JARs has been added to the `oozie.war` file Oozie is ready to run. Delete any previous deployment of the `oozie.war` from the servlet container (if using Tomcat, delete `oozie.war` and `oozie` directory from Tomcat's `webapps/` directory) -Deploy the prepared `oozie.war` file (the one that contains the Hadoop JARs and the ExtJS library) in the +Deploy the prepared `oozie.war` file (the one that contains the Hadoop JARs) in the servlet container (if using Tomcat, copy the prepared `oozie.war` file to Tomcat's `webapps/` directory). **IMPORTANT:** Only one Oozie instance can be deployed per Tomcat instance. @@ -967,14 +963,6 @@ Also, these steps must be done on every machine where you intend to use the Oozi 3. When using the Oozie Client, you will need to use `https://oozie.server.hostname:11443/oozie` instead of `http://oozie.server.hostname:11000/oozie` -- Java will not automatically redirect from the http address to the https address. -#### Connect to the Oozie Web UI using SSL (HTTPS) - -1. Use `https://oozie.server.hostname:11443/oozie` - though most browsers should automatically redirect you if you use `http://oozie.server.hostname:11000/oozie` - - **IMPORTANT**: If using a Self-Signed Certificate, your browser will warn you that it can't verify the certificate or something - similar. You will probably have to add your certificate as an exception. - #### Additional considerations for Oozie HA with SSL You'll need to configure the load balancer to do SSL pass-through. This will allow the clients talking to Oozie to use the @@ -1035,12 +1023,10 @@ The deprecated `InstrumentationService` can be enabled by adding `Instrumentatio ``` By default the `admin/instrumentation` REST endpoint is no longer be available and instead the `admin/metrics` endpoint can -be used (see the [Web Services API](WebServicesAPI.html#Oozie_Metrics) documentation for more details); the Oozie Web UI also replaces -the "Instrumentation" tab with a "Metrics" tab. +be used (see the [Web Services API](WebServicesAPI.html#Oozie_Metrics) documentation for more details). If the deprecated `InstrumentationService` is used, the `admin/instrumentation` REST endpoint gets enabled, the `admin/metrics` -REST endpoint is no longer available (see the [Web Services API](WebServicesAPI.html#Oozie_Metrics) documentation for more details); -the Oozie Web UI also replaces the "Metrics" tab with the "Instrumentation" tab. +REST endpoint is no longer available (see the [Web Services API](WebServicesAPI.html#Oozie_Metrics) documentation for more details). We can also publish the instrumentation metrics to the external server graphite or ganglia. For this the following properties should be specified in oozie-site.xml : @@ -1195,7 +1181,7 @@ Multiple Oozie Servers can be configured against the same database to provide Hi 8. Start the Oozie servers. - Note: If one of the Oozie servers becomes unavailable, querying Oozie for the logs from a job in the Web UI, REST API, or client may + Note: If one of the Oozie servers becomes unavailable, querying Oozie for the logs from a job via the REST API, or client may be missing information until that server comes back up. #### Security diff --git a/docs/src/site/markdown/DG_Examples.md b/docs/src/site/markdown/DG_Examples.md index ff33506dd7..c64ef6a6d7 100644 --- a/docs/src/site/markdown/DG_Examples.md +++ b/docs/src/site/markdown/DG_Examples.md @@ -76,8 +76,6 @@ mr-node map-reduce OK end job_200904281535_0254 .---------------------------------------------------------------------------------------------------------------------------------------------------------------- ``` -To check the workflow job status via the Oozie web console, with a browser go to `http://localhost:11000/oozie`. - To avoid having to provide the `-oozie` option with the Oozie URL with every `oozie` command, set `OOZIE_URL` env variable to the Oozie URL in the shell environment. For example: diff --git a/docs/src/site/markdown/DG_QuickStart.md b/docs/src/site/markdown/DG_QuickStart.md index c3d8fe277b..70ca198f6c 100644 --- a/docs/src/site/markdown/DG_QuickStart.md +++ b/docs/src/site/markdown/DG_QuickStart.md @@ -73,8 +73,6 @@ hcatalog libraries, however they are required for oozie to work. There are 2 opt * Java 1.8+ * Hadoop * [Apache Hadoop](http://hadoop.apache.org) (tested with 1.2.1 & 2.6.0+) - * ExtJS library (optional, to enable Oozie webconsole) - * [ExtJS 2.2](http://archive.cloudera.com/gplextras/misc/ext-2.2.zip) The Java 1.8+ `bin` directory should be in the command path. @@ -84,11 +82,6 @@ The Java 1.8+ `bin` directory should be in the command path. * Build an Oozie binary distribution * Download a Hadoop binary distribution - * Download ExtJS library (it must be version 2.2) - -**NOTE:** The ExtJS library is not bundled with Oozie because it uses a different license. - -**NOTE:** Oozie UI browser compatibility Chrome (all), Firefox (3.5), Internet Explorer (8.0), Opera (10.5). **NOTE:** It is recommended to use a Oozie Unix user for the Oozie server. @@ -117,8 +110,6 @@ The following two properties are required in Hadoop core-site.xml: Replace the capital letter sections with specific values and then restart Hadoop. -The ExtJS library is optional (only required for the Oozie web-console to work) - **IMPORTANT:** all Oozie server scripts (`oozie-setup.sh`, `oozied.sh`, `oozie-start.sh`, `oozie-run.sh` and `oozie-stop.sh`) run only under the Unix user that owns the Oozie installation directory, if necessary use `sudo -u OOZIE_USER` when invoking the scripts. @@ -130,8 +121,8 @@ behaviors of `oozie-start.sh`, `oozie-run.sh`, and `oozie-stop.sh` respectively. Create a **libext/** directory in the directory where Oozie was expanded. -If using the ExtJS library copy the ZIP file to the **libext/** directory. If hadoop and hcatalog libraries are not -already included in the war, add the corresponding libraries to **libext/** directory. +If hadoop and hcatalog libraries are not already included in the war, +add the corresponding libraries to **libext/** directory. A "sharelib create -fs fs_default_name [-locallib sharelib]" command is available when running oozie-setup.sh for uploading new sharelib into hdfs where the first argument is the default fs name @@ -205,7 +196,7 @@ Using the Oozie command line tool check the status of Oozie: $ bin/oozie admin -oozie http://localhost:11000/oozie -status ``` -Using a browser go to the [Oozie web console](http://localhost:11000/oozie.html), Oozie status should be **NORMAL**. +The Oozie web console was removed in version 5.3.1. Refer to the [Running the Examples](DG_Examples.html) document for details on running the examples. diff --git a/docs/src/site/markdown/DG_SLAMonitoring.md b/docs/src/site/markdown/DG_SLAMonitoring.md index deacef93ad..596b58be5e 100644 --- a/docs/src/site/markdown/DG_SLAMonitoring.md +++ b/docs/src/site/markdown/DG_SLAMonitoring.md @@ -19,9 +19,6 @@ In versions earlier than 4.x, this was a passive feature where users needed to q to fetch the records regarding job status changes, and use their own custom calculation engine to compute whether SLA was met or missed, based on initial definition of time limits. -Oozie now also has a SLA tab in the Oozie UI, where users can query for SLA information and have a summarized view -of how their jobs fared against their SLAs. - ## Oozie Server Configuration @@ -118,7 +115,7 @@ is much more compact and meaningful, getting rid of redundant and unused tags. * `should-end`: Relative to `nominal-time` this is the amount of time (along with time-unit - MINUTES, HOURS, DAYS) within which your job should *finish* to meet SLA. * `max-duration`: This is the maximum amount of time (along with time-unit - MINUTES, HOURS, DAYS) your job is expected to run. This is optional. * `alert-events`: Specify the types of events for which **Email** alerts should be sent. Allowable values in this comma-separated list are start_miss, end_miss and duration_miss. *_met events can generally be deemed low priority and hence email alerting for these is not necessary. However, note that this setting is only for alerts via *email* alerts and not via JMS messages, where all events send out notifications, and user can filter them using desired selectors. This is optional and only applicable when alert-contact is configured. - * `alert-contact`: Specify a comma separated list of email addresses where you wish your alerts to be sent. This is optional and need not be configured if you just want to view your job SLA history in the UI and do not want to receive email alerts. + * `alert-contact`: Specify a comma separated list of email addresses where you wish your alerts to be sent. This is optional and need not be configured if you do not want to receive email alerts. NOTE: All tags can be parameterized as a EL function or a fixed value. @@ -167,7 +164,6 @@ can be applied to and embedded under Workflow-Action as well as Coordinator-Acti SLA information is accessible via the following ways: - * Through the SLA tab of the Oozie Web UI. * JMS messages sent to a configured JMS provider for instantaneous tracking. * RESTful API to query for SLA summary. * As an `Instrumentation.Counter` entry that is accessible via RESTful API and reflects to the number of all SLA tracked external diff --git a/docs/src/site/markdown/DG_ShellActionExtension.md b/docs/src/site/markdown/DG_ShellActionExtension.md index eff4b080e8..acb147dcbc 100644 --- a/docs/src/site/markdown/DG_ShellActionExtension.md +++ b/docs/src/site/markdown/DG_ShellActionExtension.md @@ -243,9 +243,6 @@ log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: Shell action's stdout and stderr output are redirected to the Oozie Launcher map-reduce job task STDOUT that runs the shell command. -From Oozie web-console, from the Shell action pop up using the 'Console URL' link, it is possible -to navigate to the Oozie Launcher map-reduce job task logs via the Hadoop job-tracker web-console. - ### Shell Action Limitations Although Shell action can execute any shell command, there are some limitations. diff --git a/docs/src/site/markdown/DG_SparkActionExtension.md b/docs/src/site/markdown/DG_SparkActionExtension.md index 5a56cca8e5..7c49d3b6bb 100644 --- a/docs/src/site/markdown/DG_SparkActionExtension.md +++ b/docs/src/site/markdown/DG_SparkActionExtension.md @@ -177,9 +177,6 @@ expressions. Spark action logs are redirected to the Oozie Launcher map-reduce job task STDOUT/STDERR that runs Spark. -From Oozie web-console, from the Spark action pop up using the 'Console URL' link, it is possible -to navigate to the Oozie Launcher map-reduce job task logs via the Hadoop job-tracker web-console. - ### Spark on YARN To ensure that your Spark job shows up in the Spark History Server, make sure to specify these three Spark configuration properties diff --git a/docs/src/site/markdown/DG_SqoopActionExtension.md b/docs/src/site/markdown/DG_SqoopActionExtension.md index fa0674af69..2d2c42170e 100644 --- a/docs/src/site/markdown/DG_SqoopActionExtension.md +++ b/docs/src/site/markdown/DG_SqoopActionExtension.md @@ -190,9 +190,6 @@ of all map-reduce jobs run by the Sqoop import all command. Sqoop action logs are redirected to the Oozie Launcher map-reduce job task STDOUT/STDERR that runs Sqoop. -From Oozie web-console, from the Sqoop action pop up using the 'Console URL' link, it is possible -to navigate to the Oozie Launcher map-reduce job task logs via the Hadoop job-tracker web-console. - The logging level of the Sqoop action can set in the Sqoop action configuration using the property `oozie.sqoop.log.level`. The default value is `INFO`. diff --git a/docs/src/site/markdown/WebServicesAPI.md b/docs/src/site/markdown/WebServicesAPI.md index 4474051182..e22943f7ca 100644 --- a/docs/src/site/markdown/WebServicesAPI.md +++ b/docs/src/site/markdown/WebServicesAPI.md @@ -1794,7 +1794,7 @@ This parameter has no effect when workflow fails and the failure node leads to t always. The optional `format` parameter describes whether the response has to be rendered as a PNG image, or an SVG image, or a DOT string. -When omitted, `format` is considered as `png` for backwards compatibility. Oozie Web UI uses the `svg` `format`. +When omitted, `format` is considered as `png` for backwards compatibility. The node labels are the node names provided in the workflow XML. diff --git a/docs/src/site/markdown/WorkflowFunctionalSpec.md b/docs/src/site/markdown/WorkflowFunctionalSpec.md index 3e63d662ef..dfa0c189b5 100644 --- a/docs/src/site/markdown/WorkflowFunctionalSpec.md +++ b/docs/src/site/markdown/WorkflowFunctionalSpec.md @@ -2580,14 +2580,7 @@ Oozie provides command line tool that allows to perform all common workflow job The command line tool is implemented as a client of the Web Services API. -## 14 Web UI Console - -Oozie provides a read-only Web based console that allows to allow to monitor Oozie system status, workflow -applications status and workflow jobs status. - -The Web base console is implemented as a client of the Web Services API. - -## 15 Customizing Oozie with Extensions +## 14 Customizing Oozie with Extensions Out of the box Oozie provides support for a predefined set of action node types and Expression Language functions. @@ -2597,7 +2590,7 @@ API, to add support for additional action node types. Extending Oozie should not require any code change to the Oozie codebase. It will require adding the JAR files providing the new functionality and declaring them in Oozie system configuration. -## 16 Workflow Jobs Priority +## 15 Workflow Jobs Priority Oozie does not handle workflow jobs priority. As soon as a workflow job is ready to do a transition, Oozie will trigger the transition. Workflow transitions and action triggering are assumed to be fast and lightweight operations. @@ -2609,7 +2602,7 @@ Any prioritization of jobs in the remote systems is outside of the scope of Oozi Workflow applications can influence the remote systems priority via configuration if the remote systems support it. -## 17 HDFS Share Libraries for Workflow Applications (since Oozie 2.3) +## 16 HDFS Share Libraries for Workflow Applications (since Oozie 2.3) Oozie supports job and system share libraries for workflow jobs. @@ -2627,7 +2620,7 @@ A workflow job can use the system share library by setting the job property `ooz `oozie.use.system.libpath` can be also configured at action configuration. `oozie.use.system.libpath` defined at action level overrides job property. -### 17.1 Action Share Library Override (since Oozie 3.3) +### 16.1 Action Share Library Override (since Oozie 3.3) Oozie share libraries are organized per action type, for example Pig action share library directory is `share/lib/pig/` and Mapreduce Streaming share library directory is `share/library/mapreduce-streaming/`. @@ -2657,7 +2650,7 @@ both pig and hcatalog jars. -### 17.2 Action Share Library Exclude (since Oozie 5.2) +### 16.2 Action Share Library Exclude (since Oozie 5.2) Oozie allows to exclude files on its share library directory from being added to the Distributed Cache. This feature is useful to prevent the submitted applications from runtime jar conflict issues. @@ -2710,7 +2703,7 @@ the expected Distributed Cache content is: /user/oozie/share/lib/lib20180701/java/component-connector.jar ``` -## 18 User-Retry for Workflow Actions (since Oozie 3.1) +## 17 User-Retry for Workflow Actions (since Oozie 3.1) Oozie provides User-Retry capabilities when an action is in `ERROR` or `FAILED` state. @@ -2746,7 +2739,7 @@ Examples of User-Retry in a workflow action is : ``` -## 19 Global Configurations +## 18 Global Configurations Oozie allows a global section to reduce the redundant resource-manager and name-node declarations for each action. The user can define a `global` section in the beginning of the `workflow.xml`. The global section may contain the `job-xml`, `configuration`, @@ -2772,7 +2765,7 @@ Example of a global element: ... ``` -## 20 Suspend On Nodes +## 19 Suspend On Nodes Specifying `oozie.suspend.on.nodes` in a job.properties file lets users specify a list of actions that will cause Oozie to automatically suspend the workflow upon reaching any of those actions; like breakpoints in a debugger. To continue running the diff --git a/pom.xml b/pom.xml index 082ab6798f..8b1df56458 100644 --- a/pom.xml +++ b/pom.xml @@ -68,8 +68,7 @@ once true - -Xmx2048m -da -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=1024M -XX:+CMSClassUnloadingEnabled - -XX:+UseConcMarkSweepGC + -Xmx2048m -da -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=1024M all 3.0.2 diff --git a/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java b/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java index 5b123e9120..7a5e934641 100644 --- a/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java +++ b/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java @@ -64,7 +64,6 @@ public class EmbeddedOozieServer { private final WebAppContext servletContextHandler; private final ServletMapper oozieServletMapper; private final FilterMapper oozieFilterMapper; - private JspHandler jspHandler; private Services serviceController; private SSLServerConnectorFactory sslServerConnectorFactory; private Configuration conf; @@ -74,7 +73,6 @@ public class EmbeddedOozieServer { /** * Construct Oozie server * @param server jetty server to be embedded - * @param jspHandler handler responsible for setting webapp context for JSP * @param serviceController controller for Oozie services; must be already initialized * @param sslServerConnectorFactory factory to create server connector configured for SSL * @param oozieRewriteHandler URL rewriter @@ -85,7 +83,6 @@ public class EmbeddedOozieServer { */ @Inject public EmbeddedOozieServer(final Server server, - final JspHandler jspHandler, final Services serviceController, final SSLServerConnectorFactory sslServerConnectorFactory, final RewriteHandler oozieRewriteHandler, @@ -96,7 +93,6 @@ public EmbeddedOozieServer(final Server server, { this.constraintSecurityHandler = constraintSecurityHandler; this.serviceController = Objects.requireNonNull(serviceController, "serviceController is null"); - this.jspHandler = Objects.requireNonNull(jspHandler, "jspHandler is null"); this.sslServerConnectorFactory = Objects.requireNonNull(sslServerConnectorFactory, "sslServerConnectorFactory is null"); this.server = Objects.requireNonNull(server, "server is null"); @@ -145,7 +141,6 @@ public void setup() throws URISyntaxException, IOException, ServiceException { oozieFilterMapper.addFilters(); servletContextHandler.setParentLoaderPriority(true); - jspHandler.setupWebAppContext(servletContextHandler); addErrorHandler(); diff --git a/server/src/main/java/org/apache/oozie/server/FilterMapper.java b/server/src/main/java/org/apache/oozie/server/FilterMapper.java index 521f34d2ec..02469e7523 100644 --- a/server/src/main/java/org/apache/oozie/server/FilterMapper.java +++ b/server/src/main/java/org/apache/oozie/server/FilterMapper.java @@ -49,10 +49,7 @@ void addFilters() { mapFilter(authFilter, "/v0/*"); mapFilter(authFilter, "/v1/*"); mapFilter(authFilter, "/v2/*"); - mapFilter(authFilter, "/index.jsp"); mapFilter(authFilter, "/admin/*"); - mapFilter(authFilter, "/*.js"); - mapFilter(authFilter, "/ext-2.2/*"); mapFilter(authFilter, "/docs/*"); mapFilter(authFilter, "/error/*"); } diff --git a/server/src/main/java/org/apache/oozie/server/JspHandler.java b/server/src/main/java/org/apache/oozie/server/JspHandler.java deleted file mode 100644 index a95f24e2a8..0000000000 --- a/server/src/main/java/org/apache/oozie/server/JspHandler.java +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.oozie.server; - -import org.eclipse.jetty.annotations.ServletContainerInitializersStarter; -import org.eclipse.jetty.apache.jsp.JettyJasperInitializer; -import org.eclipse.jetty.jsp.JettyJspServlet; -import org.eclipse.jetty.plus.annotation.ContainerInitializer; -import org.eclipse.jetty.servlet.DefaultServlet; -import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.webapp.WebAppContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Helper class that is used to handle JSP requests in Oozie server. - */ -public class JspHandler { - private static final Logger LOG = LoggerFactory.getLogger(JspHandler.class); - private final File scratchDir; - private final WebRootResourceLocator webRootResourceLocator; - - public JspHandler(final File scratchDir, final WebRootResourceLocator webRootResourceLocator) { - this.scratchDir = scratchDir; - this.webRootResourceLocator = webRootResourceLocator; - } - - /** - * Establish Scratch directory for the servlet context (used by JSP compilation) - */ - private File getScratchDir() throws IOException - { - if (scratchDir.exists()) { - LOG.info(String.format("Scratch directory exists and will be reused: %s", - scratchDir.getAbsolutePath().replaceAll("[\r\n]",""))); - return scratchDir; - } - - if (!scratchDir.mkdirs()) { - throw new IOException("Unable to create scratch directory: " + scratchDir); - } - - LOG.info(String.format("Scratch directory created: %s", scratchDir.getAbsolutePath().replaceAll("[\r\n]",""))); - return scratchDir; - } - - /** - * Setup the basic application "context" for this application at "/" - * This is also known as the handler tree (in jetty speak) - * @param servletContextHandler the context handler - * @throws IOException in case of IO errors - * @throws URISyntaxException if the server URI is not well formatted - */ - public void setupWebAppContext(WebAppContext servletContextHandler) - throws IOException, URISyntaxException - { - Objects.requireNonNull(servletContextHandler, "servletContextHandler is null"); - - File scratchDir = getScratchDir(); - servletContextHandler.setAttribute("javax.servlet.context.tempdir", scratchDir); - servletContextHandler.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", - ".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/.*taglibs.*\\.jar$"); - URI baseUri = webRootResourceLocator.getWebRootResourceUri(); - servletContextHandler.setResourceBase(baseUri.toASCIIString()); - servletContextHandler.setAttribute("org.eclipse.jetty.containerInitializers", jspInitializers()); - servletContextHandler.addBean(new ServletContainerInitializersStarter(servletContextHandler), true); - servletContextHandler.setClassLoader(getUrlClassLoader()); - - servletContextHandler.addServlet(jspServletHolder(), "*.jsp"); - - servletContextHandler.addServlet(jspFileMappedServletHolder(), "/oozie/"); - servletContextHandler.addServlet(defaultServletHolder(baseUri), "/"); - } - - /** - * Ensure the jsp engine is initialized correctly - */ - private List jspInitializers() - { - JettyJasperInitializer sci = new JettyJasperInitializer(); - ContainerInitializer initializer = new ContainerInitializer(sci, null); - List initializers = new ArrayList<>(); - initializers.add(initializer); - return initializers; - } - - /** - * Set Classloader of Context to be sane (needed for JSTL) - * JSP requires a non-System classloader, this simply wraps the - * embedded System classloader in a way that makes it suitable - * for JSP to use - */ - private ClassLoader getUrlClassLoader() - { - ClassLoader jspClassLoader = new URLClassLoader(new URL[0], this.getClass().getClassLoader()); - return jspClassLoader; - } - - /** - * Create JSP Servlet (must be named "jsp") - */ - private ServletHolder jspServletHolder() - { - ServletHolder holderJsp = new ServletHolder("jsp", JettyJspServlet.class); - holderJsp.setInitOrder(0); - holderJsp.setInitParameter("logVerbosityLevel", "DEBUG"); - holderJsp.setInitParameter("fork", "false"); - holderJsp.setInitParameter("xpoweredBy", "false"); - holderJsp.setInitParameter("compilerTargetVM", "1.7"); - holderJsp.setInitParameter("compilerSourceVM", "1.7"); - holderJsp.setInitParameter("keepgenerated", "true"); - return holderJsp; - } - - /** - * Create Example of mapping jsp to path spec - */ - private ServletHolder jspFileMappedServletHolder() - { - ServletHolder holderAltMapping = new ServletHolder(); - holderAltMapping.setName("index.jsp"); - holderAltMapping.setForcedPath("/index.jsp"); - return holderAltMapping; - } - - /** - * Create Default Servlet (must be named "default") - */ - private ServletHolder defaultServletHolder(URI baseUri) - { - ServletHolder holderDefault = new ServletHolder("default", DefaultServlet.class); - holderDefault.setInitParameter("resourceBase", baseUri.toASCIIString()); - holderDefault.setInitParameter("dirAllowed", "true"); - return holderDefault; - } -} diff --git a/server/src/main/java/org/apache/oozie/server/WebRootResourceLocator.java b/server/src/main/java/org/apache/oozie/server/WebRootResourceLocator.java deleted file mode 100644 index 190d1c2030..0000000000 --- a/server/src/main/java/org/apache/oozie/server/WebRootResourceLocator.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.oozie.server; - -import java.io.FileNotFoundException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; - -public class WebRootResourceLocator { - private static final String WEBROOT_INDEX = "/webapp/"; - - public URI getWebRootResourceUri() throws FileNotFoundException, URISyntaxException - { - URL indexUri = JspHandler.class.getResource(WebRootResourceLocator.WEBROOT_INDEX); - if (indexUri == null) - { - throw new FileNotFoundException("Unable to find resource " + WebRootResourceLocator.WEBROOT_INDEX); - } - // Points to wherever /webroot/ (the resource) is - return indexUri.toURI(); - } -} diff --git a/server/src/main/java/org/apache/oozie/server/guice/JspHandlerProvider.java b/server/src/main/java/org/apache/oozie/server/guice/JspHandlerProvider.java deleted file mode 100644 index 3ce867f2b5..0000000000 --- a/server/src/main/java/org/apache/oozie/server/guice/JspHandlerProvider.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.oozie.server.guice; - -import com.google.inject.Inject; -import com.google.inject.Provider; -import org.apache.commons.io.FilenameUtils; -import org.apache.hadoop.conf.Configuration; -import org.apache.oozie.server.JspHandler; -import org.apache.oozie.server.WebRootResourceLocator; -import org.apache.oozie.service.ConfigurationService; -import org.apache.oozie.service.Services; - -import java.io.File; - -public class JspHandlerProvider implements Provider { - public static final String OOZIE_JSP_TMP_DIR = "oozie.jsp.tmp.dir"; - public static final String EMBEDDED_JETTY_JSP_DIR = "embedded-jetty-jsp"; - private final Configuration oozieConfiguration; - - @Inject - public JspHandlerProvider(final Services oozieServices) { - oozieConfiguration = oozieServices.get(ConfigurationService.class).getConf(); - } - - @Override - public JspHandler get() { - final File tempDir = new File(FilenameUtils.getName(oozieConfiguration.get(OOZIE_JSP_TMP_DIR)), - FilenameUtils.getName(EMBEDDED_JETTY_JSP_DIR)); - - return new JspHandler(tempDir, new WebRootResourceLocator()); - } -} diff --git a/server/src/main/java/org/apache/oozie/server/guice/OozieGuiceModule.java b/server/src/main/java/org/apache/oozie/server/guice/OozieGuiceModule.java index bb79f0f79a..2ed8dd49f6 100644 --- a/server/src/main/java/org/apache/oozie/server/guice/OozieGuiceModule.java +++ b/server/src/main/java/org/apache/oozie/server/guice/OozieGuiceModule.java @@ -20,7 +20,6 @@ import com.google.inject.AbstractModule; import com.google.inject.Singleton; -import org.apache.oozie.server.JspHandler; import org.apache.oozie.service.Services; import org.eclipse.jetty.rewrite.handler.RewriteHandler; import org.eclipse.jetty.security.ConstraintSecurityHandler; @@ -38,8 +37,6 @@ protected void configure() { bind(ConstraintSecurityHandler.class).toProvider(ConstraintSecurityHandlerProvider.class).in(Singleton.class); - bind(JspHandler.class).toProvider(JspHandlerProvider.class).in(Singleton.class); - bind(RewriteHandler.class).toProvider(RewriteHandlerProvider.class).in(Singleton.class); } } diff --git a/server/src/test/java/org/apache/oozie/server/TestEmbeddedOozieServer.java b/server/src/test/java/org/apache/oozie/server/TestEmbeddedOozieServer.java index a2ce8a7699..725b0c345d 100644 --- a/server/src/test/java/org/apache/oozie/server/TestEmbeddedOozieServer.java +++ b/server/src/test/java/org/apache/oozie/server/TestEmbeddedOozieServer.java @@ -61,7 +61,6 @@ */ @RunWith(MockitoJUnitRunner.class) public class TestEmbeddedOozieServer { - @Mock private JspHandler mockJspHandler; @Mock private Services mockServices; @Mock private SSLServerConnectorFactory mockSSLServerConnectorFactory; @Spy private Server mockServer; @@ -78,7 +77,7 @@ public class TestEmbeddedOozieServer { @Before public void setUp() { - embeddedOozieServer = new EmbeddedOozieServer(mockServer, mockJspHandler, mockServices, mockSSLServerConnectorFactory, + embeddedOozieServer = new EmbeddedOozieServer(mockServer, mockServices, mockSSLServerConnectorFactory, mockOozieRewriteHandler, servletContextHandler, oozieServletMapper, oozieFilterMapper, constraintSecurityHandler); doReturn("11000").when(mockConfiguration).get("oozie.http.port"); @@ -104,7 +103,6 @@ public class TestEmbeddedOozieServer { verify(mockServices).get(ConfigurationService.class); verifyNoMoreInteractions( - mockJspHandler, mockServices, mockServerConnector, mockSSLServerConnectorFactory); @@ -115,7 +113,6 @@ public void testServerSetup() throws Exception { doReturn("false").when(mockConfiguration).get("oozie.https.enabled"); embeddedOozieServer.setup(); - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); verify(oozieFilterMapper).addFilters(); // trustore parameters will have to be set even in case of an insecure setup @@ -133,7 +130,6 @@ public void testServerSetupTruststorePathSetViaSystemProperty() throws Exception System.setProperty(EmbeddedOozieServer.TRUSTSTORE_PATH_SYSTEM_PROPERTY, truststorePath2); embeddedOozieServer.setup(); - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); verify(oozieFilterMapper).addFilters(); Assert.assertEquals(truststorePath2, System.getProperty("javax.net.ssl.trustStore")); @@ -151,7 +147,6 @@ public void testServerSetupTruststorePassSetViaSystemProperty() throws Exception System.setProperty(EmbeddedOozieServer.TRUSTSTORE_PASS_SYSTEM_PROPERTY, trustStorePassword); embeddedOozieServer.setup(); - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); verify(oozieFilterMapper).addFilters(); Assert.assertEquals(trustStorePassword, System.getProperty("javax.net.ssl.trustStorePassword")); @@ -169,7 +164,6 @@ public void testSecureServerSetup() throws Exception { embeddedOozieServer.setup(); - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); verify(oozieFilterMapper).addFilters(); verify(mockSSLServerConnectorFactory).createSecureServerConnector( isA(Integer.class), isA(Configuration.class), isA(Server.class)); @@ -201,9 +195,6 @@ public void testTrustStoreTypeSetFromConfigIfNotSetInSystemProperties() // then Assert.assertEquals(truststoreType, System.getProperty(TRUSTSTORE_TYPE_SYSTEM_PROPERTY)); - - // to satisfy test teardown - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); } @Test @@ -224,9 +215,6 @@ public void testTrustStoreTypeNotSetFromConfigIfSetInSystemProperties() // then Assert.assertEquals(truststoreTypeFromProperty, System.getProperty(TRUSTSTORE_TYPE_SYSTEM_PROPERTY)); - - // to satisfy test teardown - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); } @@ -247,8 +235,5 @@ public void testTrustStoreTypeNotSetIfNotProvidedAtAll() // then Assert.assertNull(System.getProperty(TRUSTSTORE_TYPE_SYSTEM_PROPERTY)); - - // to satisfy test teardown - verify(mockJspHandler).setupWebAppContext(isA(WebAppContext.class)); } } diff --git a/server/src/test/java/org/apache/oozie/server/TestJspHandler.java b/server/src/test/java/org/apache/oozie/server/TestJspHandler.java deleted file mode 100644 index c113cbf331..0000000000 --- a/server/src/test/java/org/apache/oozie/server/TestJspHandler.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.oozie.server; - -import org.eclipse.jetty.webapp.WebAppContext; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -@RunWith(MockitoJUnitRunner.class) -public class TestJspHandler { - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @Mock File mockScratchDir; - @Mock WebAppContext mockWebAppContext; - @Mock WebRootResourceLocator mockWebRootResourceLocator; - - private JspHandler jspHandler; - - @Before - public void setUp() throws Exception { - jspHandler = new JspHandler(mockScratchDir, mockWebRootResourceLocator); - when(mockWebRootResourceLocator.getWebRootResourceUri()).thenReturn(new URI("/webroot")); - } - - @After - public void tearDown() throws Exception { - verify(mockScratchDir).exists(); - } - - @Test - public void scratchDir_Is_Created_When_Setup_Called_And_ScratchDir_Did_Not_Exist() throws IOException, URISyntaxException { - when(mockScratchDir.exists()).thenReturn(false); - when(mockScratchDir.mkdirs()).thenReturn(true); - when(mockScratchDir.getAbsolutePath()).thenReturn("foobar"); - - jspHandler.setupWebAppContext(mockWebAppContext); - - verify(mockScratchDir).mkdirs(); - } - - @Test - public void scratchDir_Cannot_Be_Created_When_Setup_Called_And_ScratchDir_Did_Not_Exist() - throws IOException, URISyntaxException { - when(mockScratchDir.exists()).thenReturn(false); - when(mockScratchDir.mkdirs()).thenReturn(false); - - expectedException.expect(IOException.class); - jspHandler.setupWebAppContext(mockWebAppContext); - - verify(mockScratchDir).mkdirs(); - } - - @Test - public void scratchDir_Is_Reused_When_Setup_Called_And_ScratchDir_Existed() throws IOException, URISyntaxException { - when(mockScratchDir.exists()).thenReturn(true); - when(mockScratchDir.getAbsolutePath()).thenReturn("foobar"); - - jspHandler.setupWebAppContext(mockWebAppContext); - - verify(mockScratchDir, times(0)).mkdirs(); - } -} diff --git a/webapp/src/main/webapp/403.html b/webapp/src/main/webapp/403.html deleted file mode 100644 index f3183d91bc..0000000000 --- a/webapp/src/main/webapp/403.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - Error 403 Not Found - - -

HTTP ERROR 403

-

Problem accessing page. Reason:

-
    Forbidden
-

- - diff --git a/webapp/src/main/webapp/404.html b/webapp/src/main/webapp/404.html deleted file mode 100644 index a953df2856..0000000000 --- a/webapp/src/main/webapp/404.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - Error 404 Not Found - - -

HTTP ERROR 404

-

Problem accessing page Reason:

-
    Not Found
-

- - diff --git a/webapp/src/main/webapp/META-INF/context.xml b/webapp/src/main/webapp/META-INF/context.xml deleted file mode 100755 index c13bea79a8..0000000000 --- a/webapp/src/main/webapp/META-INF/context.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/webapp/src/main/webapp/WEB-INF/web.xml b/webapp/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 59b9cd546f..0000000000 --- a/webapp/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,329 +0,0 @@ - - - -]> - - - - - - OOZIE - - - - org.apache.oozie.servlet.ServicesLoader - - - - - versions - WS API for Workflow Instances - org.apache.oozie.servlet.VersionServlet - 1 - - - - v0admin - Oozie admin - org.apache.oozie.servlet.V0AdminServlet - 1 - - - - v1admin - Oozie admin - org.apache.oozie.servlet.V1AdminServlet - 1 - - - - v2admin - Oozie admin - org.apache.oozie.servlet.V2AdminServlet - 1 - - - - callback - Callback Notification - org.apache.oozie.servlet.CallbackServlet - 1 - - - - v0jobs - WS API for Workflow Jobs - org.apache.oozie.servlet.V0JobsServlet - 1 - - - - v1jobs - WS API for Workflow Jobs - org.apache.oozie.servlet.V1JobsServlet - 1 - - - - v0job - WS API for a specific Workflow Job - org.apache.oozie.servlet.V0JobServlet - 1 - - - - v1job - WS API for a specific Workflow Job - org.apache.oozie.servlet.V1JobServlet - 1 - - - - v2job - WS API for a specific Workflow Job - org.apache.oozie.servlet.V2JobServlet - 1 - - - - sla-event - WS API for specific SLA Events - org.apache.oozie.servlet.SLAServlet - 1 - - - - v2sla - WS API for specific SLA Events - org.apache.oozie.servlet.V2SLAServlet - 1 - - - - validate - WS API for Workflow Applications - org.apache.oozie.servlet.V2ValidateServlet - 1 - - - - error - Errors - org.apache.oozie.servlet.ErrorServlet - 1 - - - - - versions - /versions - - - - v0admin - /v0/admin/* - - - - v1admin - /v1/admin/* - - - - v2admin - /v2/admin/* - - - - callback - /callback/* - - - - v0jobs - /v0/jobs - - - - v1jobs - /v1/jobs - - - - v1jobs - /v2/jobs - - - - v0job - /v0/job/* - - - - v1job - /v1/job/* - - - - v2job - /v2/job/* - - - - sla-event - /v1/sla/* - - - - v2sla - /v2/sla/* - - - - validate - /v2/validate - - - - error - /error - - - - java.lang.Throwable - /error - - - - 400 - /error - - - - 401 - /error - - - - 403 - /error - - - - 404 - /error - - - - 405 - /error - - - - 409 - /error - - - - 500 - /error - - - - 501 - /error - - - - index.jsp - - - - hostnameFilter - org.apache.oozie.servlet.HostnameFilter - - - - authenticationfilter - org.apache.oozie.servlet.AuthFilter - - - - httpresponseFilter - org.apache.oozie.servlet.HttpResponseHeaderFilter - - - - hostnameFilter - /* - - - - authenticationfilter - /versions/* - - - - authenticationfilter - /v0/* - - - - authenticationfilter - /v1/* - - - - authenticationfilter - /v2/* - - - - authenticationfilter - /index.jsp - - - - authenticationfilter - /admin/* - - - - authenticationfilter - *.js - - - - authenticationfilter - /docs/* - - - - httpresponseFilter - /* - - - diff --git a/webapp/src/main/webapp/admin/jvminfo.jsp b/webapp/src/main/webapp/admin/jvminfo.jsp deleted file mode 100644 index d169b32a26..0000000000 --- a/webapp/src/main/webapp/admin/jvminfo.jsp +++ /dev/null @@ -1,91 +0,0 @@ - -<%@ page import="java.lang.management.ThreadInfo"%> -<%@ page import="org.apache.oozie.servlet.JVMInfo.JThreadInfo"%> -<%@page contentType="text/html; charset=UTF-8"%> - - - - - - - - -Oozie JVM Info - - -

Memory Information:

-
    -
  • Heap Memory:
        <%=jvmInfo.getHeapMemoryUsage()%>
  • -
  • NonHeap Memory:
         <%=jvmInfo.getNonHeapMemoryUsage()%>
  • -
  • ClassLoading:
         <%=jvmInfo.getClassLoadingInfo()%>
  • -
  • Threads:
         <%=jvmInfo.getThreadInfo()%>
  • -
- -

Thread Summary:

- - - - - - - - <% - for (JThreadInfo jthread : jvmInfo.getThreads()) { - ThreadInfo thread = jthread.getThreadInfo(); - %> - - - - - - - <% - } - %> -
ThreadStateCPU Time (ns)User Time (ns)
<%=thread.getThreadName()%><%=thread.getThreadState()%><%=jthread.getCpuTime()%><%=jthread.getUserTime()%>
- -

Stack Trace of JVM:

- <% - for (JThreadInfo jthread : jvmInfo.getThreads()) { - ThreadInfo thread = jthread.getThreadInfo(); - %> -

- <%=thread.getThreadName()%> tid=<%=thread.getThreadId()%>  - <%=thread.getThreadState()%> -

-
-        
-        <%
-            StackTraceElement[] traceElements = thread.getStackTrace();
-                for (StackTraceElement traceElement : traceElements) {
-        %>
-            
-                
-                
-            
-        <%
-             }
-         %>
-        
    at <%=traceElement%>
-
- <% - } - %> - - \ No newline at end of file diff --git a/webapp/src/main/webapp/blank.gif b/webapp/src/main/webapp/blank.gif deleted file mode 100644 index f191b280ce91e6cb8c387735c10ef9bc5da6c83b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42 ocmZ?wbhEHbWMp7uXkY+=|Ns9h{$ybUF?B!$NQQxl(S^Yp0J!f4_W%F@ diff --git a/webapp/src/main/webapp/console/sla/css/ColVis.css b/webapp/src/main/webapp/console/sla/css/ColVis.css deleted file mode 100755 index a3bf8e2095..0000000000 --- a/webapp/src/main/webapp/console/sla/css/ColVis.css +++ /dev/null @@ -1,76 +0,0 @@ - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * ColVis styles - */ -.ColVis { - float: right; - margin-bottom: 1em; -} - -.ColVis_Button { - position: relative; - float: left; - margin-right: 3px; - padding: 3px 5px; - height: 30px; - background-color: #fff; - border: 1px solid #d0d0d0; - cursor: pointer; - *cursor: hand; -} - -button.ColVis_Button::-moz-focus-inner { - border: none !important; - padding: 0; -} - -.ColVis_text_hover { - border: 1px solid #999; - background-color: #f0f0f0; -} - -div.ColVis_collectionBackground { - background-color: black; - z-index: 1100; -} - -div.ColVis_collection { - position: relative; - width: 150px; - background-color: #f3f3f3; - padding: 3px; - border: 1px solid #ccc; - z-index: 1102; -} - -div.ColVis_collection button.ColVis_Button { - background-color: white; - width: 100%; - float: none; - margin-bottom: 2px; -} - -div.ColVis_catcher { - position: absolute; - z-index: 1101; -} - -.disabled { - color: #999; -} - - - -button.ColVis_Button { - text-align: left; -} - -div.ColVis_collection button.ColVis_Button:hover { - border: 1px solid #999; - background-color: #f0f0f0; -} - -span.ColVis_radio { - display: inline-block; - width: 20px; -} diff --git a/webapp/src/main/webapp/console/sla/css/TableTools.css b/webapp/src/main/webapp/console/sla/css/TableTools.css deleted file mode 100755 index 46c368d4e9..0000000000 --- a/webapp/src/main/webapp/console/sla/css/TableTools.css +++ /dev/null @@ -1,321 +0,0 @@ -/* - * File: TableTools.css - * Description: Styles for TableTools 2 - * Author: Allan Jardine (www.sprymedia.co.uk) - * Language: Javascript - * License: GPL v2 / 3 point BSD - * Project: DataTables - * - * Copyright 2009-2012 Allan Jardine, all rights reserved. - * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * - * CSS name space: - * DTTT DataTables TableTools - * - * Style sheet provides: - * CONTAINER TableTools container element and styles applying to all components - * BUTTON_STYLES Action specific button styles - * SELECTING Row selection styles - * COLLECTIONS Drop down list (collection) styles - * PRINTING Print display styles - */ - - -/* - * CONTAINER - * TableTools container element and styles applying to all components - */ -div.DTTT_container { - position: relative; - float: right; - margin-bottom: 1em; -} - -button.DTTT_button, -div.DTTT_button, -a.DTTT_button { - position: relative; - float: left; - margin-right: 3px; - padding: 5px 8px; - border: 1px solid #999; - cursor: pointer; - *cursor: hand; - font-size: 0.88em; - color: black !important; - - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -ms-border-radius: 2px; - -o-border-radius: 2px; - border-radius: 2px; - - -webkit-box-shadow: 1px 1px 3px #ccc; - -moz-box-shadow: 1px 1px 3px #ccc; - -ms-box-shadow: 1px 1px 3px #ccc; - -o-box-shadow: 1px 1px 3px #ccc; - box-shadow: 1px 1px 3px #ccc; - - /* Generated by http://www.colorzilla.com/gradient-editor/ */ - background: #ffffff; /* Old browsers */ - background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ - background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ - background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ - background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ -} - - -/* Buttons are cunning border-box sizing - we can't just use that for A and DIV due to IE6/7 */ -button.DTTT_button { - height: 30px; - padding: 3px 8px; -} - -.DTTT_button embed { - outline: none; -} - -button.DTTT_button:hover, -div.DTTT_button:hover, -a.DTTT_button:hover { - border: 1px solid #666; - text-decoration: none !important; - - -webkit-box-shadow: 1px 1px 3px #999; - -moz-box-shadow: 1px 1px 3px #999; - -ms-box-shadow: 1px 1px 3px #999; - -o-box-shadow: 1px 1px 3px #999; - box-shadow: 1px 1px 3px #999; - - background: #f3f3f3; /* Old browsers */ - background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ - background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ - background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ - background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ -} - -button.DTTT_disabled, -div.DTTT_disabled, -a.DTTT_disabled { - color: #999; - border: 1px solid #d0d0d0; - - background: #ffffff; /* Old browsers */ - background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* FF3.6+ */ - background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* IE10+ */ - background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Opera 11.10+ */ - background: linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa',GradientType=0 ); /* IE6-9 */ -} - - - -/* - * BUTTON_STYLES - * Action specific button styles - * If you want images - comment this back in - -button.DTTT_button_csv, -button.DTTT_button_xls, -button.DTTT_button_copy, -button.DTTT_button_pdf, -button.DTTT_button_print { - padding-right: 0px; -} - -button.DTTT_button_csv span, -button.DTTT_button_xls span, -button.DTTT_button_copy span, -button.DTTT_button_pdf span, -button.DTTT_button_print span { - display: inline-block; - height: 24px; - line-height: 24px; - padding-right: 30px; -} - - -button.DTTT_button_csv span { background: url(../images/csv.png) no-repeat bottom right; } -button.DTTT_button_csv:hover span { background: url(../images/csv_hover.png) no-repeat center right; } - -button.DTTT_button_xls span { background: url(../images/xls.png) no-repeat center right; } -button.DTTT_button_xls:hover span { background: #f0f0f0 url(../images/xls_hover.png) no-repeat center right; } - -button.DTTT_button_copy span { background: url(../images/copy.png) no-repeat center right; } -button.DTTT_button_copy:hover span { background: #f0f0f0 url(../images/copy_hover.png) no-repeat center right; } - -button.DTTT_button_pdf span { background: url(../images/pdf.png) no-repeat center right; } -button.DTTT_button_pdf:hover span { background: #f0f0f0 url(../images/pdf_hover.png) no-repeat center right; } - -button.DTTT_button_print span { background: url(../images/print.png) no-repeat center right; } -button.DTTT_button_print:hover span { background: #f0f0f0 url(../images/print_hover.png) no-repeat center right; } - - */ - -button.DTTT_button_collection span { - padding-right: 17px; - background: url(../images/collection.png) no-repeat center right; -} - -button.DTTT_button_collection:hover span { - padding-right: 17px; - background: #f0f0f0 url(../images/collection_hover.png) no-repeat center right; -} - - -/* - * SELECTING - * Row selection styles - */ -table.DTTT_selectable tbody tr { - cursor: pointer; - *cursor: hand; -} - -table.dataTable tr.DTTT_selected.odd { - background-color: #9FAFD1; -} - -table.dataTable tr.DTTT_selected.odd td.sorting_1 { - background-color: #9FAFD1; -} - -table.dataTable tr.DTTT_selected.odd td.sorting_2 { - background-color: #9FAFD1; -} - -table.dataTable tr.DTTT_selected.odd td.sorting_3 { - background-color: #9FAFD1; -} - - -table.dataTable tr.DTTT_selected.even { - background-color: #B0BED9; -} - -table.dataTable tr.DTTT_selected.even td.sorting_1 { - background-color: #B0BED9; -} - -table.dataTable tr.DTTT_selected.even td.sorting_2 { - background-color: #B0BED9; -} - -table.dataTable tr.DTTT_selected.even td.sorting_3 { - background-color: #B0BED9; -} - - -/* - * COLLECTIONS - * Drop down list (collection) styles - */ - -div.DTTT_collection { - width: 150px; - padding: 8px 8px 4px 8px; - border: 1px solid #ccc; - border: 1px solid rgba( 0, 0, 0, 0.4 ); - background-color: #f3f3f3; - background-color: rgba( 255, 255, 255, 0.3 ); - overflow: hidden; - z-index: 2002; - - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -ms-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; - - -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); - -ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); - -o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); - box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); -} - -div.DTTT_collection_background { - background: transparent url(../images/background.png) repeat top left; - z-index: 2001; -} - -div.DTTT_collection button.DTTT_button, -div.DTTT_collection div.DTTT_button, -div.DTTT_collection a.DTTT_button { - position: relative; - left: 0; - right: 0; - - display: block; - float: none; - margin-bottom: 4px; - - -webkit-box-shadow: 1px 1px 3px #999; - -moz-box-shadow: 1px 1px 3px #999; - -ms-box-shadow: 1px 1px 3px #999; - -o-box-shadow: 1px 1px 3px #999; - box-shadow: 1px 1px 3px #999; -} - - -/* - * PRINTING - * Print display styles - */ - -.DTTT_print_info { - position: fixed; - top: 50%; - left: 50%; - width: 400px; - height: 150px; - margin-left: -200px; - margin-top: -75px; - text-align: center; - color: #333; - padding: 10px 30px; - - background: #ffffff; /* Old browsers */ - background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ - background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ - background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ - background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ - - opacity: 0.95; - - border: 1px solid black; - border: 1px solid rgba(0, 0, 0, 0.5); - - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - -ms-border-radius: 6px; - -o-border-radius: 6px; - border-radius: 6px; - - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); - -ms-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); - -o-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); -} - -.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - diff --git a/webapp/src/main/webapp/console/sla/css/images/arrow-down.gif b/webapp/src/main/webapp/console/sla/css/images/arrow-down.gif deleted file mode 100644 index e239d11aa65b7f9e65978ea1306ee0d8562ff66e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmV;F18e+8Nk%w1VG{ro0Ouh9000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000Pa0RIUbNU)&6fAjPm6sT|B!A!#L6}%@b z(?VdGGWn8t&sRoZ3)f}LNNZ%KbqoKEGC6Wo%74sQW@PrVp3F@3UjA#vvX#z%*jQrw q$&V$!pZ{)+yoK~%xRK$S{@avklhl70K}r>g@~Y3P2*K(M2mm{w^}*Nx diff --git a/webapp/src/main/webapp/console/sla/css/images/arrow-left.gif b/webapp/src/main/webapp/console/sla/css/images/arrow-left.gif deleted file mode 100644 index 93ffd5a9e0ddd08a790c3da95a228b2235aae7f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 891 zcmV->1BCoXNk%w1VG{ro0Ow}_000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000PB0RIUbNU)&6g9sBUT!?TU!-4C7Wzxs6 z96ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000PH0RIUbNU)&6g9sBU95`>`L4BEkt#e3F zSf)&)nAM|r@1n<6*!V5<<+0?ga0xq>EV)VIL0T(gwrV&~Wz0-1Cl(|b^CUu>7eR_l XXc41EhY(#-{6}-C)2C1s1_S^*=cTQ_ diff --git a/webapp/src/main/webapp/console/sla/css/images/arrow-up.gif b/webapp/src/main/webapp/console/sla/css/images/arrow-up.gif deleted file mode 100644 index 7d196267ebff0e127db6ad9a4fc42a75ff7a348e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmV;F18e+8Nk%w1VG{ro0Ox@K000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000Pa0RIUbNU)&6gYyn59N221!gZO}IW!0? z6R?Q|H)Yy{abUPiAj5V1cMD{uTOIkC1j!F0ww0N%VQdAnp~HGGLDqA~EN3QW4oCSM qwGg67S}P?UteDByy?^(7fxLJyldz`*?+MFO>_ z45U54*zIJt9gxBA>EaloaXvXgf^~7jF9rst2nNPdv$k@elxm4=5=##1!`dMboFyt I=akR{0OLI~{r~^~ diff --git a/webapp/src/main/webapp/console/sla/css/images/ui-bg_glass_100_f6f6f6_1x400.png b/webapp/src/main/webapp/console/sla/css/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100755 index 627285e3e7f7497ba0e08b1dfde60da35fed5685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!{KIr+qDZgOs>S*DCH8q6)|^lLQ8(vdyV&7=Rv!DK5_Nv5 zKU5EWSl#{5ocZwkn6~@klK(Ue|8%DOm~7JJCTPgP@M)6!J>`Xd0YEcVOI#yLQW8s2 zt&)pUffR$0fuXUkfvK*cQHY_Xm8q$fiIJ{>xs`#z3Zt99P&DM`r(~v8;?{68KhX`S Ofx*+&&t;ucLK6V4Dp3po diff --git a/webapp/src/main/webapp/console/sla/css/images/ui-bg_glass_65_ffffff_1x400.png b/webapp/src/main/webapp/console/sla/css/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 5f927914dff6887faada1e7702cfe66d8bef424f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI2NH8$CE1Q=ADW)WEcNYf6yIsOdfIQ9ukH}&m z?E%JaC$sH<3_(v9#}JM4$r%X}t&0mp9yKsb%{ak$*<@oTP*SzTHKHUXu_VKYn_7+PAHnp&9{=^B_@85pcEy7>!5LvDUbW?Cg~4L9=>-GCYxJYD@< J);T3K0RSp*Gu8kA diff --git a/webapp/src/main/webapp/console/sla/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/webapp/src/main/webapp/console/sla/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100755 index 4c652192cfd67605594cda7f7263bd5fff3e9a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?s03;ZUuHXC*q?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z$cXTCaSV~TeDu&>UIzz;hKv1@CM62OC7#SEE>l&Eq8XAQdT3VT!TA3K>8kk!d7_2b5 g`3pruZhlH;S|x4`H}ezSfEpM)UHx3vIVCg!0KffJ;Q#;t diff --git a/webapp/src/main/webapp/console/sla/css/images/ui-icons_222222_256x240.png b/webapp/src/main/webapp/console/sla/css/images/ui-icons_222222_256x240.png deleted file mode 100755 index c1cb1170c8b3795835b8831ab81fa9ae63b606b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6922 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 QJ~;stWz}Trq%1=J3#jBGg8%>k diff --git a/webapp/src/main/webapp/console/sla/css/jquery-ui-1.10.3.custom.min.css b/webapp/src/main/webapp/console/sla/css/jquery-ui-1.10.3.custom.min.css deleted file mode 100755 index 3fad8b2c51..0000000000 --- a/webapp/src/main/webapp/console/sla/css/jquery-ui-1.10.3.custom.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery UI - v1.10.3 - 2013-05-16 -* http://jqueryui.com -* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px -* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:21px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:400}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:400;margin:-1px}.ui-menu .ui-state-disabled{font-weight:400;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(images/animated-overlay.gif);height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:0;border-bottom:0;border-right:0}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px} \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/css/jquery.dataTables.css b/webapp/src/main/webapp/console/sla/css/jquery.dataTables.css deleted file mode 100644 index 7da7faec89..0000000000 --- a/webapp/src/main/webapp/console/sla/css/jquery.dataTables.css +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Table - */ -table.dataTable { - margin: 0 auto; - clear: both; - width: 100%; -} - -table.dataTable thead th { - padding: 3px 18px 3px 10px; - border-bottom: 1px solid black; - font-weight: bold; - cursor: pointer; - *cursor: hand; -} - -table.dataTable tfoot th { - padding: 3px 18px 3px 10px; - border-top: 1px solid black; - font-weight: bold; -} - -table.dataTable td { - padding: 3px 10px; -} - -table.dataTable td.center, -table.dataTable td.dataTables_empty { - text-align: center; -} - -table.dataTable tr.odd { background-color: #E2E4FF; } -table.dataTable tr.even { background-color: white; } - -table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; } -table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; } -table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; } -table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; } -table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; } -table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; } - - -/* - * Table wrapper - */ -.dataTables_wrapper { - position: relative; - clear: both; - *zoom: 1; -} - - -/* - * Page length menu - */ -.dataTables_length { - float: left; -} - - -/* - * Filter - */ -.dataTables_filter { - float: right; - text-align: right; -} - - -/* - * Table information - */ -.dataTables_info { - clear: both; - float: left; -} - - -/* - * Pagination - */ -.dataTables_paginate { - float: right; - text-align: right; -} - -/* Two button pagination - previous / next */ -.paginate_disabled_previous, -.paginate_enabled_previous, -.paginate_disabled_next, -.paginate_enabled_next { - height: 19px; - float: left; - cursor: pointer; - *cursor: hand; - color: #111 !important; -} -.paginate_disabled_previous:hover, -.paginate_enabled_previous:hover, -.paginate_disabled_next:hover, -.paginate_enabled_next:hover { - text-decoration: none !important; -} -.paginate_disabled_previous:active, -.paginate_enabled_previous:active, -.paginate_disabled_next:active, -.paginate_enabled_next:active { - outline: none; -} - -.paginate_disabled_previous, -.paginate_disabled_next { - color: #666 !important; -} -.paginate_disabled_previous, -.paginate_enabled_previous { - padding-left: 23px; -} -.paginate_disabled_next, -.paginate_enabled_next { - padding-right: 23px; - margin-left: 10px; -} - -.paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; } -.paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; } -.paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; } - -.paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; } -.paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; } -.paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; } - -/* Full number pagination */ -.paging_full_numbers { - height: 22px; - line-height: 22px; -} -.paging_full_numbers a:active { - outline: none -} -.paging_full_numbers a:hover { - text-decoration: none; -} - -.paging_full_numbers a.paginate_button, -.paging_full_numbers a.paginate_active { - border: 1px solid #aaa; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - padding: 2px 5px; - margin: 0 3px; - cursor: pointer; - *cursor: hand; - color: #333 !important; -} - -.paging_full_numbers a.paginate_button { - background-color: #ddd; -} - -.paging_full_numbers a.paginate_button:hover { - background-color: #ccc; - text-decoration: none !important; -} - -.paging_full_numbers a.paginate_active { - background-color: #99B3FF; -} - - -/* - * Processing indicator - */ -.dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 250px; - height: 30px; - margin-left: -125px; - margin-top: -15px; - padding: 14px 0 2px 0; - border: 1px solid #ddd; - text-align: center; - color: #999; - font-size: 14px; - background-color: white; -} - - -/* - * Sorting - */ -.sorting { background: url('../images/sort_both.png') no-repeat center right; } -.sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } -.sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } - -.sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } -.sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable thead th:active, -table.dataTable thead td:active { - outline: none; -} - - -/* - * Scrolling - */ -.dataTables_scroll { - clear: both; -} - -.dataTables_scrollBody { - *margin-top: -1px; - -webkit-overflow-scrolling: touch; -} - diff --git a/webapp/src/main/webapp/console/sla/css/oozie-sla-graph.css b/webapp/src/main/webapp/console/sla/css/oozie-sla-graph.css deleted file mode 100644 index a60096e749..0000000000 --- a/webapp/src/main/webapp/console/sla/css/oozie-sla-graph.css +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Tool tip shown when clicking on a data point */ -#graphtooltip { - font-size: 12px; - color: rgb(15%, 15%, 15%); - padding: 2px; - background-color: rgba(95%, 95%, 95%, 0.8); -} - -/* Rotate x-axis tick labels so that they don't overlap each other. - Remove this when moving to flot 0.9 which will have axis rotation */ -#sla-graph-div div.xAxis div.tickLabel { - transform: rotate(-30deg); - -ms-transform: rotate(-30deg); /* IE 9 */ - -moz-transform: rotate(-30deg); /* Firefox */ - -webkit-transform: rotate(-30deg); /* Safari and Chrome */ - -o-transform: rotate(-30deg); /* Opera */ - transform-origin: 5em 7em; /* For -60deg 5em 3em */ - -o-transform-origin: 5em 7em; - -ms-transform-origin: 5em 7em; - -moz-transform-origin: 5em 7em; - -webkit-transform-origin: 5em 7em; -} - -/* For Axis Label Name */ -#sla-graph-container div.axisLabel { - position: absolute; - text-align: center; - font-size: 13px; -} - -#sla-graph-container div.xaxisLabel { - position: relative; - bottom: -420px; - left: 0; - right: 20px; -} - -#sla-graph-container div.yaxisLabel { - top: 65%; - left: 2px; - transform: rotate(-90deg); - -o-transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - -moz-transform: rotate(-90deg); - -webkit-transform: rotate(-90deg); - transform-origin: 0 0; - -o-transform-origin: 0 0; - -ms-transform-origin: 0 0; - -moz-transform-origin: 0 0; - -webkit-transform-origin: 0 0; -} - -#sla-graph-div .button { - position: absolute; - cursor: pointer; -} - -#sla-graph-div div.button { - font-size: smaller; - color: #999; - background-color: #eee; - padding: 2px; -} - -.sla_table,.sla_table th,.sla_table td,.sla_table caption { - text-align: center; - font: 11px tahoma, verdana, helvetica -} \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/css/oozie-sla-table.css b/webapp/src/main/webapp/console/sla/css/oozie-sla-table.css deleted file mode 100644 index 409b7b4f8a..0000000000 --- a/webapp/src/main/webapp/console/sla/css/oozie-sla-table.css +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -div.dataTables_wrapper { - font-size: 11px; -} - -table.display tr td:first-child { - background: - url("../../../ext-2.2/resources/images/default/grid/grid3-special-col-bg.gif") - repeat-y scroll right center transparent; -} - -table.dataTable thead th:first-child { - padding-left: 0; - padding-right: 0; -} - -table.dataTable tr.odd td.sorting_1 { - background-color: white; -} - -table.dataTable tr.even td.sorting_1 { - background-color: #FAFAFA; -} - -table.dataTable td:first-child { - padding: 0; - padding: 3px 5px 0px 0px !important; - text-align: right; - color: rgb(68, 68, 68); -} - -table.dataTable td { - padding: 3px 3px 3px 5px; - font-size: 11px; -} - -/** table.datatable not working, so table.display */ -table.display tr.odd { - background-color: white; -} - -/** table.datatable not working, so table.display */ -table.display tr.even { - background-color: #FAFAFA; -} - -table.display thead th div.DataTables_sort_wrapper { - padding-right: 20px; - position: relative; - font-weight: normal; - font-size: 11px; -} - -table.display thead th div.DataTables_sort_wrapper span { - margin-top: -8px; - position: absolute; - right: 0; - top: 50%; -} - -div.dataTables_length { - float: right; -} - -div.dataTables_filter { - float: left; -} - -div.dataTables_info { - float: left; -} - -div.dataTables_paginate { - float: right; -} - -div.dataTables_length, -div.dataTables_filter, -div.dataTables_paginate, -div.dataTables_info { - padding: 6px; -} - -.ColVis_Button { - background: -moz-linear-gradient(center top , #FFFFFF 0%, #F3F3F3 89%, #F9F9F9 100%) repeat scroll 0 0 transparent !important; - box-shadow: 1px 1px 3px #CCCCCC; - border-radius: 2px 2px 2px 2px; - height: 26px; - padding: 5px 8px; - margin-right: 2px; - float: right; - cursor: pointer; - text-align: center; -} - -div.ColVis_collection button.ColVis_Button { - background-color: white; - height: 100%; - margin-bottom: 2px; -} - -table.display tr.even:hover { /**background-color: #ECFFB3;**/ - background: #efefef - url("../../../ext-2.2/resources/images/default/grid/row-over.gif") repeat-x - left top; -} - -table.display tr.even:hover td.sorting_1 { - background: #efefef - url("../../../ext-2.2/resources/images/default/grid/row-over.gif") repeat-x - left top; -} - -table.display tr.odd:hover { - background: #efefef - url("../../../ext-2.2/resources/images/default/grid/row-over.gif") repeat-x - left top; -} - -table.display tr.odd:hover td.sorting_1 { - background: #efefef - url("../../../ext-2.2/resources/images/default/grid/row-over.gif") repeat-x - left top; -} - -/* unvisited link */ -a:link { - color: #0000FF; -} - -/* visited link */ -a:visited { - color: #800080; -} - -/* selected link */ -a:active { - color: #FF0000; -} - -.ui-buttonset .ui-button { - margin-left: 0; - margin-right: 0; -} - -.ui-buttonset { - margin-right: 0; -} - -.paging_full_numbers .ui-button { - cursor: pointer; - margin: 0; - padding: 2px 6px; -} diff --git a/webapp/src/main/webapp/console/sla/css/oozie-sla.css b/webapp/src/main/webapp/console/sla/css/oozie-sla.css deleted file mode 100644 index ce6bb4db9f..0000000000 --- a/webapp/src/main/webapp/console/sla/css/oozie-sla.css +++ /dev/null @@ -1,225 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -body { - font: 11px arial, tahoma, helvetica, sans-serif; -} - -#inputArea { - background: - url("../../../ext-2.2/resources/images/default/toolbar/bg.gif") - repeat-x scroll left top rgb(208, 222, 240); - padding: 2px; - border-bottom: 1px solid rgb(153, 187, 232); - font: 11px tahoma, verdana, helvetica; -} - -#inputArea input { - margin: 5px 0 5px 0; - padding: 0px; -} - -.AppName { - margin: 5px 20px 5px 10px; -} - -.OR { - margin-right: 20px; -} - -#parent, #nominalCreated, #expected, #actual { - margin: 0px 10px 0px 10px; -} - -.ui-widget { - font-size: 60%; -} - -.ui-widget-content a { - color: rgb(0, 0, 0); -} - -.ui-widget-header { - border: 1px solid rgb(222, 236, 253); - color: rgb(0, 0, 0); - font-weight: normal; - font: 12px tahoma, arial, helvetica; - background: url("images/ui-bg_flat_100_DEECFD_40x100.png") repeat-x - scroll 50% 50% rgb(222, 236, 253); -} - -.ui-widget-header .ui-state-hover { - border: 1px solid #DDDDDD -} - -.ui-corner-tr { - border-bottom-right-radius: 0px; -} - -.ui-corner-tl { - border-top-left-radius: 0px; -} - -.ui-corner-br { - border-bottom-right-radius: 0px; -} - -.ui-corner-bl { - border-bottom-left-radius: 0px; -} - -.ui-corner-all { - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; - border-top-right-radius: 0px; - border-top-left-radius: 0px; -} - -.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-datepicker - { - font-weight: normal; /** colvis and tabletools */ - color: rgb(0, 0, 0); - font-size: 0.90em; - font: 11px tahoma, arial, helvetica; -} - -.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited - { - color: #416AA3; - background: - url("../../../ext-2.2/resources/images/default/tabs/tabs-sprite.gif") - repeat-x scroll 0 -203px transparent; - border: none; -} - -.ui-state-active a,.ui-widget-content .ui-state-active,.ui-state-active a:link,.ui-state-active a:visited - { - color: #15428B; - font-weight: bold; - border: 1px solid rgb(208, 222, 240); - font: 11px tahoma, arial, helvetica; -} - -.ui-state-default .ui-icon { - background-image: url("images/ui-icons_222222_256x240.png"); -} - -.ui-widget-header .ui-icon { - background-image: url("images/ui-icons_222222_256x240.png"); -} - -.ui-datepicker .ui-datepicker-buttonpane button { - display: none; -} - -.ui-timepicker-div .ui-widget-header { - margin-bottom: 8px; -} - -.ui-timepicker-div dl { - text-align: left; -} - -.ui-timepicker-div dl dt { - height: 25px; - margin-bottom: -25px; -} - -.ui-timepicker-div dl dd { - margin: 0 10px 10px 65px; -} - -.ui-timepicker-div td { - font-size: 90%; -} - -.ui-tpicker-grid-label { - background: none; - border: none; - margin: 0; - padding: 0; -} - -.ui-timepicker-rtl { - direction: rtl; -} - -.ui-timepicker-rtl dl { - text-align: right; -} - -.ui-timepicker-rtl dl dd { - margin: 0 65px 10px 10px; -} - -.search-button { - margin-left: 20px; - height: 25px; -} - -.search-span { - color: #416AA3; - font: 11px tahoma, arial, helvetica; - padding: 0px 10px 0px 10px; -} - -.ui-tabs { - padding: 0; - color: #416AA3; - font: 11px tahoma, arial, helvetica; -} - -.ui-tabs .ui-tabs-panel { - padding: 0; -} - -.ui-tabs .ui-tabs-nav { - margin: 0; - padding: 0; -} - -.ui-tabs .ui-tabs-nav li a { - padding: 0.3em 1em; -} - -.ui-tabs .ui-tabs-nav li.ui-tabs-active { - padding-bottom: 0px; -} - -.ui-tabs { - padding: 0; - color: #416AA3; - font: 11px tahoma, arial, helvetica; -} - -.ui-tabs .ui-tabs-panel { - padding: 0; -} - -.ui-tabs .ui-tabs-nav { - margin: 0; - padding: 0; -} - -.ui-tabs .ui-tabs-nav li a { - padding: 0.3em 1em; -} - -.ui-tabs .ui-tabs-nav li.ui-tabs-active { - padding-bottom: 0px; -} \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.min.js b/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.min.js deleted file mode 100644 index 8fa02ed015..0000000000 --- a/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.min.js +++ /dev/null @@ -1,28 +0,0 @@ -/* Javascript plotting library for jQuery, version 0.8.0. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -*/ -/* Plugin for jQuery for working with colors. - * - * Version 1.1. - * - * Inspiration from jQuery color animation plugin by John Resig. - * - * Released under the MIT license by Ole Laursen, October 2009. - * - * Examples: - * - * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() - * var c = $.color.extract($("#mydiv"), 'background-color'); - * console.log(c.r, c.g, c.b, c.a); - * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" - * - * Note that .scale() and .add() return the same modified object - * instead of making a new one. - * - * V. 1.1: Fix error handling so e.g. parsing an empty string does - * produce a color rather than just crashing. - */(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H=1){return"rgb("+[G.r,G.g,G.b].join(",")+")"}else{return"rgba("+[G.r,G.g,G.b,G.a].join(",")+")"}};G.normalize=function(){function H(J,K,I){return KI?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=""&&E!="transparent"){break}D=D.parent()}while(!B.nodeName(D.get(0),"body"));if(E=="rgba(0, 0, 0, 0)"){E="transparent"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D=="transparent"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); -(function(e){function n(t,n){var r=n.children("."+t)[0];if(r==null){r=document.createElement("canvas"),r.className=t,e(r).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(n);if(!r.getContext){if(!window.G_vmlCanvasManager)throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.");r=window.G_vmlCanvasManager.initElement(r)}}this.element=r;var i=this.context=r.getContext("2d"),s=window.devicePixelRatio||1,o=i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1;this.pixelRatio=s/o,this.resize(n.width(),n.height()),this.textContainer=null,this.text={},this._textCache={}}function r(t,r,s,o){function E(e,t){t=[w].concat(t);for(var n=0;nn&&(n=i))}t<=n&&(t=n+1);var s,o=[],f=a.colors,l=f.length,c=0;for(r=0;r=0?c<.5?c=-c-.2:c=0:c=-c),o[r]=s.scale("rgb",1+c);var h=0,p;for(r=0;re.datamax&&n!=r&&(e.datamax=n)}var t=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY,r=Number.MAX_VALUE,i,s,o,a,f,l,c,h,p,d,v,m,g,y,w,S;e.each(k(),function(e,r){r.datamin=t,r.datamax=n,r.used=!1});for(i=0;i0&&c[o-h]!=null&&c[o-h]!=c[o]&&c[o-h+1]!=c[o+1]){for(a=0;aO&&(O=m)),g.y&&(mM&&(M=m))}}if(l.bars.show){var _;switch(l.bars.align){case"left":_=0;break;case"right":_=-l.bars.barWidth;break;case"center":_=-l.bars.barWidth/2;break;default:throw new Error("Invalid bar alignment: "+l.bars.align)}l.bars.horizontal?(A+=_,M+=_+l.bars.barWidth):(L+=_,O+=_+l.bars.barWidth)}x(l.xaxis,L,O),x(l.yaxis,A,M)}e.each(k(),function(e,r){r.datamin==t&&(r.datamin=null),r.datamax==n&&(r.datamax=null)})}function D(){t.css("padding",0).children(":not(.flot-base,.flot-overlay)").remove(),t.css("position")=="static"&&t.css("position","relative"),f=new n("flot-base",t),l=new n("flot-overlay",t),h=f.context,p=l.context,c=e(l.element).unbind();var r=t.data("plot");r&&(r.shutdown(),l.clear()),t.data("plot",w)}function P(){a.grid.hoverable&&(c.mousemove(at),c.bind("mouseleave",ft)),a.grid.clickable&&c.click(lt),E(b.bindEvents,[c])}function H(){ot&&clearTimeout(ot),c.unbind("mousemove",at),c.unbind("mouseleave",ft),c.unbind("click",lt),E(b.shutdown,[c])}function B(e){function t(e){return e}var n,r,i=e.options.transform||t,s=e.options.inverseTransform;e.direction=="x"?(n=e.scale=g/Math.abs(i(e.max)-i(e.min)),r=Math.min(i(e.max),i(e.min))):(n=e.scale=y/Math.abs(i(e.max)-i(e.min)),n=-n,r=Math.max(i(e.max),i(e.min))),i==t?e.p2c=function(e){return(e-r)*n}:e.p2c=function(e){return(i(e)-r)*n},s?e.c2p=function(e){return s(r+e/n)}:e.c2p=function(e){return r+e/n}}function j(e){var t=e.options,n=e.ticks||[],r=t.labelWidth||0,i=t.labelHeight||0,s=e.direction+"Axis "+e.direction+e.n+"Axis",o="flot-"+e.direction+"-axis flot-"+e.direction+e.n+"-axis "+s,u=t.font||"flot-tick-label tickLabel";for(var a=0;a=0;--t)F(o[t]);q(),e.each(o,function(e,t){I(t)})}g=f.width-m.left-m.right,y=f.height-m.bottom-m.top,e.each(n,function(e,t){B(t)}),r&&G(),it()}function U(e){var t=e.options,n=+(t.min!=null?t.min:e.datamin),r=+(t.max!=null?t.max:e.datamax),i=r-n;if(i==0){var s=r==0?1:.01;t.min==null&&(n-=s);if(t.max==null||t.min!=null)r+=s}else{var o=t.autoscaleMargin;o!=null&&(t.min==null&&(n-=i*o,n<0&&e.datamin!=null&&e.datamin>=0&&(n=0)),t.max==null&&(r+=i*o,r>0&&e.datamax!=null&&e.datamax<=0&&(r=0)))}e.min=n,e.max=r}function z(t){var n=t.options,r;typeof n.ticks=="number"&&n.ticks>0?r=n.ticks:r=.3*Math.sqrt(t.direction=="x"?f.width:f.height);var s=(t.max-t.min)/r,o=-Math.floor(Math.log(s)/Math.LN10),u=n.tickDecimals;u!=null&&o>u&&(o=u);var a=Math.pow(10,-o),l=s/a,c;l<1.5?c=1:l<3?(c=2,l>2.25&&(u==null||o+1<=u)&&(c=2.5,++o)):l<7.5?c=5:c=10,c*=a,n.minTickSize!=null&&c0&&(n.min==null&&(t.min=Math.min(t.min,p[0])),n.max==null&&p.length>1&&(t.max=Math.max(t.max,p[p.length-1]))),t.tickGenerator=function(e){var t=[],n,r;for(r=0;r1&&/\..*0$/.test((g[1]-g[0]).toFixed(m))||(t.tickDecimals=m)}}}}function W(t){var n=t.options.ticks,r=[];n==null||typeof n=="number"&&n>0?r=t.tickGenerator(t):n&&(e.isFunction(n)?r=n(t):r=n);var i,s;t.ticks=[];for(i=0;i1&&(o=u[1])):s=+u,o==null&&(o=t.tickFormatter(s,t)),isNaN(s)||t.ticks.push({v:s,label:o})}}function X(e,t){e.options.autoscaleMargin&&t.length>0&&(e.options.min==null&&(e.min=Math.min(e.min,t[0].v)),e.options.max==null&&t.length>1&&(e.max=Math.max(e.max,t[t.length-1].v)))}function V(){f.clear(),E(b.drawBackground,[h]);var e=a.grid;e.show&&e.backgroundColor&&K(),e.show&&!e.aboveData&&Q();for(var t=0;ti){var a=r;r=i,i=a}return{from:r,to:i,axis:n}}function K(){h.save(),h.translate(m.left,m.top),h.fillStyle=bt(a.grid.backgroundColor,y,0,"rgba(255, 255, 255, 0)"),h.fillRect(0,0,g,y),h.restore()}function Q(){var t,n,r,i;h.save(),h.translate(m.left,m.top);var s=a.grid.markings;if(s){e.isFunction(s)&&(n=w.getAxes(),n.xmin=n.xaxis.min,n.xmax=n.xaxis.max,n.ymin=n.yaxis.min,n.ymax=n.yaxis.max,s=s(n));for(t=0;tu.axis.max||f.tof.axis.max)continue;u.from=Math.max(u.from,u.axis.min),u.to=Math.min(u.to,u.axis.max),f.from=Math.max(f.from,f.axis.min),f.to=Math.min(f.to,f.axis.max);if(u.from==u.to&&f.from==f.to)continue;u.from=u.axis.p2c(u.from),u.to=u.axis.p2c(u.to),f.from=f.axis.p2c(f.from),f.to=f.axis.p2c(f.to),u.from==u.to||f.from==f.to?(h.beginPath(),h.strokeStyle=o.color||a.grid.markingsColor,h.lineWidth=o.lineWidth||a.grid.markingsLineWidth,h.moveTo(u.from,f.from),h.lineTo(u.to,f.to),h.stroke()):(h.fillStyle=o.color||a.grid.markingsColor,h.fillRect(u.from,f.to,u.to-u.from,f.from-f.to))}}n=k(),r=a.grid.borderWidth;for(var l=0;lc.max||d=="full"&&(typeof r=="object"&&r[c.position]>0||r>0)&&(x==c.min||x==c.max))continue;c.direction=="x"?(v=c.p2c(x),S=d=="full"?-y:d,c.position=="top"&&(S=-S)):(b=c.p2c(x),E=d=="full"?-g:d,c.position=="left"&&(E=-E)),h.lineWidth==1&&(c.direction=="x"?v=Math.floor(v)+.5:b=Math.floor(b)+.5),h.moveTo(v,b),h.lineTo(v+E,b+S)}h.stroke()}r&&(i=a.grid.borderColor,typeof r=="object"||typeof i=="object"?(typeof r!="object"&&(r={top:r,right:r,bottom:r,left:r}),typeof i!="object"&&(i={top:i,right:i,bottom:i,left:i}),r.top>0&&(h.strokeStyle=i.top,h.lineWidth=r.top,h.beginPath(),h.moveTo(0-r.left,0-r.top/2),h.lineTo(g,0-r.top/2),h.stroke()),r.right>0&&(h.strokeStyle=i.right,h.lineWidth=r.right,h.beginPath(),h.moveTo(g+r.right/2,0-r.top),h.lineTo(g+r.right/2,y),h.stroke()),r.bottom>0&&(h.strokeStyle=i.bottom,h.lineWidth=r.bottom,h.beginPath(),h.moveTo(g+r.right,y+r.bottom/2),h.lineTo(0,y+r.bottom/2),h.stroke()),r.left>0&&(h.strokeStyle=i.left,h.lineWidth=r.left,h.beginPath(),h.moveTo(0-r.left/2,y+r.bottom),h.lineTo(0-r.left/2,0),h.stroke())):(h.lineWidth=r,h.strokeStyle=a.grid.borderColor,h.strokeRect(-r/2,-r/2,g+r,y+r))),h.restore()}function G(){e.each(k(),function(e,t){if(!t.show||t.ticks.length==0)return;var n=t.box,r=t.direction+"Axis "+t.direction+t.n+"Axis",i="flot-"+t.direction+"-axis flot-"+t.direction+t.n+"-axis "+r,s=t.options.font||"flot-tick-label tickLabel",o,u,a,l,c;f.removeText(i);for(var h=0;ht.max)continue;t.direction=="x"?(l="center",u=m.left+t.p2c(o.v),t.position=="bottom"?a=n.top+n.padding:(a=n.top+n.height-n.padding,c="bottom")):(c="middle",a=m.top+t.p2c(o.v),t.position=="left"?(u=n.left+n.width-n.padding,l="right"):u=n.left+n.padding),f.addText(i,u,a,o.label,s,null,l,c)}})}function Y(e){e.lines.show&&Z(e),e.bars.show&&nt(e),e.points.show&&et(e)}function Z(e){function t(e,t,n,r,i){var s=e.points,o=e.pointsize,u=null,a=null;h.beginPath();for(var f=o;f=d&&c>i.max){if(d>i.max)continue;l=(i.max-c)/(d-c)*(p-l)+l,c=i.max}else if(d>=c&&d>i.max){if(c>i.max)continue;p=(i.max-c)/(d-c)*(p-l)+l,d=i.max}if(l<=p&&l=p&&l>r.max){if(p>r.max)continue;c=(r.max-l)/(p-l)*(d-c)+c,l=r.max}else if(p>=l&&p>r.max){if(l>r.max)continue;d=(r.max-l)/(p-l)*(d-c)+c,p=r.max}(l!=u||c!=a)&&h.moveTo(r.p2c(l)+t,i.p2c(c)+n),u=p,a=d,h.lineTo(r.p2c(p)+t,i.p2c(d)+n)}h.stroke()}function n(e,t,n){var r=e.points,i=e.pointsize,s=Math.min(Math.max(0,n.min),n.max),o=0,u,a=!1,f=1,l=0,c=0;for(;;){if(i>0&&o>r.length+i)break;o+=i;var p=r[o-i],d=r[o-i+f],v=r[o],m=r[o+f];if(a){if(i>0&&p!=null&&v==null){c=o,i=-i,f=2;continue}if(i<0&&o==l+i){h.fill(),a=!1,i=-i,f=1,o=l=c+i;continue}}if(p==null||v==null)continue;if(p<=v&&p=v&&p>t.max){if(v>t.max)continue;d=(t.max-p)/(v-p)*(m-d)+d,p=t.max}else if(v>=p&&v>t.max){if(p>t.max)continue;m=(t.max-p)/(v-p)*(m-d)+d,v=t.max}a||(h.beginPath(),h.moveTo(t.p2c(p),n.p2c(s)),a=!0);if(d>=n.max&&m>=n.max){h.lineTo(t.p2c(p),n.p2c(n.max)),h.lineTo(t.p2c(v),n.p2c(n.max));continue}if(d<=n.min&&m<=n.min){h.lineTo(t.p2c(p),n.p2c(n.min)),h.lineTo(t.p2c(v),n.p2c(n.min));continue}var g=p,y=v;d<=m&&d=n.min?(p=(n.min-d)/(m-d)*(v-p)+p,d=n.min):m<=d&&m=n.min&&(v=(n.min-d)/(m-d)*(v-p)+p,m=n.min),d>=m&&d>n.max&&m<=n.max?(p=(n.max-d)/(m-d)*(v-p)+p,d=n.max):m>=d&&m>n.max&&d<=n.max&&(v=(n.max-d)/(m-d)*(v-p)+p,m=n.max),p!=g&&h.lineTo(t.p2c(g),n.p2c(d)),h.lineTo(t.p2c(p),n.p2c(d)),h.lineTo(t.p2c(v),n.p2c(m)),v!=y&&(h.lineTo(t.p2c(v),n.p2c(m)),h.lineTo(t.p2c(y),n.p2c(m)))}}h.save(),h.translate(m.left,m.top),h.lineJoin="round";var r=e.lines.lineWidth,i=e.shadowSize;if(r>0&&i>0){h.lineWidth=i,h.strokeStyle="rgba(0,0,0,0.1)";var s=Math.PI/18;t(e.datapoints,Math.sin(s)*(r/2+i/2),Math.cos(s)*(r/2+i/2),e.xaxis,e.yaxis),h.lineWidth=i/2,t(e.datapoints,Math.sin(s)*(r/2+i/4),Math.cos(s)*(r/2+i/4),e.xaxis,e.yaxis)}h.lineWidth=r,h.strokeStyle=e.color;var o=rt(e.lines,e.color,0,y);o&&(h.fillStyle=o,n(e.datapoints,e.xaxis,e.yaxis)),r>0&&t(e.datapoints,0,0,e.xaxis,e.yaxis),h.restore()}function et(e){function t(e,t,n,r,i,s,o,u){var a=e.points,f=e.pointsize;for(var l=0;ls.max||po.max)continue;h.beginPath(),c=s.p2c(c),p=o.p2c(p)+r,u=="circle"?h.arc(c,p,t,0,i?Math.PI:Math.PI*2,!1):u(h,c,p,t,i),h.closePath(),n&&(h.fillStyle=n,h.fill()),h.stroke()}}h.save(),h.translate(m.left,m.top);var n=e.points.lineWidth,r=e.shadowSize,i=e.points.radius,s=e.points.symbol;n==0&&(n=1e-4);if(n>0&&r>0){var o=r/2;h.lineWidth=o,h.strokeStyle="rgba(0,0,0,0.1)",t(e.datapoints,i,null,o+o/2,!0,e.xaxis,e.yaxis,s),h.strokeStyle="rgba(0,0,0,0.2)",t(e.datapoints,i,null,o/2,!0,e.xaxis,e.yaxis,s)}h.lineWidth=n,h.strokeStyle=e.color,t(e.datapoints,i,rt(e.points,e.color),0,!1,e.xaxis,e.yaxis,s),h.restore()}function tt(e,t,n,r,i,s,o,u,a,f,l,c){var h,p,d,v,m,g,y,b,w;l?(b=g=y=!0,m=!1,h=n,p=e,v=t+r,d=t+i,pu.max||va.max)return;hu.max&&(p=u.max,g=!1),da.max&&(v=a.max,y=!1),h=u.p2c(h),d=a.p2c(d),p=u.p2c(p),v=a.p2c(v),o&&(f.beginPath(),f.moveTo(h,d),f.lineTo(h,v),f.lineTo(p,v),f.lineTo(p,d),f.fillStyle=o(d,v),f.fill()),c>0&&(m||g||y||b)&&(f.beginPath(),f.moveTo(h,d+s),m?f.lineTo(h,v+s):f.moveTo(h,v+s),y?f.lineTo(p,v+s):f.moveTo(p,v+s),g?f.lineTo(p,d+s):f.moveTo(p,d+s),b?f.lineTo(h,d+s):f.moveTo(h,d+s),f.stroke())}function nt(e){function t(t,n,r,i,s,o,u){var a=t.points,f=t.pointsize;for(var l=0;l"),n.push(""),i=!0),n.push('
'+''+h.label+"")}i&&n.push("");if(n.length==0)return;var p=''+n.join("")+"
";if(a.legend.container!=null)e(a.legend.container).html(p);else{var d="",v=a.legend.position,g=a.legend.margin;g[0]==null&&(g=[g,g]),v.charAt(0)=="n"?d+="top:"+(g[1]+m.top)+"px;":v.charAt(0)=="s"&&(d+="bottom:"+(g[1]+m.bottom)+"px;"),v.charAt(1)=="e"?d+="right:"+(g[0]+m.right)+"px;":v.charAt(1)=="w"&&(d+="left:"+(g[0]+m.left)+"px;");var y=e('
'+p.replace('style="','style="position:absolute;'+d+";")+"
").appendTo(t);if(a.legend.backgroundOpacity!=0){var b=a.legend.backgroundColor;b==null&&(b=a.grid.backgroundColor,b&&typeof b=="string"?b=e.color.parse(b):b=e.color.extract(y,"background-color"),b.a=1,b=b.toString());var w=y.children();e('
').prependTo(y).css("opacity",a.legend.backgroundOpacity)}}}function ut(e,t,n){var r=a.grid.mouseActiveRadius,i=r*r+1,s=null,o=!1,f,l,c;for(f=u.length-1;f>=0;--f){if(!n(u[f]))continue;var h=u[f],p=h.xaxis,d=h.yaxis,v=h.datapoints.points,m=p.c2p(e),g=d.c2p(t),y=r/p.scale,b=r/d.scale;c=h.datapoints.pointsize,p.options.inverseTransform&&(y=Number.MAX_VALUE),d.options.inverseTransform&&(b=Number.MAX_VALUE);if(h.lines.show||h.points.show)for(l=0;ly||w-m<-y||E-g>b||E-g<-b)continue;var S=Math.abs(p.p2c(w)-e),x=Math.abs(d.p2c(E)-t),T=S*S+x*x;T=Math.min(k,w)&&g>=E+N&&g<=E+C:m>=w+N&&m<=w+C&&g>=Math.min(k,E)&&g<=Math.max(k,E))s=[f,l/c]}}}return s?(f=s[0],l=s[1],c=u[f].datapoints.pointsize,{datapoint:u[f].datapoints.points.slice(l*c,(l+1)*c),dataIndex:l,series:u[f],seriesIndex:f}):null}function at(e){a.grid.hoverable&&ct("plothover",e,function(e){return e["hoverable"]!=0})}function ft(e){a.grid.hoverable&&ct("plothover",e,function(e){return!1})}function lt(e){ct("plotclick",e,function(e){return e["clickable"]!=0})}function ct(e,n,r){var i=c.offset(),s=n.pageX-i.left-m.left,o=n.pageY-i.top-m.top,u=L({left:s,top:o});u.pageX=n.pageX,u.pageY=n.pageY;var f=ut(s,o,r);f&&(f.pageX=parseInt(f.series.xaxis.p2c(f.datapoint[0])+i.left+m.left,10),f.pageY=parseInt(f.series.yaxis.p2c(f.datapoint[1])+i.top+m.top,10));if(a.grid.autoHighlight){for(var l=0;ls.max||io.max)return;var a=t.points.radius+t.points.lineWidth/2;p.lineWidth=a,p.strokeStyle=u;var f=1.5*a;r=s.p2c(r),i=o.p2c(i),p.beginPath(),t.points.symbol=="circle"?p.arc(r,i,f,0,2*Math.PI,!1):t.points.symbol(p,r,i,f,!1),p.closePath(),p.stroke()}function yt(t,n){var r=typeof t.highlightColor=="string"?t.highlightColor:e.color.parse(t.color).scale("a",.5).toString(),i=r,s=t.bars.align=="left"?0:-t.bars.barWidth/2;p.lineWidth=t.bars.lineWidth,p.strokeStyle=r,tt(n[0],n[1],n[2]||0,s,s+t.bars.barWidth,0,function(){return i},t.xaxis,t.yaxis,p,t.bars.horizontal,t.bars.lineWidth)}function bt(t,n,r,i){if(typeof t=="string")return t;var s=h.createLinearGradient(0,r,0,n);for(var o=0,u=t.colors.length;o").css({position:"absolute",top:0,left:0,bottom:0,right:0,"font-size":"smaller",color:"#545454"}).insertAfter(this.element)),n=this.text[t]=e("
").addClass(t).css({position:"absolute",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)),n},n.prototype.getTextInfo=function(t,n,r,i){var s,o,u,a;n=""+n,typeof r=="object"?s=r.style+" "+r.variant+" "+r.weight+" "+r.size+"px/"+r.lineHeight+"px "+r.family:s=r,o=this._textCache[t],o==null&&(o=this._textCache[t]={}),u=o[s],u==null&&(u=o[s]={}),a=u[n];if(a==null){var f=e("
").html(n).css({position:"absolute",top:-9999}).appendTo(this.getTextLayer(t));typeof r=="object"?f.css({font:s,color:r.color}):typeof r=="string"&&f.addClass(r),a=u[n]={active:!1,rendered:!1,element:f,width:f.outerWidth(!0),height:f.outerHeight(!0)},f.detach()}return a},n.prototype.addText=function(e,t,n,r,i,s,o,u){var a=this.getTextInfo(e,r,i,s);a.active=!0,o=="center"?t-=a.width/2:o=="right"&&(t-=a.width),u=="middle"?n-=a.height/2:u=="bottom"&&(n-=a.height),a.element.css({top:Math.round(n),left:Math.round(t)})},n.prototype.removeText=function(e,n,r,i){if(n==null){var s=this._textCache[e];if(s!=null)for(var o in s)if(t.call(s,o)){var u=s[o];for(var a in u)t.call(u,a)&&(u[a].active=!1)}}else this.getTextInfo(e,n,r,i).active=!1},e.plot=function(t,n,i){var s=new r(e(t),n,i,e.plot.plugins);return s},e.plot.version="0.8.0",e.plot.plugins=[],e.fn.plot=function(t,n){return this.each(function(){e.plot(this,t,n)})}})(jQuery); diff --git a/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.navigate.min.js b/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.navigate.min.js deleted file mode 100644 index d4b2d942b1..0000000000 --- a/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.navigate.min.js +++ /dev/null @@ -1,96 +0,0 @@ -/* Flot plugin for adding the ability to pan and zoom the plot. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -The default behaviour is double click and scrollwheel up/down to zoom in, drag -to pan. The plugin defines plot.zoom({ center }), plot.zoomOut() and -plot.pan( offset ) so you easily can add custom controls. It also fires -"plotpan" and "plotzoom" events, useful for synchronizing plots. - -The plugin supports these options: - - zoom: { - interactive: false - trigger: "dblclick" // or "click" for single click - amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out) - } - - pan: { - interactive: false - cursor: "move" // CSS mouse cursor value used when dragging, e.g. "pointer" - frameRate: 20 - } - - xaxis, yaxis, x2axis, y2axis: { - zoomRange: null // or [ number, number ] (min range, max range) or false - panRange: null // or [ number, number ] (min, max) or false - } - -"interactive" enables the built-in drag/click behaviour. If you enable -interactive for pan, then you'll have a basic plot that supports moving -around; the same for zoom. - -"amount" specifies the default amount to zoom in (so 1.5 = 150%) relative to -the current viewport. - -"cursor" is a standard CSS mouse cursor string used for visual feedback to the -user when dragging. - -"frameRate" specifies the maximum number of times per second the plot will -update itself while the user is panning around on it (set to null to disable -intermediate pans, the plot will then not update until the mouse button is -released). - -"zoomRange" is the interval in which zooming can happen, e.g. with zoomRange: -[1, 100] the zoom will never scale the axis so that the difference between min -and max is smaller than 1 or larger than 100. You can set either end to null -to ignore, e.g. [1, null]. If you set zoomRange to false, zooming on that axis -will be disabled. - -"panRange" confines the panning to stay within a range, e.g. with panRange: -[-10, 20] panning stops at -10 in one end and at 20 in the other. Either can -be null, e.g. [-10, null]. If you set panRange to false, panning on that axis -will be disabled. - -Example API usage: - - plot = $.plot(...); - - // zoom default amount in on the pixel ( 10, 20 ) - plot.zoom({ center: { left: 10, top: 20 } }); - - // zoom out again - plot.zoomOut({ center: { left: 10, top: 20 } }); - - // zoom 200% in on the pixel (10, 20) - plot.zoom({ amount: 2, center: { left: 10, top: 20 } }); - - // pan 100 pixels to the left and 20 down - plot.pan({ left: -100, top: 20 }) - -Here, "center" specifies where the center of the zooming should happen. Note -that this is defined in pixel space, not the space of the data points (you can -use the p2c helpers on the axes in Flot to help you convert between these). - -"amount" is the amount to zoom the viewport relative to the current range, so -1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is 70% (zoom out). You -can set the default in the options. - -*/ -/* -jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) -Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt -*/(function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case"mousedown":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,"mousemove mouseup",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&"mousemove":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)i){var u=r;r=i,i=u}o&&(o[0]!=null&&ro[1]&&(i=o[1]));var a=i-r;if(s&&(s[0]!=null&&as[1]))return;n.min=r,n.max=i}),t.setupGrid(),t.draw(),n.preventEvent||t.getPlaceholder().trigger("plotzoom",[t,n])},t.pan=function(n){var r={x:+n.left,y:+n.top};isNaN(r.x)&&(r.x=0),isNaN(r.y)&&(r.y=0),e.each(t.getAxes(),function(e,t){var n=t.options,i,s,o=r[t.direction];i=t.c2p(t.p2c(t.min)+o),s=t.c2p(t.p2c(t.max)+o);var u=n.panRange;if(u===!1)return;u&&(u[0]!=null&&u[0]>i&&(o=u[0]-i,i+=o,s+=o),u[1]!=null&&u[1]n?n:t}function c(e,r){var i=t.getOptions(),s=t.getPlaceholder().offset(),o=t.getPlotOffset();e.x=l(0,r.pageX-s.left-o.left,t.width()),e.y=l(0,r.pageY-s.top-o.top,t.height()),i.selection.mode=="y"&&(e.x=e==n.first?0:t.width()),i.selection.mode=="x"&&(e.y=e==n.first?0:t.height())}function h(e){if(e.pageX==null)return;c(n.second,e),m()?(n.show=!0,t.triggerRedrawOverlay()):p(!0)}function p(e){n.show&&(n.show=!1,t.triggerRedrawOverlay(),e||t.getPlaceholder().trigger("plotunselected",[]))}function d(e,n){var r,i,s,o,u=t.getAxes();for(var a in u){r=u[a];if(r.direction==n){o=n+r.n+"axis",!e[o]&&r.n==1&&(o=n+"axis");if(e[o]){i=e[o].from,s=e[o].to;break}}}e[o]||(r=n=="x"?t.getXAxes()[0]:t.getYAxes()[0],i=e[n+"1"],s=e[n+"2"]);if(i!=null&&s!=null&&i>s){var f=i;i=s,s=f}return{from:i,to:s,axis:r}}function v(e,r){var i,s,o=t.getOptions();o.selection.mode=="y"?(n.first.x=0,n.second.x=t.width()):(s=d(e,"x"),n.first.x=s.axis.p2c(s.from),n.second.x=s.axis.p2c(s.to)),o.selection.mode=="x"?(n.first.y=0,n.second.y=t.height()):(s=d(e,"y"),n.first.y=s.axis.p2c(s.from),n.second.y=s.axis.p2c(s.to)),n.show=!0,t.triggerRedrawOverlay(),!r&&m()&&f()}function m(){var e=t.getOptions().selection.minSize;return Math.abs(n.second.x-n.first.x)>=e&&Math.abs(n.second.y-n.first.y)>=e}var n={first:{x:-1,y:-1},second:{x:-1,y:-1},show:!1,active:!1},r={},i=null;t.clearSelection=p,t.setSelection=v,t.getSelection=a,t.hooks.bindEvents.push(function(e,t){var n=e.getOptions();n.selection.mode!=null&&(t.mousemove(s),t.mousedown(o))}),t.hooks.drawOverlay.push(function(t,r){if(n.show&&m()){var i=t.getPlotOffset(),s=t.getOptions();r.save(),r.translate(i.left,i.top);var o=e.color.parse(s.selection.color);r.strokeStyle=o.scale("a",.8).toString(),r.lineWidth=1,r.lineJoin=s.selection.shape,r.fillStyle=o.scale("a",.4).toString();var u=Math.min(n.first.x,n.second.x)+.5,a=Math.min(n.first.y,n.second.y)+.5,f=Math.abs(n.second.x-n.first.x)-1,l=Math.abs(n.second.y-n.first.y)-1;r.fillRect(u,a,f,l),r.strokeRect(u,a,f,l),r.restore()}}),t.hooks.shutdown.push(function(t,n){n.unbind("mousemove",s),n.unbind("mousedown",o),i&&e(document).unbind("mouseup",i)})}e.plot.plugins.push({init:t,options:{selection:{mode:null,color:"#e8cfac",shape:"round",minSize:5}},name:"selection",version:"1.1"})})(jQuery); \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.time.min.js b/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.time.min.js deleted file mode 100644 index 0e5c0ac2e1..0000000000 --- a/webapp/src/main/webapp/console/sla/js/graph/jquery.flot.time.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* Pretty handling of time axes. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -Set axis.mode to "time" to enable. See the section "Time series data" in -API.txt for details. - -*/(function(e){function n(e,t){return t*Math.floor(e/t)}function r(e,t,n,r){if(typeof e.strftime=="function")return e.strftime(t);var i=function(e,t){return e=""+e,t=""+(t==null?"0":t),e.length==1?t+e:e},s=[],o=!1,u=e.getHours(),a=u<12;n==null&&(n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),r==null&&(r=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);var f;u>12?f=u-12:u==0?f=12:f=u;for(var l=0;l=u)break;var h=l[c][0],p=l[c][1];if(p=="year"){if(i.minTickSize!=null&&i.minTickSize[1]=="year")h=Math.floor(i.minTickSize[0]);else{var d=Math.pow(10,Math.floor(Math.log(e.delta/o.year)/Math.LN10)),v=e.delta/o.year/d;v<1.5?h=1:v<3?h=2:v<7.5?h=5:h=10,h*=d}h<1&&(h=1)}e.tickSize=i.tickSize||[h,p];var m=e.tickSize[0];p=e.tickSize[1];var g=m*o[p];p=="second"?r.setSeconds(n(r.getSeconds(),m)):p=="minute"?r.setMinutes(n(r.getMinutes(),m)):p=="hour"?r.setHours(n(r.getHours(),m)):p=="month"?r.setMonth(n(r.getMonth(),m)):p=="quarter"?r.setMonth(3*n(r.getMonth()/3,m)):p=="year"&&r.setFullYear(n(r.getFullYear(),m)),r.setMilliseconds(0),g>=o.minute?r.setSeconds(0):g>=o.hour?r.setMinutes(0):g>=o.day?r.setHours(0):g>=o.day*4?r.setDate(1):g>=o.month*2?r.setMonth(n(r.getMonth(),3)):g>=o.quarter*2?r.setMonth(n(r.getMonth(),6)):g>=o.year&&r.setMonth(0);var y=0,b=Number.NaN,w;do{w=b,b=r.getTime(),t.push(b);if(p=="month"||p=="quarter")if(m<1){r.setDate(1);var E=r.getTime();r.setMonth(r.getMonth()+(p=="quarter"?3:1));var S=r.getTime();r.setTime(b+y*o.hour+(S-E)*m),y=r.getHours(),r.setHours(0)}else r.setMonth(r.getMonth()+m*(p=="quarter"?3:1));else p=="year"?r.setFullYear(r.getFullYear()+m):r.setTime(b+g)}while(b slaSummary.expectedEnd) { - slaStats.endMiss++; - if (slaSummary.actualStart == null) { - slaStats.endMissNotStarted++; - } else { - slaStats.endMissInProcess++; - } - } else { - if (slaSummary.actualStart == null) { - slaStats.endNotStarted++; - } else { - slaStats.endInProcess++; - } - } - } else if (slaSummary.actualEnd <= slaSummary.expectedEnd) { - slaStats.endMet++; - } else { - slaStats.endMiss++; - slaStats.endMissCompleted++; - } - } - - // Render the graph and stats table - drawSLAGraph(jsonData, plotValues, slaStats.startTotal == 0 ? false : true); - drawSLAStatsTable(jsonData, slaStats); - -} - -function drawSLAGraph(jsonData, plotValues, drawExpectedStart) { - - var datasetsToPlot = [{}]; - if (drawExpectedStart) { - datasetsToPlot.push({label: "Expected Start", data:plotValues.expectedStart, color: 6}); - } - datasetsToPlot.push({label: "Actual Start", data:plotValues.actualStart, color: "rgb(0,0,255)"}); - datasetsToPlot.push({label: "Expected End", data:plotValues.expectedEnd, color: 5}); - datasetsToPlot.push({label: "Actual End", data:plotValues.actualEnd, color: 25}); - - var placeholder = $('#sla-graph-div'); - // TODO: Add support for timezone in future https://github.com/mde/timezone-js - // timezoneId currently is not offset and is a string like America/Los_Angeles - //var selectedTimezone = getTimeZone(); - //document.getElementById("sla-graph-xaxisLabel").innerHTML="

Nominal Time (in " + selectedTimezone + ")Reset Graph").appendTo(placeholder) - .click(function(event) { - event.preventDefault(); - plotGraph(placeholder, datasetsToPlot, graphOptions); - }); - - // Add Zoom Out button - $("

Zoom Out
").appendTo(placeholder) - .click(function(event) { - event.preventDefault(); - slaGraphPlot.zoomOut(); - }); - - // Add panning buttons - - function addArrow(dir, right, top, offset) { - $("") - .appendTo(placeholder) - .click(function (e) { - e.preventDefault(); - slaGraphPlot.pan(offset); - }); - } - - addArrow("left", 85, 60, { left: 10 }); - addArrow("right", 55, 60, { left: -10 }); - addArrow("up", 70, 45, { top: 10 }); - addArrow("down", 70, 75, { top: -10 }); - - - placeholder.bind('plotselected', function(event, ranges) { - - // clamp the zooming to prevent eternal zoom - if (ranges.xaxis.to - ranges.xaxis.from < 0.00001) { - ranges.xaxis.to = ranges.xaxis.from + 0.00001; - } - if (ranges.yaxis.to - ranges.yaxis.from < 0.00001) { - ranges.yaxis.to = ranges.yaxis.from + 0.00001; - } - // do the zooming - plotGraph(placeholder, datasetsToPlot, $ - .extend(true, {}, graphOptions, { - xaxis : { - min : ranges.xaxis.from, - max : ranges.xaxis.to - }, - yaxis : { - min : ranges.yaxis.from, - max : ranges.yaxis.to - } - })); - }); - - - placeholder.bind('plotclick', - function (event, pos, item) { - if (item) { - window.open('/oozie?job=' + jsonData.slaSummaryList[item.dataIndex].id); - } - } - ); - - placeholder.bind('plothover', function (event, pos, item) { - if (item) { - var pointIndex = item.dataIndex; - var expectedStart = jsonData.slaSummaryList[pointIndex].expectedStart - ? new Date(jsonData.slaSummaryList[pointIndex].expectedStart).toUTCString() - : ""; - var actualStart = jsonData.slaSummaryList[pointIndex].actualStart - ? new Date(jsonData.slaSummaryList[pointIndex].actualStart).toUTCString() - : ""; - var actualEnd = jsonData.slaSummaryList[pointIndex].actualEnd - ? new Date(jsonData.slaSummaryList[pointIndex].actualEnd).toUTCString() - : ""; - $('#graphtooltip').html( - 'Job ID : ' + jsonData.slaSummaryList[pointIndex].id + '
' + - 'Parent ID : ' + jsonData.slaSummaryList[pointIndex].parentId + '
' + - 'Nominal Time          : ' + - new Date(jsonData.slaSummaryList[pointIndex].nominalTime).toUTCString() + '
' + - 'Expected Start Time : ' + expectedStart + '
' + - 'Actual Start Time     : ' + actualStart + '
' + - 'Expected End Time : ' + - new Date(jsonData.slaSummaryList[pointIndex].expectedEnd).toUTCString() + '
' + - 'Actual End Time      : ' + actualEnd + '
' + - '' + - '  Double click or use mouse scrollwheel to zoom.
' + - '  Use the arrow buttons to move.
' + - '  Click on the data point to view job details
'); - var offset = item.pageY > 280 ? 300 : 150; - var cssObj = { - 'left': item.pageX + 'px', - 'top': (item.pageY - offset) + 'px' - }; - $('#graphtooltip').css(cssObj); - $('#graphtooltip').show(); - } else { - $('#graphtooltip').empty(); - $('#graphtooltip').hide(); - } - }); - } - - plotGraph(placeholder, datasetsToPlot, graphOptions); - -} - - -function drawSLAStatsTable(jsonData, slaStats) { - - var startStatsHtml = slaStats.startTotal == 0 - ? '0/0 (0%) 0/0 (0%) 0/0 (0%)' - : ('' + - '' + slaStats.startMet + '/' + slaStats.startTotal + - getPercentage(slaStats.startMet, slaStats.startTotal) + '' + - '' + slaStats.startMiss + '/' + slaStats.startTotal + - getPercentage(slaStats.startMiss, slaStats.startTotal) + '' + - '' + slaStats.startNotStarted + '/' + slaStats.startTotal + - getPercentage(slaStats.startNotStarted, slaStats.startTotal) + '' + - '' + - '' + - 'In Process' + - 'Completed' + - 'Not Started' + - 'In Process' + - 'Completed' + - ' ' + - '' + - '' + - '' + slaStats.startMetInProcess + '/' + slaStats.startMet + - getPercentage(slaStats.startMetInProcess, slaStats.startMet) + '' + - '' + slaStats.startMetCompleted + '/' + slaStats.startMet + - getPercentage(slaStats.startMetCompleted, slaStats.startMet) + '' + - '' + slaStats.startMissNotStarted + '/' + slaStats.startTotal + - getPercentage(slaStats.startMissNotStarted, slaStats.startMiss) + '' + - '' + slaStats.startMissInProcess + '/' + slaStats.startMiss + - getPercentage(slaStats.startMissInProcess, slaStats.startMiss) + '' + - '' + slaStats.startMissCompleted + '/' + slaStats.startMiss + - getPercentage(slaStats.startMissCompleted, slaStats.startMiss) + '' + - ' ' + - '' - ); - - var tablehtml = - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - startStatsHtml + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '
SLA Statistics
Start SLA
MetMissNot Started
End SLA
MetMissIn ProcessNot Started
' + slaStats.endMet + '/' + slaStats.endTotal + - getPercentage(slaStats.endMet, slaStats.endTotal) + '' + slaStats.endMiss + '/' + slaStats.endTotal + - getPercentage(slaStats.endMiss, slaStats.endTotal) + '' + slaStats.endInProcess + '/' + slaStats.endTotal + - getPercentage(slaStats.endInProcess, slaStats.endTotal) + '' + slaStats.endNotStarted + '/' + slaStats.endTotal + - getPercentage(slaStats.endNotStarted, slaStats.endTotal) + '
 Not StartedIn ProcessCompleted  
 ' + slaStats.endMissNotStarted + '/' + slaStats.endMiss + - getPercentage(slaStats.endMissNotStarted, slaStats.endMiss) + '' + slaStats.endMissInProcess + '/' + slaStats.endMiss + - getPercentage(slaStats.endMissInProcess, slaStats.endMiss) + '' + slaStats.endMissCompleted + '/' + slaStats.endMiss + - getPercentage(slaStats.endMissCompleted, slaStats.endMiss) + '  
'; - $('#sla-table-div').html(tablehtml); -} diff --git a/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js b/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js deleted file mode 100644 index feeae5b5d7..0000000000 --- a/webapp/src/main/webapp/console/sla/js/oozie-sla-table.js +++ /dev/null @@ -1,191 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var columnsToShow = [ - { "mData": null, "bSortable": false, "sWidth":"0.1%", "bVisible": true}, - { "mData": "id"}, - { "mData": "slaStatus"}, - { "mData": "nominalTimeTZ", "sDefaultContent": ""}, - { "mData": "expectedStartTZ", "sDefaultContent": ""}, - { "mData": "actualStartTZ", "sDefaultContent": "" }, - { "mData": "startDiff", "sDefaultContent": ""}, - { "mData": "expectedEndTZ"}, - { "mData": "actualEndTZ", "sDefaultContent": ""}, - { "mData": "endDiff", "sDefaultContent": ""}, - { "mData": "expectedDuration", "sDefaultContent": "", "bVisible": false}, - { "mData": "actualDuration", "sDefaultContent": "", "bVisible": false}, - { "mData": "durDiff", "sDefaultContent": "", "bVisible": false}, - { "mData": "slaMisses", "sDefaultContent": ""}, - { "mData": "jobStatus", "sDefaultContent": ""}, - { "mData": "parentId", "sDefaultContent": "", "bVisible": false}, - { "mData": "appName", "bVisible": false}, - { "mData": "slaAlertStatus", "bVisible": false}, - ]; - -$.fn.dataTableExt.oApi.fnGetTds = function ( oSettings, mTr ) -{ - var anTds = []; - var anVisibleTds = []; - var iCorrector = 0; - var nTd, iColumn, iColumns; - - /* Take either a TR node or aoData index as the mTr property */ - var iRow = (typeof mTr == 'object') ? - oSettings.oApi._fnNodeToDataIndex(oSettings, mTr) : mTr; - var nTr = oSettings.aoData[iRow].nTr; - - /* Get an array of the visible TD elements */ - for ( iColumn=0, iColumns=nTr.childNodes.length ; iColumn <"H"lfr>t<"F"ip>', - "oColVis" : { - "buttonText" : "Show/Hide columns", - "bRestore" : true, - "aiExclude" : [ 0 ] - }, - "bStateSave" : true, - "sScrollY" : "360px", - "sScrollX" : "100%", - "bPaginate" : true, - "sPaginationType": "full_numbers", - "oTableTools" : { - "sSwfPath" : "console/sla/js/table/copy_csv_xls_pdf.swf", - "aButtons" : [ - "copy", - { - "sExtends": "csv", - // Ignore column 0 - "mColumns": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, - ], - }, - "aaData" : jsonData.slaSummaryList, - "aoColumns" : columnsToShow, - "fnRowCallback" : function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { - var rowAllColumns = this.fnGetTds(nRow); - $(rowAllColumns[1]).html( - '' + aData.id - + ''); - $(rowAllColumns[15]).html( - '' - + aData.parentId + ''); - if (aData.slaStatus == "MISS") { - $(rowAllColumns[2]).css('color', 'red'); - } - // Changing only the html with readable text to preserve sort order. - if (aData.startDiff || aData.startDiff == 0) { - $(rowAllColumns[6]).html(timeElapsed(aData.startDiff)); - } - if (aData.endDiff || aData.endDiff == 0) { - $(rowAllColumns[9]).html(timeElapsed(aData.endDiff)); - } - if (aData.expectedDuration == -1) { - $(rowAllColumns[10]).html(""); - } else { - $(rowAllColumns[10]).html(timeElapsed(aData.expectedDuration)); - } - if (aData.actualDuration == -1) { - $(rowAllColumns[11]).html(""); - } else { - $(rowAllColumns[11]).html(timeElapsed(aData.actualDuration)); - } - if (aData.durDiff || aData.durDiff == 0) { - $(rowAllColumns[12]).html(timeElapsed(aData.durDiff)); - } - $("td:first", nRow).html(iDisplayIndexFull + 1); - return nRow; - }, - "aaSorting" : [ [ 3, 'desc' ] ], - "bDestroy" : true - }); -} diff --git a/webapp/src/main/webapp/console/sla/js/oozie-sla.js b/webapp/src/main/webapp/console/sla/js/oozie-sla.js deleted file mode 100644 index 3a70a15c03..0000000000 --- a/webapp/src/main/webapp/console/sla/js/oozie-sla.js +++ /dev/null @@ -1,191 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -function initializeDatePicker() { - $(".datepicker").datetimepicker({ - dateFormat: 'yy-mm-dd' - }); -} - -function onSearchClick(){ - var queryParams = ""; - var elements = document.querySelectorAll("#inputArea input") - - for (var i = 0; i < elements.length; i++) { - if(elements[i].value != "" && elements[i].id != "job_id") { - if (i!=0) { - queryParams += ";"; - } - if (elements[i].classList.contains("datepicker")) { - var splitDate = elements[i].value.split(" "); - queryParams += elements[i].id + "=" + splitDate[0] + "T" + splitDate[1] + "Z"; - } else { - queryParams += elements[i].id + "=" + encodeURIComponent(elements[i].value); - } - } - } - - var appName = $("#app_name").val(); - var jobId = $("#job_id").val(); - - if (appName == "" && jobId == "") { - alert("AppName or JobId is required"); - } - else { - if (jobId != "") { - if (queryParams.length>0) { - queryParams += ";"; - } - queryParams += "id=" + jobId + ";parent_id=" + jobId; - } - fetchData("filter="+queryParams); - } -} - -function fetchData(queryParams) { - $.ajax({ - type : 'GET', - url : getOozieBase() + 'sla', - data: queryParams, - dataType : 'json', - timeout : 120000, // 2 mins - success : function(jsonData) { - if (!jsonData || jsonData.slaSummaryList.length == 0) { - alert ("No matching data found"); - } - else { - buildTableAndGraph(jsonData); - } - }, - error : function(response) { - alert("Error: " + response.statusText); - } - }); -} - -function getSelectedTabIndex() { - return $('#tabs').tabs().tabs('option', 'active'); -} - -function buildTableAndGraph(jsonData) { - var isTableDrawn = 0; - var isGraphDrawn = 0; - if (getSelectedTabIndex() == '0'){ - $("#sla_table").show(); - drawTable(jsonData); - isTableDrawn = 1; - } - else if (getSelectedTabIndex() == '1') { - $("#sla-graph-uber-container").show(); - showGraphicalSLAStats(jsonData); - isGraphDrawn = 1; - } - $('#tabs').tabs({ - activate: function(event, ui) { - if (ui.newTab.index() == '1') { - $("#Table ").hide(); - if (isGraphDrawn == 0) { - $("#sla-graph-uber-container").show(); - showGraphicalSLAStats(jsonData); - isGraphDrawn = 1; - } - $("#Graph").show(); - } - - if (ui.newTab.index() == '0') { - if (isTableDrawn == 0) { - $("#sla_table").show(); - drawTable(jsonData); - isTableDrawn = 1; - } - $("#Table").show(); - /* Needed otherwise width of column header will be resized */ - oTable.fnAdjustColumnSizing(); - $("#Graph").hide(); - } - } - }); -} - -function timeElapsed(timeInMillis) { - - if (!timeInMillis) { - if (timeInMillis == 0) { - return "00:00:00"; - } - return; - } - - var timeSince = ""; - var addHour = true; - var addMin = true; - if (timeInMillis < 0) { - timeSince = "-"; - timeInMillis = -timeInMillis; - } - var seconds = Math.floor(timeInMillis/1000); - interval = Math.floor(seconds / 31536000); - - if (interval > 0) { - timeSince += interval + "y "; - seconds = (seconds %= 31536000); - } - - interval = Math.floor(seconds / 2592000); - if (interval > 0) { - timeSince += interval + "m "; - seconds = (seconds %= 2592000); - } - - interval = Math.floor(seconds / 86400); - if (interval > 0) { - timeSince += interval + "d "; - seconds = (seconds %= 86400); - } - - interval = Math.floor(seconds / 3600); - if (interval > 0) { - if (interval < 10) - timeSince += "0"; - timeSince += interval + ":"; - seconds = (seconds %= 3600); - addHour = false; - } - - interval = Math.floor(seconds / 60); - if (interval > 0) { - if (addHour) { - timeSince += "00:"; - } - addHour = false; - if (interval < 10) - timeSince += "0"; - timeSince += interval + ":"; - seconds = (seconds %= 60); - addMin = false; - } - if (addHour) { - timeSince += "00:"; - } - if (addMin) { - timeSince += "00:"; - } - if (seconds < 10) - timeSince += "0"; - return timeSince + seconds; -} \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/js/table/ColVis.min.js b/webapp/src/main/webapp/console/sla/js/table/ColVis.min.js deleted file mode 100644 index a831fd9094..0000000000 --- a/webapp/src/main/webapp/console/sla/js/table/ColVis.min.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * File: ColVis.min.js - * Version: 1.0.8 - * Author: Allan Jardine (www.sprymedia.co.uk) - * - * Copyright 2010-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD (3 point) style license, as supplied with this software. - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - */ -(function(d){ColVis=function(a,b){(!this.CLASS||"ColVis"!=this.CLASS)&&alert("Warning: ColVis must be initialised with the keyword 'new'");"undefined"==typeof b&&(b={});this.s={dt:null,oInit:b,fnStateChange:null,activate:"click",sAlign:"left",buttonText:"Show / hide columns",hidden:!0,aiExclude:[],abOriginal:[],bShowAll:!1,sShowAll:"Show All",bRestore:!1,sRestore:"Restore original",iOverlayFade:500,fnLabel:null,sSize:"auto",bCssPosition:!1};this.dom={wrapper:null,button:null,collection:null,background:null, -catcher:null,buttons:[],restore:null};ColVis.aInstances.push(this);this.s.dt=a;this._fnConstruct();return this};ColVis.prototype={fnRebuild:function(){for(var a=this.dom.buttons.length-1;0<=a;a--)null!==this.dom.buttons[a]&&this.dom.collection.removeChild(this.dom.buttons[a]);this.dom.buttons.splice(0,this.dom.buttons.length);this.dom.restore&&this.dom.restore.parentNode(this.dom.restore);this._fnAddButtons();this._fnDrawCallback()},_fnConstruct:function(){this._fnApplyCustomisation();var a=this, -b,c;this.dom.wrapper=document.createElement("div");this.dom.wrapper.className="ColVis TableTools";this.dom.button=this._fnDomBaseButton(this.s.buttonText);this.dom.button.className+=" ColVis_MasterButton";this.dom.wrapper.appendChild(this.dom.button);this.dom.catcher=this._fnDomCatcher();this.dom.collection=this._fnDomCollection();this.dom.background=this._fnDomBackground();this._fnAddButtons();b=0;for(c=this.s.dt.aoColumns.length;b'+this.s.sRestore+"");d(b).click(function(){for(var b=0,c=a.s.abOriginal.length;b'+this.s.sShowAll+"");d(b).click(function(){for(var b=0,c=a.s.abOriginal.length;b'+c+"");d(e).click(function(c){var e=!d("input",this).is(":checked");"input"==c.target.nodeName.toLowerCase()&& -(e=d("input",this).is(":checked"));c=d.fn.dataTableExt.iApiIndex;d.fn.dataTableExt.iApiIndex=b._fnDataTablesApiIndex.call(b);f.oFeatures.bServerSide&&(""!==f.oScroll.sX||""!==f.oScroll.sY)?(b.s.dt.oInstance.fnSetColumnVis(a,e,!1),b.s.dt.oInstance.fnAdjustColumnSizing(!1),b.s.dt.oInstance.oApi._fnScrollDraw(b.s.dt),b._fnDrawCallback()):b.s.dt.oInstance.fnSetColumnVis(a,e);d.fn.dataTableExt.iApiIndex=c;null!==b.s.fnStateChange&&b.s.fnStateChange.call(b,a,e)});return e},_fnDataTablesApiIndex:function(){for(var a= -0,b=this.s.dt.oInstance.length;ai?c:i)+"px";g.style.width=(jh&&(e.style.left=h-b+"px"));setTimeout(function(){d(e).animate({opacity:1},a.s.iOverlayFade);d(g).animate({opacity:0.1},a.s.iOverlayFade,"linear",function(){jQuery.browser.msie&&jQuery.browser.version=="6.0"&&a._fnDrawCallback()})},10);this.s.hidden=!1},_fnCollectionHide:function(){var a=this;!this.s.hidden&&null!==this.dom.collection&&(this.s.hidden=!0,d(this.dom.collection).animate({opacity:0}, -a.s.iOverlayFade,function(){this.style.display="none"}),d(this.dom.background).animate({opacity:0},a.s.iOverlayFade,function(){document.body.removeChild(a.dom.background);document.body.removeChild(a.dom.catcher)}))},_fnAdjustOpenRows:function(){for(var a=this.s.dt.aoOpenRows,b=this.s.dt.oApi._fnVisbleColumns(this.s.dt),c=0,d=a.length;c');else c+='';return c},hide:function(){this.div&&(this.div.style.left="-2000px")},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.div=this.domElement=null}},reposition:function(a){a&&((this.domElement=ZeroClipboard_TableTools.$(a))||this.hide());if(this.domElement&&this.div){var a=ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement), -b=this.div.style;b.left=""+a.left+"px";b.top=""+a.top+"px"}},clearText:function(){this.clipText="";this.ready&&this.movie.clearText()},appendText:function(a){this.clipText+=a;this.ready&&this.movie.appendText(a)},setText:function(a){this.clipText=a;this.ready&&this.movie.setText(a)},setCharSet:function(a){this.charSet=a;this.ready&&this.movie.setCharSet(a)},setBomInc:function(a){this.incBom=a;this.ready&&this.movie.setBomInc(a)},setFileName:function(a){this.fileName=a;this.ready&&this.movie.setFileName(a)}, -setAction:function(a){this.action=a;this.ready&&this.movie.setAction(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");this.handlers[a]||(this.handlers[a]=[]);this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case "load":this.movie=document.getElementById(this.movieId); -if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=!0;return}this.ready=!0;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setCharSet(this.charSet);this.movie.setBomInc(this.incBom);this.movie.setHandCursor(this.handCursorEnabled); -break;case "mouseover":this.domElement&&this.cssEffects&&this.recoverActive&&this.domElement.addClass("active");break;case "mouseout":this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")&&(this.domElement.removeClass("active"),this.recoverActive=!0));break;case "mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case "mouseup":this.domElement&&this.cssEffects&&(this.domElement.removeClass("active"),this.recoverActive=!1)}if(this.handlers[a])for(var d= -0,e=this.handlers[a].length;d"\u00a1".toString().length?b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,""):b.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g,"")},fnCalcColRatios:function(a){var b=this.s.dt.aoColumns, -a=this._fnColumnTargets(a.mColumns),c=[],d=0,e=0,f,g;f=0;for(g=a.length;fh?m:h)+"px";l.style.width=(k>o?k:o)+"px";l.className=this.classes.collection.background;f(l).css("opacity",0);g.body.appendChild(l);g.body.appendChild(e);m=f(e).outerWidth();k=f(e).outerHeight();j+m>o&&(e.style.left=o-m+"px");d+k>h&&(e.style.top=d-k-f(a).outerHeight()+ -"px");this.dom.collection.collection=e;this.dom.collection.background=l;setTimeout(function(){f(e).animate({opacity:1},500);f(l).animate({opacity:0.25},500)},10);this.fnResizeButtons();f(l).click(function(){c._fnCollectionHide.call(c,null,null)})},_fnCollectionHide:function(a,b){!(null!==b&&"collection"==b.sExtends)&&null!==this.dom.collection.collection&&(f(this.dom.collection.collection).animate({opacity:0},500,function(){this.style.display="none"}),f(this.dom.collection.background).animate({opacity:0}, -500,function(){this.parentNode.removeChild(this)}),this.dom.collection.collection=null,this.dom.collection.background=null)},_fnRowSelectConfig:function(){if(this.s.master){var a=this,b=this.s.dt;f(b.nTable).addClass(this.classes.select.table);f("tr",b.nTBody).live("click",function(c){this.parentNode==b.nTBody&&null!==b.oInstance.fnGetData(this)&&(a.fnIsSelected(this)?a._fnRowDeselect(this,c):"single"==a.s.select.type?(a.fnSelectNone(),a._fnRowSelect(this,c)):"multi"==a.s.select.type&&a._fnRowSelect(this, -c))});b.oApi._fnCallbackReg(b,"aoRowCreatedCallback",function(c,d,e){b.aoData[e]._DTTT_selected&&f(c).addClass(a.classes.select.row)},"TableTools-SelectAll")}},_fnRowSelect:function(a,b){var c=this._fnSelectData(a),d=[],e,j;e=0;for(j=c.length;e/g,"").replace(/^\s+|\s+$/g,""),h=this._fnHtmlDecode(h), -j.push(this._fnBoundData(h,a.sFieldBoundary,l)));g.push(j.join(a.sFieldSeperator))}var p=k.aiDisplay;e=this.fnGetSelected();if("none"!==this.s.select.type&&d&&0!==e.length){p=[];b=0;for(c=e.length;b]+)).*?>/gi, -"$1$2$3"),h=h.replace(/<.*?>/g,"")):h+="",h=h.replace(/^\s+/,"").replace(/\s+$/,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));g.push(j.join(a.sFieldSeperator));a.bOpenRows&&(b=f.grep(k.aoOpenRows,function(a){return a.nParent===o}),1===b.length&&(h=this._fnBoundData(f("td",b[0].nTr).html(),a.sFieldBoundary,l),g.push(h)))}if(a.bFooter&&null!==k.nTFoot){j=[];b=0;for(c=k.aoColumns.length;b/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));g.push(j.join(a.sFieldSeperator))}return _sLastData=g.join(this._fnNewline(a))},_fnBoundData:function(a,b,c){return""===b?a:b+a.replace(c,b+b)+b},_fnChunkData:function(a,b){for(var c=[],d=a.length,e=0;eTable copied

Copied "+a+" row"+(1==a?"":"s")+" to the clipboard.

",1500)}}),pdf:f.extend({},TableTools.buttonBase,{sAction:"flash_pdf",sNewLine:"\n",sFileName:"*.pdf",sButtonClass:"DTTT_button_pdf", -sButtonText:"PDF",sPdfOrientation:"portrait",sPdfSize:"A4",sPdfMessage:"",fnClick:function(a,b,c){this.fnSetText(c,"title:"+this.fnGetTitle(b)+"\nmessage:"+b.sPdfMessage+"\ncolWidth:"+this.fnCalcColRatios(b)+"\norientation:"+b.sPdfOrientation+"\nsize:"+b.sPdfSize+"\n--/TableToolsOpts--\n"+this.fnGetTableData(b))}}),print:f.extend({},TableTools.buttonBase,{sInfo:"
Print view

Please use your browser's print function to print this table. Press escape when finished.",sMessage:null,bShowAll:!0, -sToolTip:"View print view",sButtonClass:"DTTT_button_print",sButtonText:"Print",fnClick:function(a,b){this.fnPrint(!0,b)}}),text:f.extend({},TableTools.buttonBase),select:f.extend({},TableTools.buttonBase,{sButtonText:"Select button",fnSelect:function(a){0!==this.fnGetSelected().length?f(a).removeClass(this.classes.buttons.disabled):f(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){f(a).addClass(this.classes.buttons.disabled)}}),select_single:f.extend({},TableTools.buttonBase,{sButtonText:"Select button", -fnSelect:function(a){1==this.fnGetSelected().length?f(a).removeClass(this.classes.buttons.disabled):f(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){f(a).addClass(this.classes.buttons.disabled)}}),select_all:f.extend({},TableTools.buttonBase,{sButtonText:"Select all",fnClick:function(){this.fnSelectAll()},fnSelect:function(a){this.fnGetSelected().length==this.s.dt.fnRecordsDisplay()?f(a).addClass(this.classes.buttons.disabled):f(a).removeClass(this.classes.buttons.disabled)}}),select_none:f.extend({}, -TableTools.buttonBase,{sButtonText:"Deselect all",fnClick:function(){this.fnSelectNone()},fnSelect:function(a){0!==this.fnGetSelected().length?f(a).removeClass(this.classes.buttons.disabled):f(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){f(a).addClass(this.classes.buttons.disabled)}}),ajax:f.extend({},TableTools.buttonBase,{sAjaxUrl:"/xhr.php",sButtonText:"Ajax button",fnClick:function(a,b){var c=this.fnGetTableData(b);f.ajax({url:b.sAjaxUrl,data:[{name:"tableData",value:c}],success:b.fnAjaxComplete, -dataType:"json",type:"POST",cache:!1,error:function(){alert("Error detected when sending table data to server")}})},fnAjaxComplete:function(){alert("Ajax complete")}}),div:f.extend({},TableTools.buttonBase,{sAction:"div",sTag:"div",sButtonClass:"DTTT_nonbutton",sButtonText:"Text button"}),collection:f.extend({},TableTools.buttonBase,{sAction:"collection",sButtonClass:"DTTT_button_collection",sButtonText:"Collection",fnClick:function(a,b){this._fnCollectionShow(a,b)}})};TableTools.classes={container:"DTTT_container", -buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"},collection:{container:"DTTT_collection",background:"DTTT_collection_background",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"}},select:{table:"DTTT_selectable",row:"DTTT_selected"},print:{body:"DTTT_Print",info:"DTTT_print_info",message:"DTTT_PrintMessage"}};TableTools.classes_themeroller={container:"DTTT_container ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button ui-state-default"},collection:{container:"DTTT_collection ui-buttonset ui-buttonset-multi"}}; -TableTools.DEFAULTS={sSwfPath:"media/swf/copy_csv_xls_pdf.swf",sRowSelect:"none",sSelectedClass:null,fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls","pdf","print"],oTags:{container:"div",button:"a",liner:"span",collection:{container:"div",button:"a",liner:"span"}}};TableTools.prototype.CLASS="TableTools";TableTools.VERSION="2.1.4";TableTools.prototype.VERSION=TableTools.VERSION;"function"==typeof f.fn.dataTable&&"function"==typeof f.fn.dataTableExt.fnVersionCheck&& -f.fn.dataTableExt.fnVersionCheck("1.9.0")?f.fn.dataTableExt.aoFeatures.push({fnInit:function(a){a=new TableTools(a.oInstance,"undefined"!=typeof a.oInit.oTableTools?a.oInit.oTableTools:{});TableTools._aInstances.push(a);return a.dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning: TableTools 2 requires DataTables 1.9.0 or newer - www.datatables.net/download");f.fn.DataTable.TableTools=TableTools})(jQuery,window,document); diff --git a/webapp/src/main/webapp/console/sla/js/table/copy_csv_xls_pdf.swf b/webapp/src/main/webapp/console/sla/js/table/copy_csv_xls_pdf.swf deleted file mode 100644 index cdc013b6a4d44a0fe5352b92c899e4cf431a1dab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58814 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 Pw+{wr7##S&U~f`%6By?( diff --git a/webapp/src/main/webapp/console/sla/js/table/jquery-1.8.3.min.js b/webapp/src/main/webapp/console/sla/js/table/jquery-1.8.3.min.js deleted file mode 100644 index 83589daa70..0000000000 --- a/webapp/src/main/webapp/console/sla/js/table/jquery-1.8.3.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v1.8.3 jquery.com | jquery.org/license */ -(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
t
",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="

",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
","
"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/js/table/jquery-ui-1.10.3.custom.min.js b/webapp/src/main/webapp/console/sla/js/table/jquery-ui-1.10.3.custom.min.js deleted file mode 100755 index ea03b1f2ab..0000000000 --- a/webapp/src/main/webapp/console/sla/js/table/jquery-ui-1.10.3.custom.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! jQuery UI - v1.10.3 - 2013-05-16 -* http://jqueryui.com -* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js -* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ - -(function(e,t){function i(t,i){var a,n,r,o=t.nodeName.toLowerCase();return"area"===o?(a=t.parentNode,n=a.name,t.href&&n&&"map"===a.nodeName.toLowerCase()?(r=e("img[usemap=#"+n+"]")[0],!!r&&s(r)):!1):(/input|select|textarea|button|object/.test(o)?!t.disabled:"a"===o?t.href||i:i)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var a=0,n=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.3",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var s,a,n=e(this[0]);n.length&&n[0]!==document;){if(s=n.css("position"),("absolute"===s||"relative"===s||"fixed"===s)&&(a=parseInt(n.css("zIndex"),10),!isNaN(a)&&0!==a))return a;n=n.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})},removeUniqueId:function(){return this.each(function(){n.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var s=e.attr(t,"tabindex"),a=isNaN(s);return(a||s>=0)&&i(t,!a)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(i,s){function a(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===s?["Left","Right"]:["Top","Bottom"],r=s.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+s]=function(i){return i===t?o["inner"+s].call(this):this.each(function(){e(this).css(r,a(this,i)+"px")})},e.fn["outer"+s]=function(t,i){return"number"!=typeof t?o["outer"+s].call(this,t):this.each(function(){e(this).css(r,a(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,s){var a,n=e.ui[t].prototype;for(a in s)n.plugins[a]=n.plugins[a]||[],n.plugins[a].push([i,s[a]])},call:function(e,t,i){var s,a=e.plugins[t];if(a&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(s=0;a.length>s;s++)e.options[a[s][0]]&&a[s][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",a=!1;return t[s]>0?!0:(t[s]=1,a=t[s]>0,t[s]=0,a)}})})(jQuery);(function(e,t){var i=0,s=Array.prototype.slice,n=e.cleanData;e.cleanData=function(t){for(var i,s=0;null!=(i=t[s]);s++)try{e(i).triggerHandler("remove")}catch(a){}n(t)},e.widget=function(i,s,n){var a,r,o,h,l={},u=i.split(".")[0];i=i.split(".")[1],a=u+"-"+i,n||(n=s,s=e.Widget),e.expr[":"][a.toLowerCase()]=function(t){return!!e.data(t,a)},e[u]=e[u]||{},r=e[u][i],o=e[u][i]=function(e,i){return this._createWidget?(arguments.length&&this._createWidget(e,i),t):new o(e,i)},e.extend(o,r,{version:n.version,_proto:e.extend({},n),_childConstructors:[]}),h=new s,h.options=e.widget.extend({},h.options),e.each(n,function(i,n){return e.isFunction(n)?(l[i]=function(){var e=function(){return s.prototype[i].apply(this,arguments)},t=function(e){return s.prototype[i].apply(this,e)};return function(){var i,s=this._super,a=this._superApply;return this._super=e,this._superApply=t,i=n.apply(this,arguments),this._super=s,this._superApply=a,i}}(),t):(l[i]=n,t)}),o.prototype=e.widget.extend(h,{widgetEventPrefix:r?h.widgetEventPrefix:i},l,{constructor:o,namespace:u,widgetName:i,widgetFullName:a}),r?(e.each(r._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete r._childConstructors):s._childConstructors.push(o),e.widget.bridge(i,o)},e.widget.extend=function(i){for(var n,a,r=s.call(arguments,1),o=0,h=r.length;h>o;o++)for(n in r[o])a=r[o][n],r[o].hasOwnProperty(n)&&a!==t&&(i[n]=e.isPlainObject(a)?e.isPlainObject(i[n])?e.widget.extend({},i[n],a):e.widget.extend({},a):a);return i},e.widget.bridge=function(i,n){var a=n.prototype.widgetFullName||i;e.fn[i]=function(r){var o="string"==typeof r,h=s.call(arguments,1),l=this;return r=!o&&h.length?e.widget.extend.apply(null,[r].concat(h)):r,o?this.each(function(){var s,n=e.data(this,a);return n?e.isFunction(n[r])&&"_"!==r.charAt(0)?(s=n[r].apply(n,h),s!==n&&s!==t?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):t):e.error("no such method '"+r+"' for "+i+" widget instance"):e.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+r+"'")}):this.each(function(){var t=e.data(this,a);t?t.option(r||{})._init():e.data(this,a,new n(r,this))}),l}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(t,s){s=e(s||this.defaultElement||this)[0],this.element=e(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),s!==this&&(e.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===s&&this.destroy()}}),this.document=e(s.style?s.ownerDocument:s.document||s),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(i,s){var n,a,r,o=i;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof i)if(o={},n=i.split("."),i=n.shift(),n.length){for(a=o[i]=e.widget.extend({},this.options[i]),r=0;n.length-1>r;r++)a[n[r]]=a[n[r]]||{},a=a[n[r]];if(i=n.pop(),s===t)return a[i]===t?null:a[i];a[i]=s}else{if(s===t)return this.options[i]===t?null:this.options[i];o[i]=s}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var a,r=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=a=e(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,a=this.widget()),e.each(n,function(n,o){function h(){return i||r.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?r[o]:o).apply(r,arguments):t}"string"!=typeof o&&(h.guid=o.guid=o.guid||h.guid||e.guid++);var l=n.match(/^(\w+)\s*(.*)$/),u=l[1]+r.eventNamespace,c=l[2];c?a.delegate(c,u,h):s.bind(u,h)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,r=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(r)&&r.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var r,o=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),r=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),r&&e.effects&&e.effects.effect[o]?s[t](n):o!==t&&s[o]?s[o](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}})})(jQuery);(function(e){var t=!1;e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.10.3",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):undefined}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!t){this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,n=1===i.which,a="string"==typeof this.options.cancel&&i.target.nodeName?e(i.target).closest(this.options.cancel).length:!1;return n&&!a&&this._mouseCapture(i)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){s.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=this._mouseStart(i)!==!1,!this._mouseStarted)?(i.preventDefault(),!0):(!0===e.data(i.target,this.widgetName+".preventClickEvent")&&e.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return s._mouseMove(e)},this._mouseUpDelegate=function(e){return s._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),t=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button?this._mouseUp(t):this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})(jQuery);(function(t,e){function i(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function s(e,i){return parseInt(t.css(e,i),10)||0}function n(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(a!==e)return a;var i,s,n=t("
"),o=n.children()[0];return t("body").append(n),i=o.offsetWidth,n.css("overflow","scroll"),s=o.offsetWidth,i===s&&(s=n[0].clientWidth),n.remove(),a=i-s},getScrollInfo:function(e){var i=e.isWindow?"":e.element.css("overflow-x"),s=e.isWindow?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widths?"left":i>0?"right":"center",vertical:0>a?"top":n>0?"bottom":"middle"};u>p&&p>r(i+s)&&(h.horizontal="center"),d>m&&m>r(n+a)&&(h.vertical="middle"),h.important=o(r(i),r(s))>o(r(n),r(a))?"horizontal":"vertical",e.using.call(this,t,h)}),c.offset(t.extend(C,{using:l}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-o-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-o-a,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-o-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-o-a,t.top+p+f+m>c&&(0>s||r(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,t.top+p+f+m>u&&(i>0||u>r(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,i,s,n,a,o=document.getElementsByTagName("body")[0],r=document.createElement("div");e=document.createElement(o?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&t.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(a in s)e.style[a]=s[a];e.appendChild(r),i=o||document.documentElement,i.insertBefore(e,i.firstChild),r.style.cssText="position: absolute; left: 10.7432222px;",n=t(r).offset().left,t.support.offsetFractions=n>10&&11>n,e.innerHTML="",i.removeChild(e)}()})(jQuery);(function(e){e.widget("ui.draggable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var i=this.options;return this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(i.iframeFix===!0?"iframe":i.iframeFix).each(function(){e("
").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,i){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"original"!==this.options.helper||e.contains(this.element[0].ownerDocument,this.element[0])?("invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1):!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;return n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):"document"===n.containment?(this.containment=[0,0,e(document).width()-this.helperProportions.width-this.margins.left,(e(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):n.containment.constructor===Array?(this.containment=n.containment,undefined):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i),undefined):(this.containment=null,undefined)},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent;return this.offset.scroll||(this.offset.scroll={top:n.scrollTop(),left:n.scrollLeft()}),{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top)*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)*s}},_generatePosition:function(t){var i,s,n,a,o=this.options,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=t.pageX,l=t.pageY;return this.offset.scroll||(this.offset.scroll={top:r.scrollTop(),left:r.scrollLeft()}),this.originalPosition&&(this.containment&&(this.relative_container?(s=this.relative_container.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s]),"drag"===t&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i){var s=e(this).data("ui-draggable"),n=s.options,a=e.extend({},i,{item:s.element});s.sortables=[],e(n.connectToSortable).each(function(){var i=e.data(this,"ui-sortable");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",t,a))})},stop:function(t,i){var s=e(this).data("ui-draggable"),n=e.extend({},i,{item:s.element});e.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,"original"===s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,n))})},drag:function(t,i){var s=e(this).data("ui-draggable"),n=this;e.each(s.sortables,function(){var a=!1,o=this;this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(a=!0,e.each(s.sortables,function(){return this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&e.contains(o.instance.element[0],this.instance.element[0])&&(a=!1),a})),a?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",t),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",t),s.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(){var t=e("body"),i=e(this).data("ui-draggable").options;t.css("cursor")&&(i._cursor=t.css("cursor")),t.css("cursor",i.cursor)},stop:function(){var t=e(this).data("ui-draggable").options;t._cursor&&e("body").css("cursor",t._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i){var s=e(i.helper),n=e(this).data("ui-draggable").options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(t,i){var s=e(this).data("ui-draggable").options;s._opacity&&e(i.helper).css("opacity",s._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(){var t=e(this).data("ui-draggable");t.scrollParent[0]!==document&&"HTML"!==t.scrollParent[0].tagName&&(t.overflowOffset=t.scrollParent.offset())},drag:function(t){var i=e(this).data("ui-draggable"),s=i.options,n=!1;i.scrollParent[0]!==document&&"HTML"!==i.scrollParent[0].tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+i.scrollParent[0].offsetHeight-t.pageY=0;c--)r=p.snapElements[c].left,h=r+p.snapElements[c].width,l=p.snapElements[c].top,u=l+p.snapElements[c].height,r-m>v||g>h+m||l-m>y||b>u+m||!e.contains(p.snapElements[c].item.ownerDocument,p.snapElements[c].item)?(p.snapElements[c].snapping&&p.options.snap.release&&p.options.snap.release.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[c].item})),p.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(s=m>=Math.abs(l-y),n=m>=Math.abs(u-b),a=m>=Math.abs(r-v),o=m>=Math.abs(h-g),s&&(i.position.top=p._convertPositionTo("relative",{top:l-p.helperProportions.height,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:u,left:0}).top-p.margins.top),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r-p.helperProportions.width}).left-p.margins.left),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:h}).left-p.margins.left)),d=s||n||a||o,"outer"!==f.snapMode&&(s=m>=Math.abs(l-b),n=m>=Math.abs(u-y),a=m>=Math.abs(r-g),o=m>=Math.abs(h-v),s&&(i.position.top=p._convertPositionTo("relative",{top:l,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:u-p.helperProportions.height,left:0}).top-p.margins.top),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r}).left-p.margins.left),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:h-p.helperProportions.width}).left-p.margins.left)),!p.snapElements[c].snapping&&(s||n||a||o||d)&&p.options.snap.snap&&p.options.snap.snap.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[c].item})),p.snapElements[c].snapping=s||n||a||o||d)}}),e.ui.plugin.add("draggable","stack",{start:function(){var t,i=this.data("ui-draggable").options,s=e.makeArray(e(i.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});s.length&&(t=parseInt(e(s[0]).css("zIndex"),10)||0,e(s).each(function(i){e(this).css("zIndex",t+i)}),this.css("zIndex",t+s.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i){var s=e(i.helper),n=e(this).data("ui-draggable").options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(t,i){var s=e(this).data("ui-draggable").options;s._zIndex&&e(i.helper).css("zIndex",s._zIndex)}})})(jQuery);(function(e){function t(e,t,i){return e>t&&t+i>e}e.widget("ui.droppable",{version:"1.10.3",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t=this.options,i=t.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(i)?i:function(e){return e.is(i)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},e.ui.ddmanager.droppables[t.scope]=e.ui.ddmanager.droppables[t.scope]||[],e.ui.ddmanager.droppables[t.scope].push(this),t.addClasses&&this.element.addClass("ui-droppable")},_destroy:function(){for(var t=0,i=e.ui.ddmanager.droppables[this.options.scope];i.length>t;t++)i[t]===this&&i.splice(t,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){"accept"===t&&(this.accept=e.isFunction(i)?i:function(e){return e.is(i)}),e.Widget.prototype._setOption.apply(this,arguments)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=e.data(this,"ui-droppable");return t.options.greedy&&!t.options.disabled&&t.options.scope===s.options.scope&&t.accept.call(t.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(t,{offset:t.element.offset()}),t.options.tolerance)?(n=!0,!1):undefined}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(e,i,s){if(!i.offset)return!1;var n,a,o=(e.positionAbs||e.position.absolute).left,r=o+e.helperProportions.width,h=(e.positionAbs||e.position.absolute).top,l=h+e.helperProportions.height,u=i.offset.left,c=u+i.proportions.width,d=i.offset.top,p=d+i.proportions.height;switch(s){case"fit":return o>=u&&c>=r&&h>=d&&p>=l;case"intersect":return o+e.helperProportions.width/2>u&&c>r-e.helperProportions.width/2&&h+e.helperProportions.height/2>d&&p>l-e.helperProportions.height/2;case"pointer":return n=(e.positionAbs||e.position.absolute).left+(e.clickOffset||e.offset.click).left,a=(e.positionAbs||e.position.absolute).top+(e.clickOffset||e.offset.click).top,t(a,d,i.proportions.height)&&t(n,u,i.proportions.width);case"touch":return(h>=d&&p>=h||l>=d&&p>=l||d>h&&l>p)&&(o>=u&&c>=o||r>=u&&c>=r||u>o&&r>c);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions.height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions={width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight})}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e.data(this,"ui-droppable").options.scope===n}),a.length&&(s=e.data(a[0],"ui-droppable"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}}})(jQuery);(function(e){function t(e){return parseInt(e,10)||0}function i(e){return!isNaN(parseInt(e,10))}e.widget("ui.resizable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("
"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=e(this.handles[i],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(i){var s,n,a,o=this.options,r=this.element.position(),h=this.element;return this.resizing=!0,/absolute/.test(h.css("position"))?h.css({position:"absolute",top:h.css("top"),left:h.css("left")}):h.is(".ui-draggable")&&h.css({position:"absolute",top:r.top,left:r.left}),this._renderProxy(),s=t(this.helper.css("left")),n=t(this.helper.css("top")),o.containment&&(s+=e(o.containment).scrollLeft()||0,n+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:s,top:n},this.size=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalSize=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalPosition={left:s,top:n},this.sizeDiff={width:h.outerWidth()-h.width(),height:h.outerHeight()-h.height()},this.originalMousePosition={left:i.pageX,top:i.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,a=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===a?this.axis+"-resize":a),h.addClass("ui-resizable-resizing"),this._propagate("start",i),!0},_mouseDrag:function(t){var i,s=this.helper,n={},a=this.originalMousePosition,o=this.axis,r=this.position.top,h=this.position.left,l=this.size.width,u=this.size.height,c=t.pageX-a.left||0,d=t.pageY-a.top||0,p=this._change[o];return p?(i=p.apply(this,[t,c,d]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),this.position.top!==r&&(n.top=this.position.top+"px"),this.position.left!==h&&(n.left=this.position.left+"px"),this.size.width!==l&&(n.width=this.size.width+"px"),this.size.height!==u&&(n.height=this.size.height+"px"),s.css(n),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(n)||this._trigger("resize",t,this.ui()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&e.ui.hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,s,n,a,o,r=this.options;o={minWidth:i(r.minWidth)?r.minWidth:0,maxWidth:i(r.maxWidth)?r.maxWidth:1/0,minHeight:i(r.minHeight)?r.minHeight:0,maxHeight:i(r.maxHeight)?r.maxHeight:1/0},(this._aspectRatio||e)&&(t=o.minHeight*this.aspectRatio,n=o.minWidth/this.aspectRatio,s=o.maxHeight*this.aspectRatio,a=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),n>o.minHeight&&(o.minHeight=n),o.maxWidth>s&&(o.maxWidth=s),o.maxHeight>a&&(o.maxHeight=a)),this._vBoundaries=o},_updateCache:function(e){this.offset=this.helper.offset(),i(e.left)&&(this.position.left=e.left),i(e.top)&&(this.position.top=e.top),i(e.height)&&(this.size.height=e.height),i(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,s=this.size,n=this.axis;return i(e.height)?e.width=e.height*this.aspectRatio:i(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===n&&(e.left=t.left+(s.width-e.width),e.top=null),"nw"===n&&(e.top=t.top+(s.height-e.height),e.left=t.left+(s.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,s=this.axis,n=i(e.width)&&t.maxWidth&&t.maxWidthe.width,r=i(e.height)&&t.minHeight&&t.minHeight>e.height,h=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,u=/sw|nw|w/.test(s),c=/nw|ne|n/.test(s);return o&&(e.width=t.minWidth),r&&(e.height=t.minHeight),n&&(e.width=t.maxWidth),a&&(e.height=t.maxHeight),o&&u&&(e.left=h-t.minWidth),n&&u&&(e.left=h-t.maxWidth),r&&c&&(e.top=l-t.minHeight),a&&c&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var e,t,i,s,n,a=this.helper||this.element;for(e=0;this._proportionallyResizeElements.length>e;e++){if(n=this._proportionallyResizeElements[e],!this.borderDif)for(this.borderDif=[],i=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],s=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],t=0;i.length>t;t++)this.borderDif[t]=(parseInt(i[t],10)||0)+(parseInt(s[t],10)||0);n.css({height:a.height()-this.borderDif[0]-this.borderDif[2]||0,width:a.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("
"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).data("ui-resizable"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&e.ui.hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var i,s,n,a,o,r,h,l=e(this).data("ui-resizable"),u=l.options,c=l.element,d=u.containment,p=d instanceof e?d.get(0):/parent/.test(d)?c.parent().get(0):d;p&&(l.containerElement=e(p),/document/.test(d)||d===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(i=e(p),s=[],e(["Top","Right","Left","Bottom"]).each(function(e,n){s[e]=t(i.css("padding"+n))}),l.containerOffset=i.offset(),l.containerPosition=i.position(),l.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},n=l.containerOffset,a=l.containerSize.height,o=l.containerSize.width,r=e.ui.hasScroll(p,"left")?p.scrollWidth:o,h=e.ui.hasScroll(p)?p.scrollHeight:a,l.parentData={element:p,left:n.left,top:n.top,width:r,height:h}))},resize:function(t){var i,s,n,a,o=e(this).data("ui-resizable"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,c={top:0,left:0},d=o.containerElement;d[0]!==document&&/static/.test(d.css("position"))&&(c=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-c.left),u&&(o.size.height=o.size.width/o.aspectRatio),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio),o.position.top=o._helper?h.top:0),o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top,i=Math.abs((o._helper?o.offset.left-c.left:o.offset.left-c.left)+o.sizeDiff.width),s=Math.abs((o._helper?o.offset.top-c.top:o.offset.top-h.top)+o.sizeDiff.height),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a&&(i-=o.parentData.left),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio))},stop:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).data("ui-resizable"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).data("ui-resizable"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(t,s){e(t).each(function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&i>=0&&(a[t]=i||null)}),t.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):e.each(n.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).data("ui-resizable");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).data("ui-resizable");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.size,n=t.originalSize,a=t.originalPosition,o=t.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,u=Math.round((s.width-n.width)/h)*h,c=Math.round((s.height-n.height)/l)*l,d=n.width+u,p=n.height+c,f=i.maxWidth&&d>i.maxWidth,m=i.maxHeight&&p>i.maxHeight,g=i.minWidth&&i.minWidth>d,v=i.minHeight&&i.minHeight>p;i.grid=r,g&&(d+=h),v&&(p+=l),f&&(d-=h),m&&(p-=l),/^(se|s|e)$/.test(o)?(t.size.width=d,t.size.height=p):/^(ne)$/.test(o)?(t.size.width=d,t.size.height=p,t.position.top=a.top-c):/^(sw)$/.test(o)?(t.size.width=d,t.size.height=p,t.position.left=a.left-u):(t.size.width=d,t.size.height=p,t.position.top=a.top-c,t.position.left=a.left-u)}})})(jQuery);(function(e){e.widget("ui.selectable",e.ui.mouse,{version:"1.10.3",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):undefined}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}})})(jQuery);(function(t){function e(t,e,i){return t>e&&e+i>t}function i(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}t.widget("ui.sortable",t.ui.mouse,{version:"1.10.3",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var t=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===t.axis||i(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_setOption:function(e,i){"disabled"===e?(this.options[e]=i,this.widget().toggleClass("ui-sortable-disabled",!!i)):t.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,a.widgetName+"-item")===a?(s=t(this),!1):undefined}),t.data(e.target,a.widgetName+"-item")===a&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=t("").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=t.left,o=a+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>a&&o>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var i="x"===this.options.axis||e(this.positionAbs.top+this.offset.click.top,t.top,t.height),s="y"===this.options.axis||e(this.positionAbs.left+this.offset.click.left,t.left,t.width),n=i&&s,a=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return n?this.floating?o&&"right"===o||"down"===a?2:1:a&&("down"===a?2:1):!1},_intersectsWithSides:function(t){var i=e(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),s=e(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return this.floating&&a?"right"===a&&s||"left"===a&&!s:n&&("down"===n&&i||"up"===n&&!i)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){var i,s,n,a,o=[],r=[],h=this._connectWith();if(h&&e)for(i=h.length-1;i>=0;i--)for(n=t(h[i]),s=n.length-1;s>=0;s--)a=t.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&r.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(r.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=r.length-1;i>=0;i--)r[i][0].each(function(){o.push(this)});return t(o)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i]),s=n.length-1;s>=0;s--)a=t.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(u.push([t.isFunction(a.options.items)?a.options.items.call(a.element[0],e,{item:this.currentItem}):t(a.options.items,a.element),a]),this.containers.push(a));for(i=u.length-1;i>=0;i--)for(o=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",o),c.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]).addClass(i||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?e.currentItem.children().each(function(){t("
",e.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_contactContainers:function(s){var n,a,o,r,h,l,c,u,d,p,f=null,m=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(f&&t.contains(this.containers[n].element[0],f.element[0]))continue;f=this.containers[n],m=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",s,this._uiHash(this)),this.containers[n].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[m].containerCache.over||(this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1);else{for(o=1e4,r=null,p=f.floating||i(this.currentItem),h=p?"left":"top",l=p?"width":"height",c=this.positionAbs[h]+this.offset.click[h],a=this.items.length-1;a>=0;a--)t.contains(this.containers[m].element[0],this.items[a].item[0])&&this.items[a].item[0]!==this.currentItem[0]&&(!p||e(this.positionAbs.top+this.offset.click.top,this.items[a].top,this.items[a].height))&&(u=this.items[a].item.offset()[h],d=!1,Math.abs(u-c)>Math.abs(u+this.items[a][l]-c)&&(d=!0,u+=this.items[a][l]),o>Math.abs(u-c)&&(o=Math.abs(u-c),r=this.items[a],this.direction=d?"up":"down"));if(!r&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[m])return;r?this._rearrange(s,r,null,!0):this._rearrange(s,null,this.containers[m].element,!0),this._trigger("change",s,this._uiHash()),this.containers[m]._trigger("change",s,this._uiHash(this)),this.currentContainer=this.containers[m],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,t("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(t("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,a=e.pageX,o=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(a=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)e||s.push(function(t){return function(e){t._trigger("deactivate",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(function(t){return function(e){t._trigger("out",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!e){for(this._trigger("beforeStop",t,this._uiHash()),i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}if(e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!e){for(i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})})(jQuery);(function(t){var e=0,i={},s={};i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="hide",s.height=s.paddingTop=s.paddingBottom=s.borderTopWidth=s.borderBottomWidth="show",t.widget("ui.accordion",{version:"1.10.3",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t(),content:this.active.length?this.active.next():t()}},_createIcons:function(){var e=this.options.icons;e&&(t("").addClass("ui-accordion-header-icon ui-icon "+e.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(e.header).addClass(e.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),undefined):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),"disabled"===t&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!e),undefined)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),a=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(t(e.target).attr("tabIndex",-1),t(a).attr("tabIndex",0),a.focus(),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().focus()},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var i,s=this.options,n=s.heightStyle,a=this.element.parent(),o=this.accordionId="ui-accordion-"+(this.element.attr("id")||++e);this.active=this._findActive(s.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(e){var i=t(this),s=i.attr("id"),n=i.next(),a=n.attr("id");s||(s=o+"-header-"+e,i.attr("id",s)),a||(a=o+"-panel-"+e,n.attr("id",a)),i.attr("aria-controls",a),n.attr("aria-labelledby",s)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(s.event),"fill"===n?(i=a.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.headers.each(function(){i-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===n&&(i=0,this.headers.next().each(function(){i=Math.max(i,t(this).css("height","").height())}).height(i))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?t():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?t():n,newPanel:r};e.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",e,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?t():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-expanded":"false","aria-hidden":"true"}),s.prev().attr("aria-selected","false"),i.length&&s.length?s.prev().attr("tabIndex",-1):i.length&&this.headers.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(t,e,n){var a,o,r,h=this,l=0,c=t.length&&(!e.length||t.index()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,undefined;e=!1,s=!1,i=!1;var a=t.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:e=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case a.UP:e=!0,this._keyEvent("previous",n);break;case a.DOWN:e=!0,this._keyEvent("next",n);break;case a.ENTER:case a.NUMPAD_ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),undefined;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),undefined):(this._searchTimeout(t),undefined)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,undefined):(clearTimeout(this.searching),this.close(t),this._change(t),undefined)}}),this._initSource(),this.menu=t("
 
"+"",S=u?"":"",x=0;7>x;x++)N=(x+c)%7,S+="=5?" class='ui-datepicker-week-end'":"")+">"+""+p[N]+"";for(M+=S+"",I=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,I)),P=(this._getFirstDayOfMonth(te,Z)-c+7)%7,A=Math.ceil((P+I)/7),z=q?this.maxRows>A?this.maxRows:A:A,this.maxRows=z,H=this._daylightSavingAdjust(new Date(te,Z,1-P)),E=0;z>E;E++){for(M+="",F=u?"":"",x=0;7>x;x++)O=g?g.apply(t.input?t.input[0]:null,[H]):[!0,""],W=H.getMonth()!==Z,j=W&&!_||!O[0]||G&&G>H||$&&H>$,F+="",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);M+=F+""}Z++,Z>11&&(Z=0,te++),M+="
"+this._get(t,"weekHeader")+"
"+this._get(t,"calculateWeek")(H)+""+(W&&!v?" ":j?""+H.getDate()+"":""+H.getDate()+"")+"
"+(q?""+(Q[0]>0&&D===Q[1]-1?"
":""):""),w+=M}y+=w}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,a,r,o){var h,l,c,u,d,p,f,m,g=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),_=this._get(t,"showMonthAfterYear"),b="
",y="";if(a||!g)y+=""+r[e]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+=""}if(_||(b+=y+(!a&&g&&v?"":" ")),!t.yearshtml)if(t.yearshtml="",a||!v)b+=""+i+"";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10); -return isNaN(e)?d:e},f=p(u[0]),m=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),_&&(b+=(!a&&g&&v?"":" ")+y),b+="
"},_adjustInstDate:function(t,e,i){var s=t.drawYear+("Y"===i?e:0),n=t.drawMonth+("M"===i?e:0),a=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),r=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,a)));t.selectedDay=r.getDate(),t.drawMonth=t.selectedMonth=r.getMonth(),t.drawYear=t.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),a=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(t,a)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),a=this._getMinMaxDate(t,"max"),r=null,o=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),r=parseInt(i[0],10),o=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=s),i[1].match(/[+\-].*/)&&(o+=s)),(!n||e.getTime()>=n.getTime())&&(!a||e.getTime()<=a.getTime())&&(!r||e.getFullYear()>=r)&&(!o||o>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).mousedown(t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new i,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.10.3"})(jQuery);(function(t){var e={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};t.widget("ui.dialog",{version:"1.10.3",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._destroyOverlay(),this.opener.filter(":focusable").focus().length||t(this.document[0].activeElement).blur(),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,e){var i=!!this.uiDialog.nextAll(":visible").insertBefore(this.uiDialog).length;return i&&!e&&this._trigger("focus",t),i},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),undefined):(this._isOpen=!0,this.opener=t(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._trigger("open"),undefined)},_focusTabbable:function(){var t=this.element.find("[autofocus]");t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).focus()},_keepFocus:function(e){function i(){var e=this.document[0].activeElement,i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("
").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),undefined;if(e.keyCode===t.ui.keyCode.TAB){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(n.focus(1),e.preventDefault()):(s.focus(1),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("
").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=t("").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(e),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title||t.html(" "),t.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=t("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("
").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),undefined):(t.each(i,function(i,s){var n,a;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(e.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,t("",s).button(a).appendTo(e.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),undefined)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){t(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,a){s.position=[a.position.left-i.document.scrollLeft(),a.position.top-i.document.scrollTop()],t(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(a))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){t(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,a){s.height=t(this).height(),s.width=t(this).width(),t(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(a))}}).css("position",a)},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(s){var n=this,a=!1,o={};t.each(s,function(t,s){n._setOption(t,s),t in e&&(a=!0),t in i&&(o[t]=s)}),a&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",o)},_setOption:function(t,e){var i,s,n=this.uiDialog;"dialogClass"===t&&n.removeClass(this.options.dialogClass).addClass(e),"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:""+e}),"draggable"===t&&(i=n.is(":data(ui-draggable)"),i&&!e&&n.draggable("destroy"),!i&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&(s=n.is(":data(ui-resizable)"),s&&!e&&n.resizable("destroy"),s&&"string"==typeof e&&n.resizable("option","handles",e),s||e===!1||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("
").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=this,i=this.widgetFullName;t.ui.dialog.overlayInstances||this._delay(function(){t.ui.dialog.overlayInstances&&this.document.bind("focusin.dialog",function(s){e._allowInteraction(s)||(s.preventDefault(),t(".ui-dialog:visible:last .ui-dialog-content").data(i)._focusTabbable())})}),this.overlay=t("
").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),t.ui.dialog.overlayInstances++}},_destroyOverlay:function(){this.options.modal&&this.overlay&&(t.ui.dialog.overlayInstances--,t.ui.dialog.overlayInstances||this.document.unbind("focusin.dialog"),this.overlay.remove(),this.overlay=null)}}),t.ui.dialog.overlayInstances=0,t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{_position:function(){var e,i=this.options.position,s=[],n=[0,0];i?(("string"==typeof i||"object"==typeof i&&"0"in i)&&(s=i.split?i.split(" "):[i[0],i[1]],1===s.length&&(s[1]=s[0]),t.each(["left","top"],function(t,e){+s[t]===s[t]&&(n[t]=s[t],s[t]=e)}),i={my:s[0]+(0>n[0]?n[0]:"+"+n[0])+" "+s[1]+(0>n[1]?n[1]:"+"+n[1]),at:s.join(" ")}),i=t.extend({},t.ui.dialog.prototype.options.position,i)):i=t.ui.dialog.prototype.options.position,e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.position(i),e||this.uiDialog.hide()}})})(jQuery);(function(t){t.widget("ui.menu",{version:"1.10.3",defaultElement:"
    ",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,t.proxy(function(t){this.options.disabled&&t.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(t){t.preventDefault()},"click .ui-state-disabled > a":function(t){t.preventDefault()},"click .ui-menu-item:has(a)":function(e){var i=t(e.target).closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.mouseHandled=!0,this.select(e),i.has(".ui-menu").length?this.expand(e):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){var i=t(e.currentTarget);i.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(e,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.children(".ui-menu-item").eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){t(e.target).closest(".ui-menu").length||this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){function i(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,h=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:h=!1,n=this.previousFilter||"",a=String.fromCharCode(e.keyCode),o=!1,clearTimeout(this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(a=String.fromCharCode(e.keyCode),r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())})),s.length?(this.focus(e,s),s.length>1?(this.previousFilter=a,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}h&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i=this.options.icons.submenu,s=this.element.find(this.options.menus);s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),s=e.prev("a"),n=t("").addClass("ui-menu-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true").prepend(n),e.attr("aria-labelledby",s.attr("id"))}),e=s.add(this.element),e.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),e.children(":not(.ui-menu-item)").each(function(){var e=t(this);/[^\-\u2014\u2013\s]/.test(e.text())||e.addClass("ui-widget-content ui-menu-divider")}),e.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),this._super(t,e)},focus:function(t,e){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=e.height(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.children(".ui-menu-item")[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())),undefined):(this.next(e),undefined)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.next(e),undefined)},_hasScroll:function(){return this.element.outerHeight()
").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(t){return t===e?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),e)},_constrainedValue:function(t){return t===e&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("
").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}})})(jQuery);(function(t){var e=5;t.widget("ui.slider",t.ui.mouse,{version:"1.10.3",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)o.push(a);this.handles=n.add(t(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options,i="";e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=t("
").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===e.range||"max"===e.range?" ui-slider-range-"+e.range:""))):this.range=t([])},_setupEvents:function(){var t=this.handles.add(this.range).filter("a");this._off(t),this._on(t,this._handleEvents),this._hoverable(t),this._focusable(t)},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,a,o,r,h,l,u=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-u.values(e));(n>i||n===i&&(e===u._lastChangedValue||u.values(e)===c.min))&&(n=i,a=t(this),o=e)}),r=this._start(e,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-a.width()/2,top:e.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,a;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(t,e){var i={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("start",t,i)},_slide:function(t,e,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(e?0:1),2===this.options.values.length&&this.options.range===!0&&(0===e&&i>s||1===e&&s>i)&&(i=s),i!==this.values(e)&&(n=this.values(),n[e]=i,a=this._trigger("slide",t,{handle:this.handles[e],value:i,values:n}),s=this.values(e?0:1),a!==!1&&this.values(e,i,!0))):i!==this.value()&&(a=this._trigger("slide",t,{handle:this.handles[e],value:i}),a!==!1&&this.value(i))},_stop:function(t,e){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("stop",t,i)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,i)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),undefined):this._value()},values:function(e,i){var s,n,a;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),undefined;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(e):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),t.Widget.prototype._setOption.apply(this,arguments),e){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var e,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(i){var s,n,a,o,r=t(i.target).data("ui-slider-handle-index");switch(i.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i.preventDefault(),!this._keySliding&&(this._keySliding=!0,t(i.target).addClass("ui-state-active"),s=this._start(i,r),s===!1))return}switch(o=this.options.step,n=a=this.options.values&&this.options.values.length?this.values(r):this.value(),i.keyCode){case t.ui.keyCode.HOME:a=this._valueMin();break;case t.ui.keyCode.END:a=this._valueMax();break;case t.ui.keyCode.PAGE_UP:a=this._trimAlignValue(n+(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.PAGE_DOWN:a=this._trimAlignValue(n-(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(n===this._valueMax())return;a=this._trimAlignValue(n+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(n===this._valueMin())return;a=this._trimAlignValue(n-o)}this._slide(i,r,a)},click:function(t){t.preventDefault()},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),t(e.target).removeClass("ui-state-active"))}}})})(jQuery);(function(t){function e(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.widget("ui.spinner",{version:"1.10.3",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e={},i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);void 0!==n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var t=this.element[0]===this.document[0].activeElement;t||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var t=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=t.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*t.height())&&t.height()>0&&t.height(t.height()),this.options.disabled&&this.disable()},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){if("culture"===t||"numberFormat"===t){var i=this._parse(this.element.val());return this.options[t]=e,this.element.val(this._format(i)),void 0}("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(e.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(e.down)),this._super(t,e),"disabled"===t&&(e?(this.element.prop("disabled",!0),this.buttons.button("disable")):(this.element.prop("disabled",!1),this.buttons.button("enable")))},_setOptions:e(function(t){this._super(t),this._value(this.element.val())}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:e(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:e(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:e(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:e(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(e(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}})})(jQuery);(function(t,e){function i(){return++n}function s(t){return t.hash.length>1&&decodeURIComponent(t.href.replace(a,""))===decodeURIComponent(location.href.replace(a,""))}var n=0,a=/#.*$/;t.widget("ui.tabs",{version:"1.10.3",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var e=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var i=this.options.active,s=this.options.collapsible,n=location.hash.substring(1);return null===i&&(n&&this.tabs.each(function(s,a){return t(a).attr("aria-controls")===n?(i=s,!1):e}),null===i&&(i=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===i||-1===i)&&(i=this.tabs.length?0:!1)),i!==!1&&(i=this.tabs.index(this.tabs.eq(i)),-1===i&&(i=s?!1:0)),!s&&i===!1&&this.anchors.length&&(i=0),i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(i){var s=t(this.document[0].activeElement).closest("li"),n=this.tabs.index(s),a=!0;if(!this._handlePageNav(i)){switch(i.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:n++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:a=!1,n--;break;case t.ui.keyCode.END:n=this.anchors.length-1;break;case t.ui.keyCode.HOME:n=0;break;case t.ui.keyCode.SPACE:return i.preventDefault(),clearTimeout(this.activating),this._activate(n),e;case t.ui.keyCode.ENTER:return i.preventDefault(),clearTimeout(this.activating),this._activate(n===this.options.active?!1:n),e;default:return}i.preventDefault(),clearTimeout(this.activating),n=this._focusNextTab(n,a),i.ctrlKey||(s.attr("aria-selected","false"),this.tabs.eq(n).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",n)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.focus())},_handlePageNav:function(i){return i.altKey&&i.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):i.altKey&&i.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):e},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).focus(),t},_setOption:function(t,i){return"active"===t?(this._activate(i),e):"disabled"===t?(this._setupDisabled(i),e):(this._super(t,i),"collapsible"===t&&(this.element.toggleClass("ui-tabs-collapsible",i),i||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(i),"heightStyle"===t&&this._setupHeightStyle(i),e)},_tabId:function(t){return t.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=t(),this.anchors.each(function(i,n){var a,o,r,h=t(n).uniqueId().attr("id"),l=t(n).closest("li"),u=l.attr("aria-controls");s(n)?(a=n.hash,o=e.element.find(e._sanitizeSelector(a))):(r=e._tabId(l),a="#"+r,o=e.element.find(a),o.length||(o=e._createPanel(r),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),u&&l.data("ui-tabs-aria-controls",u),l.attr({"aria-controls":a.substring(1),"aria-labelledby":h}),o.attr("aria-labelledby",h)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(e){return t("
").attr("id",e).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(e){t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1);for(var i,s=0;i=this.tabs[s];s++)e===!0||-1!==t.inArray(s,e)?t(i).addClass("ui-state-disabled").attr("aria-disabled","true"):t(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=e},_setupEvents:function(e){var i={click:function(t){t.preventDefault()}};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?t():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):t(),u={oldTab:s,oldPanel:l,newTab:r?t():a,newPanel:h};e.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",e,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?t():a,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),e),this._toggle(e,u))},_toggle:function(e,i){function s(){a.running=!1,a._trigger("activate",e,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr({"aria-expanded":"false","aria-hidden":"true"}),i.oldTab.attr("aria-selected","false"),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr({"aria-expanded":"true","aria-hidden":"false"}),i.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+t+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var s=this.options.disabled;s!==!1&&(i===e?s=!1:(i=this._getIndex(i),s=t.isArray(s)?t.map(s,function(t){return t!==i?t:null}):t.map(this.tabs,function(t,e){return e!==i?e:null})),this._setupDisabled(s))},disable:function(i){var s=this.options.disabled;if(s!==!0){if(i===e)s=!0;else{if(i=this._getIndex(i),-1!==t.inArray(i,s))return;s=t.isArray(s)?t.merge([i],s).sort():[i]}this._setupDisabled(s)}},load:function(e,i){e=this._getIndex(e);var n=this,a=this.tabs.eq(e),o=a.find(".ui-tabs-anchor"),r=this._getPanelForTab(a),h={tab:a,panel:r};s(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,h)),this.xhr&&"canceled"!==this.xhr.statusText&&(a.addClass("ui-tabs-loading"),r.attr("aria-busy","true"),this.xhr.success(function(t){setTimeout(function(){r.html(t),n._trigger("load",i,h)},1)}).complete(function(t,e){setTimeout(function(){"abort"===e&&n.panels.stop(!1,!0),a.removeClass("ui-tabs-loading"),r.removeAttr("aria-busy"),t===n.xhr&&delete n.xhr},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href"),beforeSend:function(e,a){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:a},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}})})(jQuery);(function(t){function e(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))}function i(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")}var s=0;t.widget("ui.tooltip",{version:"1.10.3",options:{content:function(){var e=t(this).attr("title")||"";return t("").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(e,i){var s=this;return"disabled"===e?(this[i?"_disable":"_enable"](),this.options[e]=i,void 0):(this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e)}),void 0)},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.is("[title]")&&e.data("ui-tooltip-title",e.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))})},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,a=e?e.type:null;return"string"==typeof s?this._open(e,t,s):(i=s.call(t[0],function(i){t.data("ui-tooltip-open")&&n._delay(function(){e&&(e.type=a),this._open(e,t,i)})}),i&&this._open(e,t,i),void 0)},_open:function(i,s,n){function a(t){l.of=t,o.is(":hidden")||o.position(l)}var o,r,h,l=t.extend({},this.options.position);if(n){if(o=this._find(s),o.length)return o.find(".ui-tooltip-content").html(n),void 0;s.is("[title]")&&(i&&"mouseover"===i.type?s.attr("title",""):s.removeAttr("title")),o=this._tooltip(s),e(s,o.attr("id")),o.find(".ui-tooltip-content").html(n),this.options.track&&i&&/^mouse/.test(i.type)?(this._on(this.document,{mousemove:a}),a(i)):o.position(t.extend({of:s},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){o.is(":visible")&&(a(l.of),clearInterval(h))},t.fx.interval)),this._trigger("open",i,{tooltip:o}),r={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var i=t.Event(e);i.currentTarget=s[0],this.close(i,!0)}},remove:function(){this._removeTooltip(o)}},i&&"mouseover"!==i.type||(r.mouseleave="close"),i&&"focusin"!==i.type||(r.focusout="close"),this._on(!0,s,r)}},close:function(e){var s=this,n=t(e?e.currentTarget:this.element),a=this._find(n);this.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&n.attr("title",n.data("ui-tooltip-title")),i(n),a.stop(!0),this._hide(a,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),this.closing=!0,this._trigger("close",e,{tooltip:a}),this.closing=!1)},_tooltip:function(e){var i="ui-tooltip-"+s++,n=t("
").attr({id:i,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return t("
").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]=e,n},_find:function(e){var i=e.data("ui-tooltip-id");return i?t("#"+i):t()},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0),t("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))})}})})(jQuery);(function(t,e){var i="ui-effects-";t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[c[l].cache]=o[c[l].cache],n=s._rgba=o._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,a.transparent),s):a[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("

")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,o,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(o),o=e);var u=this,d=t.type(n),p=this._rgba=[];return o!==e&&(n=[n,o,r,h],d="array"),"string"===d?this.parse(s(n)||a._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var a=s.cache;f(s.props,function(t,e){if(!u[a]&&s.to){if("alpha"===t||null==n[t])return;u[a]=s.to(u._rgba)}u[a][e.idx]=i(n[t],e,!0)}),u[a]&&0>t.inArray(null,u[a].slice(0,3))&&(u[a][3]=1,s.from&&(u._rgba=s.from(u[a])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),a=c[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(t,n){var a=n.idx,o=r[a],l=s[a],c=u[n.type]||{};null!==l&&(null===o?h[a]=l:(c.mod&&(l-o>c.mod/2?o+=c.mod:o-l>c.mod/2&&(o-=c.mod)),h[a]=i((l-o)*e+o,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,a=t[2]/255,o=t[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==o?1:o]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],a=t[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,e+1/3)),Math.round(255*n(r,o,e)),Math.round(255*n(r,o,e-1/3)),a]},f(c,function(s,n){var a=n.props,o=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===e)return this[o].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[o].slice();return f(a,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[o]=d,n):l(d)},f(a,function(e,i){l.fn[e]||(l.fn[e]=function(n){var a,o=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===o?c:("function"===o&&(n=n.call(this,c),o=t.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=c+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var a,o,r="";if("transparent"!==n&&("string"!==t.type(n)||(a=s(n)))){if(n=l(a||n),!d.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&o&&o.style;)try{r=t.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(o),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},a=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function s(e,i){var s,n,o={};for(s in i)n=i[s],e[s]!==n&&(a[s]||(t.fx.step[s]||!isNaN(parseFloat(n)))&&(o[s]=n));return o}var n=["add","remove","toggle"],a={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(jQuery.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(e,a,o,r){var h=t.speed(a,o,r);return this.queue(function(){var a,o=t(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var e=t(this);return{el:e,start:i(this)}}),a=function(){t.each(n,function(t,i){e[i]&&o[i+"Class"](e[i])})},a(),l=l.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){a(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(o[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,a){return s?t.effects.animateClass.call(this,{add:i},s,n,a):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,a){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,a):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(i){return function(s,n,a,o,r){return"boolean"==typeof n||n===e?a?t.effects.animateClass.call(this,n?{add:s}:{remove:s},a,o,r):i.apply(this,arguments):t.effects.animateClass.call(this,{toggle:s},n,a,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,a){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,a)}})}(),function(){function s(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.10.3",save:function(t,e){for(var s=0;e.length>s;s++)null!==e[s]&&t.data(i+e[s],t[0].style[e[s]])},restore:function(t,s){var n,a;for(a=0;s.length>a;a++)null!==s[a]&&(n=t.data(i+s[a]),n===e&&(n=""),t.css(s[a],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("

").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return e.wrap(s),(e[0]===a||t.contains(e[0],a))&&t(a).focus(),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).focus()),e},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var a=e.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),t.fn.extend({effect:function(){function e(e){function s(){t.isFunction(a)&&a.call(n[0]),t.isFunction(e)&&e()}var n=t(this),a=i.complete,r=i.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),s()):o.call(n[0],i,s)}var i=s.apply(this,arguments),n=i.mode,a=i.queue,o=t.effects.effect[i.effect];return t.fx.off||!o?n?this[n](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):a===!1?this.each(e):this.queue(a||"fx",e)},show:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(t.fn.show),hide:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(t.fn.hide),toggle:function(t){return function(e){if(n(e)||"boolean"==typeof e)return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}()})(jQuery);(function(t){var e=/up|down|vertical/,i=/up|left|vertical|horizontal/;t.effects.effect.blind=function(s,n){var a,o,r,h=t(this),l=["position","top","bottom","left","right","height","width"],c=t.effects.setMode(h,s.mode||"hide"),u=s.direction||"up",d=e.test(u),p=d?"height":"width",f=d?"top":"left",m=i.test(u),g={},v="show"===c;h.parent().is(".ui-effects-wrapper")?t.effects.save(h.parent(),l):t.effects.save(h,l),h.show(),a=t.effects.createWrapper(h).css({overflow:"hidden"}),o=a[p](),r=parseFloat(a.css(f))||0,g[p]=v?o:0,m||(h.css(d?"bottom":"right",0).css(d?"top":"left","auto").css({position:"absolute"}),g[f]=v?r:o+r),v&&(a.css(p,0),m||a.css(f,r+o)),a.animate(g,{duration:s.duration,easing:s.easing,queue:!1,complete:function(){"hide"===c&&h.hide(),t.effects.restore(h,l),t.effects.removeWrapper(h),n()}})}})(jQuery);(function(t){t.effects.effect.bounce=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","height","width"],h=t.effects.setMode(o,e.mode||"effect"),l="hide"===h,c="show"===h,u=e.direction||"up",d=e.distance,p=e.times||5,f=2*p+(c||l?1:0),m=e.duration/f,g=e.easing,v="up"===u||"down"===u?"top":"left",_="up"===u||"left"===u,b=o.queue(),y=b.length;for((c||l)&&r.push("opacity"),t.effects.save(o,r),o.show(),t.effects.createWrapper(o),d||(d=o["top"===v?"outerHeight":"outerWidth"]()/3),c&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,_?2*-d:2*d).animate(a,m,g)),l&&(d/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(_?"-=":"+=")+d,o.animate(n,m,g).animate(a,m,g),d=l?2*d:d/2;l&&(n={opacity:0},n[v]=(_?"-=":"+=")+d,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()}),y>1&&b.splice.apply(b,[1,0].concat(b.splice(y,f+1))),o.dequeue()}})(jQuery);(function(t){t.effects.effect.clip=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","height","width"],h=t.effects.setMode(o,e.mode||"hide"),l="show"===h,c=e.direction||"vertical",u="vertical"===c,d=u?"height":"width",p=u?"top":"left",f={};t.effects.save(o,r),o.show(),s=t.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[d](),l&&(n.css(d,0),n.css(p,a/2)),f[d]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){l||o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()}})}})(jQuery);(function(t){t.effects.effect.drop=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","opacity","height","width"],o=t.effects.setMode(n,e.mode||"hide"),r="show"===o,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h?"pos":"neg",u={opacity:r?1:0};t.effects.save(n,a),n.show(),t.effects.createWrapper(n),s=e.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===c?-s:s),u[l]=(r?"pos"===c?"+=":"-=":"pos"===c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}})}})(jQuery);(function(t){t.effects.effect.explode=function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),m||p.hide(),i()}var a,o,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=t.effects.setMode(p,e.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/d),_=Math.ceil(p.outerHeight()/u),b=[];for(a=0;u>a;a++)for(h=g.top+a*_,c=a-(u-1)/2,o=0;d>o;o++)r=g.left+o*v,l=o-(d-1)/2,p.clone().appendTo("body").wrap("
").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*_}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:_,left:r+(m?l*v:0),top:h+(m?c*_:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:c*_),opacity:m?1:0},e.duration||500,e.easing,s)}})(jQuery);(function(t){t.effects.effect.fade=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}})(jQuery);(function(t){t.effects.effect.fold=function(e,i){var s,n,a=t(this),o=["position","top","bottom","left","right","height","width"],r=t.effects.setMode(a,e.mode||"hide"),h="show"===r,l="hide"===r,c=e.size||15,u=/([0-9]+)%/.exec(c),d=!!e.horizFirst,p=h!==d,f=p?["width","height"]:["height","width"],m=e.duration/2,g={},v={};t.effects.save(a,o),a.show(),s=t.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],u&&(c=parseInt(u[1],10)/100*n[l?0:1]),h&&s.css(d?{height:0,width:c}:{height:c,width:0}),g[f[0]]=h?n[0]:c,v[f[1]]=h?n[1]:0,s.animate(g,m,e.easing).animate(v,m,e.easing,function(){l&&a.hide(),t.effects.restore(a,o),t.effects.removeWrapper(a),i()})}})(jQuery);(function(t){t.effects.effect.highlight=function(e,i){var s=t(this),n=["backgroundImage","backgroundColor","opacity"],a=t.effects.setMode(s,e.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),t.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(o,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===a&&s.hide(),t.effects.restore(s,n),i()}})}})(jQuery);(function(t){t.effects.effect.pulsate=function(e,i){var s,n=t(this),a=t.effects.setMode(n,e.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(e.times||5)+(h?1:0),c=e.duration/l,u=0,d=n.queue(),p=d.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),u=1),s=1;l>s;s++)n.animate({opacity:u},c,e.easing),u=1-u;n.animate({opacity:u},c,e.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&d.splice.apply(d,[1,0].concat(d.splice(p,l+1))),n.dequeue()}})(jQuery);(function(t){t.effects.effect.puff=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"hide"),a="hide"===n,o=parseInt(e.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(e)},t.effects.effect.scale=function(e,i){var s=t(this),n=t.extend(!0,{},e),a=t.effects.setMode(s,e.mode||"effect"),o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===a?0:100),r=e.direction||"both",h=e.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},c={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=e.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*c.y,width:l.width*c.x,outerHeight:l.outerHeight*c.y,outerWidth:l.outerWidth*c.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},t.effects.effect.size=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],c=["fontSize"],u=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],d=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=t.effects.setMode(o,e.mode||"effect"),f=e.restore||"effect"!==p,m=e.scale||"both",g=e.origin||["middle","center"],v=o.css("position"),_=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===e.mode&&"show"===p?(o.from=e.to||b,o.to=e.from||s):(o.from=e.from||("show"===p?b:s),o.to=e.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(_=_.concat(u),o.from=t.effects.setTransition(o,u,a.from.y,o.from),o.to=t.effects.setTransition(o,u,a.to.y,o.to)),a.from.x!==a.to.x&&(_=_.concat(d),o.from=t.effects.setTransition(o,d,a.from.x,o.from),o.to=t.effects.setTransition(o,d,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(_=_.concat(c).concat(l),o.from=t.effects.setTransition(o,c,a.from.y,o.from),o.to=t.effects.setTransition(o,c,a.to.y,o.to)),t.effects.save(o,_),o.show(),t.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=t.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(u=u.concat(["marginTop","marginBottom"]).concat(c),d=d.concat(["marginLeft","marginRight"]),l=r.concat(u).concat(d),o.find("*[width]").each(function(){var i=t(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};f&&t.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=t.effects.setTransition(i,u,a.from.y,i.from),i.to=t.effects.setTransition(i,u,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=t.effects.setTransition(i,d,a.from.x,i.from),i.to=t.effects.setTransition(i,d,a.to.x,i.to)),i.css(i.from),i.animate(i.to,e.duration,e.easing,function(){f&&t.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),t.effects.restore(o,_),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):t.each(["top","left"],function(t,e){o.css(e,function(e,i){var s=parseInt(i,10),n=t?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),t.effects.removeWrapper(o),i()}})}})(jQuery);(function(t){t.effects.effect.shake=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","height","width"],o=t.effects.setMode(n,e.mode||"effect"),r=e.direction||"left",h=e.distance||20,l=e.times||3,c=2*l+1,u=Math.round(e.duration/c),d="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),_=v.length;for(t.effects.save(n,a),n.show(),t.effects.createWrapper(n),f[d]=(p?"-=":"+=")+h,m[d]=(p?"+=":"-=")+2*h,g[d]=(p?"-=":"+=")+2*h,n.animate(f,u,e.easing),s=1;l>s;s++)n.animate(m,u,e.easing).animate(g,u,e.easing);n.animate(m,u,e.easing).animate(f,u/2,e.easing).queue(function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}),_>1&&v.splice.apply(v,[1,0].concat(v.splice(_,c+1))),n.dequeue()}})(jQuery);(function(t){t.effects.effect.slide=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","width","height"],o=t.effects.setMode(n,e.mode||"show"),r="show"===o,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u={};t.effects.save(n,a),n.show(),s=e.distance||n["top"===l?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,c?isNaN(s)?"-"+s:-s:s),u[l]=(r?c?"+=":"-=":c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}})}})(jQuery);(function(t){t.effects.effect.transfer=function(e,i){var s=t(this),n=t(e.to),a="fixed"===n.css("position"),o=t("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("
").appendTo(document.body).addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),i()})}})(jQuery); \ No newline at end of file diff --git a/webapp/src/main/webapp/console/sla/js/table/jquery-ui-timepicker-addon.js b/webapp/src/main/webapp/console/sla/js/table/jquery-ui-timepicker-addon.js deleted file mode 100644 index fc17c6cd2c..0000000000 --- a/webapp/src/main/webapp/console/sla/js/table/jquery-ui-timepicker-addon.js +++ /dev/null @@ -1,2103 +0,0 @@ -/* - * jQuery timepicker addon - * By: Trent Richardson [http://trentrichardson.com] - * Version 1.3 - * Last Modified: 05/05/2013 - * - * Copyright 2013 Trent Richardson - * You may use this project under MIT or GPL licenses. - * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt - * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt - */ - -/*jslint evil: true, white: false, undef: false, nomen: false */ - -(function($) { - - /* - * Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum call stack size exceeded" - */ - $.ui.timepicker = $.ui.timepicker || {}; - if ($.ui.timepicker.version) { - return; - } - - /* - * Extend jQueryUI, get it started with our version number - */ - $.extend($.ui, { - timepicker: { - version: "1.3" - } - }); - - /* - * Timepicker manager. - * Use the singleton instance of this class, $.timepicker, to interact with the time picker. - * Settings for (groups of) time pickers are maintained in an instance object, - * allowing multiple different settings on the same page. - */ - var Timepicker = function() { - this.regional = []; // Available regional settings, indexed by language code - this.regional[''] = { // Default regional settings - currentText: 'Now', - closeText: 'Done', - amNames: ['AM', 'A'], - pmNames: ['PM', 'P'], - timeFormat: 'HH:mm', - timeSuffix: '', - timeOnlyTitle: 'Choose Time', - timeText: 'Time', - hourText: 'Hour', - minuteText: 'Minute', - secondText: 'Second', - millisecText: 'Millisecond', - microsecText: 'Microsecond', - timezoneText: 'Time Zone', - isRTL: false - }; - this._defaults = { // Global defaults for all the datetime picker instances - showButtonPanel: true, - timeOnly: false, - showHour: null, - showMinute: null, - showSecond: null, - showMillisec: null, - showMicrosec: null, - showTimezone: null, - showTime: true, - stepHour: 1, - stepMinute: 1, - stepSecond: 1, - stepMillisec: 1, - stepMicrosec: 1, - hour: 0, - minute: 0, - second: 0, - millisec: 0, - microsec: 0, - timezone: null, - hourMin: 0, - minuteMin: 0, - secondMin: 0, - millisecMin: 0, - microsecMin: 0, - hourMax: 23, - minuteMax: 59, - secondMax: 59, - millisecMax: 999, - microsecMax: 999, - minDateTime: null, - maxDateTime: null, - onSelect: null, - hourGrid: 0, - minuteGrid: 0, - secondGrid: 0, - millisecGrid: 0, - microsecGrid: 0, - alwaysSetTime: true, - separator: ' ', - altFieldTimeOnly: true, - altTimeFormat: null, - altSeparator: null, - altTimeSuffix: null, - pickerTimeFormat: null, - pickerTimeSuffix: null, - showTimepicker: true, - timezoneList: null, - addSliderAccess: false, - sliderAccessArgs: null, - controlType: 'slider', - defaultValue: null, - parse: 'strict' - }; - $.extend(this._defaults, this.regional['']); - }; - - $.extend(Timepicker.prototype, { - $input: null, - $altInput: null, - $timeObj: null, - inst: null, - hour_slider: null, - minute_slider: null, - second_slider: null, - millisec_slider: null, - microsec_slider: null, - timezone_select: null, - hour: 0, - minute: 0, - second: 0, - millisec: 0, - microsec: 0, - timezone: null, - hourMinOriginal: null, - minuteMinOriginal: null, - secondMinOriginal: null, - millisecMinOriginal: null, - microsecMinOriginal: null, - hourMaxOriginal: null, - minuteMaxOriginal: null, - secondMaxOriginal: null, - millisecMaxOriginal: null, - microsecMaxOriginal: null, - ampm: '', - formattedDate: '', - formattedTime: '', - formattedDateTime: '', - timezoneList: null, - units: ['hour','minute','second','millisec', 'microsec'], - support: {}, - control: null, - - /* - * Override the default settings for all instances of the time picker. - * @param settings object - the new settings to use as defaults (anonymous object) - * @return the manager object - */ - setDefaults: function(settings) { - extendRemove(this._defaults, settings || {}); - return this; - }, - - /* - * Create a new Timepicker instance - */ - _newInst: function($input, o) { - var tp_inst = new Timepicker(), - inlineSettings = {}, - fns = {}, - overrides, i; - - for (var attrName in this._defaults) { - if(this._defaults.hasOwnProperty(attrName)){ - var attrValue = $input.attr('time:' + attrName); - if (attrValue) { - try { - inlineSettings[attrName] = eval(attrValue); - } catch (err) { - inlineSettings[attrName] = attrValue; - } - } - } - } - - overrides = { - beforeShow: function (input, dp_inst) { - if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) { - return tp_inst._defaults.evnts.beforeShow.call($input[0], input, dp_inst, tp_inst); - } - }, - onChangeMonthYear: function (year, month, dp_inst) { - // Update the time as well : this prevents the time from disappearing from the $input field. - tp_inst._updateDateTime(dp_inst); - if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) { - tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst); - } - }, - onClose: function (dateText, dp_inst) { - if (tp_inst.timeDefined === true && $input.val() !== '') { - tp_inst._updateDateTime(dp_inst); - } - if ($.isFunction(tp_inst._defaults.evnts.onClose)) { - tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst); - } - } - }; - for (i in overrides) { - if (overrides.hasOwnProperty(i)) { - fns[i] = o[i] || null; - } - } - - tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, overrides, { - evnts:fns, - timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker'); - }); - tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { - return val.toUpperCase(); - }); - tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { - return val.toUpperCase(); - }); - - // detect which units are supported - tp_inst.support = detectSupport( - tp_inst._defaults.timeFormat + - (tp_inst._defaults.pickerTimeFormat? tp_inst._defaults.pickerTimeFormat:'') + - (tp_inst._defaults.altTimeFormat? tp_inst._defaults.altTimeFormat:'')); - - // controlType is string - key to our this._controls - if(typeof(tp_inst._defaults.controlType) === 'string'){ - if(tp_inst._defaults.controlType == 'slider' && typeof(jQuery.ui.slider) === 'undefined'){ - tp_inst._defaults.controlType = 'select'; - } - tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType]; - } - // controlType is an object and must implement create, options, value methods - else{ - tp_inst.control = tp_inst._defaults.controlType; - } - - // prep the timezone options - var timezoneList = [-720,-660,-600,-570,-540,-480,-420,-360,-300,-270,-240,-210,-180,-120,-60, - 0,60,120,180,210,240,270,300,330,345,360,390,420,480,525,540,570,600,630,660,690,720,765,780,840]; - if (tp_inst._defaults.timezoneList !== null) { - timezoneList = tp_inst._defaults.timezoneList; - } - var tzl=timezoneList.length,tzi=0,tzv=null; - if (tzl > 0 && typeof timezoneList[0] !== 'object') { - for(; tzi tp_inst._defaults.hourMax? tp_inst._defaults.hourMax : tp_inst._defaults.hour; - tp_inst.minute = tp_inst._defaults.minute < tp_inst._defaults.minuteMin? tp_inst._defaults.minuteMin : - tp_inst._defaults.minute > tp_inst._defaults.minuteMax? tp_inst._defaults.minuteMax : tp_inst._defaults.minute; - tp_inst.second = tp_inst._defaults.second < tp_inst._defaults.secondMin? tp_inst._defaults.secondMin : - tp_inst._defaults.second > tp_inst._defaults.secondMax? tp_inst._defaults.secondMax : tp_inst._defaults.second; - tp_inst.millisec = tp_inst._defaults.millisec < tp_inst._defaults.millisecMin? tp_inst._defaults.millisecMin : - tp_inst._defaults.millisec > tp_inst._defaults.millisecMax? tp_inst._defaults.millisecMax : tp_inst._defaults.millisec; - tp_inst.microsec = tp_inst._defaults.microsec < tp_inst._defaults.microsecMin? tp_inst._defaults.microsecMin : - tp_inst._defaults.microsec > tp_inst._defaults.microsecMax? tp_inst._defaults.microsecMax : tp_inst._defaults.microsec; - tp_inst.ampm = ''; - tp_inst.$input = $input; - - if (o.altField) { - tp_inst.$altInput = $(o.altField).css({ - cursor: 'pointer' - }).focus(function() { - $input.trigger("focus"); - }); - } - - if (tp_inst._defaults.minDate === 0 || tp_inst._defaults.minDateTime === 0) { - tp_inst._defaults.minDate = new Date(); - } - if (tp_inst._defaults.maxDate === 0 || tp_inst._defaults.maxDateTime === 0) { - tp_inst._defaults.maxDate = new Date(); - } - - // datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime.. - if (tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) { - tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime()); - } - if (tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date) { - tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime()); - } - if (tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date) { - tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime()); - } - if (tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) { - tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime()); - } - tp_inst.$input.bind('focus', function() { - tp_inst._onFocus(); - }); - - return tp_inst; - }, - - /* - * add our sliders to the calendar - */ - _addTimePicker: function(dp_inst) { - var currDT = (this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val(); - - this.timeDefined = this._parseTime(currDT); - this._limitMinMaxDateTime(dp_inst, false); - this._injectTimePicker(); - }, - - /* - * parse the time string from input value or _setTime - */ - _parseTime: function(timeString, withDate) { - if (!this.inst) { - this.inst = $.datepicker._getInst(this.$input[0]); - } - - if (withDate || !this._defaults.timeOnly) { - var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat'); - try { - var parseRes = parseDateTimeInternal(dp_dateFormat, this._defaults.timeFormat, timeString, $.datepicker._getFormatConfig(this.inst), this._defaults); - if (!parseRes.timeObj) { - return false; - } - $.extend(this, parseRes.timeObj); - } catch (err) { - $.timepicker.log("Error parsing the date/time string: " + err + - "\ndate/time string = " + timeString + - "\ntimeFormat = " + this._defaults.timeFormat + - "\ndateFormat = " + dp_dateFormat); - return false; - } - return true; - } else { - var timeObj = $.datepicker.parseTime(this._defaults.timeFormat, timeString, this._defaults); - if (!timeObj) { - return false; - } - $.extend(this, timeObj); - return true; - } - }, - - /* - * generate and inject html for timepicker into ui datepicker - */ - _injectTimePicker: function() { - var $dp = this.inst.dpDiv, - o = this.inst.settings, - tp_inst = this, - litem = '', - uitem = '', - show = null, - max = {}, - gridSize = {}, - size = null, - i=0, - l=0; - - // Prevent displaying twice - if ($dp.find("div.ui-timepicker-div").length === 0 && o.showTimepicker) { - var noDisplay = ' style="display:none;"', - html = '
' + '
' + o.timeText + '
' + - '
'; - - // Create the markup - for(i=0,l=this.units.length; i' + o[litem +'Text'] + '' + - '
'; - - if (show && o[litem+'Grid'] > 0) { - html += '
'; - - if(litem == 'hour'){ - for (var h = o[litem+'Min']; h <= max[litem]; h += parseInt(o[litem+'Grid'], 10)) { - gridSize[litem]++; - var tmph = $.datepicker.formatTime(this.support.ampm? 'hht':'HH', {hour:h}, o); - html += ''; - } - } - else{ - for (var m = o[litem+'Min']; m <= max[litem]; m += parseInt(o[litem+'Grid'], 10)) { - gridSize[litem]++; - html += ''; - } - } - - html += '
' + tmph + '' + ((m < 10) ? '0' : '') + m + '
'; - } - html += '
'; - } - - // Timezone - var showTz = o.showTimezone !== null? o.showTimezone : this.support.timezone; - html += '
' + o.timezoneText + '
'; - html += '
'; - - // Create the elements from string - html += '
'; - var $tp = $(html); - - // if we only want time picker... - if (o.timeOnly === true) { - $tp.prepend('
' + '
' + o.timeOnlyTitle + '
' + '
'); - $dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide(); - } - - // add sliders, adjust grids, add events - for(i=0,l=tp_inst.units.length; i 0) { - size = 100 * gridSize[litem] * o[litem+'Grid'] / (max[litem] - o[litem+'Min']); - $tp.find('.ui_tpicker_'+litem+' table').css({ - width: size + "%", - marginLeft: o.isRTL? '0' : ((size / (-2 * gridSize[litem])) + "%"), - marginRight: o.isRTL? ((size / (-2 * gridSize[litem])) + "%") : '0', - borderCollapse: 'collapse' - }).find("td").click(function(e){ - var $t = $(this), - h = $t.html(), - n = parseInt(h.replace(/[^0-9]/g),10), - ap = h.replace(/[^apm]/ig), - f = $t.data('for'); // loses scope, so we use data-for - - if(f == 'hour'){ - if(ap.indexOf('p') !== -1 && n < 12){ - n += 12; - } - else{ - if(ap.indexOf('a') !== -1 && n === 12){ - n = 0; - } - } - } - - tp_inst.control.value(tp_inst, tp_inst[f+'_slider'], litem, n); - - tp_inst._onTimeChange(); - tp_inst._onSelectHandler(); - }).css({ - cursor: 'pointer', - width: (100 / gridSize[litem]) + '%', - textAlign: 'center', - overflow: 'hidden' - }); - } // end if grid > 0 - } // end for loop - - // Add timezone options - this.timezone_select = $tp.find('.ui_tpicker_timezone').append('').find("select"); - $.fn.append.apply(this.timezone_select, - $.map(o.timezoneList, function(val, idx) { - return $("
")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m
")[0];w=d[m+ -1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= -1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, -g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, -a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); -return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), -"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); -null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| -(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, -b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= -0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= -q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= -"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): -""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> -d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= -0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); -return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= -100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? -"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, -b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, -g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, -g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= -k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), -k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, -fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= -n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< -h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; -for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& -L(jQuery)})(window,document); diff --git a/webapp/src/main/webapp/console/sla/oozie-sla.html b/webapp/src/main/webapp/console/sla/oozie-sla.html deleted file mode 100644 index 6137eb6a3c..0000000000 --- a/webapp/src/main/webapp/console/sla/oozie-sla.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
- - - - - -
- - - - -
-
- - - - - - -
-
- - - - - - - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
- - - diff --git a/webapp/src/main/webapp/index.jsp b/webapp/src/main/webapp/index.jsp deleted file mode 100644 index 75f8e9471e..0000000000 --- a/webapp/src/main/webapp/index.jsp +++ /dev/null @@ -1,85 +0,0 @@ - - - - - Oozie Web Console - - - - - - - - - - - - - - - - - - - - - - - - <%@ page - import="org.apache.oozie.sla.service.SLAService" - import="org.apache.oozie.service.InstrumentationService" - import="org.apache.oozie.service.MetricsInstrumentationService" - import="org.apache.oozie.service.AuthorizationService" - import="org.apache.oozie.service.Services" - - %> - <% - boolean isSLAServiceEnabled = SLAService.isEnabled(); - boolean isInstrumentationServiceEnabled = InstrumentationService.isEnabled(); - boolean isMetricsInstrumentationServiceEnabled = MetricsInstrumentationService.isEnabled(); - boolean showSystemInfo = !Services.get().get(AuthorizationService.class).isAuthorizedSystemInfo(); - %> -
-
- - - -
-
-
-
- - \ No newline at end of file diff --git a/webapp/src/main/webapp/oozie-console.css b/webapp/src/main/webapp/oozie-console.css deleted file mode 100644 index 307b7da082..0000000000 --- a/webapp/src/main/webapp/oozie-console.css +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.job-filter { - font-weight:bold !important; - color:#b03060; -} -.ext-strict .ext-safari .x-small-editor .x-form-text { - height: 18px !important; -} -.ext-safari .x-form-field-wrap .x-form-trigger{ - position:static; - top:auto; - vertical-align:top; -} -.spaces{ - padding-right: 15px; -} diff --git a/webapp/src/main/webapp/oozie-console.js b/webapp/src/main/webapp/oozie-console.js deleted file mode 100644 index 541eae74f4..0000000000 --- a/webapp/src/main/webapp/oozie-console.js +++ /dev/null @@ -1,3346 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Warn about dependencies; this has to be done on .ready so that the divs will all be loaded and exist. Otherwise, it won't find -// the 'dependencies' element -$(document).ready(function() { - if (typeof Ext == 'undefined'){ - var warning = 'Missing JavaScript dependencies.'; - var dependencies = document.getElementById('dependencies'); - if (dependencies){ - warning += "\n" + (dependencies.innerText || dependencies.textContent); - dependencies.style.display = ''; - } - throw new Error(warning); - } -}); - -Ext.BLANK_IMAGE_URL = 'blank.gif'; - -Ext.override(Ext.Component, { - saveState : function() { - if (Ext.state.Manager && this.stateful !== false) { - var state = this.getState(); - if (this.fireEvent('beforestatesave', this, state) !== false) { - Ext.state.Manager.set(this.stateId || this.id, state); - this.fireEvent('statesave', this, state); - } - } - }, - stateful : false -}); - -function getLogs(url, searchFilter, logStatus, textArea, shouldParseResponse, errorMsg) { - textArea.getEl().dom.value = ''; - if (searchFilter) { - url = url + "&logfilter=" + searchFilter; - } - logStatus.getEl().dom.innerText = "Log status : Loading..."; - - if (!errorMsg) { - errorMsg = "Fatal Error. Can't load logs."; - } - if (!window.XMLHttpRequest) { - Ext.Ajax.request({ - url : url, - timeout : 300000, - success : function(response, request) { - if (shouldParseResponse) { - processAndDisplayLog(response.responseText, textArea); - logStatus.getEl().dom.innerText = "Log status : Loading... done"; - - } else { - textArea.getEl().dom.value = response.responseText; - logStatus.getEl().dom.innerText = "Log status : Loading... done"; - } - }, - - failure : function() { - textArea.getEl().dom.value = errorMsg; - logStatus.getEl().dom.innerText = "Log status : Errored out"; - } - }); - - } else { - var xhr = new XMLHttpRequest(); - xhr.previous_text_length = 0; - - xhr.onerror = function() { - textArea.getEl().dom.value = errorMsg; - }; - xhr.onreadystatechange = function() { - try { - if (xhr.readyState > 2 && xhr.status == 200) { - var new_response = xhr.responseText - .substring(xhr.previous_text_length); - textArea.getEl().dom.value += new_response; - xhr.previous_text_length = xhr.responseText.length; - - } - if (xhr.status != 200 && xhr.status != 0) { - var errorText = xhr.getResponseHeader('oozie-error-message'); - textArea.getEl().dom.value = "Error :\n" + (errorText ? errorText : xhr.responseText); - logStatus.getEl().dom.innerText = "Log status : Errored out"; - - } - if (xhr.readyState == 4 && xhr.status == 200) { - logStatus.getEl().dom.innerText = "Log status : Loading... done"; - } - } catch (e) { - } - }; - xhr.open("GET", url, true); - xhr.send(); - } -} - -function processAndDisplayLog(response, textArea) { - var responseLength = response.length; - var twentyFiveMB = 25 * 1024 * 1024; - if (responseLength > twentyFiveMB) { - response = response.substring(responseLength - twentyFiveMB, - responseLength); - response = response.substring(response.indexOf("\n") + 1, - responseLength); - textArea.getEl().dom.value = response; - } else { - textArea.getEl().dom.value = response; - } -} - -var oozie_host = ""; -var flattenedObject; - -function getOozieClientVersion() { - return 2; -} - -function getOozieVersionsUrl() { - var ctxtStr = location.pathname; - return oozie_host + ctxtStr + "versions"; -} - -function getOozieBase() { - var ctxtStr = location.pathname; - return oozie_host + ctxtStr.replace(/[-]*console/, "") + "v" + getOozieClientVersion() + "/"; -} - -function getReqParam(name) { - name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); - var regexS = "[\\?&]" + name + "=([^&#]*)"; - var regex = new RegExp(regexS); - var results = regex.exec(window.location.href); - if (results == null) { - return ""; - } - else { - return results[1]; - } -} - -// renderer functions -function valueRenderer(value, metadata, record, row, col, store) { - if (value.length > 60) { - return value.substring(0, 60) + " ..."; - } - else { - return value; - } -} - -function dateTime(value, metadata, record, row, col, store) { - return value; -} - -function checkUrl(value, metadata, record, row, col, store) { - if (value != null) { - return "Y"; - } - else { - return "N"; - } -} - -function getTimeZone() { - Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - return Ext.state.Manager.get("TimezoneId","GMT"); -} - -function getUserName() { - Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - return Ext.state.Manager.get("UserName", null); -} - -function getCustomFilter() { - var filter = ''; - var userName = getUserName(); - if(userName) { - filter = "user=" + userName; - } - Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - var customFilter = Ext.state.Manager.get("GlobalCustomFilter", null); - if (customFilter) { - if (filter) { - filter = filter + ";" + customFilter; - } else { - filter = customFilter; - } - } - return filter; -} - -// code imported and modified from Handlebars escapeExpression utility -const escape = { - '&': '&', - '<': '<', - '>': '>', - '`': '`', -}; - -function escapeChar(chr) { - return escape[chr]; -} - -const badChars = /[&<>`]/g, - possible = /[&<>`]/; - -function escapeExpression(text) { - if (!possible.test(text)) { - return text; - } - return text.replace(badChars, escapeChar); -} - -function convertStatusToUpperCaseAndEscapeHtml(filterText) { - var converted = escapeExpression(filterText).replace(/status=([a-zA-Z]+)/g, function(){ - var text = arguments[1]; - return "status="+ text.toUpperCase(); - }); - return converted; -} - -if ( !String.prototype.endsWith ) { - String.prototype.endsWith = function(pattern) { - var d = this.length - pattern.length; - return d >= 0 && this.lastIndexOf(pattern) === d; - }; -} - -// Makes a tree node from an XML -function treeNodeFromXml(XmlEl) { - var t = ((XmlEl.nodeType == 3) ? XmlEl.nodeValue : XmlEl.tagName); - if (t.replace(/\s/g, '').length == 0) { - return null; - } - var result = new Ext.tree.TreeNode({ - text: t - }); - // For Elements, process attributes and children - if (XmlEl.nodeType == 1) { - Ext.each(XmlEl.attributes, function(a) { - result.appendChild(new Ext.tree.TreeNode({ - text: a.nodeName - })).appendChild(new Ext.tree.TreeNode({ - text: a.nodeValue - })); - }); - Ext.each(XmlEl.childNodes, function(el) { - var c = treeNodeFromXml(el); - if (c) - result.appendChild(c); - }); - } - return result; -} - -function treeNodeFromJsonInstrumentation(json, rootText) { - var result = new Ext.tree.TreeNode({ - text: rootText - }); - // For Elements, process attributes and children - if (typeof json === 'object') { - for (var i in json) { - if (json[i]) { - if (typeof json[i] == 'object') { - var c; - if (json[i]['group']) { - c = treeNodeFromJsonInstrumentation(json[i]['data'], json[i]['group']); - } - else { - c = treeNodeFromJsonInstrumentation(json[i], json[i]['name']); - } - if (c) - result.appendChild(c); - } - else if (typeof json[i] != 'function') { - result.appendChild(new Ext.tree.TreeNode({ - text: i + " -> " + json[i] - })); - } - } - else { - result.appendChild(new Ext.tree.TreeNode({ - text: i + " -> " + json[i] - })); - } - } - } - else { - result.appendChild(new Ext.tree.TreeNode({ - text: json - })); - } - return result; -} - -function treeNodeFromJsonMetrics(json, rootText) { - var result = new Ext.tree.TreeNode({ - text: rootText - }); - // For Elements, process attributes and children - if (typeof json === 'object') { - for (var i in json) { - if (json[i]) { - if (typeof json[i] == 'object') { - var c; - if (json[i]) { - c = treeNodeFromJsonMetrics(json[i], i); - if (c) { - result.appendChild(c); - } - } - } - else if (typeof json[i] != 'function') { - result.appendChild(new Ext.tree.TreeNode({ - text: i + " -> " + json[i] - })); - } - } - else { - result.appendChild(new Ext.tree.TreeNode({ - text: i + " -> " + json[i] - })); - } - } - } - else { - result.appendChild(new Ext.tree.TreeNode({ - text: json - })); - } - return result; -} - -// Common stuff to get a paging toolbar for a data store -function getPagingBar(dataStore) { - var pagingBar = new Ext.PagingToolbar({ - pageSize: 50, - store: dataStore, - displayInfo: true, - displayMsg: '{0} - {1} of {2}', - emptyMsg: "No data" - }); - pagingBar.paramNames = { - start: 'offset', - limit: 'len' - }; - return pagingBar; -} - -//Image object display -Ext.ux.Image = Ext.extend(Ext.BoxComponent, { - - url: Ext.BLANK_IMAGE_URL, //for initial src value - - autoEl: { - tag: 'img', - src: Ext.BLANK_IMAGE_URL - }, - - initComponent: function() { - Ext.ux.Image.superclass.initComponent.call(this); - this.addEvents('load'); - }, - -// Add our custom processing to the onRender phase. -// We add a ‘load’ listener to our element. - onRender: function() { - Ext.ux.Image.superclass.onRender.apply(this, arguments); - this.el.on('load', this.onLoad, this); - if(this.url){ - this.setSrc(this.url); - } - }, - - onLoad: function() { - this.fireEvent('load', this); - }, - - setSrc: function(src) { - this.el.dom.src = src; - }, - setAlt: function(altText) { - this.autoEl.alt=altText; - }, - - onError: function(onErrorTxt) { - this.autoEl.onError=onErrorTxt; - } -}); - -function alertOnDAGError(){ - alert('Runtime error : Can\'t display the graph. Number of actions are more than dispaly limit 25'); -} -// stuff to show details of a job -function jobDetailsPopup(response, request) { - var jobDefinitionArea = new Ext.form.TextArea({ - fieldLabel: 'Definition', - editable: false, - name: 'definition', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "Loading..." - }); - var jobLogArea = new Ext.form.TextArea({ - fieldLabel: 'Logs', - editable: false, - name: 'logs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "To optimize log searching, you can provide search filter options as opt1=val1;opt2=val1;opt3=val1.\n" + - "Available options are recent, start, end, loglevel, text, limit and debug.\n" + - "For more detail refer documentation (/oozie/docs/DG_CommandLineTool.html#Filtering_the_server_logs_with_logfilter_options)" - }); - - var jobErrorLogArea = new Ext.form.TextArea({ - fieldLabel: 'ErrorLogs', - editable: false, - name: 'errorlogs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "" - }); - var jobAuditLogArea = new Ext.form.TextArea({ - fieldLabel: 'AuditLogs', - editable: false, - name: 'auditlogs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "" - }); - - - function fetchDefinition(workflowId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + workflowId + "?show=definition", - timeout: 300000, - success: function(response, request) { - jobDefinitionArea.setRawValue(response.responseText); - } - - }); - } - - function fetchErrorLogs(workflowId, errorLogStatus) { - getLogs(getOozieBase() + 'job/' + workflowId + "?show=errorlog", null, errorLogStatus, jobErrorLogArea, false, null); - } - - function fetchAuditLogs(workflowId, auditLogStatus) { - getLogs(getOozieBase() + 'job/' + workflowId + "?show=auditlog", null, auditLogStatus, jobAuditLogArea, false, null); - } - - function fetchLogs(workflowId, logStatus) { - getLogs(getOozieBase() + 'job/' + workflowId + "?show=log", searchFilterBox.getValue(), logStatus, jobLogArea, false, null); - - } - var jobDetails = JSON.parse(response.responseText); - var workflowId = jobDetails["id"]; - var appName = jobDetails["appName"]; - var jobActionStatus = new Ext.data.JsonStore({ - data: jobDetails["actions"], - fields: ['id', 'name', 'type', 'startTime', 'consoleUrl', 'endTime', 'externalId', 'status', 'userRetryCount' ,'trackerUri', - 'workflowId', 'errorCode', 'errorMessage', 'conf', 'transition', 'externalStatus', 'externalChildIDs'] - }); - - var formFieldSet = new Ext.form.FieldSet({ - autoHeight: true, - defaultType: 'textfield', - items: [ { - fieldLabel: 'Job Id', - editable: false, - name: 'id', - width: 400, - value: jobDetails["id"] - }, { - fieldLabel: 'Name', - editable: false, - name: 'appName', - width: 400, - value: jobDetails["appName"] - }, { - fieldLabel: 'App Path', - editable: false, - name: 'appPath', - width: 400, - value: jobDetails["appPath"] - }, { - fieldLabel: 'Run', - editable: false, - name: 'run', - width: 400, - value: jobDetails["run"] - }, { - fieldLabel: 'Status', - editable: false, - name: 'status', - width: 400, - value: jobDetails["status"] - }, { - fieldLabel: 'User', - editable: false, - name: 'user', - width: 400, - value: jobDetails["user"] - }, { - fieldLabel: 'Group', - editable: false, - name: 'group', - width: 400, - value: jobDetails["group"] - }, new Ext.form.TriggerField({ - fieldLabel: 'Parent Coord', - editable: false, - name: 'parentId', - width: 400, - value: jobDetails["parentId"], - triggerClass: 'x-form-search-trigger', - onTriggerClick: function() { - if (jobDetails["parentId"]) { - var jobId = jobDetails["parentId"]; - if(jobId.indexOf("-C@") > 0){ - jobId = jobId.substring(0, jobId.indexOf("-C@") + 2) - } - window.open(oozie_host + "?job=" + jobId); - } - } - }), { - fieldLabel: 'Create Time', - editable: false, - name: 'createdTime', - width: 400, - value: jobDetails["createdTime"] - }, { - fieldLabel: 'Start Time', - editable: false, - name: 'startTime', - width: 400, - value: jobDetails["startTime"] - }, { - fieldLabel: 'Last Modified', - editable: false, - name: 'lastModTime', - width: 400, - value: jobDetails["lastModTime"] - },{ - fieldLabel: 'End Time', - editable: false, - name: 'endTime', - width: 400, - value: jobDetails["endTime"] - } ] - }); - var fs = new Ext.FormPanel({ - frame: true, - labelAlign: 'right', - labelWidth: 85, - items: [formFieldSet], - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + workflowId + "?timezone=" + getTimeZone(), - timeout: 300000, - success: function(response, request) { - jobDetails = JSON.parse(response.responseText); - jobActionStatus.loadData(jobDetails["actions"]); - fs.getForm().setValues(jobDetails); - } - - }); - } - }] - - }); - var jobs_grid = new Ext.grid.GridPanel({ - store: jobActionStatus, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'id', - header: "Action Id", - width: 300, - sortable: true, - dataIndex: 'id' - }, { - header: "Name", - width: 80, - sortable: true, - dataIndex: 'name' - }, { - header: "Type", - width: 80, - sortable: true, - dataIndex: 'type' - }, { - header: "Status", - width: 120, - sortable: true, - dataIndex: 'status' - }, { - header: "Transition", - width: 80, - sortable: true, - dataIndex: 'transition' - }, { - header: "StartTime", - width: 170, - sortable: true, - dataIndex: 'startTime' - }, { - header: "EndTime", - width: 170, - sortable: true, - dataIndex: 'endTime' - } ], - stripeRows: true, - // autoHeight: true, - autoScroll: true, - frame: true, - height: 400, - width: 1600, - title: 'Actions', - listeners: { - cellclick: { - fn: showActionContextMenu - } - } - - }); - function showActionContextMenu(thisGrid, rowIndex, cellIndex, e) { - var actionStatus = thisGrid.store.data.items[rowIndex].data; - actionDetailsGridWindow(actionStatus); - - function actionDetailsGridWindow(actionStatus) { - var formFieldSet = new Ext.form.FieldSet({ - title: actionStatus.actionName, - autoHeight: true, - width: 520, - defaultType: 'textfield', - items: [ { - fieldLabel: 'Name', - editable: false, - name: 'name', - width: 400, - value: actionStatus["name"] - }, { - fieldLabel: 'Type', - editable: false, - name: 'type', - width: 400, - value: actionStatus["type"] - }, { - fieldLabel: 'Transition', - editable: false, - name: 'transition', - width: 400, - value: actionStatus["transition"] - }, { - fieldLabel: 'Start Time', - editable: false, - name: 'startTime', - width: 400, - value: actionStatus["startTime"] - }, { - fieldLabel: 'End Time', - editable: false, - name: 'endTime', - width: 400, - value: actionStatus["endTime"] - }, { - fieldLabel: 'Status', - editable: false, - name: 'status', - width: 400, - value: actionStatus["status"] - }, { - fieldLabel: 'Retries', - editable: false, - width: 400, - name: 'userRetryCount', - value: actionStatus["userRetryCount"] - }, { - fieldLabel: 'Error Code', - editable: false, - name: 'errorCode', - width: 400, - value: actionStatus["errorCode"] - }, { - fieldLabel: 'Error Message', - editable: false, - name: 'errorMessage', - width: 400, - value: actionStatus["errorMessage"] - }, { - fieldLabel: 'External ID', - editable: false, - name: 'externalId', - width: 400, - value: actionStatus["externalId"] - }, { - fieldLabel: 'External Status', - editable: false, - name: 'externalStatus', - width: 400, - value: actionStatus["externalStatus"] - }, new Ext.form.TriggerField({ - fieldLabel: 'Console URL', - editable: false, - name: 'consoleUrl', - width: 400, - value: actionStatus["consoleUrl"], - triggerClass: 'x-form-search-trigger', - onTriggerClick: function() { - window.open(actionStatus["consoleUrl"]); - } - - }), { - fieldLabel: 'Tracker URI', - editable: false, - name: 'trackerUri', - width: 400, - value: actionStatus["trackerUri"] - - } - ]}); - var detail = new Ext.FormPanel({ - frame: true, - labelAlign: 'right', - labelWidth: 85, - //width: 540, - items: [formFieldSet] - }); - var actionInfoPanel = new Ext.TabPanel({ - activeTab: 0, - autoHeight: true, - deferredRender: false, - items: [ { - title: 'Action Info', - items: detail - }, { - title: 'Action Configuration', - items: new Ext.form.TextArea({ - fieldLabel: 'Configuration', - editable: false, - name: 'config', - height: 350, - width: 540, - autoScroll: true, - value: actionStatus["conf"] - }) - - }], - tbar: [{ - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - var a = win.items.get(0).getActiveTab(); - if (a.title == "Action retries") { - fetchActionRetries(workflowId + "@" + actionStatus["name"]); - } - else { - refreshActionDetails(workflowId + "@" + actionStatus["name"], detail, urlUnit); - } - } - }] - }); - var actionRetries; - var urlUnit = new Ext.FormPanel(); - populateUrlUnit(actionStatus["consoleUrl"], actionStatus["externalChildIDs"], urlUnit); - var win = new Ext.Window({ - title: 'Action (Name: ' + actionStatus["name"] + '/JobId: ' + workflowId + ')', - closable: true, - width: 560, - autoHeight: true, - plain: true, - items: [actionInfoPanel] - }); - - var isLoadedActionRetries = false; - - actionInfoPanel.addListener("tabchange", function(panel, selectedTab) { - if (selectedTab.title == "Action retries") { - if ( !isLoadedActionRetries ) { - fetchActionRetries(workflowId + "@" + actionStatus["name"]); - isLoadedActionRetries = true; - } - } - }); - - var reTriesPanel = new Ext.TabPanel(); - - function fetchActionRetries(actionId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + actionId + "?show=retries", - timeout: 300000, - success: function(response, request) { - actionRetries = JSON.parse(response.responseText); - var currentTabs = []; - reTriesPanel.items.each(function(item) { - currentTabs.push(item); - }); - populateRetries(actionStatus, actionRetries, reTriesPanel); - currentTabs.forEach(function(item) { - reTriesPanel.remove(item); - }) - } - }); - } - populateRetries(actionStatus, actionRetries, reTriesPanel); - - function populateRetries(actionStatus, actionRetries, reTriesPanel) { - var retryCount = getRetryCount(actionStatus, actionRetries); - for (i = 0; i < retryCount; i++) { - var attemptNumber = ' Attempt - ' + (i + 1); - if (actionRetries) { - var retriesJson = actionRetries['retries']; - attemptNumber = ' Attempt - ' + retriesJson[i]["attempt"]; - } - var form = new Ext.FormPanel({ - title: attemptNumber, - width: 500, - height: 400, - style: 'background-color: #eaf1fb' - }); - if (actionRetries) { - var retriesJson = actionRetries['retries']; - addTextField(form, "Start Time", "startTime", retriesJson[i]); - addTextField(form, "End Time", "endTime", retriesJson[i]); - populateRetriesUrl(form, "Console URL", "consoleUrl", retriesJson[i]); - populateRetriesChildUrl(form, retriesJson[i]); - } - reTriesPanel.add(form); - form.show(); - } - reTriesPanel.doLayout(); - } - - function getRetryCount(actionStatus, actionRetries) { - if (actionRetries) { - if (actionRetries['retries']) { - return actionRetries['retries'].length; - } - } else { - return actionStatus["userRetryCount"]; - } - } - function populateRetriesUrl(form, label, key, retriesObj) { - if ( retriesObj[key] ) { - var textUrl = new Ext.form.TriggerField({ - fieldLabel: label, - editable: false, - width: 400, - height: 100, - value: retriesObj[key], - triggerClass: 'x-form-search-trigger', - onTriggerClick: function() { - window.open(retriesObj[key]); - } - }); - form.add(textUrl); - } - else { - addTextField(form, label, key, retriesObj); - } - } - - function addTextField(form, label, key, retriesObj) { - if (retriesObj[key]) { - var textUrl = new Ext.form.TextField({ - fieldLabel: label, - width: 400, - value: retriesObj[key] - }); - form.add(textUrl); - } else { - var textUrl = new Ext.form.TextField({ - fieldLabel: label, - width: 400, - value: 'n/a' - }); - form.add(textUrl); - } - } - - function populateRetriesChildUrl(form, retriesObj) { - populateUrlUnit(retriesObj["consoleUrl"], retriesObj["externalChildIDs"], form); - } - - // Tab to show list of child Job URLs - var childJobsItem = { - title: 'Child Job URLs', - autoScroll: true, - frame: true, - labelAlign: 'right', - labelWidth: 70, - height: 350, - width: 540, - items: urlUnit - }; - if (actionStatus.type == "pig" || actionStatus.type == "hive" || actionStatus.type == "map-reduce" || - actionStatus.type == "hive2" || actionStatus.type == "sqoop" || actionStatus.type == "distcp" || - actionStatus.type == "spark") { - var tabPanel = win.items.get(0); - tabPanel.add(childJobsItem); - } - // Tab to show list of Retries - var retriesActionItem = { - title: 'Action retries', - autoScroll: true, - frame: true, - labelAlign: 'right', - labelWidth: 70, - height: 350, - width: 540, - items: reTriesPanel - }; - if (actionStatus["userRetryCount"] > 0) { - var tabPanel = win.items.get(0); - tabPanel.add(retriesActionItem); - } - win.setPosition(50, 50); - win.show(); - } - } - function populateUrlUnit(consoleUrl, externalChildIDs, urlUnit) { - if (consoleUrl && externalChildIDs && externalChildIDs != "null") { - var urlPrefix = consoleUrl.trim().split(/_/)[0]; - // externalChildIds is a comma-separated string of each child job - // ID. - // Create URL list by appending jobID portion after stripping "job" - var jobIds = externalChildIDs.split(/,/); - var count = 1; - jobIds.forEach(function(jobId) { - jobId = jobId.trim().split(/job/); - if (jobId.length > 1) { - jobId = jobId[1]; - var jobUrl = new Ext.form.TriggerField({ - fieldLabel : 'Child Job ' + count, - editable : false, - name : 'childJobURLs', - width : 400, - value : urlPrefix + jobId, - triggerClass : 'x-form-search-trigger', - onTriggerClick : function() { - window.open(urlPrefix + jobId); - } - }); - if (jobId != undefined) { - urlUnit.add(jobUrl); - count++; - } - } - }); - if (count == 1) { - var note = new Ext.form.TextField({ - fieldLabel : 'Child Job', - value : 'n/a' - }); - urlUnit.add(note); - } - } else { - var note = new Ext.form.TextField({ - fieldLabel : 'Child Job', - value : 'n/a' - }); - urlUnit.add(note); - } - } - - function populateRetries(actionStatus, urlUnit) { - var consoleUrl = actionStatus["consoleUrl"]; - var externalChildIDs = actionStatus["externalChildIDs"]; - if (consoleUrl && externalChildIDs && externalChildIDs != "null") { - var urlPrefix = consoleUrl.trim().split(/_/)[0]; - // externalChildIds is a comma-separated string of each child job - // ID. - // Create URL list by appending jobID portion after stripping "job" - var jobIds = externalChildIDs.split(/,/); - var count = 1; - jobIds.forEach(function(jobId) { - jobId = jobId.trim().split(/job/); - if (jobId.length > 1) { - jobId = jobId[1]; - var jobUrl = new Ext.form.TriggerField({ - fieldLabel : 'Child Job ' + count, - editable : false, - name : 'childJobURLs', - width : 400, - value : urlPrefix + jobId, - triggerClass : 'x-form-search-trigger', - onTriggerClick : function() { - window.open(urlPrefix + jobId); - } - }); - if (jobId != undefined) { - urlUnit.add(jobUrl); - count++; - } - } - }); - if (count == 1) { - var note = new Ext.form.TextField({ - fieldLabel : 'Child Job', - value : 'n/a' - }); - urlUnit.add(note); - } - } else { - var note = new Ext.form.TextField({ - fieldLabel : 'Child Job', - value : 'n/a' - }); - urlUnit.add(note); - } - } - - function refreshActionDetails(actionId, detail, urlUnit) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + actionId + "?timezone=" + getTimeZone(), - timeout: 300000, - success: function(response, request) { - var results = JSON.parse(response.responseText); - detail.getForm().setValues(results); - urlUnit.getForm().setValues(results); - populateUrlUnit(results["consoleUrl"], results["externalChildIDs"], urlUnit); - } - }); - } - - function createAndAddDagImage() { - var dagImage= new Ext.ux.Image({ - id: 'dagImage', - url: getOozieBase() + 'job/' + workflowId + '?show=graph&format=svg&show-kill=true&v=' + Date.now(), - autoScroll: true - }); - dagImage.onError('alertOnDAGError()'); - imageContainer.add(dagImage); - imageContainer.syncSize(); - imageContainer.doLayout(true); - } - - var imageContainer = new Ext.Container({ - autoEl: {}, - height: '1000px', - weidht: '1000px', - autoScroll: true, - style : { overflow: 'auto', overflowX: 'hidden' } - }); - - var searchFilter = new Ext.form.Label({ - text : 'Enter Search Filter' - }); - - var searchFilterBox = new Ext.form.TextField({ - fieldLabel: 'searchFilterBox', - name: 'searchFilterBox', - width: 350, - value: '' - }); - - var logStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var errorLogStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var auditLogStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - - var getLogButton = new Ext.Button({ - text: 'Get Logs', - ctCls: 'x-btn-over', - handler: function() { - fetchLogs(workflowId, logStatus); - } - }); - - var isLoadedDAG = false; - var isErrorLogLoaded = false; - var isAuditLogLoaded = false; - - var jobDetailsTab = new Ext.TabPanel({ - activeTab: 0, - autoHeight: true, - deferredRender: false, - items: [ { - title: 'Job Info', - items: fs - - }, { - title: 'Job Definition', - items: jobDefinitionArea - }, { - title: 'Job Configuration', - items: new Ext.form.TextArea({ - fieldLabel: 'Configuration', - editable: false, - name: 'config', - width: 1035, - height: 430, - autoScroll: true, - value: jobDetails["conf"] - }) - }, { - title: 'Job Log', - items: jobLogArea, - tbar: [ searchFilter, searchFilterBox, getLogButton, {xtype: 'tbfill'}, logStatus] - }, - { - title: 'Job Error Log', - items: jobErrorLogArea, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - fetchErrorLogs(workflowId, errorLogStatus); - } - }, {xtype: 'tbfill'}, errorLogStatus] - }, - { - title: 'Job Audit Log', - items: jobAuditLogArea, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - fetchAuditLogs(workflowId, auditLogStatus); - } - }, {xtype: 'tbfill'}, auditLogStatus] - }, - { - title: 'Job DAG', - items: imageContainer, - tbar: [{ - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - var child = imageContainer.findById('dagImage'); - if (child != null) { - imageContainer.remove(child); - } - createAndAddDagImage(); - } - }] - }] - }); - jobDetailsTab.addListener("tabchange", function(panel, selectedTab) { - if (selectedTab.title == "Job Info") { - jobs_grid.setVisible(true); - return; - } - else if (selectedTab.title == 'Job Definition') { - fetchDefinition(workflowId); - } - else if (selectedTab.title == 'Job Error Log') { - if(!isErrorLogLoaded){ - fetchErrorLogs(workflowId, errorLogStatus); - isErrorLogLoaded=true; - } - - }else if (selectedTab.title == 'Job Audit Log') { - if(!isAuditLogLoaded){ - fetchAuditLogs(workflowId, auditLogStatus); - isAuditLogLoaded=true; - } - } - else if(selectedTab.title == 'Job DAG') { - if(!isLoadedDAG){ - createAndAddDagImage(); - isLoadedDAG=true; - } - } - jobs_grid.setVisible(false); - }); - var win = new Ext.Window({ - title: 'Job (Name: ' + appName + '/JobId: ' + workflowId + ')', - closable: true, - width: 1050, - autoHeight: true, - plain: true, - items: [jobDetailsTab, jobs_grid] - }); - win.setPosition(10, 10); - win.show(); -} - -function coordJobDetailsPopup(response, request) { - var isErrorLogLoaded = false; - var isAuditLogLoaded = false; - - var jobDefinitionArea = new Ext.form.TextArea({ - fieldLabel: 'Definition', - editable: false, - name: 'definition', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "Loading..." - }); - var jobLogArea = new Ext.form.TextArea({ - fieldLabel: 'Logs', - editable: false, - id: 'jobLogAreaId', - name: 'logs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "Enter the list of actions in the format similar to 1,3-4,7-40 to get logs for specific coordinator actions. " + - "To get the log for the coordinator job, leave the actions field empty.\n\n" + - "To optimize log searching, you can provide search filter options as opt1=val1;opt2=val1;opt3=val1.\n" + - "Available options are recent, start, end, loglevel, text, limit and debug.\n" + - "For more detail refer documentation (/oozie/docs/DG_CommandLineTool.html#Filtering_the_server_logs_with_logfilter_options)" - }); - var jobErrorLogArea = new Ext.form.TextArea({ - fieldLabel: 'ErrorLogs', - editable: false, - id: 'jobErrorLogAreaId', - name: 'errorlogs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "" - }); - var jobAuditLogArea = new Ext.form.TextArea({ - fieldLabel: 'AuditLogs', - editable: false, - id: 'jobAuditLogAreaId', - name: 'auditlogs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "" - }); - - var getLogButton = new Ext.Button({ - text: 'Get Logs', - ctCls: 'x-btn-over', - handler: function() { - fetchLogs(coordJobId, actionsTextBox.getValue()); - } - }); - var actionsTextBox = new Ext.form.TextField({ - fieldLabel: 'ActionsList', - name: 'ActionsList', - id: 'actions_text_box', - width: 150, - value: '' - }); - - var actionsText = new Ext.form.Label({ - text : 'Enter action list : ' - }); - - var searchFilter = new Ext.form.Label({ - text : 'Enter Search Filter' - }); - - var searchFilterBox = new Ext.form.TextField({ - fieldLabel: 'searchFilterBox', - name: 'searchFilterBox', - id: 'search_filter_box', - width: 350, - value: '' - }); - - var logStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var errorLogStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var auditLogStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - function fetchDefinition(coordJobId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + coordJobId + "?show=definition", - timeout: 300000, - success: function(response, request) { - jobDefinitionArea.setRawValue(response.responseText); - } - }); - } - function fetchLogs(coordJobId, actionsList) { - if (actionsList == '') { - getLogs(getOozieBase() + 'job/' + coordJobId + "?show=log", - searchFilterBox.getValue(), logStatus, jobLogArea, true, null); - } else { - getLogs(getOozieBase() + 'job/' + coordJobId - + "?show=log&type=action&scope=" + actionsList, searchFilterBox.getValue(), logStatus, jobLogArea, - true, - 'Action List format is wrong. Format should be similar to 1,3-4,7-40'); - } - } - function fetchErrorLogs(coordJobId) { - getLogs(getOozieBase() + 'job/' + coordJobId + "?show=errorlog", - null, errorLogStatus, jobErrorLogArea, true, null); - } - - function fetchAuditLogs(coordJobId) { - getLogs(getOozieBase() + 'job/' + coordJobId + "?show=auditlog", null, - auditLogStatus, jobAuditLogArea, true, null); - } - - var jobDetails = JSON.parse(response.responseText); - var coordJobId = jobDetails["coordJobId"]; - var appName = jobDetails["coordJobName"]; - var jobActionStatus = new Ext.data.JsonStore({ - autoLoad: {params:{offset: 0, len: 50}}, - totalProperty: 'total', - root: 'actions', - fields: ['id', 'name', 'type', 'createdConf', 'runConf', 'actionNumber', 'createdTime', 'externalId', - 'lastModifiedTime', 'nominalTime', 'status', 'missingDependencies', 'externalStatus', 'trackerUri', - 'consoleUrl', 'errorCode', 'errorMessage', 'actions', 'externalChildIDs'], - proxy: new Ext.data.HttpProxy({ - url: getOozieBase() + 'job/' + coordJobId + "?timezone=" + getTimeZone() + "&order=desc", - method: 'GET' - }) - }); - - var formFieldSet = new Ext.form.FieldSet({ - autoHeight: true, - defaultType: 'textfield', - items: [ { - fieldLabel: 'Job Id', - editable: false, - name: 'coordJobId', - width: 400, - value: jobDetails["coordJobId"] - }, { - fieldLabel: 'Name', - editable: false, - name: 'coordJobName', - width: 400, - value: jobDetails["coordJobName"] - }, { - fieldLabel: 'Status', - editable: false, - name: 'status', - width: 400, - value: jobDetails["status"] - }, { - fieldLabel: 'User', - editable: false, - name: 'user', - width: 400, - value: jobDetails["user"] - }, { - fieldLabel: 'Group', - editable: false, - name: 'group', - width: 400, - value: jobDetails["group"] - }, { - fieldLabel: 'Frequency', - editable: false, - name: 'frequency', - width: 400, - value: jobDetails["frequency"] - }, { - fieldLabel: 'Unit', - editable: false, - name: 'timeUnit', - width: 400, - value: jobDetails["timeUnit"] - }, new Ext.form.TriggerField({ - fieldLabel: 'Parent Bundle', - editable: false, - name: 'bundleId', - width: 400, - value: jobDetails["bundleId"], - triggerClass: 'x-form-search-trigger', - onTriggerClick : function() { - if (jobDetails["bundleId"]) { - window.open(oozie_host + "?job=" + jobDetails["bundleId"]); - } - } - }), { - fieldLabel: 'Start Time', - editable: false, - name: 'startTime', - width: 200, - value: jobDetails["startTime"] - }, { - fieldLabel: 'Next Matd', - editable: false, - name: 'nextMaterializedTime', - width: 200, - value: jobDetails["nextMaterializedTime"] - }, { - fieldLabel: 'End Time', - editable: false, - name: 'endTime', - width: 200, - value: jobDetails["endTime"] - }, { - fieldLabel: 'Pause Time', - editable: false, - name: 'pauseTime', - width: 200, - value: jobDetails["pauseTime"] - }, { - fieldLabel: 'Concurrency', - editable: false, - name: 'concurrency', - width: 200, - value: jobDetails["concurrency"] - } ] - }); - var fs = new Ext.FormPanel({ - frame: true, - labelAlign: 'right', - labelWidth: 85, - items: [formFieldSet], - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + coordJobId + "?timezone=" + getTimeZone() + "&offset=0&len=0", - timeout: 300000, - success: function(response, request) { - jobDetails = JSON.parse(response.responseText); - fs.getForm().setValues(jobDetails); - jobActionStatus.reload(); - } - - }); - } - }] - - }); - var coord_jobs_grid = new Ext.grid.GridPanel({ - store: jobActionStatus, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'id', - header: "Action Id", - width: 260, - sortable: true, - dataIndex: 'id' - }, { - header: "Status", - width: 80, - sortable: true, - dataIndex: 'status' - }, { - header: "Ext Id", - width: 220, - sortable: true, - dataIndex: 'externalId' - }, { - header: "Error Code", - width: 80, - sortable: true, - dataIndex: 'errorCode' - }, { - header: "Created Time", - width: 170, - sortable: true, - dataIndex: 'createdTime' - }, { - header: "Nominal Time", - width: 170, - sortable: true, - dataIndex: 'nominalTime' - }, { - header: "Last Mod Time", - width: 170, - sortable: true, - dataIndex: 'lastModifiedTime' - } ], - stripeRows: true, - // autoHeight: true, - autoScroll: true, - frame: true, - height: 400, - width: 1600, - title: 'Actions', - bbar: getPagingBar(jobActionStatus), - listeners: { - cellclick: { - fn: showWorkflowPopup - } - } - - }); - function showWorkflowPopup(thisGrid, rowIndex, cellIndex, e) { - var actionStatus = thisGrid.store.data.items[rowIndex].data; - var workflowId = actionStatus["externalId"]; - if(workflowId == null) { - jobDetailsTab.getComponent('coord_action_missing_dependencies').show(); - Ext.getCmp('actions_missing_dependencies').setValue(actionStatus["id"].split("@")[1]); - viewMissingDependencies.execute(); - } - else { - jobDetailsGridWindow(workflowId); - } - } - // alert("Coordinator PopUP 4 inside coordDetailsPopup "); - function showCoordActionContextMenu(thisGrid, rowIndex, cellIndex, e) { - var actionStatus = thisGrid.store.data.items[rowIndex].data; - actionDetailsGridWindow(actionStatus); - function actionDetailsGridWindow(actionStatus) { - var formFieldSet = new Ext.form.FieldSet({ - title: actionStatus.actionName, - autoHeight: true, - width: 520, - defaultType: 'textfield', - items: [ { - fieldLabel: 'Name', - editable: false, - name: 'name', - width: 400, - value: actionStatus["name"] - }, { - fieldLabel: 'Type', - editable: false, - name: 'type', - width: 400, - value: actionStatus["type"] - }, { - fieldLabel: 'externalId', - editable: false, - name: 'externalId', - width: 400, - value: actionStatus["externalId"] - }, { - fieldLabel: 'Start Time', - editable: false, - name: 'startTime', - width: 400, - value: actionStatus["startTime"] - }, { - fieldLabel: 'Nominal Time', - editable: false, - name: 'nominalTime', - width: 400, - value: actionStatus["nominalTime"] - }, { - fieldLabel: 'Status', - editable: false, - name: 'status', - width: 400, - value: actionStatus["status"] - }, { - fieldLabel: 'Retries', - editable: false, - width: 400, - name: 'userRetryCount', - value: actionStatus["userRetryCount"] - }, { - fieldLabel: 'Error Code', - editable: false, - name: 'errorCode', - width: 400, - value: actionStatus["errorCode"] - }, { - fieldLabel: 'Error Message', - editable: false, - name: 'errorMessage', - width: 400, - value: actionStatus["errorMessage"] - }, { - fieldLabel: 'External Status', - editable: false, - name: 'externalStatus', - width: 400, - value: actionStatus["externalStatus"] - }, new Ext.form.TriggerField({ - fieldLabel: 'Console URL', - editable: false, - name: 'consoleUrl', - width: 400, - value: actionStatus["consoleUrl"], - triggerClass: 'x-form-search-trigger', - onTriggerClick: function() { - window.open(actionStatus["consoleUrl"]); - } - - }), { - fieldLabel: 'Tracker URI', - editable: false, - name: 'trackerUri', - width: 400, - value: actionStatus["trackerUri"] - - } ] - }); - /* - var detail = new Ext.FormPanel( { - frame: true, - labelAlign: 'right', - labelWidth: 85, - width: 540, - items: [formFieldSet] - }); - var win = new Ext.Window( { - title: 'Action (Name: ' + actionStatus["name"] + '/JobId: ' + coordJobId + ')', - closable: true, - width: 560, - autoHeight: true, - plain: true, - items: [new Ext.TabPanel( { - activeTab: 0, - autoHeight: true, - deferredRender: false, - items: [ { - title: 'Action Info', - items: detail - }, { - title: 'Action Configuration', - items: new Ext.form.TextArea( { - fieldLabel: 'Configuration', - editable: false, - name: 'config', - height: 350, - width: 540, - autoScroll: true, - value: actionStatus["conf"] - }) - }, ] - })] - }); - win.setPosition(50, 50); - win.show(); - */ - } - } - - var rerunActionText = new Ext.form.Label({ - text : 'Enter Coordinator Action number : ', - ctCls: 'spaces' - }); - var rerunActionTextBox = new Ext.form.TextField({ - fieldLabel: 'RerunAction', - name: 'RerunAction', - width: 150, - value: '' - }); - var store = new Ext.data.JsonStore({ - baseParams: { - scope: 0, - }, - root: 'workflows', - fields: ['id', 'status', 'startTime', 'endTime'], - proxy: new Ext.data.HttpProxy({ - url: getOozieBase() + 'job/' + coordJobId + '?show=allruns&type=action', - timeout: 300000 - }) - }); - store.proxy.conn.method = "GET"; - - var rerunsUnit = new Ext.grid.GridPanel({ - autoScroll: true, - height: 200, - autoRender: true, - store: store, - columns: [new Ext.grid.RowNumberer(), { - header: 'Workflow Id', - dataIndex: 'id', - id: 'id', - width: 240 - },{ - header: 'Workflow Status', - dataIndex: 'status', - id: 'status', - width: 200 - },{ - header: 'Started', - dataIndex: 'startTime', - id: 'startTime', - width: 240 - },{ - header: 'Ended', - dataIndex: 'endTime', - id: 'endTime', - width: 240 - }], - listeners: { - cellclick: function (rerunsUnit, rowIndex, colIndex) { - var obj = store.getAt(rowIndex); - jobDetailsGridWindow(obj.data.id); - }, - }, - frame: false - }); - - var missingDependenciesTreeRoot = new Ext.tree.TreeNode({ - text: "Coord Action Missing Dependencies", - expanded: true - }); - - var missingDependenciesTabButton = new Ext.Button({ - text: 'Get Missing Dependencies', - ctCls: 'x-btn-over', - ctCls: 'spaces', - isFormField: true, - handler: function() { - viewMissingDependencies.execute(); - } - }); - - var missingDependenciesActionText = new Ext.form.Label({ - text : 'Enter Coordinator Action number : ', - ctCls: 'spaces' - }); - var missingDependenciesTextBox = new Ext.form.TextField({ - fieldLabel: 'missingDependenciesAction', - id: 'actions_missing_dependencies', - name: 'missingDependenciesAction', - width: 150, - value: '' - }); - - var viewMissingDependencies = new Ext.Action({ - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + coordJobId + '?show=missing-dependencies&action-list=' + - missingDependenciesTextBox.getValue(), - success: function(response, request) { - var jsonData = JSON.parse(response.responseText); - var missingDependencies = jsonData["missingDependencies"]; - while (missingDependenciesTreeRoot.hasChildNodes()) { - var child = missingDependenciesTreeRoot.firstChild; - missingDependenciesTreeRoot.removeChild(child); - } - var missingDependenciesTree = treeNodeForMissingDependencies(missingDependencies, null, null, - missingDependenciesTreeRoot); - missingDependenciesTreeRoot.expand(false, true); - }, - failure : function(response, request) { - Ext.Msg.minWidth = 360; - Ext.Msg.alert(response.getResponseHeader["oozie-error-message"]); - } - }); - } - }); - - function treeNodeForMissingDependencies(json, rootText, blockedOn, rootNode) { - var result; - if( rootNode ){ - result = rootNode; - } else { - result = new Ext.tree.TreeNode({ - text: rootText - }); - } - if (typeof json === 'object') { - for (var i in json) { - if (json[i]) { - if (typeof json[i] == 'object') { - var c; - if (json[i]['id']) { - c = treeNodeForMissingDependencies(json[i]['dataSets'], json[i]['id'], json[i]['blockedOn']); - } - if (json[i]['dataSet']) { - c = treeNodeForMissingDependencies(json[i]['missingDependencies'], json[i]['dataSet'], blockedOn); - if( blockedOn ) { - var blockedOnChild = new Ext.tree.TreeNode({ - text: "Blocked On" - }); - blockedOnChild.appendChild(new Ext.tree.TreeNode({ - text: blockedOn - })); - result.appendChild(blockedOnChild); - blockedOn = null; - } - } - if (c) { - result.appendChild(c); - } - } - else if (typeof json[i] != 'function') { - result.appendChild(new Ext.tree.TreeNode({ - text: json[i] - })); - } - } - } - } - return result; - } - - var missingDependenciesArea = new Ext.tree.TreePanel({ - autoScroll: true, - useArrows: true, - height: 430, - deferredRender: false, - root: missingDependenciesTreeRoot, - tbar: [missingDependenciesActionText, missingDependenciesTextBox, missingDependenciesTabButton], - }); - - function populateReruns(coordActionId) { - var actionNum = rerunActionTextBox.getValue(); - store.baseParams.scope = actionNum; - store.reload(); - } - var getRerunsButton = new Ext.Button({ - text: 'Get Workflows', - ctCls: 'x-btn-over', - ctCls: 'spaces', - handler: function() { - populateReruns(rerunsUnit); - } - }); - - var jobDetailsTab = new Ext.TabPanel({ - activeTab: 0, - autoHeight: true, - layoutOnTabChange: true, - deferredRender: false, - items: [ { - title: 'Coord Job Info', - items: fs - },{ - title: 'Coord Job Definition', - items: jobDefinitionArea - },{ - title: 'Coord Job Configuration', - items: new Ext.form.TextArea({ - fieldLabel: 'Configuration', - editable: false, - name: 'config', - width: 1035, - height: 430, - autoScroll: true, - value: jobDetails["conf"] - }) - },{ - title: 'Coord Job Log', - items: jobLogArea, - id: 'coord_job_log', - tbar: [ - actionsText,actionsTextBox, searchFilter, searchFilterBox, getLogButton, {xtype: 'tbfill'}, logStatus] - }, - { - title: 'Coord Error Log', - items: jobErrorLogArea, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - fetchErrorLogs(coordJobId); - } - },{xtype: 'tbfill'}, errorLogStatus] - }, - { - title: 'Coord Audit Log', - items: jobAuditLogArea, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - fetchAuditLogs(coordJobId); - } - },{xtype: 'tbfill'}, auditLogStatus] - }, - { - title: 'Coord Action Reruns', - items: rerunsUnit, - tbar: [ - rerunActionText, rerunActionTextBox, getRerunsButton] - }, - { - title: 'Action Missing Dependencies', - id: 'coord_action_missing_dependencies', - items: missingDependenciesArea - } - ]}); - - jobDetailsTab.addListener("tabchange", function(panel, selectedTab) { - if (selectedTab.title == "Coord Job Info") { - coord_jobs_grid.setVisible(true); - return; - } - else if (selectedTab.title == 'Coord Job Definition') { - fetchDefinition(coordJobId); - } - else if (selectedTab.title == 'Coord Action Reruns') { - rerunsUnit.setVisible(true); - } - else if (selectedTab.title == 'Coord Error Log') { - if(!isErrorLogLoaded){ - fetchErrorLogs(coordJobId); - isErrorLogLoaded=true; - } - } - else if (selectedTab.title == 'Coord Audit Log') { - if(!isAuditLogLoaded){ - getLogs(getOozieBase() + 'job/' + coordJobId + "?show=auditlog", null, auditLogStatus, jobAuditLogArea, - false, null); - isAuditLogLoaded=true; - } - } - coord_jobs_grid.setVisible(false); - }); - var win = new Ext.Window({ - title: 'Job (Name: ' + appName + '/coordJobId: ' + coordJobId + ')', - closable: true, - width: 1050, - autoHeight: true, - plain: true, - items: [jobDetailsTab, coord_jobs_grid] - }); - win.setPosition(10, 10); - win.show(); -} - -function bundleJobDetailsPopup(response, request) { - - var isErrorLogLoaded = false; - var isAuditLogLoaded = false; - var jobDefinitionArea = new Ext.form.TextArea({ - fieldLabel: 'Definition', - editable: false, - name: 'definition', - width: 1005, - height: 400, - autoScroll: true, - emptyText: "Loading..." - - }); - var jobDetails = JSON.parse(response.responseText); - var bundleJobId = jobDetails["bundleJobId"]; - var bundleJobName = jobDetails["bundleJobName"]; - var jobActionStatus = new Ext.data.JsonStore({ - data: jobDetails["bundleCoordJobs"], - fields: ['coordJobId', 'coordJobName', 'coordJobPath', 'frequency', 'timeUnit', 'nextMaterializedTime', 'status', 'startTime', 'endTime', 'pauseTime','user','group'] - }); - - var formFieldSet = new Ext.form.FieldSet({ - autoHeight: true, - defaultType: 'textfield', - items: [ { - fieldLabel: 'Job Id', - editable: false, - name: 'bundleJobId', - width: 400, - value: jobDetails["bundleJobId"] - }, { - fieldLabel: 'Name', - editable: false, - name: 'bundleJobName', - width: 400, - value: jobDetails["bundleJobName"] - }, { - fieldLabel: 'Status', - editable: false, - name: 'status', - width: 400, - value: jobDetails["status"] - }, { - fieldLabel: 'Kickoff Time', - editable: false, - name: 'kickoffTime', - width: 400, - value: jobDetails["kickoffTime"] - }, { - fieldLabel: 'Created Time', - editable: false, - name: 'createdTime', - width: 400, - value: jobDetails["createdTime"] - }, { - fieldLabel: 'User', - editable: false, - name: 'user', - width: 170, - value: jobDetails["user"] - }, { - fieldLabel: 'Group', - editable: false, - name: 'group', - width: 170, - value: jobDetails["group"] - } ] - }); - - var fs = new Ext.FormPanel({ - frame: true, - labelAlign: 'right', - labelWidth: 85, - width: 1010, - items: [formFieldSet], - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + bundleJobId + "?timezone=" + getTimeZone(), - timeout: 300000, - success: function(response, request) { - jobDetails = JSON.parse(response.responseText); - jobActionStatus.loadData(jobDetails["bundleCoordJobs"]); - fs.getForm().setValues(jobDetails); - } - - }); - } - }] - - }); - - var coord_jobs_grid = new Ext.grid.GridPanel({ - store: jobActionStatus, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'coordJobId', - header: "Coord Job Id", - width: 240, - sortable: true, - dataIndex: 'coordJobId' - }, { - header: "Coord Job Name", - width: 100, - sortable: true, - dataIndex: 'coordJobName' - }, { - header: "Status", - width: 80, - sortable: true, - dataIndex: 'status' - }, { - header: "User", - width: 80, - sortable: true, - dataIndex: 'user' - }, { - header: "Group", - width: 80, - sortable: true, - dataIndex: 'group' - }, { - header: "Frequency", - width: 80, - sortable: true, - dataIndex: 'frequency' - }, { - header: "Time Unit", - width: 80, - sortable: true, - dataIndex: 'timeUnit' - }, { - header: "Start Time", - width: 200, - sortable: true, - dataIndex: 'startTime' - }, { - header: "End Time", - width: 200, - sortable: true, - dataIndex: 'endTime' - }, { - header: "Next Materialized", - width: 200, - sortable: true, - dataIndex: 'nextMaterializedTime' - } ], - stripeRows: true, - // autoHeight: true, - autoScroll: true, - frame: true, - height: 400, - width: 1000, - title: 'Coord Jobs', - bbar: getPagingBar(jobActionStatus), - listeners: { - cellclick: { - fn: showCoordJobContextMenu - } - } - }); - - var jobLogArea = new Ext.form.TextArea({ - fieldLabel: 'Logs', - editable: false, - name: 'logs', - width: 1010, - height: 400, - autoScroll: true, - emptyText: "To optimize log searching, you can provide search filter options as opt1=val1;opt2=val1;opt3=val1.\n" + - "Available options are recent, start, end, loglevel, text, limit and debug.\n" + - "For more detail refer documentation (/oozie/docs/DG_CommandLineTool.html#Filtering_the_server_logs_with_logfilter_options)" - }); - - var jobErrorLogArea = new Ext.form.TextArea({ - fieldLabel: 'ErrorLogs', - editable: false, - name: 'errorlogs', - width: 1010, - height: 400, - autoScroll: true, - emptyText: "" - }); - - var jobAuditLogArea = new Ext.form.TextArea({ - fieldLabel: 'AuditLogs', - editable: false, - name: 'auditlogs', - width: 1035, - height: 400, - autoScroll: true, - emptyText: "" - }); - - var searchFilter = new Ext.form.Label({ - text : 'Enter Search Filter' - }); - - var searchFilterBox = new Ext.form.TextField({ - fieldLabel: 'searchFilterBox', - name: 'searchFilterBox', - width: 350, - value: '' - }); - - var logStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var errorLogStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var auditLogStatus = new Ext.form.Label({ - text : 'Log Status : ' - }); - - var getLogButton = new Ext.Button({ - text: 'Get Logs', - ctCls: 'x-btn-over', - handler: function() { - getLogs(getOozieBase() + 'job/' + bundleJobId + "?show=log", searchFilterBox.getValue(), logStatus, jobLogArea, false, null); - } - }); - - - var jobDetailsTab = new Ext.TabPanel({ - activeTab: 0, - autoHeight: true, - deferredRender: false, - items: [ { - title: 'Bundle Job Info', - items: fs - },{ - title: 'Bundle Job Definition', - items: jobDefinitionArea - },{ - title: 'Bundle Job Configuration', - items: new Ext.form.TextArea({ - fieldLabel: 'Configuration', - editable: false, - name: 'config', - width: 1010, - height: 430, - autoScroll: true, - value: jobDetails["conf"] - }) - },{ - title: 'Bundle Job Log', - items: jobLogArea, - tbar: [searchFilter, searchFilterBox, getLogButton, {xtype: 'tbfill'}, logStatus] - }, - { - title: 'Bundle Error Log', - items: jobErrorLogArea, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - getLogs(getOozieBase() + 'job/' + bundleJobId + "?show=errorlog", null, errorLogStatus, jobErrorLogArea, - false, null); - } - }, {xtype: 'tbfill'}, errorLogStatus] - }, - { - title: 'Bundle Audit Log', - items: jobAuditLogArea, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - getLogs(getOozieBase() + 'job/' + bundleJobId + "?show=auditlog", null, auditLogStatus, jobAuditLogArea, - false, null); - } - }, {xtype: 'tbfill'}, auditLogStatus] - } - - ]}); - - jobDetailsTab.addListener("tabchange", function(panel, selectedTab) { - if (selectedTab.title == "Bundle Job Info") { - coord_jobs_grid.setVisible(true); - return; - } - else if (selectedTab.title == 'Bundle Job Definition') { - fetchDefinition(bundleJobId); - } - else if (selectedTab.title == 'Bundle Error Log') { - if(!isErrorLogLoaded){ - getLogs(getOozieBase() + 'job/' + bundleJobId + "?show=errorlog", null, errorLogStatus, jobErrorLogArea, - false, null); - isErrorLogLoaded=true; - } - } - else if (selectedTab.title == 'Bundle Audit Log') { - if(!isAuditLogLoaded){ - getLogs(getOozieBase() + 'job/' + bundleJobId + "?show=auditlog", null, auditLogStatus, jobAuditLogArea, - false, null); - isAuditLogLoaded=true; - } - } - - coord_jobs_grid.setVisible(false); - }); - - function fetchDefinition(bundleJobId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + bundleJobId + "?show=definition", - timeout: 300000, - success: function(response, request) { - jobDefinitionArea.setRawValue(response.responseText); - } - }); - } - - var win = new Ext.Window({ - title: 'Job (Name: ' + bundleJobName + '/bundleJobId: ' + bundleJobId + ')', - closable: true, - width: 1020, - autoHeight: true, - plain: true, - items: [jobDetailsTab, coord_jobs_grid] - }); - win.setPosition(10, 10); - win.show(); -} - -function jobDetailsGridWindow(workflowId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + workflowId + "?timezone=" + getTimeZone(), - timeout: 300000, - success: jobDetailsPopup - - }); -} - -function coordJobDetailsGridWindow(coordJobId) { - Ext.Ajax.request({ - /* - Ext.Msg.show({ - title:'Coord JobDetails Window Popup' - msg: 'coordJobDetailsGridWindow invoked', - buttons: Ext.Msg.OK, - icon: Ext.MessageBox.INFO - }); - */ - url: getOozieBase() + 'job/' + coordJobId + "?timezone=" + getTimeZone() + "&offset=0&len=0", - timeout: 300000, - success: coordJobDetailsPopup - }); -} - -function coordActionDetailsGridWindow(coordActionId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + coordActionId + "?timezone=" + getTimeZone(), - timeout: 300000, - success: function(response, request) { - var coordAction = JSON.parse(response.responseText); - var workflowId = coordAction.externalId; - jobDetailsGridWindow(workflowId); - } - }); -} - -function bundleJobDetailsGridWindow(bundleJobId) { - Ext.Ajax.request({ - url: getOozieBase() + 'job/' + bundleJobId + "?timezone=" + getTimeZone(), - timeout: 300000, - success: bundleJobDetailsPopup - }); -} - -function showConfigurationInWindow(dataObject, windowTitle) { - var configGridData = new Ext.data.JsonStore({ - data: dataObject, - root: 'elements', - fields: ['name', 'value'] - - }); - var configGrid = new Ext.grid.GridPanel({ - store: configGridData, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'name', - header: "Name", - width: 160, - sortable: true, - dataIndex: 'name' - }, { - header: "Value", - width: 240, - sortable: true, - dataIndex: 'value' - } ], - stripeRows: true, - autoHeight: true, - autoScroll: true, - frame: false, - width: 600 - }); - var win = new Ext.Window({ - title: windowTitle, - closable: true, - autoWidth: true, - autoHeight: true, - plain: true, - items: [configGrid] - }); - win.show(); -} - -/* - * create the coord jobs store - */ -var coord_jobs_store = new Ext.data.JsonStore({ - baseParams: { - jobtype: "coord", - filter: "status=RUNNING;status=RUNNINGWITHERROR", - timezone: getTimeZone() - }, - idProperty: 'coordJobId', - totalProperty: 'total', - autoLoad: false, - root: 'coordinatorjobs', - fields: ['coordJobId', 'coordJobName', 'status', 'user', 'group', 'frequency', 'timeUnit', {name: 'startTime', sortType: Ext.data.SortTypes.asDate}, {name: 'nextMaterializedTime', sortType: Ext.data.SortTypes.asDate}], - proxy: new Ext.data.HttpProxy({ - url: getOozieBase() + 'jobs' - }) -}); -coord_jobs_store.proxy.conn.timeout = 300000; -coord_jobs_store.proxy.conn.method = "GET"; - -/* - * create the wf jobs store - */ -var jobs_store = new Ext.data.JsonStore({ - baseParams: { - filter: "status=RUNNING", - timezone: getTimeZone() - }, - idProperty: 'id', - totalProperty: 'total', - autoLoad: true, - root: 'workflows', - fields: ['appPath', 'appName', 'id', 'conf', 'status', {name: 'createdTime', sortType: Ext.data.SortTypes.asDate}, {name: 'startTime', sortType: Ext.data.SortTypes.asDate}, {name: 'lastModTime', sortType: Ext.data.SortTypes.asDate}, {name: 'endTime', sortType: Ext.data.SortTypes.asDate}, 'user', 'group', 'run', 'actions'], - proxy: new Ext.data.HttpProxy({ - url: getOozieBase() + 'jobs' - }) -}); -jobs_store.proxy.conn.timeout = 300000; -jobs_store.proxy.conn.method = "GET"; - -/* - * create the bundle jobs store - */ -var bundle_jobs_store = new Ext.data.JsonStore({ - - baseParams: { - jobtype: "bundle", - filter: "status=RUNNING;status=RUNNINGWITHERROR", - timezone: getTimeZone() - }, - idProperty: 'bundleJobId', - totalProperty: 'total', - autoLoad: false, - root: 'bundlejobs', - fields: ['bundleJobId', 'bundleJobName', 'bundleJobPath', 'conf', 'status', {name: 'kickoffTime', sortType: Ext.data.SortTypes.asDate}, {name: 'startTime', sortType: Ext.data.SortTypes.asDate}, {name: 'endTime', sortType: Ext.data.SortTypes.asDate}, {name: 'pauseTime', sortType: Ext.data.SortTypes.asDate}, {name: 'createdTime', sortType: Ext.data.SortTypes.asDate}, 'user', 'group', 'bundleCoordJobs'], - proxy: new Ext.data.HttpProxy({ - url: getOozieBase() + 'jobs' - }) -}); -bundle_jobs_store.proxy.conn.timeout = 300000; -bundle_jobs_store.proxy.conn.method = "GET"; - -var configGridData = new Ext.data.JsonStore({ - data: { - elements: [] - }, - root: 'elements', - fields: ['name', 'value', 'ovalue'] - -}); -function getConfigObject(responseTxt) { - var fo = { - elements: [] - }; - var responseObj = JSON.parse(responseTxt); - var j = 0; - for (var i in responseObj) { - fo.elements[j] = {}; - fo.elements[j].name = i; - fo.elements[j].value = responseObj[i]; - j ++; - } - return fo; -} -// All the actions -var refreshCustomJobsAction = new Ext.Action({ - text: Ext.state.Manager.get('CustomWFJobFilter','status=KILLED'), - handler: function() { - jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ";" + this.text : this.text; - jobs_store.baseParams.timezone = getTimeZone(); - jobs_store.reload(); - Ext.getCmp('jobs_active').setIconClass(''); - Ext.getCmp('jobs_all').setIconClass(''); - Ext.getCmp('jobs_done').setIconClass(''); - } - -}); - -var refreshActiveJobsAction = new Ext.Action({ - id: 'jobs_active', - text: 'Active Jobs', - handler: function() { - jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';status=RUNNING' : 'status=RUNNING'; - jobs_store.baseParams.timezone = getTimeZone(); - jobs_store.reload(); - Ext.getCmp('jobs_active').setIconClass('job-filter'); - Ext.getCmp('jobs_all').setIconClass(''); - Ext.getCmp('jobs_done').setIconClass(''); - - } -}); - -var refreshAllJobsAction = new Ext.Action({ - id: 'jobs_all', - text: 'All Jobs', - handler: function() { - jobs_store.baseParams.filter = getCustomFilter()? getCustomFilter() : ""; - jobs_store.baseParams.timezone = getTimeZone(); - jobs_store.reload(); - Ext.getCmp('jobs_active').setIconClass(''); - Ext.getCmp('jobs_all').setIconClass('job-filter'); - Ext.getCmp('jobs_done').setIconClass(''); - } - -}); - -var refreshDoneJobsAction = new Ext.Action({ - id: 'jobs_done', - text: 'Done Jobs', - handler: function() { - var doneJobStatus = 'status=SUCCEEDED;status=KILLED;status=FAILED'; - jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';' + doneJobStatus : doneJobStatus; - jobs_store.baseParams.timezone = getTimeZone(); - jobs_store.reload(); - Ext.getCmp('jobs_active').setIconClass(''); - Ext.getCmp('jobs_all').setIconClass(''); - Ext.getCmp('jobs_done').setIconClass('job-filter'); - } -}); - -var refreshCoordCustomJobsAction = new Ext.Action({ - text: Ext.state.Manager.get('CustomCoordJobFilter', 'status=KILLED'), - handler: function() { - coord_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';' + this.text : this.text; - coord_jobs_store.baseParams.timezone = getTimeZone(); - coord_jobs_store.reload(); - Ext.getCmp('coord_active').setIconClass(''); - Ext.getCmp('coord_all').setIconClass(''); - Ext.getCmp('coord_done').setIconClass(''); - } -}); - - -var refreshCoordActiveJobsAction = new Ext.Action({ - id: 'coord_active', - text: 'Active Jobs', - handler: function() { - var coordActiveStatus = 'status=RUNNING;status=RUNNINGWITHERROR'; - coord_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';' + coordActiveStatus : coordActiveStatus; - coord_jobs_store.baseParams.timezone = getTimeZone(); - coord_jobs_store.reload(); - Ext.getCmp('coord_active').setIconClass('job-filter'); - Ext.getCmp('coord_all').setIconClass(''); - Ext.getCmp('coord_done').setIconClass(''); - /* - Ext.Ajax.request( { - url: getOozieBase() + 'jobs/?jobtype=coord', - success: function(response, request) { - var coordData = getConfigObject(response.responseText); - coord_jobs_store.loadData(coordData); - }, - }); - */ - } -}); - -var refreshCoordAllJobsAction = new Ext.Action({ - id: 'coord_all', - text: 'All Jobs', - handler: function() { - coord_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() : ''; - coord_jobs_store.baseParams.timezone = getTimeZone(); - coord_jobs_store.reload(); - Ext.getCmp('coord_active').setIconClass(''); - Ext.getCmp('coord_all').setIconClass('job-filter'); - Ext.getCmp('coord_done').setIconClass(''); - /* - Ext.Ajax.request( { - url: getOozieBase() + 'jobs/?jobtype=coord', - success: function(response, request) { - var coordData = getConfigObject(response.responseText); - coord_jobs_store.loadData(coordData); - }, - }); - */ - } -}); - -var refreshCoordDoneJobsAction = new Ext.Action({ - id: 'coord_done', - text: 'Done Jobs', - handler: function() { - var coordDoneStatus = 'status=SUCCEEDED;status=KILLED;status=FAILED;status=DONEWITHERROR'; - coord_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';' + coordDoneStatus : coordDoneStatus; - coord_jobs_store.baseParams.timezone = getTimeZone(); - coord_jobs_store.reload(); - Ext.getCmp('coord_active').setIconClass(''); - Ext.getCmp('coord_all').setIconClass(''); - Ext.getCmp('coord_done').setIconClass('job-filter'); - /* - Ext.Ajax.request( { - url: getOozieBase() + 'jobs' + '?jobtype=coord', - success: function(response, request) { - var coordData = getConfigObject(response.responseText); - coord_jobs_store.loadData(coordData); - }, - }); - */ - } -}); - -var refreshBundleActiveJobsAction = new Ext.Action({ - id: 'bundle_active', - text: 'Active Jobs', - handler: function() { - var bundleActiveStatus = 'status=RUNNING;status=RUNNINGWITHERROR'; - bundle_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';' + bundleActiveStatus : bundleActiveStatus; - bundle_jobs_store.baseParams.timezone = getTimeZone(); - bundle_jobs_store.reload(); - Ext.getCmp('bundle_active').setIconClass('job-filter'); - Ext.getCmp('bundle_all').setIconClass(''); - Ext.getCmp('bundle_done').setIconClass(''); - } -}); - -var refreshBundleAllJobsAction = new Ext.Action({ - id: 'bundle_all', - text: 'All Jobs', - handler: function() { - bundle_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() : ''; - bundle_jobs_store.baseParams.timezone = getTimeZone(); - bundle_jobs_store.reload(); - Ext.getCmp('bundle_active').setIconClass(''); - Ext.getCmp('bundle_all').setIconClass('job-filter'); - Ext.getCmp('bundle_done').setIconClass(''); - } -}); - -var refreshBundleDoneJobsAction = new Ext.Action({ - id: 'bundle_done', - text: 'Done Jobs', - handler: function() { - var bundleDoneStatus = 'status=SUCCEEDED;status=KILLED;status=FAILED;status=DONEWITHERROR'; - bundle_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ';' + bundleDoneStatus : bundleDoneStatus - bundle_jobs_store.baseParams.timezone = getTimeZone(); - bundle_jobs_store.reload(); - Ext.getCmp('bundle_active').setIconClass(''); - Ext.getCmp('bundle_all').setIconClass(''); - Ext.getCmp('bundle_done').setIconClass('job-filter'); - } -}); - -var refreshBundleCustomJobsAction = new Ext.Action({ - text: Ext.state.Manager.get('CustomBundleJobFilter', 'status=KILLED'), - handler: function() { - bundle_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + this.text : this.text; - bundle_jobs_store.baseParams.timezone = getTimeZone(); - bundle_jobs_store.reload(); - Ext.getCmp('bundle_active').setIconClass(''); - Ext.getCmp('bundle_all').setIconClass(''); - Ext.getCmp('bundle_done').setIconClass(''); - } -}); - -var helpFilterAction = new Ext.Action({ - text: 'Help', - handler: function() { - Ext.Msg.show({ - title:'Filter Help!', - msg: 'Results in this console can be filtered by "status".\n "status" can have values "RUNNING", "SUCCEEDED", "KILLED", "FAILED".\n To add multiple filters, use ";" as the separator. \nFor ex. "status=KILLED;status=SUCCEEDED" will return jobs which are either in SUCCEEDED or KILLED status', - buttons: Ext.Msg.OK, - icon: Ext.MessageBox.INFO - }); - } -}); - -var changeFilterAction = new Ext.Action({ - text: 'Custom Filter', - handler: function() { - Ext.Msg.prompt('Filter Criteria', 'Filter text:', function(btn, text) { - if (btn == 'ok' && text) { - var filter = convertStatusToUpperCaseAndEscapeHtml(text); - refreshCustomJobsAction.setText(filter); - Ext.state.Manager.setProvider(new Ext.state.CookieProvider({ - expires: new Date(new Date().getTime()+315569259747) - })); - Ext.state.Manager.set('CustomWFJobFilter', filter); - jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ";" + filter : filter; - jobs_store.baseParams.timezone = getTimeZone(); - jobs_store.reload(); - } - }); - } -}); - -var changeCoordFilterAction = new Ext.Action({ - text: 'Custom Filter', - handler: function() { - Ext.Msg.prompt('Filter Criteria', 'Filter text:', function(btn, text) { - if (btn == 'ok' && text) { - var filter = convertStatusToUpperCaseAndEscapeHtml(text); - refreshCoordCustomJobsAction.setText(filter); - Ext.state.Manager.setProvider(new Ext.state.CookieProvider({ - expires: new Date(new Date().getTime()+315569259747) - })); - Ext.state.Manager.set("CustomCoordJobFilter", filter); - coord_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ";" + filter : filter; - coord_jobs_store.baseParams.timezone = getTimeZone(); - coord_jobs_store.reload(); - } - }); - } -}); - -var changeBundleFilterAction = new Ext.Action({ - text: 'Custom Filter', - handler: function() { - Ext.Msg.prompt('Filter Criteria', 'Filter text:', function(btn, text) { - if (btn == 'ok' && text) { - var filter = convertStatusToUpperCaseAndEscapeHtml(text); - refreshBundleCustomJobsAction.setText(filter); - Ext.state.Manager.setProvider(new Ext.state.CookieProvider({ - expires: new Date(new Date().getTime()+315569259747) - })); - Ext.state.Manager.set("CustomBundleJobFilter", filter); - bundle_jobs_store.baseParams.filter = getCustomFilter() ? getCustomFilter() + ";" + filter : filter; - bundle_jobs_store.baseParams.timezone = getTimeZone(); - bundle_jobs_store.reload(); - } - }); - } -}); - - -var getSupportedVersions = new Ext.Action({ - text: 'Checking server for supported versions...', - handler: function() { - Ext.Ajax.request({ - url: getOozieVersionsUrl(), - success: function(response, request) { - var versions = JSON.parse(response.responseText); - for (var i = 0; i < versions.length; i += 1) { - if (versions[i] == getOozieClientVersion()) { - initConsole(); - return; - } - } - Ext.Msg.alert('Oozie Console Alert!', 'Server doesn\'t support client version: v' + getOozieClientVersion()); - } - - }); - } - -}); - -var checkStatus = new Ext.Action({ - text: 'Status - Unknown', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'admin/status', - success: function(response, request) { - var status = JSON.parse(response.responseText); - if (status.safeMode) { - checkStatus.setText("Server version [" + ret['buildVersion'] + "]"); - } - }); - } -}); - -var viewConfig = new Ext.Action({ - text: 'Configuration', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'admin/configuration', - success: function(response, request) { - var configData = getConfigObject(response.responseText); - configGridData.loadData(configData); - } - - }); - } - -}); -var viewInstrumentation = new Ext.Action({ - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'admin/instrumentation', - success: function(response, request) { - var jsonData = JSON.parse(response.responseText); - var timers = treeNodeFromJsonInstrumentation(jsonData["timers"], "timers"); - timers.expanded = false; - var samplers = treeNodeFromJsonInstrumentation(jsonData["samplers"], "samplers"); - samplers.expanded = false; - var counters = treeNodeFromJsonInstrumentation(jsonData["counters"], "counters"); - counters.expanded = false; - var variables = treeNodeFromJsonInstrumentation(jsonData["variables"], "variables"); - variables.expanded = false; - while (instrumentationTreeRoot.hasChildNodes()) { - var child = instrumentationTreeRoot.firstChild; - instrumentationTreeRoot.removeChild(child); - } - instrumentationTreeRoot.appendChild(samplers); - instrumentationTreeRoot.appendChild(counters); - instrumentationTreeRoot.appendChild(timers); - instrumentationTreeRoot.appendChild(variables); - instrumentationTreeRoot.expand(false, true); - } - - }); - } - -}); -var viewMetrics = new Ext.Action({ - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'admin/metrics', - success: function(response, request) { - var jsonData = JSON.parse(response.responseText); - var timers = treeNodeFromJsonMetrics(jsonData["timers"], "timers"); - timers.expanded = false; - var histograms = treeNodeFromJsonMetrics(jsonData["histograms"], "histograms"); - histograms.expanded = false; - var counters = treeNodeFromJsonMetrics(jsonData["counters"], "counters"); - counters.expanded = false; - var gauges = treeNodeFromJsonMetrics(jsonData["gauges"], "gauges"); - gauges.expanded = false; - while (metricsTreeRoot.hasChildNodes()) { - var child = metricsTreeRoot.firstChild; - metricsTreeRoot.removeChild(child); - } - metricsTreeRoot.appendChild(counters); - metricsTreeRoot.appendChild(timers); - metricsTreeRoot.appendChild(histograms); - metricsTreeRoot.appendChild(gauges); - metricsTreeRoot.expand(false, true); - } - - }); - } - -}); - -var viewSystemDetails = new Ext.Action({ - text: 'Java System Props', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'admin/java-sys-properties', - success: function(response, request) { - var configData = getConfigObject(response.responseText); - configGridData.loadData(configData); - } - - }); - } - -}); - -var viewOSDetails = new Ext.Action({ - text: 'OS Env', - handler: function() { - Ext.Ajax.request({ - url: getOozieBase() + 'admin/os-env', - success: function(response, request) { - var configData = getConfigObject(response.responseText); - configGridData.loadData(configData); - } - }); - } -}); - -var instrumentationTreeRoot = new Ext.tree.TreeNode({ - text: "Instrumentation", - expanded: true -}); - -var metricsTreeRoot = new Ext.tree.TreeNode({ - text: "Metrics", - expanded: true -}); - -var timeZones_store = new Ext.data.JsonStore({ - autoLoad: true, - root: 'available-timezones', - fields: ['timezoneDisplayName','timezoneId'], - proxy: new Ext.data.HttpProxy({ - url: getOozieBase() + 'admin' + "/available-timezones" - }), - sortInfo : {field: "timezoneDisplayName", direction: "ASC"} -}); -timeZones_store.proxy.conn.timeout = 300000; -timeZones_store.proxy.conn.method = "GET"; - -function showCoordJobContextMenu(thisGrid, rowIndex, cellIndex, e) { - var coordJobId = thisGrid.store.data.items[rowIndex].data.coordJobId; - coordJobDetailsGridWindow(coordJobId); -} - -function initConsole() { - function showJobContextMenu(thisGrid, rowIndex, cellIndex, e) { - var workflowId = thisGrid.store.data.items[rowIndex].data.id; - jobDetailsGridWindow(workflowId); - } - - function showBundleJobContextMenu(thisGrid, rowIndex, cellIndex, e) { - var bundleJobId = thisGrid.store.data.items[rowIndex].data.bundleJobId; - bundleJobDetailsGridWindow(bundleJobId); - } - - var jobs_grid = new Ext.grid.GridPanel({ - store: jobs_store, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'id', - header: "Job Id", - width: 220, - sortable: true, - dataIndex: 'id' - }, { - header: "Name", - width: 100, - sortable: true, - dataIndex: 'appName' - }, { - header: "Status", - width: 70, - sortable: true, - dataIndex: 'status' - }, { - header: "Run", - width: 30, - sortable: true, - dataIndex: 'run' - }, { - header: "User", - width: 60, - sortable: true, - dataIndex: 'user' - }, { - header: "Group", - width: 60, - sortable: true, - dataIndex: 'group' - }, { - header: "Created", - width: 170, - sortable: true, - dataIndex: 'createdTime' - }, { - header: "Started", - width: 170, - sortable: true, - dataIndex: 'startTime' - }, { - header: "Last Modified", - width: 170, - sortable: true, - dataIndex: 'lastModTime' - }, { - header: "Ended", - width: 170, - sortable: true, - dataIndex: 'endTime' - } ], - - stripeRows: true, - autoScroll: true, - frame: false, - width: 1050, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - jobs_store.baseParams.filter = getCustomFilter(); - jobs_store.baseParams.timezone = getTimeZone(); - jobs_store.reload(); - } - }, refreshAllJobsAction, refreshActiveJobsAction, refreshDoneJobsAction, { - text: 'Custom Filter', - menu: [refreshCustomJobsAction, changeFilterAction, helpFilterAction ] - }, { - xtype: 'tbfill' - }, checkStatus, serverVersion], - title: 'Workflow Jobs', - bbar: getPagingBar(jobs_store), - listeners: { - cellclick: { - fn: showJobContextMenu - } - } - }); - var expander = new Ext.grid.RowExpander({ - tpl: new Ext.Template('

Name: {name}

', '

Value: {value}

') - }); - var adminGrid = new Ext.grid.GridPanel({ - store: configGridData, - loadMask: true, - columns: [expander, { - id: 'name', - header: "Name", - width: 300, - sortable: true, - dataIndex: 'name' - }, { - id: 'value', - header: "Value", - width: 740, - sortable: true, - renderer: valueRenderer, - dataIndex: 'value' - } ], - height: 500, - width: 1040, - autoScroll: true, - frame: false, - tbar: [viewConfig, viewSystemDetails, viewOSDetails, { - xtype: 'tbfill' - }, checkStatus, serverVersion], - viewConfig: { - forceFit: true - - }, - plugins: expander, - collapsible: true, - animCollapse: false, - title: "System Info" - }); - var instrumentationArea = new Ext.tree.TreePanel({ - autoScroll: true, - useArrows: true, - height: 300, - root: instrumentationTreeRoot, - tbar: [viewInstrumentation, { - xtype: 'tbfill' - }, checkStatus, serverVersion], - title: 'Instrumentation' - }); - var metricsArea = new Ext.tree.TreePanel({ - autoScroll: true, - useArrows: true, - height: 300, - root: metricsTreeRoot, - tbar: [viewMetrics, { - xtype: 'tbfill' - }, checkStatus, serverVersion], - title: 'Metrics' - }); - - var slaDashboard = new Ext.Panel({ - title: 'SLA', - autoLoad : { - url : 'console/sla/oozie-sla.html', - scripts: true - } - }); - - var coordJobArea = new Ext.grid.GridPanel({ - store: coord_jobs_store, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'id', - header: "Job Id", - width: 230, - sortable: true, - dataIndex: 'coordJobId' - }, { - header: "Name", - width: 100, - sortable: true, - dataIndex: 'coordJobName' - }, { - header: "Status", - width: 80, - sortable: true, - dataIndex: 'status' - }, { - header: "User", - width: 80, - sortable: true, - dataIndex: 'user' - }, { - header: "Group", - width: 80, - sortable: true, - dataIndex: 'group' - }, { - header: "Frequency", - width: 70, - sortable: true, - dataIndex: 'frequency' - }, { - header: "Unit", - width: 60, - sortable: true, - dataIndex: 'timeUnit' - }, { - header: "Started", - width: 170, - sortable: true, - dataIndex: 'startTime' - }, { - header: "Next Materialization", - width: 170, - sortable: true, - dataIndex: 'nextMaterializedTime' - }], - - stripeRows: true, - autoScroll: true, - useArrows: true, - height: 300, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - coord_jobs_store.baseParams.filter = getCustomFilter(); - coord_jobs_store.baseParams.timezone = getTimeZone(); - coord_jobs_store.reload(); - } - }, refreshCoordAllJobsAction, refreshCoordActiveJobsAction, refreshCoordDoneJobsAction, - -{ - text: 'Custom Filter', - menu: [refreshCoordCustomJobsAction, changeCoordFilterAction, helpFilterAction ] - }, - - { - xtype: 'tbfill' - }, checkStatus, serverVersion], - title: 'Coordinator Jobs', - bbar: getPagingBar(coord_jobs_store), - listeners: { - cellclick: { - fn: showCoordJobContextMenu - } - } - }); - var bundleJobArea = new Ext.grid.GridPanel({ - store: bundle_jobs_store, - loadMask: true, - columns: [new Ext.grid.RowNumberer(), { - id: 'id', - header: "Job Id", - width: 230, - sortable: true, - dataIndex: 'bundleJobId' - }, { - header: "Name", - width: 80, - sortable: true, - dataIndex: 'bundleJobName' - }, { - header: "Status", - width: 80, - sortable: true, - dataIndex: 'status' - }, { - header: "User", - width: 60, - sortable: true, - dataIndex: 'user' - }, { - header: "Group", - width: 60, - sortable: true, - dataIndex: 'group' - }, { - header: "Kickoff Time", - width: 170, - sortable: true, - dataIndex: 'kickoffTime' - }, { - header: "Created Time", - width: 170, - sortable: true, - dataIndex: 'createdTime' - }], - - stripeRows: true, - autoScroll: true, - useArrows: true, - height: 300, - tbar: [ { - text: "   ", - icon: 'ext-2.2/resources/images/default/grid/refresh.gif', - handler: function() { - bundle_jobs_store.baseParams.filter = getCustomFilter(); - bundle_jobs_store.baseParams.timezone = getTimeZone(); - bundle_jobs_store.reload(); - } - }, refreshBundleAllJobsAction, refreshBundleActiveJobsAction, refreshBundleDoneJobsAction, - { - text: 'Custom Filter', - menu: [refreshBundleCustomJobsAction, changeBundleFilterAction, helpFilterAction ] - }, - { - xtype: 'tbfill' - }, checkStatus, serverVersion], - title: 'Bundle Jobs', - bbar: getPagingBar(bundle_jobs_store), - listeners: { - cellclick: { - fn: showBundleJobContextMenu - } - } - }); - Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - var currentTimezone = Ext.state.Manager.get("TimezoneId","GMT"); - var userName = Ext.state.Manager.get("UserName",""); - var commonFilter = Ext.state.Manager.get("GlobalCustomFilter",""); - var settingsArea = new Ext.FormPanel({ - title: 'Settings', - items: [{ - xtype: 'combo', - width: 300, - fieldLabel: 'Timezone', - emptyText: 'Select a timezone...', - store: timeZones_store, - displayField: 'timezoneDisplayName', - valueField: 'timezoneId', - selectOnFocus: true, - mode: 'local', - typeAhead: true, - editable: false, - triggerAction: 'all', - value: currentTimezone, - listeners: - { select: { fn:function(combo, value) - { - Ext.state.Manager.setProvider(new Ext.state.CookieProvider({ - expires: new Date(new Date().getTime()+315569259747) // about 10 years from now! - })); - Ext.state.Manager.set("TimezoneId",this.value); - } - }} - },{ - xtype: 'label', - width: 300, - style: 'font: normal 12px tahoma', - text: 'Global Filter' - },{ - xtype: 'field', - width: 300, - fieldLabel: '- by User Name', - inputType: 'text', - typeAhead: true, - editable: false, - triggerAction: 'all', - value: userName, - listeners: - { change: { fn:function(field, value) - { - Ext.state.Manager.setProvider(new Ext.state.CookieProvider({ - expires: new Date(new Date().getTime()+315569259747) // about 10 years from now! - })); - Ext.state.Manager.set("UserName", value); - } - }} - },{ - xtype: 'field', - width: 300, - fieldLabel: '- by Filter Text', - inputType: 'text', - typeAhead: true, - editable: false, - triggerAction: 'all', - value: commonFilter, - listeners: - { change: { fn:function(field, value) - { - Ext.state.Manager.setProvider(new Ext.state.CookieProvider({ - expires: new Date(new Date().getTime()+315569259747) // about 10 years from now! - })); - var upper_value = convertStatusToUpperCaseAndEscapeHtml(value); - Ext.state.Manager.set("GlobalCustomFilter", upper_value); - } - }} - }] - }); - // main tab panel containing Workflow Jobs, Coordinator Jobs, Bundle Jobs, System Info, ... - var tabs = new Ext.TabPanel({ - renderTo: 'oozie-console', - height: 580, - title: "Oozie Web Console" - - }); - tabs.add(jobs_grid); - tabs.add(coordJobArea); - tabs.add(bundleJobArea); - if (isSLAServiceEnabled == "true") { - tabs.add(slaDashboard); - } - if(showSystemInfo == "true"){ - tabs.add(adminGrid); - viewConfig.execute(); - } - if (isInstrumentationServiceEnabled == "true") { - tabs.add(instrumentationArea); - } - if (isMetricsInstrumentationServiceEnabled == "true") { - tabs.add(metricsArea); - } - tabs.add(settingsArea); - tabs.setActiveTab(jobs_grid); - // showing Workflow Jobs active tab as default - // and loading coord,bundle only when tab opened - Ext.getCmp('jobs_active').setIconClass('job-filter'); - var isFirstLoadCoord = 0; - var isFirstLoadBundle = 0; - tabs.addListener("tabchange", function(panel, selectedTab) { - if (selectedTab.title == 'Workflow Jobs') { - jobs_grid.setVisible(true); - return; - } - else if (selectedTab.title == 'Coordinator Jobs') { - if (isFirstLoadCoord == 0) { - refreshCoordActiveJobsAction.execute(); - isFirstLoadCoord = 1; - } - coordJobArea.setVisible(true); - return; - } - else if (selectedTab.title == 'Bundle Jobs') { - if (isFirstLoadBundle == 0) { - refreshBundleActiveJobsAction.execute(); - isFirstLoadBundle = 1; - } - bundleJobArea.setVisible(true); - return; - } - }); - checkStatus.execute(); - serverVersion.execute(); - if (isInstrumentationServiceEnabled == "true") { - viewInstrumentation.execute(); - } - if (isMetricsInstrumentationServiceEnabled == "true") { - viewMetrics.execute(); - } - var jobId = getReqParam("job"); - if (jobId != "") { - if (jobId.endsWith("-C")) { - coordJobDetailsGridWindow(jobId); - } - else if (jobId.endsWith("-B")) { - bundleJobDetailsGridWindow(jobId); - } - else if (jobId.endsWith("-W")) { - jobDetailsGridWindow(jobId); - } - else if (jobId.indexOf("-C@") !=-1) { - coordActionDetailsGridWindow(jobId); - } - else if (jobId.endsWith("-W@") !=-1) { - jobId = jobId.substring(0, index + 2); - jobDetailsGridWindow(jobId); - } - - } -} -// now the on ready function -Ext.onReady(function() { - getSupportedVersions.execute(); -}); diff --git a/webapp/src/main/webapp/oozie_50x.png b/webapp/src/main/webapp/oozie_50x.png deleted file mode 100644 index 8109ab7da94ec109979704b61c820c063dde0f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4660 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