summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2015-04-17 06:56:18 +0200
committerByron Jones <glob@mozilla.com>2015-04-17 06:56:18 +0200
commit09de3de190a692dfbc2533ceee8f31648905b91a (patch)
treeb551eb1643bf54f614b3810b0c84bec90d0b411b
parente9bfbbb9c07d902499bb0901a0cd67fe9279bf3b (diff)
downloadbugzilla-09de3de190a692dfbc2533ceee8f31648905b91a.tar.gz
bugzilla-09de3de190a692dfbc2533ceee8f31648905b91a.tar.xz
Bug 1154730: rewrite product/component searching to use jquery-ui instead of yui
-rw-r--r--extensions/BMO/template/en/default/global/choose-product.html.tmpl293
-rw-r--r--extensions/ProdCompSearch/lib/WebService.pm25
-rw-r--r--extensions/ProdCompSearch/template/en/default/pages/prodcompsearch.html.tmpl8
-rw-r--r--extensions/ProdCompSearch/template/en/default/prodcompsearch/form.html.tmpl67
-rw-r--r--extensions/ProdCompSearch/web/js/prod_comp_search.js216
-rw-r--r--extensions/ProdCompSearch/web/styles/prod_comp_search.css22
-rw-r--r--js/jquery/ui/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin418 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin312 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.pngbin0 -> 212 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_flat_10_000000_40x100.pngbin205 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.pngbin0 -> 208 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_100_f6f6f6_1x400.pngbin262 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_100_fdf5ce_1x400.pngbin348 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.pngbin0 -> 335 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.pngbin207 -> 207 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.pngbin0 -> 262 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.pngbin0 -> 262 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.pngbin0 -> 332 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin5815 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin278 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.pngbin0 -> 280 bytes
-rw-r--r--js/jquery/ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin328 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_222222_256x240.pngbin6922 -> 6922 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_2e83ff_256x240.png (renamed from js/jquery/ui/images/ui-icons_228ef1_256x240.png)bin4549 -> 4549 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_454545_256x240.pngbin0 -> 6992 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_888888_256x240.pngbin0 -> 6999 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_cd0a0a_256x240.png (renamed from js/jquery/ui/images/ui-icons_ef8c08_256x240.png)bin4549 -> 4549 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_ffd27a_256x240.pngbin4549 -> 0 bytes
-rw-r--r--js/jquery/ui/images/ui-icons_ffffff_256x240.pngbin6299 -> 0 bytes
-rw-r--r--js/jquery/ui/jquery-ui-structure-min.css4
-rw-r--r--js/jquery/ui/jquery-ui-theme-min.css6
-rw-r--r--skins/standard/global.css22
32 files changed, 333 insertions, 330 deletions
diff --git a/extensions/BMO/template/en/default/global/choose-product.html.tmpl b/extensions/BMO/template/en/default/global/choose-product.html.tmpl
index 9f7232178..32883beef 100644
--- a/extensions/BMO/template/en/default/global/choose-product.html.tmpl
+++ b/extensions/BMO/template/en/default/global/choose-product.html.tmpl
@@ -1,21 +1,9 @@
-[%# The contents of this file are subject to the Mozilla Public
- # License Version 1.1 (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.mozilla.org/MPL/
+[%# This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
- # Software distributed under the License is distributed on an "AS
- # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- # implied. See the License for the specific language governing
- # rights and limitations under the License.
- #
- # The Original Code is the Bugzilla Bug Tracking System.
- #
- # The Initial Developer of the Original Code is Netscape Communications
- # Corporation. Portions created by Netscape are
- # Copyright (C) 1998 Netscape Communications Corporation. All
- # Rights Reserved.
- #
- # Contributor(s): Gervase Markham <gerv@gerv.net>
+ # This Source Code Form is "Incompatible With Secondary Licenses", as
+ # defined by the Mozilla Public License, v. 2.0.
#%]
[%# INTERFACE:
@@ -27,26 +15,35 @@
# format: the desired format to display the target.
#%]
-[% PROCESS global/variables.none.tmpl %]
-
-[% style_urls = [ "extensions/BMO/web/styles/choose_product.css" ] %]
-
-[% IF target == "enter_bug.cgi" %]
- [% title = "Enter $terms.Bug" %]
- [% h2 = "Which product is affected by the problem you would like to report?" %]
-[% ELSIF target == "describecomponents.cgi" %]
- [% title = "Browse" %]
- [% h2 = "Which product would you like to have described?" %]
-[% END %]
-
-[% javascript_urls = [ "js/yui3/yui/yui-min.js",
- "extensions/ProdCompSearch/web/js/prod_comp_search.js" ]
+[%
+ USE Bugzilla;
+ PROCESS global/variables.none.tmpl;
+
+ IF target == "enter_bug.cgi";
+ title = "Enter $terms.Bug";
+ h2 = "Which product is affected by the problem you would like to report?";
+ is_describe = 0;
+ ELSIF target == "describecomponents.cgi";
+ title = "Browse";
+ h2 = "Which product and component would you like to have described?";
+ is_describe = 1;
+ ELSE;
+ title = "Choose a Product";
+ is_describe = 0;
+ END;
+
+ style_urls = [
+ "extensions/BMO/web/styles/choose_product.css",
+ "extensions/ProdCompSearch/web/styles/prod_comp_search.css",
+ ];
+ javascript_urls = [ "extensions/ProdCompSearch/web/js/prod_comp_search.js" ];
+
+ cgi = Bugzilla.cgi;
+ classification = cgi.param('classification');
+
+ PROCESS global/header.html.tmpl
+ generate_api_token = 1;
%]
-[% onload = "document.getElementById('prod_comp_search').focus();" %]
-[% style_urls.push("extensions/ProdCompSearch/web/styles/prod_comp_search.css") %]
-
-[% DEFAULT title = "Choose a Product" %]
-[% PROCESS global/header.html.tmpl %]
<div id="choose_product">
@@ -62,135 +59,131 @@
<div id="prod_comp_search_main">
[% PROCESS prodcompsearch/form.html.tmpl
- input_label = "Find product:"
- format = format
- cloned_bug_id = cloned_bug_id
- script_name = target %]
+ input_label = "Find product and component:"
+ format = format
+ cloned_bug_id = cloned_bug_id
+ script_name = target
+ anchor_component = is_describe
+ auto_focus = 1
+ %]
</div>
<h2>or choose from the following selections</h2>
-[% USE Bugzilla %]
-[% cgi = Bugzilla.cgi %]
-[% SET classification = cgi.param('classification') %]
[% IF NOT ((cgi.param("full")) OR (user.settings.product_chooser.value == 'full_product_chooser')) %]
-<table align="center" border="0" width="600" cellpadding="5" cellspacing="0">
-[% INCLUDE easyproduct
- name="Core"
- icon="component.png"
-%]
-[% INCLUDE easyproduct
- name="Firefox"
- icon="firefox.png"
-%]
-[% INCLUDE easyproduct
- name="Firefox OS"
- icon="firefox_os.png"
-%]
-[% INCLUDE easyproduct
- name="Firefox for Android"
- icon="firefox_android.png"
-%]
-[% INCLUDE easyproduct
- name="Firefox for iOS"
- icon="firefox_ios.png"
-%]
-[% INCLUDE easyproduct
- name="Marketplace"
- icon="marketplace.png"
-%]
-[% INCLUDE easyproduct
- name="Webmaker"
- icon="webmaker.png"
-%]
-[% INCLUDE easyproduct
- name="Toolkit"
- icon="component.png"
-%]
-[% INCLUDE easyproduct
- name="Thunderbird"
- icon="thunderbird.png"
-%]
-[% INCLUDE easyproduct
- name="SeaMonkey"
- icon="seamonkey.png"
-%]
-[% INCLUDE easyproduct
- name="Mozilla Localizations"
- icon="localization.png"
-%]
-[% INCLUDE easyproduct
- name="Mozilla Services"
- icon="sync.png"
-%]
-<tr>
- <td><a href="[% target FILTER uri %]?full=1
- [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
- [%- IF classification %]&amp;classification=[% classification FILTER uri %][% END -%]
- [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
- <img src="extensions/BMO/web/producticons/other.png" height="64" width="64" border="0"></a></td>
- <td><h2 align="left" style="margin-bottom: 0px;"><a href="[% target FILTER uri %]?full=1
- [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
- [%- IF classification %]&amp;classification=[% classification FILTER uri %][% END -%]
- [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
- Other Products</a></h2>
- <p style="margin-top: 0px;">Other Mozilla products which aren't listed here</p>
- </td>
-</tr>
-</table>
-[% ELSE %]
-
-<table>
-
-[% FOREACH c = classifications %]
- [% IF c.object %]
+ <table align="center" border="0" width="600" cellpadding="5" cellspacing="0">
+ [% INCLUDE easyproduct
+ name="Core"
+ icon="component.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Firefox"
+ icon="firefox.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Firefox OS"
+ icon="firefox_os.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Firefox for Android"
+ icon="firefox_android.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Firefox for iOS"
+ icon="firefox_ios.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Marketplace"
+ icon="marketplace.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Webmaker"
+ icon="webmaker.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Toolkit"
+ icon="component.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Thunderbird"
+ icon="thunderbird.png"
+ %]
+ [% INCLUDE easyproduct
+ name="SeaMonkey"
+ icon="seamonkey.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Mozilla Localizations"
+ icon="localization.png"
+ %]
+ [% INCLUDE easyproduct
+ name="Mozilla Services"
+ icon="sync.png"
+ %]
<tr>
- <td align="right"><h2>[% c.object.name FILTER html %]</h2></td>
- <td><strong>[%+ c.object.description FILTER html_light %]</strong></td>
+ <td><a href="[% target FILTER uri %]?full=1
+ [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
+ [%- IF classification %]&amp;classification=[% classification FILTER uri %][% END -%]
+ [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
+ <img src="extensions/BMO/web/producticons/other.png" height="64" width="64" border="0"></a></td>
+ <td><h2 align="left" style="margin-bottom: 0px;"><a href="[% target FILTER uri %]?full=1
+ [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
+ [%- IF classification %]&amp;classification=[% classification FILTER uri %][% END -%]
+ [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
+ Other Products</a></h2>
+ <p style="margin-top: 0px;">Other Mozilla products which aren't listed here</p>
+ </td>
</tr>
- [% END %]
+ </table>
+
+[% ELSE %]
- [% FOREACH p = c.products %]
- [% class = "" %]
- [% has_entry_groups = 0 %]
- [% FOREACH gid = p.group_controls.keys %]
- [% IF p.group_controls.$gid.entry %]
- [% has_entry_groups = 1 %]
- [% class = class _ " group_$gid" %]
+ <table>
+ [% FOREACH c = classifications %]
+ [% IF c.object %]
+ <tr>
+ <td align="right"><h2>[% c.object.name FILTER html %]</h2></td>
+ <td><strong>[%+ c.object.description FILTER html_light %]</strong></td>
+ </tr>
[% END %]
- [% END %]
- <tr class="[% "group_secure" IF has_entry_groups +%] [% class FILTER html %]"
- [%- IF has_entry_groups %] title="This product requires one or more
- group memberships in order to enter [% terms.bugs %] in it. You have them, but be
- aware not everyone else does."[% END %]>
- <th align="right" valign="top">
- [% IF p.name == "Mozilla PR" AND target == "enter_bug.cgi" AND NOT format AND NOT cgi.param("debug") %]
- <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%]
- [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END %]&amp;format=mozpr">
- [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
- [% ELSE %]
- <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%]
- [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
- [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
- [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
+
+ [% FOREACH p = c.products %]
+ [% class = "" %]
+ [% has_entry_groups = 0 %]
+ [% FOREACH gid = p.group_controls.keys %]
+ [% IF p.group_controls.$gid.entry %]
+ [% has_entry_groups = 1 %]
+ [% class = class _ " group_$gid" %]
+ [% END %]
+ [% END %]
+ <tr class="[% "group_secure" IF has_entry_groups +%] [% class FILTER html %]"
+ [%- IF has_entry_groups %] title="This product requires one or more group memberships in order to enter [% terms.bugs %] in it. You have them, but be aware not everyone else does."[% END %]>
+ <th align="right" valign="top">
+ [% IF p.name == "Mozilla PR" AND target == "enter_bug.cgi" AND NOT format AND NOT cgi.param("debug") %]
+ <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%]
+ [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END %]&amp;format=mozpr">
+ [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
+ [% ELSE %]
+ <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%]
+ [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
+ [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
+ [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
+ [% END %]
+ </th>
+ <td valign="top">[% p.description FILTER html_light %]</td>
+ </tr>
[% END %]
- </th>
- <td valign="top">[% p.description FILTER html_light %]</td>
- </tr>
+ [% END %]
+ </table>
+ <br>
+ [% IF target == "enter_bug.cgi" AND user.settings.product_chooser.value != 'full_product_chooser' %]
+ <p>You can choose to get this screen by default when you click "New [% terms.Bug %]"
+ by changing your <a href="userprefs.cgi?tab=settings">preferences</a>.</p>
[% END %]
[% END %]
-</table>
-
<br>
-[% IF target == "enter_bug.cgi" AND user.settings.product_chooser.value != 'full_product_chooser' %]
-<p>You can choose to get this screen by default when you click "New [% terms.Bug %]"
-by changing your <a href="userprefs.cgi?tab=settings">preferences</a>.</p>
-[% END %]
-[% END %]
-<br>
-
</div>
<div id="guided">
diff --git a/extensions/ProdCompSearch/lib/WebService.pm b/extensions/ProdCompSearch/lib/WebService.pm
index b9a03eb27..3bf0e1377 100644
--- a/extensions/ProdCompSearch/lib/WebService.pm
+++ b/extensions/ProdCompSearch/lib/WebService.pm
@@ -15,10 +15,31 @@ use base qw(Bugzilla::WebService);
use Bugzilla::Error;
use Bugzilla::Util qw(detaint_natural trick_taint trim);
+#############
+# Constants #
+#############
+
use constant PUBLIC_METHODS => qw(
prod_comp_search
);
+sub rest_resources {
+ return [
+ qr{^/prod_comp_search/(.*)$}, {
+ GET => {
+ method => 'prod_comp_search',
+ params => sub {
+ return { search => $_[0] }
+ }
+ }
+ }
+ ]
+}
+
+##################
+# Public Methods #
+##################
+
sub prod_comp_search {
my ($self, $params) = @_;
my $user = Bugzilla->user;
@@ -104,6 +125,10 @@ sub prod_comp_search {
return { products => $products };
}
+###################
+# Private Methods #
+###################
+
sub _build_terms {
my ($query, $product, $component) = @_;
my $dbh = Bugzilla->dbh();
diff --git a/extensions/ProdCompSearch/template/en/default/pages/prodcompsearch.html.tmpl b/extensions/ProdCompSearch/template/en/default/pages/prodcompsearch.html.tmpl
index 5b39315b5..6e28d88e5 100644
--- a/extensions/ProdCompSearch/template/en/default/pages/prodcompsearch.html.tmpl
+++ b/extensions/ProdCompSearch/template/en/default/pages/prodcompsearch.html.tmpl
@@ -10,15 +10,15 @@
[% PROCESS global/header.html.tmpl
title = "File a $terms.Bug"
- javascript_urls = [ "js/yui3/yui/yui-min.js",
- "extensions/ProdCompSearch/web/js/prod_comp_search.js" ]
+ javascript_urls = [ "extensions/ProdCompSearch/web/js/prod_comp_search.js" ]
style_urls = [ "extensions/ProdCompSearch/web/styles/prod_comp_search.css" ]
%]
<div id="prod_comp_search_main">
[% PROCESS prodcompsearch/form.html.tmpl
- query_header = "File a $terms.Bug:"
- script_name = "enter_bug.cgi"
+ input_label = "File a $terms.Bug:"
+ script_name = "enter_bug.cgi"
+ auto_focus = 1
%]
</div>
diff --git a/extensions/ProdCompSearch/template/en/default/prodcompsearch/form.html.tmpl b/extensions/ProdCompSearch/template/en/default/prodcompsearch/form.html.tmpl
index 38f87dc1a..4239a9738 100644
--- a/extensions/ProdCompSearch/template/en/default/prodcompsearch/form.html.tmpl
+++ b/extensions/ProdCompSearch/template/en/default/prodcompsearch/form.html.tmpl
@@ -6,35 +6,48 @@
# defined by the Mozilla Public License, v. 2.0.
#%]
-[% DEFAULT max_results = 100 %]
-<script type="text/javascript">
- [% IF script_name %]
- ProdCompSearch.script_name = '[% script_name FILTER js %]';
- [% END %]
- [% IF format %]
- ProdCompSearch.format = '[% format FILTER js %]';
- [% END %]
- [% IF cloned_bug_id %]
- ProdCompSearch.cloned_bug_id = '[% cloned_bug_id FILTER js %]';
- [% END %]
- [% IF new_tab %]
- ProdCompSearch.new_tab = true;
- [% END %]
- ProdCompSearch.max_results = [% max_results FILTER js %];
-</script>
+[%#
+ # parameters (all are optional, defaults below)
+ # id : id and prefix of elements
+ # script_name : .cgi to redirect to
+ # max_results : maximum results displayed
+ # input_label : input field label
+ # auto_focus : focus the search form on page load
+ # format : format parameter passed to cgi
+ # cloned_bug_id : cloned_bug_id parameter
+ # new_tab : open in a new tab
+ # anchor_component : append #component to url
+ #%]
+
+[%
+ DEFAULT id = "pcs";
+ DEFAULT max_results = 100;
+ DEFAULT script_name = "enter_bug.cgi";
+%]
-<div id="prod_comp_search_form" class="yui3-skin-sam">
- <div id="prod_comp_search_header">
+<div class="pcs-form">
+ <div class="pcs-header">
[% input_label FILTER none %]&nbsp;
- <img id="prod_comp_throbber" src="extensions/ProdCompSearch/web/images/throbber.gif"
- class="bz_default_hidden" width="16" height="11">
- <span id="prod_comp_no_components" class="bz_default_hidden">
- No components found</span>
- <span id="prod_comp_too_many_components" class="bz_default_hidden">
+ <img id="[% id FILTER html %]-throbber"
+ src="extensions/ProdCompSearch/web/images/throbber.gif"
+ style="display:none" width="16" height="11">
+ <span class="pcs-message" id="[% id FILTER html %]-no_components" style="display:none">
+ No components found
+ </span>
+ <span class="pcs-message" id="[% id FILTER html %]-too_many_components" style="display:none">
Result limited to [% max_results FILTER html %] components
- <span id="prod_comp_error" class="bz_default_hidden">
- An error occured</span>
+ </span>
+ <span class="pcs-message" id="[% id FILTER html %]-error" style="display:none">
+ An error occured
+ </span>
</div>
- <input id="prod_comp_search" type="text" size="50"
- placeholder="Search by product and component keywords">
+ <input type="text" class="prod_comp_search" id="[% id FILTER html %]" size="50"
+ placeholder="Search by product and component keywords"
+ data-script_name="[% script_name FILTER html %]"
+ data-format="[% format FILTER html %]"
+ data-cloned_bug_id="[% cloned_bug_id FILTER html %]"
+ data-new_tab="[% new_tab ? "1" : "0" %]"
+ data-anchor_component="[% anchor_component ? "1" : "0" %]"
+ data-max_results="[% max_results FILTER html %]"
+ [% "autofocus" IF auto_focus %]>
</div>
diff --git a/extensions/ProdCompSearch/web/js/prod_comp_search.js b/extensions/ProdCompSearch/web/js/prod_comp_search.js
index f294994e3..ae7353779 100644
--- a/extensions/ProdCompSearch/web/js/prod_comp_search.js
+++ b/extensions/ProdCompSearch/web/js/prod_comp_search.js
@@ -7,138 +7,100 @@
// Product and component search to file a new bug
-var ProdCompSearch = {
- script_name: 'enter_bug.cgi',
- script_choices: ['enter_bug.cgi', 'describecomponents.cgi'],
- format: null,
- cloned_bug_id: null,
- new_tab: null,
- max_results: 100
-};
-
-YUI({
- base: 'js/yui3/',
- combine: false
-}).use("node", "json-stringify", "autocomplete", "escape",
- "datasource-io", "datasource-jsonschema", function(Y) {
- Y.on("domready", function() {
- var counter = 0,
- dataSource = null,
- autoComplete = null;
-
- var resultListFormat = function(query, results) {
- return Y.Array.map(results, function(result) {
- var data = result.raw;
- result.text = data.product + ' :: ' + data.component;
- return Y.Escape.html(result.text);
- });
- };
-
- var requestTemplate = function(query) {
- counter = counter + 1;
- var json_object = {
- version: "1.1",
- method : "PCS.prod_comp_search",
- id : counter,
- params : { search: query, limit: ProdCompSearch.max_results }
- };
- return Y.JSON.stringify(json_object);
- };
-
- var dataSource = new Y.DataSource.IO({
- source: 'jsonrpc.cgi',
- ioConfig: {
- method: "POST",
- headers: { 'Content-Type': 'application/json' }
- },
- on: {
- error: function(e) {
- if (console.error && e.response.meta.error) {
- console.error(e.response.meta.error.message);
- }
- Y.one("#prod_comp_throbber").addClass('bz_default_hidden');
- Y.one("#prod_comp_error").removeClass('bz_default_hidden');
- }
+$(function() {
+ 'use strict';
+ $('.prod_comp_search').autocomplete({
+ minLength: 3,
+ delay: 500,
+ source: function(request, response) {
+ var el = this.element;
+ var id = '#' + el.prop('id');
+ $(id + '-throbber').show();
+ $(id + '-no_components').hide();
+ $(id + '-too_many_components').hide();
+ $(id + '-error').hide();
+ var url = 'rest/prod_comp_search/' + encodeURIComponent(request.term) +
+ '?limit=' + (el.data('max_results') + 1);
+ if (BUGZILLA.api_token) {
+ url += '&Bugzilla_api_token=' + encodeURIComponent(BUGZILLA.api_token);
}
- });
-
- dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
- schema: {
- resultListLocator : "result.products",
- resultFields : [ "product", "component" ],
- metaFields : { error : 'error' }
- }
- });
-
- var input = Y.one('#prod_comp_search');
-
- input.plug(Y.Plugin.AutoComplete, {
- activateFirstItem: false,
- enableCache: true,
- source: dataSource,
- minQueryLength: 3,
- queryDelay: 0.05,
- resultFormatter: resultListFormat,
- suppressInputUpdate: true,
- maxResults: ProdCompSearch.max_results,
- scrollIntoView: true,
- requestTemplate: requestTemplate,
- on: {
- query: function(e) {
- Y.one("#prod_comp_throbber").removeClass('bz_default_hidden');
- Y.one("#prod_comp_no_components").addClass('bz_default_hidden');
- Y.one("#prod_comp_too_many_components").addClass('bz_default_hidden');
- Y.one("#prod_comp_error").addClass('bz_default_hidden');
- },
- results: function(e) {
- Y.one("#prod_comp_throbber").addClass('bz_default_hidden');
- input.ac.set('activateFirstItem', e.results.length == 1);
- if (e.results.length == 0) {
- Y.one("#prod_comp_no_components").removeClass('bz_default_hidden');
- }
- else if (e.results.length + 1 > ProdCompSearch.max_results) {
- Y.one("#prod_comp_too_many_components").removeClass('bz_default_hidden');
- }
- },
- select: function(e) {
- // Only redirect if the script_name is a valid choice
- if (Y.Array.indexOf(ProdCompSearch.script_choices, ProdCompSearch.script_name) == -1)
- return;
-
- var data = e.result.raw;
- var url = ProdCompSearch.script_name +
- "?product=" + encodeURIComponent(data.product) +
- "&component=" + encodeURIComponent(data.component);
- if (ProdCompSearch.script_name == 'enter_bug.cgi') {
- if (ProdCompSearch.format)
- url += "&format=" + encodeURIComponent(ProdCompSearch.format);
- if (ProdCompSearch.cloned_bug_id)
- url += "&cloned_bug_id=" + encodeURIComponent(ProdCompSearch.cloned_bug_id);
- }
- if (ProdCompSearch.script_name == 'describecomponents.cgi') {
- url += "#" + encodeURIComponent(data.component);
- }
- if (ProdCompSearch.new_tab) {
- window.open(url, '_blank');
- }
- else {
- window.location.href = url;
- }
+ $.ajax({
+ url: url,
+ contentType: 'application/json'
+ })
+ .done(function(data) {
+ $(id + '-throbber').hide();
+ if (data.error) {
+ $(id + '-error').show();
+ console.log(data.message);
+ return false;
+ }
+ if (data.products.length === 0) {
+ $(id + '-no_components').show();
}
- },
- after: {
- select: function(e) {
- if (ProdCompSearch.new_tab) {
- input.set('value','');
+ else if (data.products.length > el.data('max_results')) {
+ $(id + '-too_many_components').show();
+ }
+ var current_product = "";
+ var prod_comp_array = [];
+ var base_params = [];
+ if (el.data('format')) {
+ base_params.push('format=' + encodeURIComponent(el.data('format')));
+ }
+ if (el.data('cloned_bug_id')) {
+ base_params.push('cloned_bug_id=' + encodeURIComponent(el.data('cloned_bug_id')));
+ }
+ $.each(data.products, function() {
+ var params = base_params.slice();
+ params.push('product=' + encodeURIComponent(this.product));
+ if (this.product != current_product) {
+ prod_comp_array.push({
+ label: this.product,
+ url: el.data('script_name') + '?' + params.join('&')
+ });
+ current_product = this.product;
}
+ params.push('component=' + encodeURIComponent(this.component));
+ var url = el.data('script_name') + '?' + params.join('&');
+ if (el.data('anchor_component')) {
+ url += "#" + encodeURIComponent(this.component);
+ }
+ prod_comp_array.push({
+ label: this.product + ' :: ' + this.component,
+ url: url
+ });
+ });
+ response(prod_comp_array);
+ })
+ .fail(function(xhr, error_text) {
+ if (xhr.responseJSON.error) {
+ error_text = xhr.responseJSON.message;
}
+ $(id + '-throbber').hide();
+ $(id + '-comp_error').show();
+ console.log(error_text);
+ });
+ },
+ focus: function(event, ui) {
+ event.preventDefault();
+ },
+ select: function(event, ui) {
+ event.preventDefault();
+ var el = $(this);
+ el.val(ui.item.label);
+ if (el.data('new_tab')) {
+ window.open(ui.item.url, '_blank');
}
- });
-
- input.on('focus', function (e) {
- if (e.target.value && e.target.value.length > 3) {
- dataSource.load(e.target.value);
+ else {
+ window.location.href = ui.item.url;
}
- });
+ }
+ })
+ .focus(function(event) {
+ var el = $(event.target);
+ if (el.val().length >= el.autocomplete('option', 'minLength')) {
+ el.autocomplete('search');
+ }
});
+ $('.prod_comp_search:focus').select();
});
diff --git a/extensions/ProdCompSearch/web/styles/prod_comp_search.css b/extensions/ProdCompSearch/web/styles/prod_comp_search.css
index ccb5887c4..b898672b4 100644
--- a/extensions/ProdCompSearch/web/styles/prod_comp_search.css
+++ b/extensions/ProdCompSearch/web/styles/prod_comp_search.css
@@ -5,23 +5,11 @@
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, v. 2.0. */
-#prod_comp_search_main {
- width: 400px;
- margin-right: auto;
- margin-left: auto;
-}
-
-#prod_comp_search_form .yui3-aclist-input {
- width: 360px;
-}
-
-#prod_comp_search_form .yui3-aclist-content {
- max-height: 500px;
- overflow: auto;
+.pcs-message {
+ color: red;
}
-#prod_comp_no_components,
-#prod_comp_error,
-#prod_comp_too_many_components {
- color: red;
+#prod_comp_search_main {
+ width: 400px;
+ margin: 0 auto;
}
diff --git a/js/jquery/ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/js/jquery/ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png
deleted file mode 100644
index 3b6948452..000000000
--- a/js/jquery/ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_diagonals-thick_20_666666_40x40.png b/js/jquery/ui/images/ui-bg_diagonals-thick_20_666666_40x40.png
deleted file mode 100644
index 9b21f7ebd..000000000
--- a/js/jquery/ui/images/ui-bg_diagonals-thick_20_666666_40x40.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png b/js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 000000000..83c3b5b4c
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_flat_10_000000_40x100.png b/js/jquery/ui/images/ui-bg_flat_10_000000_40x100.png
deleted file mode 100644
index 363345603..000000000
--- a/js/jquery/ui/images/ui-bg_flat_10_000000_40x100.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png b/js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 000000000..5542a69fa
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_100_f6f6f6_1x400.png b/js/jquery/ui/images/ui-bg_glass_100_f6f6f6_1x400.png
deleted file mode 100644
index a0ef1e66a..000000000
--- a/js/jquery/ui/images/ui-bg_glass_100_f6f6f6_1x400.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_100_fdf5ce_1x400.png b/js/jquery/ui/images/ui-bg_glass_100_fdf5ce_1x400.png
deleted file mode 100644
index 9be7fcb84..000000000
--- a/js/jquery/ui/images/ui-bg_glass_100_fdf5ce_1x400.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png b/js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 000000000..47861369e
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png b/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png
index 1a77e4493..d27cbce96 100644
--- a/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png
+++ b/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png b/js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 000000000..20e2b7239
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png b/js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 000000000..4ce910a46
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png b/js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 000000000..b879735a7
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/js/jquery/ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png
deleted file mode 100644
index 420d9e222..000000000
--- a/js/jquery/ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/js/jquery/ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
deleted file mode 100644
index 34e2c51b4..000000000
--- a/js/jquery/ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 000000000..42af475f8
--- /dev/null
+++ b/js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/js/jquery/ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
deleted file mode 100644
index fa34f6734..000000000
--- a/js/jquery/ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_222222_256x240.png b/js/jquery/ui/images/ui-icons_222222_256x240.png
index c1cb1170c..e9c8e16ac 100644
--- a/js/jquery/ui/images/ui-icons_222222_256x240.png
+++ b/js/jquery/ui/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_228ef1_256x240.png b/js/jquery/ui/images/ui-icons_2e83ff_256x240.png
index 3a0140cff..f2bf83883 100644
--- a/js/jquery/ui/images/ui-icons_228ef1_256x240.png
+++ b/js/jquery/ui/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_454545_256x240.png b/js/jquery/ui/images/ui-icons_454545_256x240.png
new file mode 100644
index 000000000..d6169e8bf
--- /dev/null
+++ b/js/jquery/ui/images/ui-icons_454545_256x240.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_888888_256x240.png b/js/jquery/ui/images/ui-icons_888888_256x240.png
new file mode 100644
index 000000000..d3e6e02a0
--- /dev/null
+++ b/js/jquery/ui/images/ui-icons_888888_256x240.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_ef8c08_256x240.png b/js/jquery/ui/images/ui-icons_cd0a0a_256x240.png
index 036ee072d..493701892 100644
--- a/js/jquery/ui/images/ui-icons_ef8c08_256x240.png
+++ b/js/jquery/ui/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_ffd27a_256x240.png b/js/jquery/ui/images/ui-icons_ffd27a_256x240.png
deleted file mode 100644
index 8b6c05868..000000000
--- a/js/jquery/ui/images/ui-icons_ffd27a_256x240.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/images/ui-icons_ffffff_256x240.png b/js/jquery/ui/images/ui-icons_ffffff_256x240.png
deleted file mode 100644
index 4f624bb2b..000000000
--- a/js/jquery/ui/images/ui-icons_ffffff_256x240.png
+++ /dev/null
Binary files differ
diff --git a/js/jquery/ui/jquery-ui-structure-min.css b/js/jquery/ui/jquery-ui-structure-min.css
index 76291b37b..5c0a57122 100644
--- a/js/jquery/ui/jquery-ui-structure-min.css
+++ b/js/jquery/ui/jquery-ui-structure-min.css
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.11.2 - 2014-11-09
+/*! jQuery UI - v1.11.4 - 2015-04-12
* http://jqueryui.com
-* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+* Copyright 2015 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-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.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{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.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,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.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{overflow:hidden;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:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 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:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.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("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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;-ms-touch-action:none;touch-action:none}.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:none;background:none;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:none;border-bottom:none;border-right:none}.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 .ui-tabs-anchor{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 .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.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} \ No newline at end of file
diff --git a/js/jquery/ui/jquery-ui-theme-min.css b/js/jquery/ui/jquery-ui-theme-min.css
index bd705fb71..2ee8aa71a 100644
--- a/js/jquery/ui/jquery-ui-theme-min.css
+++ b/js/jquery/ui/jquery-ui-theme-min.css
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.11.2 - 2014-11-11
+/*! jQuery UI - v1.11.4 - 2015-04-15
* http://jqueryui.com
-* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-.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,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus 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
+.ui-widget{font-family: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:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% 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:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.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_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.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:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file
diff --git a/skins/standard/global.css b/skins/standard/global.css
index 3eb106faf..0cfec436f 100644
--- a/skins/standard/global.css
+++ b/skins/standard/global.css
@@ -667,3 +667,25 @@ input.required, select.required, span.required_explanation {
border: 2px solid #B70000;
background-color: #FFEBEB;
}
+
+/* jquery-ui overrides */
+
+.ui-autocomplete {
+ /* set a max height for autocomplete lists */
+ overflow-y: auto;
+ overflow-x: hidden;
+ max-height: 500px;
+ /* hovering over the bottom item increases the height by 1px, resulting in a scrollbar */
+ padding-bottom: 1px !important;
+}
+
+/* always use our font and size */
+.ui-widget {
+ font-family: inherit !important;
+ font-size: small !important;
+}
+
+/* menu items shouldn't be bold */
+.ui-menu .ui-menu-item {
+ font-weight: normal !important;
+}