From 5504bb0b8abe610a5acf74b4dac177213b9f8169 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:28:42 +0200 Subject: [PATCH 01/24] Grid properly defined as abstract class --- Grid.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Grid.php b/Grid.php index 30786c8..839e7d9 100644 --- a/Grid.php +++ b/Grid.php @@ -9,7 +9,9 @@ */ namespace NiftyGrid; -class Grid extends \Nette\Application\UI\Control +use Nette\Application\UI\Presenter; + +abstract class Grid extends \Nette\Application\UI\Control { const ROW_FORM = "rowForm"; @@ -73,6 +75,7 @@ class Grid extends \Nette\Application\UI\Control protected function attached($presenter) { parent::attached($presenter); + if ( ! $presenter instanceof Presenter) return; $this->addComponent(New \Nette\ComponentModel\Container(), "columns"); $this->addComponent(New \Nette\ComponentModel\Container(), "buttons"); @@ -129,6 +132,8 @@ protected function attached($presenter) $this->count = $this->getCount(); } + abstract protected function configure(\Nette\Application\UI\Presenter $presenter); + /** * @param string $subGrid */ @@ -858,4 +863,4 @@ public function render() $this->template->setFile($templatePath); $this->template->render(); } -} \ No newline at end of file +} From 5c831b0423448e98d948ac8691adeef0a775fb4c Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:29:09 +0200 Subject: [PATCH 02/24] cleaned --- Grid.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Grid.php b/Grid.php index 839e7d9..f06e2b8 100644 --- a/Grid.php +++ b/Grid.php @@ -193,7 +193,6 @@ public function findSubGridPath($gridName) * @param null|int $truncate * @return Column * @throws DuplicateColumnException - * @return \Nifty\Grid\Column */ protected function addColumn($name, $label = NULL, $width = NULL, $truncate = NULL) { @@ -290,6 +289,7 @@ public function addSubGrid($name, $label = NULL) */ public function getColumnNames() { + $columns = array(); foreach($this['columns']->components as $column){ $columns[] = $column->name; } From eacdd6489790968ab21e01059fcb9687ab3d13de Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:29:23 +0200 Subject: [PATCH 03/24] removed some magic --- Grid.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Grid.php b/Grid.php index f06e2b8..6ff6077 100644 --- a/Grid.php +++ b/Grid.php @@ -302,8 +302,8 @@ public function getColumnNames() public function getColsCount() { $count = count($this['columns']->components); - $this->hasActionForm() ? $count++ : $count; - ($this->hasButtons() || $this->hasFilterForm()) ? $count++ : $count; + if ($this->hasActionForm()) $count++; + if ($this->hasButtons() || $this->hasFilterForm()) $count++; $count += count($this['subGrids']->components); return $count; From 5deaac784cdec353bad39e43e407075e9db097aa Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:30:27 +0200 Subject: [PATCH 04/24] typehint for Nette Database datasource --- DataSource/NDataSource.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DataSource/NDataSource.php b/DataSource/NDataSource.php index 8cf00d2..ff790dc 100644 --- a/DataSource/NDataSource.php +++ b/DataSource/NDataSource.php @@ -10,13 +10,15 @@ namespace NiftyGrid; use NiftyGrid\FilterCondition, - Nette\Utils\Strings; + Nette\Utils\Strings, + Nette\Database\Table\Selection; class NDataSource implements IDataSource { + /** @var Selection */ private $data; - public function __construct($data) + public function __construct(Selection $data) { $this->data = $data; } From eec6d0322252fce69ea339c2d8077edf11fb9e97 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:32:36 +0200 Subject: [PATCH 05/24] css + js + images moved to resources directory --- {css => resources/css}/example.css | 0 {css => resources/css}/grid.css | 0 {css => resources/css}/images/add.png | Bin {css => resources/css}/images/calendar.png | Bin {css => resources/css}/images/cancel_white.png | Bin {css => resources/css}/images/cross.png | Bin {css => resources/css}/images/delete.png | Bin {css => resources/css}/images/edit.png | Bin {css => resources/css}/images/fast_edit.png | Bin {css => resources/css}/images/link.png | Bin {css => resources/css}/images/publish.png | Bin {css => resources/css}/images/restore.png | Bin {css => resources/css}/images/subgrid_close.png | Bin {css => resources/css}/images/subgrid_open.png | Bin {css => resources/css}/images/trash.png | Bin {css => resources/css}/images/triangle-down-red.png | Bin {css => resources/css}/images/triangle-down.png | Bin {css => resources/css}/images/triangle-up-red.png | Bin {css => resources/css}/images/triangle-up.png | Bin {css => resources/css}/images/unpublish.png | Bin .../jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../images/ui-bg_gloss-wave_16_121212_500x100.png | Bin .../images/ui-bg_highlight-hard_15_888888_1x100.png | Bin .../images/ui-bg_highlight-hard_55_555555_1x100.png | Bin .../images/ui-bg_highlight-soft_35_adadad_1x100.png | Bin .../images/ui-bg_highlight-soft_60_dddddd_1x100.png | Bin .../images/ui-bg_inset-soft_15_121212_1x100.png | Bin .../jquery-ui/images/ui-icons_666666_256x240.png | Bin .../jquery-ui/images/ui-icons_aaaaaa_256x240.png | Bin .../jquery-ui/images/ui-icons_bbbbbb_256x240.png | Bin .../jquery-ui/images/ui-icons_c98000_256x240.png | Bin .../jquery-ui/images/ui-icons_cccccc_256x240.png | Bin .../jquery-ui/images/ui-icons_cd0a0a_256x240.png | Bin .../jquery-ui/images/ui-icons_f29a00_256x240.png | Bin {css => resources/css}/jquery-ui/jquery-ui.css | 0 {js => resources/js}/grid.js | 0 {js => resources/js}/jquery-ui.js | 0 38 files changed, 0 insertions(+), 0 deletions(-) rename {css => resources/css}/example.css (100%) rename {css => resources/css}/grid.css (100%) rename {css => resources/css}/images/add.png (100%) rename {css => resources/css}/images/calendar.png (100%) rename {css => resources/css}/images/cancel_white.png (100%) rename {css => resources/css}/images/cross.png (100%) rename {css => resources/css}/images/delete.png (100%) rename {css => resources/css}/images/edit.png (100%) rename {css => resources/css}/images/fast_edit.png (100%) rename {css => resources/css}/images/link.png (100%) rename {css => resources/css}/images/publish.png (100%) rename {css => resources/css}/images/restore.png (100%) rename {css => resources/css}/images/subgrid_close.png (100%) rename {css => resources/css}/images/subgrid_open.png (100%) rename {css => resources/css}/images/trash.png (100%) rename {css => resources/css}/images/triangle-down-red.png (100%) rename {css => resources/css}/images/triangle-down.png (100%) rename {css => resources/css}/images/triangle-up-red.png (100%) rename {css => resources/css}/images/triangle-up.png (100%) rename {css => resources/css}/images/unpublish.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_highlight-hard_55_555555_1x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_highlight-soft_35_adadad_1x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_highlight-soft_60_dddddd_1x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_666666_256x240.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_aaaaaa_256x240.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_bbbbbb_256x240.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_c98000_256x240.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_cccccc_256x240.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_cd0a0a_256x240.png (100%) rename {css => resources/css}/jquery-ui/images/ui-icons_f29a00_256x240.png (100%) rename {css => resources/css}/jquery-ui/jquery-ui.css (100%) rename {js => resources/js}/grid.js (100%) rename {js => resources/js}/jquery-ui.js (100%) diff --git a/css/example.css b/resources/css/example.css similarity index 100% rename from css/example.css rename to resources/css/example.css diff --git a/css/grid.css b/resources/css/grid.css similarity index 100% rename from css/grid.css rename to resources/css/grid.css diff --git a/css/images/add.png b/resources/css/images/add.png similarity index 100% rename from css/images/add.png rename to resources/css/images/add.png diff --git a/css/images/calendar.png b/resources/css/images/calendar.png similarity index 100% rename from css/images/calendar.png rename to resources/css/images/calendar.png diff --git a/css/images/cancel_white.png b/resources/css/images/cancel_white.png similarity index 100% rename from css/images/cancel_white.png rename to resources/css/images/cancel_white.png diff --git a/css/images/cross.png b/resources/css/images/cross.png similarity index 100% rename from css/images/cross.png rename to resources/css/images/cross.png diff --git a/css/images/delete.png b/resources/css/images/delete.png similarity index 100% rename from css/images/delete.png rename to resources/css/images/delete.png diff --git a/css/images/edit.png b/resources/css/images/edit.png similarity index 100% rename from css/images/edit.png rename to resources/css/images/edit.png diff --git a/css/images/fast_edit.png b/resources/css/images/fast_edit.png similarity index 100% rename from css/images/fast_edit.png rename to resources/css/images/fast_edit.png diff --git a/css/images/link.png b/resources/css/images/link.png similarity index 100% rename from css/images/link.png rename to resources/css/images/link.png diff --git a/css/images/publish.png b/resources/css/images/publish.png similarity index 100% rename from css/images/publish.png rename to resources/css/images/publish.png diff --git a/css/images/restore.png b/resources/css/images/restore.png similarity index 100% rename from css/images/restore.png rename to resources/css/images/restore.png diff --git a/css/images/subgrid_close.png b/resources/css/images/subgrid_close.png similarity index 100% rename from css/images/subgrid_close.png rename to resources/css/images/subgrid_close.png diff --git a/css/images/subgrid_open.png b/resources/css/images/subgrid_open.png similarity index 100% rename from css/images/subgrid_open.png rename to resources/css/images/subgrid_open.png diff --git a/css/images/trash.png b/resources/css/images/trash.png similarity index 100% rename from css/images/trash.png rename to resources/css/images/trash.png diff --git a/css/images/triangle-down-red.png b/resources/css/images/triangle-down-red.png similarity index 100% rename from css/images/triangle-down-red.png rename to resources/css/images/triangle-down-red.png diff --git a/css/images/triangle-down.png b/resources/css/images/triangle-down.png similarity index 100% rename from css/images/triangle-down.png rename to resources/css/images/triangle-down.png diff --git a/css/images/triangle-up-red.png b/resources/css/images/triangle-up-red.png similarity index 100% rename from css/images/triangle-up-red.png rename to resources/css/images/triangle-up-red.png diff --git a/css/images/triangle-up.png b/resources/css/images/triangle-up.png similarity index 100% rename from css/images/triangle-up.png rename to resources/css/images/triangle-up.png diff --git a/css/images/unpublish.png b/resources/css/images/unpublish.png similarity index 100% rename from css/images/unpublish.png rename to resources/css/images/unpublish.png diff --git a/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png b/resources/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png rename to resources/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png b/resources/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png rename to resources/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png b/resources/css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png rename to resources/css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png diff --git a/css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png b/resources/css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png rename to resources/css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png diff --git a/css/jquery-ui/images/ui-bg_highlight-hard_55_555555_1x100.png b/resources/css/jquery-ui/images/ui-bg_highlight-hard_55_555555_1x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_highlight-hard_55_555555_1x100.png rename to resources/css/jquery-ui/images/ui-bg_highlight-hard_55_555555_1x100.png diff --git a/css/jquery-ui/images/ui-bg_highlight-soft_35_adadad_1x100.png b/resources/css/jquery-ui/images/ui-bg_highlight-soft_35_adadad_1x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_highlight-soft_35_adadad_1x100.png rename to resources/css/jquery-ui/images/ui-bg_highlight-soft_35_adadad_1x100.png diff --git a/css/jquery-ui/images/ui-bg_highlight-soft_60_dddddd_1x100.png b/resources/css/jquery-ui/images/ui-bg_highlight-soft_60_dddddd_1x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_highlight-soft_60_dddddd_1x100.png rename to resources/css/jquery-ui/images/ui-bg_highlight-soft_60_dddddd_1x100.png diff --git a/css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png b/resources/css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png similarity index 100% rename from css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png rename to resources/css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png diff --git a/css/jquery-ui/images/ui-icons_666666_256x240.png b/resources/css/jquery-ui/images/ui-icons_666666_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_666666_256x240.png rename to resources/css/jquery-ui/images/ui-icons_666666_256x240.png diff --git a/css/jquery-ui/images/ui-icons_aaaaaa_256x240.png b/resources/css/jquery-ui/images/ui-icons_aaaaaa_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_aaaaaa_256x240.png rename to resources/css/jquery-ui/images/ui-icons_aaaaaa_256x240.png diff --git a/css/jquery-ui/images/ui-icons_bbbbbb_256x240.png b/resources/css/jquery-ui/images/ui-icons_bbbbbb_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_bbbbbb_256x240.png rename to resources/css/jquery-ui/images/ui-icons_bbbbbb_256x240.png diff --git a/css/jquery-ui/images/ui-icons_c98000_256x240.png b/resources/css/jquery-ui/images/ui-icons_c98000_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_c98000_256x240.png rename to resources/css/jquery-ui/images/ui-icons_c98000_256x240.png diff --git a/css/jquery-ui/images/ui-icons_cccccc_256x240.png b/resources/css/jquery-ui/images/ui-icons_cccccc_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_cccccc_256x240.png rename to resources/css/jquery-ui/images/ui-icons_cccccc_256x240.png diff --git a/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png b/resources/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_cd0a0a_256x240.png rename to resources/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png diff --git a/css/jquery-ui/images/ui-icons_f29a00_256x240.png b/resources/css/jquery-ui/images/ui-icons_f29a00_256x240.png similarity index 100% rename from css/jquery-ui/images/ui-icons_f29a00_256x240.png rename to resources/css/jquery-ui/images/ui-icons_f29a00_256x240.png diff --git a/css/jquery-ui/jquery-ui.css b/resources/css/jquery-ui/jquery-ui.css similarity index 100% rename from css/jquery-ui/jquery-ui.css rename to resources/css/jquery-ui/jquery-ui.css diff --git a/js/grid.js b/resources/js/grid.js similarity index 100% rename from js/grid.js rename to resources/js/grid.js diff --git a/js/jquery-ui.js b/resources/js/jquery-ui.js similarity index 100% rename from js/jquery-ui.js rename to resources/js/jquery-ui.js From 692860f2aaa32eb7a243be0e33d1e0de51075918 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 15:34:12 +0200 Subject: [PATCH 06/24] added netteForms.js to resources --- resources/js/netteForms.js | 310 +++++++++++++++++++++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100755 resources/js/netteForms.js diff --git a/resources/js/netteForms.js b/resources/js/netteForms.js new file mode 100755 index 0000000..ea892a4 --- /dev/null +++ b/resources/js/netteForms.js @@ -0,0 +1,310 @@ +/** + * NetteForms - simple form validation. + * + * This file is part of the Nette Framework. + * Copyright (c) 2004, 2012 David Grudl (http://davidgrudl.com) + */ + +var Nette = Nette || {}; + +Nette.addEvent = function (element, on, callback) { + var original = element['on' + on]; + element['on' + on] = function () { + if (typeof original === 'function' && original.apply(element, arguments) === false) { + return false; + } + return callback.apply(element, arguments); + }; +}; + + +Nette.getValue = function(elem) { + var i, len; + if (!elem) { + return null; + + } else if (!elem.nodeName) { // radio + for (i = 0, len = elem.length; i < len; i++) { + if (elem[i].checked) { + return elem[i].value; + } + } + return null; + + } else if (elem.nodeName.toLowerCase() === 'select') { + var index = elem.selectedIndex, options = elem.options; + + if (index < 0) { + return null; + + } else if (elem.type === 'select-one') { + return options[index].value; + } + + for (i = 0, values = [], len = options.length; i < len; i++) { + if (options[i].selected) { + values.push(options[i].value); + } + } + return values; + + } else if (elem.type === 'checkbox') { + return elem.checked; + + } else if (elem.type === 'radio') { + return Nette.getValue(elem.form.elements[elem.name].nodeName ? [elem] : elem.form.elements[elem.name]); + + } else { + return elem.value.replace(/^\s+|\s+$/g, ''); + } +}; + + +Nette.validateControl = function(elem, rules, onlyCheck) { + rules = rules || eval('[' + (elem.getAttribute('data-nette-rules') || '') + ']'); + for (var id = 0, len = rules.length; id < len; id++) { + var rule = rules[id], op = rule.op.match(/(~)?([^?]+)/); + rule.neg = op[1]; + rule.op = op[2]; + rule.condition = !!rule.rules; + var el = rule.control ? elem.form.elements[rule.control] : elem; + + var success = Nette.validateRule(el, rule.op, rule.arg); + if (success === null) { continue; } + if (rule.neg) { success = !success; } + + if (rule.condition && success) { + if (!Nette.validateControl(elem, rule.rules, onlyCheck)) { + return false; + } + } else if (!rule.condition && !success) { + if (el.disabled) { continue; } + if (!onlyCheck) { + Nette.addError(el, rule.msg.replace('%value', Nette.getValue(el))); + } + return false; + } + } + return true; +}; + + +Nette.validateForm = function(sender) { + var form = sender.form || sender; + if (form['nette-submittedBy'] && form['nette-submittedBy'].getAttribute('formnovalidate') !== null) { + return true; + } + for (var i = 0; i < form.elements.length; i++) { + var elem = form.elements[i]; + if (!(elem.nodeName.toLowerCase() in {input:1, select:1, textarea:1}) || (elem.type in {hidden:1, submit:1, image:1, reset: 1}) || elem.disabled || elem.readonly) { + continue; + } + if (!Nette.validateControl(elem)) { + return false; + } + } + return true; +}; + + +Nette.addError = function(elem, message) { + if (elem.focus) { + elem.focus(); + } + if (message) { + alert(message); + } +}; + + +Nette.validateRule = function(elem, op, arg) { + var val = Nette.getValue(elem); + + if (elem.getAttribute) { + if (val === elem.getAttribute('data-nette-empty-value')) { val = ''; } + } + + if (op.charAt(0) === ':') { + op = op.substr(1); + } + op = op.replace('::', '_'); + op = op.replace('\\', ''); + return Nette.validators[op] ? Nette.validators[op](elem, arg, val) : null; +}; + + +Nette.validators = { + filled: function(elem, arg, val) { + return val !== '' && val !== false && val !== null; + }, + + valid: function(elem, arg, val) { + return Nette.validateControl(elem, null, true); + }, + + equal: function(elem, arg, val) { + if (arg === undefined) { + return null; + } + arg = Nette.isArray(arg) ? arg : [arg]; + for (var i = 0, len = arg.length; i < len; i++) { + if (val == (arg[i].control ? Nette.getValue(elem.form.elements[arg[i].control]) : arg[i])) { + return true; + } + } + return false; + }, + + minLength: function(elem, arg, val) { + return val.length >= arg; + }, + + maxLength: function(elem, arg, val) { + return val.length <= arg; + }, + + length: function(elem, arg, val) { + arg = Nette.isArray(arg) ? arg : [arg, arg]; + return (arg[0] === null || val.length >= arg[0]) && (arg[1] === null || val.length <= arg[1]); + }, + + email: function(elem, arg, val) { + return (/^[^@\s]+@[^@\s]+\.[a-z]{2,10}$/i).test(val); + }, + + url: function(elem, arg, val) { + return (/^.+\.[a-z]{2,6}(\/.*)?$/i).test(val); + }, + + regexp: function(elem, arg, val) { + var parts = typeof arg === 'string' ? arg.match(/^\/(.*)\/([imu]*)$/) : false; + if (parts) { try { + return (new RegExp(parts[1], parts[2].replace('u', ''))).test(val); + } catch (e) {} } + }, + + pattern: function(elem, arg, val) { + try { + return typeof arg === 'string' ? (new RegExp('^(' + arg + ')$')).test(val) : null; + } catch (e) {} + }, + + integer: function(elem, arg, val) { + return (/^-?[0-9]+$/).test(val); + }, + + float: function(elem, arg, val) { + return (/^-?[0-9]*[.,]?[0-9]+$/).test(val); + }, + + range: function(elem, arg, val) { + return Nette.isArray(arg) ? ((arg[0] === null || parseFloat(val) >= arg[0]) && (arg[1] === null || parseFloat(val) <= arg[1])) : null; + }, + + submitted: function(elem, arg, val) { + return elem.form['nette-submittedBy'] === elem; + } +}; + + +Nette.toggleForm = function(form) { + for (var i = 0; i < form.elements.length; i++) { + if (form.elements[i].nodeName.toLowerCase() in {input:1, select:1, textarea:1, button:1}) { + Nette.toggleControl(form.elements[i]); + } + } +}; + + +Nette.toggleControl = function(elem, rules, firsttime) { + rules = rules || eval('[' + (elem.getAttribute('data-nette-rules') || '') + ']'); + var has = false, __hasProp = Object.prototype.hasOwnProperty, handler = function() { Nette.toggleForm(elem.form); }; + + for (var id = 0, len = rules.length; id < len; id++) { + var rule = rules[id], op = rule.op.match(/(~)?([^?]+)/); + rule.neg = op[1]; + rule.op = op[2]; + rule.condition = !!rule.rules; + if (!rule.condition) { continue; } + + var el = rule.control ? elem.form.elements[rule.control] : elem; + var success = Nette.validateRule(el, rule.op, rule.arg); + if (success === null) { continue; } + if (rule.neg) { success = !success; } + + if (Nette.toggleControl(elem, rule.rules, firsttime) || rule.toggle) { + has = true; + if (firsttime) { + if (!el.nodeName) { // radio + for (var i = 0; i < el.length; i++) { + Nette.addEvent(el[i], 'click', handler); + } + } else if (el.nodeName.toLowerCase() === 'select') { + Nette.addEvent(el, 'change', handler); + } else { + Nette.addEvent(el, 'click', handler); + } + } + for (var id2 in rule.toggle || []) { + if (__hasProp.call(rule.toggle, id2)) { Nette.toggle(id2, success ? rule.toggle[id2] : !rule.toggle[id2]); } + } + } + } + return has; +}; + + +Nette.toggle = function(id, visible) { + var elem = document.getElementById(id); + if (elem) { + elem.style.display = visible ? "" : "none"; + } +}; + + +Nette.initForm = function(form) { + form.noValidate = true; + + Nette.addEvent(form, 'submit', function() { + return Nette.validateForm(form); + }); + + Nette.addEvent(form, 'click', function(e) { + e = e || event; + var target = e.target || e.srcElement; + form['nette-submittedBy'] = (target.type in {submit:1, image:1}) ? target : null; + }); + + for (var i = 0; i < form.elements.length; i++) { + Nette.toggleControl(form.elements[i], null, true); + } + + if (/MSIE/.exec(navigator.userAgent)) { + var labels = {}, + wheelHandler = function() { return false; }, + clickHandler = function() { document.getElementById(this.htmlFor).focus(); return false; }; + + for (i = 0, elms = form.getElementsByTagName('label'); i < elms.length; i++) { + labels[elms[i].htmlFor] = elms[i]; + } + + for (i = 0, elms = form.getElementsByTagName('select'); i < elms.length; i++) { + Nette.addEvent(elms[i], 'mousewheel', wheelHandler); // prevents accidental change in IE + if (labels[elms[i].htmlId]) { + Nette.addEvent(labels[elms[i].htmlId], 'click', clickHandler); // prevents deselect in IE 5 - 6 + } + } + } +}; + + +Nette.isArray = function(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; +}; + + +Nette.addEvent(window, 'load', function () { + for (var i = 0; i < document.forms.length; i++) { + Nette.initForm(document.forms[i]); + } +}); From faa97c35dd4cf1342030810cd4cea6139b635d2d Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:34:21 +0200 Subject: [PATCH 07/24] variable in nette database data source renamed to a more descriptive name --- DataSource/NDataSource.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/DataSource/NDataSource.php b/DataSource/NDataSource.php index ff790dc..644ac52 100644 --- a/DataSource/NDataSource.php +++ b/DataSource/NDataSource.php @@ -16,36 +16,36 @@ class NDataSource implements IDataSource { /** @var Selection */ - private $data; + private $table; - public function __construct(Selection $data) + public function __construct(Selection $table) { - $this->data = $data; + $this->table = $table; } public function getData() { - return $this->data; + return $this->table; } public function getCount($column = "*") { - return $this->data->count($column); + return $this->table->count($column); } public function getSelectedRowsCount() { - return $this->data->count(); + return $this->table->count(); } public function orderData($by, $way) { - $this->data->order($by." ".$way); + $this->table->order($by." ".$way); } public function limitData($limit, $offset) { - $this->data->limit($limit, $offset); + $this->table->limit($limit, $offset); } public function filterData(array $filters) @@ -61,7 +61,7 @@ public function filterData(array $filters) if(!empty($filter["valueFunction"])){ $column .= $filter["valueFunction"]."(?)"; } - $this->data->where($column, $value); + $this->table->where($column, $value); }elseif($filter["type"] == FilterCondition::HAVING){ $having[$filter["column"]] = $filter; } @@ -80,7 +80,7 @@ public function filterData(array $filters) $stringHaving .= " AND "; } } - $this->data->group("id", $stringHaving); + $this->table->group("id", $stringHaving); } } } From 10a42d6b74a330f26eee4195b899b6e4ad534652 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:51:26 +0200 Subject: [PATCH 08/24] classes moved to libs --- {Components => libs/NiftyGrid/Components}/Action.php | 0 {Components => libs/NiftyGrid/Components}/Button.php | 0 {Components => libs/NiftyGrid/Components}/Column.php | 0 {Components => libs/NiftyGrid/Components}/SubGrid.php | 0 .../NiftyGrid/DataSource}/DoctrineDataSource.php | 0 {DataSource => libs/NiftyGrid/DataSource}/IDataSource.php | 0 {DataSource => libs/NiftyGrid/DataSource}/NDataSource.php | 0 FilterCondition.php => libs/NiftyGrid/FilterCondition.php | 0 Grid.php => libs/NiftyGrid/Grid.php | 2 +- GridExceptions.php => libs/NiftyGrid/GridExceptions.php | 0 GridPaginator.php => libs/NiftyGrid/GridPaginator.php | 4 ++-- 11 files changed, 3 insertions(+), 3 deletions(-) rename {Components => libs/NiftyGrid/Components}/Action.php (100%) rename {Components => libs/NiftyGrid/Components}/Button.php (100%) rename {Components => libs/NiftyGrid/Components}/Column.php (100%) rename {Components => libs/NiftyGrid/Components}/SubGrid.php (100%) rename {DataSource => libs/NiftyGrid/DataSource}/DoctrineDataSource.php (100%) rename {DataSource => libs/NiftyGrid/DataSource}/IDataSource.php (100%) rename {DataSource => libs/NiftyGrid/DataSource}/NDataSource.php (100%) rename FilterCondition.php => libs/NiftyGrid/FilterCondition.php (100%) rename Grid.php => libs/NiftyGrid/Grid.php (99%) rename GridExceptions.php => libs/NiftyGrid/GridExceptions.php (100%) rename GridPaginator.php => libs/NiftyGrid/GridPaginator.php (90%) diff --git a/Components/Action.php b/libs/NiftyGrid/Components/Action.php similarity index 100% rename from Components/Action.php rename to libs/NiftyGrid/Components/Action.php diff --git a/Components/Button.php b/libs/NiftyGrid/Components/Button.php similarity index 100% rename from Components/Button.php rename to libs/NiftyGrid/Components/Button.php diff --git a/Components/Column.php b/libs/NiftyGrid/Components/Column.php similarity index 100% rename from Components/Column.php rename to libs/NiftyGrid/Components/Column.php diff --git a/Components/SubGrid.php b/libs/NiftyGrid/Components/SubGrid.php similarity index 100% rename from Components/SubGrid.php rename to libs/NiftyGrid/Components/SubGrid.php diff --git a/DataSource/DoctrineDataSource.php b/libs/NiftyGrid/DataSource/DoctrineDataSource.php similarity index 100% rename from DataSource/DoctrineDataSource.php rename to libs/NiftyGrid/DataSource/DoctrineDataSource.php diff --git a/DataSource/IDataSource.php b/libs/NiftyGrid/DataSource/IDataSource.php similarity index 100% rename from DataSource/IDataSource.php rename to libs/NiftyGrid/DataSource/IDataSource.php diff --git a/DataSource/NDataSource.php b/libs/NiftyGrid/DataSource/NDataSource.php similarity index 100% rename from DataSource/NDataSource.php rename to libs/NiftyGrid/DataSource/NDataSource.php diff --git a/FilterCondition.php b/libs/NiftyGrid/FilterCondition.php similarity index 100% rename from FilterCondition.php rename to libs/NiftyGrid/FilterCondition.php diff --git a/Grid.php b/libs/NiftyGrid/Grid.php similarity index 99% rename from Grid.php rename to libs/NiftyGrid/Grid.php index 6ff6077..ccc80f2 100644 --- a/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -859,7 +859,7 @@ public function render() $this->template->viewedFrom = ((($this->getPaginator()->getPage()-1)*$this->perPage)+1); $this->template->viewedTo = ($this->getPaginator()->getLength()+(($this->getPaginator()->getPage()-1)*$this->perPage)); } - $templatePath = !empty($this->templatePath) ? $this->templatePath : __DIR__."/templates/grid.latte"; + $templatePath = !empty($this->templatePath) ? $this->templatePath : __DIR__."/../../templates/grid.latte"; $this->template->setFile($templatePath); $this->template->render(); } diff --git a/GridExceptions.php b/libs/NiftyGrid/GridExceptions.php similarity index 100% rename from GridExceptions.php rename to libs/NiftyGrid/GridExceptions.php diff --git a/GridPaginator.php b/libs/NiftyGrid/GridPaginator.php similarity index 90% rename from GridPaginator.php rename to libs/NiftyGrid/GridPaginator.php index 3320d49..1673f04 100644 --- a/GridPaginator.php +++ b/libs/NiftyGrid/GridPaginator.php @@ -30,7 +30,7 @@ public function __construct() public function render() { $this->template->paginator = $this->paginator; - $this->template->setFile(dirname(__FILE__) . '/templates/paginator.latte'); + $this->template->setFile(__DIR__ . '/../../templates/paginator.latte'); $this->template->render(); } @@ -42,4 +42,4 @@ public function loadState(array $params) parent::loadState($params); $this->paginator->page = $this->page; } -} \ No newline at end of file +} From 8a349bf968b5465356f9e40502da24d25905d71e Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 13:51:36 +0200 Subject: [PATCH 09/24] added composer --- composer.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 composer.json diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..ab35c9f --- /dev/null +++ b/composer.json @@ -0,0 +1,19 @@ +{ + "name": "nifty/nifty-grid", + "description": "Simple & lightweight datagrid for nette", + "keywords": ["datagrid", "nette"], + "homepage": "http://addons.nette.org/cs/niftygrid", + "license": ["BSD-3"], + "authors": [ + { + "name": "Jakub Holub" + } + ], + "require": { + "php" : ">=5.3.2", + "nette/nette" : "*" + }, + "autoload": { + "psr-0": { "NiftyGrid": "libs/" } + } +} From 9861fa838507d5da84822788e5d69561bfd51efe Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 14:01:59 +0200 Subject: [PATCH 10/24] added readme --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8bbb026 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# NiftyGrid + +Simple and light-weight **datagrid** for *Nette framework*. + + +## Install +Add as *composer* dependancy to your `composer.json` file: + +``` +{ + "require": { + "php" : ">=5.3.0", + "nette/nette" : "*", + "nifty/nifty-grid": "*" + } +} +``` + +Copy resources from `resources/` directory to your public www dir and include them in template (usually in `@layout.latte`). + +## Usage + +See manual on http://addons.nette.org/cs/niftygrid From 5b4e3304740177f7ee393fb1d407cec4ea1132fd Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 16:52:42 +0200 Subject: [PATCH 11/24] PSR-0 --- libs/NiftyGrid/Components/Action.php | 12 ++++--- libs/NiftyGrid/Components/Button.php | 3 +- libs/NiftyGrid/Components/Column.php | 31 +++++++++++-------- libs/NiftyGrid/Components/SubGrid.php | 9 ++++-- .../DataSource/DoctrineDataSource.php | 3 +- libs/NiftyGrid/DataSource/IDataSource.php | 3 +- libs/NiftyGrid/DataSource/NDataSource.php | 3 +- libs/NiftyGrid/Grid.php | 24 +++++++------- 8 files changed, 53 insertions(+), 35 deletions(-) diff --git a/libs/NiftyGrid/Components/Action.php b/libs/NiftyGrid/Components/Action.php index 8d8b0a8..09bb04c 100644 --- a/libs/NiftyGrid/Components/Action.php +++ b/libs/NiftyGrid/Components/Action.php @@ -7,7 +7,11 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\Components; + +use NiftyGrid; +use Nette; class Action extends \Nette\Application\UI\PresenterComponent { @@ -77,14 +81,14 @@ public function getCallback() /** * @return mixed - * @throws UnknownActionCallbackException + * @throws NiftyGrid\UnknownActionCallbackException */ public function getAction() { if(empty($this->callback)){ - throw new UnknownActionCallbackException("Action $this->name doesn't have callback."); + throw new NiftyGrid\UnknownActionCallbackException("Action $this->name doesn't have callback."); } - $option = \Nette\Utils\Html::el('option')->setValue($this->name)->setText($this->label); + $option = Nette\Utils\Html::el('option')->setValue($this->name)->setText($this->label); if(!empty($this->dialog)){ $option->addData("grid-confirm", $this->dialog); } diff --git a/libs/NiftyGrid/Components/Button.php b/libs/NiftyGrid/Components/Button.php index fb3f308..a179610 100644 --- a/libs/NiftyGrid/Components/Button.php +++ b/libs/NiftyGrid/Components/Button.php @@ -7,7 +7,8 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\Components; use Nette\Utils\Html; use NiftyGrid\Grid; // For constant only diff --git a/libs/NiftyGrid/Components/Column.php b/libs/NiftyGrid/Components/Column.php index dc2158b..8b4f4d0 100644 --- a/libs/NiftyGrid/Components/Column.php +++ b/libs/NiftyGrid/Components/Column.php @@ -7,7 +7,12 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\Components; + +use Nette; +use NiftyGrid, + NiftyGrid\Grid; class Column extends \Nette\Application\UI\PresenterComponent @@ -179,15 +184,15 @@ public function hasCellRenderer() /** * @param int $numOfResults * @return Column - * @throws InvalidFilterException - * @throws UnknownFilterException + * @throws NiftyGrid\InvalidFilterException + * @throws NiftyGrid\UnknownFilterException */ public function setAutocomplete($numOfResults = 10) { if(empty($this->filterType)){ - throw new UnknownFilterException("Autocomplete can't be used without filter."); + throw new NiftyGrid\UnknownFilterException("Autocomplete can't be used without filter."); }elseif($this->filterType != FilterCondition::TEXT){ - throw new InvalidFilterException("Autocomplete can be used only with Text filter."); + throw new NiftyGrid\InvalidFilterException("Autocomplete can be used only with Text filter."); } $this->parent['gridForm'][$this->parent->name]['filter'][$this->name]->getControlPrototype() ->addClass("grid-autocomplete") @@ -212,12 +217,12 @@ public function getAutocompleteResults() /** * @return Column - * @throws DuplicateEditableColumnException + * @throws NiftyGrid\DuplicateEditableColumnException */ public function setTextEditable() { if($this->editable){ - throw new DuplicateEditableColumnException("Column $this->name is already editable."); + throw new NiftyGrid\DuplicateEditableColumnException("Column $this->name is already editable."); } $this->parent['gridForm'][$this->parent->name]['rowForm']->addText($this->name, NULL)->getControlPrototype()->addClass("grid-editable"); @@ -231,12 +236,12 @@ public function setTextEditable() * @param array $values * @param string|null $prompt * @return Column - * @throws DuplicateEditableColumnException + * @throws NiftyGrid\DuplicateEditableColumnException */ public function setSelectEditable(array $values, $prompt = NULL) { if($this->editable){ - throw new DuplicateEditableColumnException("Column $this->name is already editable."); + throw new NiftyGrid\DuplicateEditableColumnException("Column $this->name is already editable."); } $this->parent['gridForm'][$this->parent->name]['rowForm']->addSelect($this->name, NULL, $values)->getControlPrototype()->addClass("grid-editable"); if($prompt){ @@ -250,12 +255,12 @@ public function setSelectEditable(array $values, $prompt = NULL) /** * @return Column - * @throws DuplicateEditableColumnException + * @throws NiftyGrid\DuplicateEditableColumnException */ public function setBooleanEditable() { if($this->editable){ - throw new DuplicateEditableColumnException("Column $this->name is already editable."); + throw new NiftyGrid\DuplicateEditableColumnException("Column $this->name is already editable."); } $this->parent['gridForm'][$this->parent->name]['rowForm']->addCheckbox($this->name, NULL)->getControlPrototype()->addClass("grid-editable"); @@ -266,12 +271,12 @@ public function setBooleanEditable() /** * @return Column - * @throws DuplicateEditableColumnException + * @throws NiftyGrid\DuplicateEditableColumnException */ public function setDateEditable() { if($this->editable){ - throw new DuplicateEditableColumnException("Column $this->name is already editable."); + throw new NiftyGrid\DuplicateEditableColumnException("Column $this->name is already editable."); } $this->parent['gridForm'][$this->parent->name]['rowForm']->addText($this->name, NULL)->getControlPrototype()->addClass("grid-datepicker")->addClass("grid-editable"); diff --git a/libs/NiftyGrid/Components/SubGrid.php b/libs/NiftyGrid/Components/SubGrid.php index 1beb638..a8b2407 100644 --- a/libs/NiftyGrid/Components/SubGrid.php +++ b/libs/NiftyGrid/Components/SubGrid.php @@ -7,7 +7,12 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\Components; + +use Nette; +use NiftyGrid, + NiftyGrid\Grid; class SubGrid extends \Nette\Application\UI\PresenterComponent { @@ -111,7 +116,7 @@ public function getLink($row) /** * @param callback|string $cellStyle - * @return \Nifty\Grid\SubGrid + * @return SubGrid */ public function setCellStyle($cellStyle) { diff --git a/libs/NiftyGrid/DataSource/DoctrineDataSource.php b/libs/NiftyGrid/DataSource/DoctrineDataSource.php index ccc6a26..ffdf091 100644 --- a/libs/NiftyGrid/DataSource/DoctrineDataSource.php +++ b/libs/NiftyGrid/DataSource/DoctrineDataSource.php @@ -7,7 +7,8 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\DataSource; use NiftyGrid\FilterCondition, Nette\Utils\Strings; diff --git a/libs/NiftyGrid/DataSource/IDataSource.php b/libs/NiftyGrid/DataSource/IDataSource.php index d123135..164db41 100644 --- a/libs/NiftyGrid/DataSource/IDataSource.php +++ b/libs/NiftyGrid/DataSource/IDataSource.php @@ -7,7 +7,8 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\DataSource; interface IDataSource { diff --git a/libs/NiftyGrid/DataSource/NDataSource.php b/libs/NiftyGrid/DataSource/NDataSource.php index 644ac52..33707cd 100644 --- a/libs/NiftyGrid/DataSource/NDataSource.php +++ b/libs/NiftyGrid/DataSource/NDataSource.php @@ -7,7 +7,8 @@ * @license New BSD Licence * @link http://addons.nette.org/cs/niftygrid */ -namespace NiftyGrid; + +namespace NiftyGrid\DataSource; use NiftyGrid\FilterCondition, Nette\Utils\Strings, diff --git a/libs/NiftyGrid/Grid.php b/libs/NiftyGrid/Grid.php index ccc80f2..a7ce8f0 100644 --- a/libs/NiftyGrid/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -39,7 +39,7 @@ abstract class Grid extends \Nette\Application\UI\Control /** @var string */ protected $defaultOrder; - /** @var IDataSource */ + /** @var DataSource\IDataSource */ protected $dataSource; /** @var int */ @@ -191,7 +191,7 @@ public function findSubGridPath($gridName) * @param null|string $label * @param null|string $width * @param null|int $truncate - * @return Column + * @return Components\Column * @throws DuplicateColumnException */ protected function addColumn($name, $label = NULL, $width = NULL, $truncate = NULL) @@ -199,7 +199,7 @@ protected function addColumn($name, $label = NULL, $width = NULL, $truncate = NU if(!empty($this['columns']->components[$name])){ throw new DuplicateColumnException("Column $name already exists."); } - $column = new Column($this['columns'], $name); + $column = new Components\Column($this['columns'], $name); $column->setName($name) ->setLabel($label) ->setWidth($width) @@ -211,13 +211,13 @@ protected function addColumn($name, $label = NULL, $width = NULL, $truncate = NU /** * @param string $name - * @return Button + * @return Components\Button * @throws DuplicateButtonException */ protected function addButton($name, $label = NULL) { if($name == self::ROW_FORM){ - $button = new Button($this['buttons'], $name); + $button = new Components\Button($this['buttons'], $name); $self = $this; $button->setLink(function($row) use($self){ return $self->link("showRowForm!", $row['id']); @@ -226,7 +226,7 @@ protected function addButton($name, $label = NULL) if(!empty($this['buttons']->components[$name])){ throw new DuplicateButtonException("Button $name already exists."); } - $button = new Button($this['buttons'], $name); + $button = new Components\Button($this['buttons'], $name); } $button->setLabel($label); return $button; @@ -235,7 +235,7 @@ protected function addButton($name, $label = NULL) /** * @param string $name * @param null|string $label - * @return Action + * @return Components\Action * @throws DuplicateActionException */ public function addAction($name, $label = NULL) @@ -243,7 +243,7 @@ public function addAction($name, $label = NULL) if(!empty($this['actions']->components[$name])){ throw new DuplicateActionException("Action $name already exists."); } - $action = new Action($this['actions'], $name); + $action = new Components\Action($this['actions'], $name); $action->setName($name) ->setLabel($label); @@ -253,7 +253,7 @@ public function addAction($name, $label = NULL) /** * @param string $name * @param null|string $label - * @return SubGrid + * @return Components\SubGrid * @throws DuplicateSubGridException */ public function addSubGrid($name, $label = NULL) @@ -262,7 +262,7 @@ public function addSubGrid($name, $label = NULL) throw new DuplicateSubGridException("SubGrid $name already exists."); } $self = $this; - $subGrid = new SubGrid($this['subGrids'], $name); + $subGrid = new Components\SubGrid($this['subGrids'], $name); $subGrid->setName($name) ->setLabel($label); if($this->activeSubGridName == $name){ @@ -310,9 +310,9 @@ public function getColsCount() } /** - * @param IDataSource $dataSource + * @param DataSource\IDataSource $dataSource */ - protected function setDataSource(IDataSource $dataSource) + protected function setDataSource(DataSource\IDataSource $dataSource) { $this->dataSource = $dataSource; } From 7e786ffa3af010d0826d4db55b44773fd34bd957 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 17:12:19 +0200 Subject: [PATCH 12/24] Grid is not abstract anymore, does not have to be extended to create a grid --- libs/NiftyGrid/Grid.php | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/libs/NiftyGrid/Grid.php b/libs/NiftyGrid/Grid.php index a7ce8f0..5251a8c 100644 --- a/libs/NiftyGrid/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -11,7 +11,7 @@ use Nette\Application\UI\Presenter; -abstract class Grid extends \Nette\Application\UI\Control +class Grid extends \Nette\Application\UI\Control { const ROW_FORM = "rowForm"; @@ -69,6 +69,19 @@ abstract class Grid extends \Nette\Application\UI\Control /** @var string */ protected $templatePath; + + + function __construct() + { + parent::__construct(); + + $this->addComponent(New \Nette\ComponentModel\Container(), "columns"); + $this->addComponent(New \Nette\ComponentModel\Container(), "buttons"); + $this->addComponent(New \Nette\ComponentModel\Container(), "actions"); + $this->addComponent(New \Nette\ComponentModel\Container(), "subGrids"); + } + + /** * @param \Nette\Application\UI\Presenter $presenter */ @@ -77,11 +90,6 @@ protected function attached($presenter) parent::attached($presenter); if ( ! $presenter instanceof Presenter) return; - $this->addComponent(New \Nette\ComponentModel\Container(), "columns"); - $this->addComponent(New \Nette\ComponentModel\Container(), "buttons"); - $this->addComponent(New \Nette\ComponentModel\Container(), "actions"); - $this->addComponent(New \Nette\ComponentModel\Container(), "subGrids"); - if($presenter->isAjax()){ $this->invalidateControl(); } @@ -132,7 +140,10 @@ protected function attached($presenter) $this->count = $this->getCount(); } - abstract protected function configure(\Nette\Application\UI\Presenter $presenter); + protected function configure(Presenter $presenter) + { + // should be overridden + } /** * @param string $subGrid @@ -194,7 +205,7 @@ public function findSubGridPath($gridName) * @return Components\Column * @throws DuplicateColumnException */ - protected function addColumn($name, $label = NULL, $width = NULL, $truncate = NULL) + public function addColumn($name, $label = NULL, $width = NULL, $truncate = NULL) { if(!empty($this['columns']->components[$name])){ throw new DuplicateColumnException("Column $name already exists."); @@ -214,7 +225,7 @@ protected function addColumn($name, $label = NULL, $width = NULL, $truncate = NU * @return Components\Button * @throws DuplicateButtonException */ - protected function addButton($name, $label = NULL) + public function addButton($name, $label = NULL) { if($name == self::ROW_FORM){ $button = new Components\Button($this['buttons'], $name); @@ -312,7 +323,7 @@ public function getColsCount() /** * @param DataSource\IDataSource $dataSource */ - protected function setDataSource(DataSource\IDataSource $dataSource) + public function setDataSource(DataSource\IDataSource $dataSource) { $this->dataSource = $dataSource; } From 78be61de15fbda8eb02f61e037ad429f4df96878 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Fri, 22 Jun 2012 20:28:40 +0200 Subject: [PATCH 13/24] exceptions in composer --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ab35c9f..d647499 100644 --- a/composer.json +++ b/composer.json @@ -14,6 +14,7 @@ "nette/nette" : "*" }, "autoload": { - "psr-0": { "NiftyGrid": "libs/" } + "psr-0": { "NiftyGrid": "libs/" }, + "classmap": [ "libs/NiftyGrid/GridExceptions.php" ] } } From 6d863bb2ea501c78135189b620f52200a4186c0a Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Sun, 24 Jun 2012 21:42:22 +0200 Subject: [PATCH 14/24] forgotten use --- libs/NiftyGrid/Components/Column.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/NiftyGrid/Components/Column.php b/libs/NiftyGrid/Components/Column.php index 8b4f4d0..8be2797 100644 --- a/libs/NiftyGrid/Components/Column.php +++ b/libs/NiftyGrid/Components/Column.php @@ -12,7 +12,8 @@ use Nette; use NiftyGrid, - NiftyGrid\Grid; + NiftyGrid\Grid, + NiftyGrid\FilterCondition; class Column extends \Nette\Application\UI\PresenterComponent From 19e1200970f0a99fdba3af09dc39a9a7518f61c6 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Sun, 24 Jun 2012 21:43:15 +0200 Subject: [PATCH 15/24] better exception now fatal errors when data source is not set --- libs/NiftyGrid/Grid.php | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/NiftyGrid/Grid.php b/libs/NiftyGrid/Grid.php index 5251a8c..4b01f4a 100644 --- a/libs/NiftyGrid/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -553,6 +553,7 @@ protected function orderData($order) */ protected function getCount() { + if ( ! $this->dataSource) throw new GridException("DataSource not yet set"); if($this->paginate){ if($this->hasActiveFilter()){ $count = $this->dataSource->getSelectedRowsCount(); From e99bad833f8bf12a0edb5f583f9660a05359aa84 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Sun, 24 Jun 2012 21:43:52 +0200 Subject: [PATCH 16/24] code style --- libs/NiftyGrid/Grid.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/NiftyGrid/Grid.php b/libs/NiftyGrid/Grid.php index 4b01f4a..3c64d23 100644 --- a/libs/NiftyGrid/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -578,7 +578,7 @@ protected function getCount() */ protected function createComponentPaginator() { - return new GridPaginator; + return new GridPaginator; } /** From 51a0249a035ca857ade69b31493747da28503830 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Sun, 24 Jun 2012 21:47:08 +0200 Subject: [PATCH 17/24] do not call count until it is necessary --- libs/NiftyGrid/Grid.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libs/NiftyGrid/Grid.php b/libs/NiftyGrid/Grid.php index 3c64d23..9471a80 100644 --- a/libs/NiftyGrid/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -9,6 +9,7 @@ */ namespace NiftyGrid; +use Nette; use Nette\Application\UI\Presenter; class Grid extends \Nette\Application\UI\Control @@ -42,9 +43,6 @@ class Grid extends \Nette\Application\UI\Control /** @var DataSource\IDataSource */ protected $dataSource; - /** @var int */ - protected $count; - /** @var string */ public $width; @@ -137,7 +135,6 @@ protected function attached($presenter) $order = explode(" ", $this->defaultOrder); $this->dataSource->orderData($order[0], $order[1]); } - $this->count = $this->getCount(); } protected function configure(Presenter $presenter) @@ -839,8 +836,7 @@ protected function setTemplate($templatePath) public function render() { - $this->getPaginator()->itemCount = $this->count; - $this->template->results = $this->count; + $this->template->results = $this->getPaginator()->itemCount = $this->getCount(); $this->template->columns = $this['columns']->components; $this->template->buttons = $this['buttons']->components; $this->template->subGrids = $this['subGrids']->components; From 567aaa66b341940ba7684f01ac93edf23781cf2d Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Mon, 25 Jun 2012 10:11:54 +0200 Subject: [PATCH 18/24] removed JS code which doesnt belong to Grid; this should be in jquery.nette.js --- resources/js/grid.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/resources/js/grid.js b/resources/js/grid.js index 0169024..fc9be76 100644 --- a/resources/js/grid.js +++ b/resources/js/grid.js @@ -1,17 +1,4 @@ $(function(){ - $.ajaxSetup({ - success: function(data){ - if(data.redirect){ - $.get(data.redirect); - } - if(data.snippets){ - for (var snippet in data.snippets){ - $("#"+snippet).html(data.snippets[snippet]); - } - } - } - }); - $(".grid-flash-hide").live("click", function(){ $(this).parent().parent().fadeOut(300); }); From c8b9a52ee0246b3ed9d89f7a913c89f6f4bd149e Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Mon, 25 Jun 2012 10:12:41 +0200 Subject: [PATCH 19/24] jQuery noconflict --- resources/js/grid.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/js/grid.js b/resources/js/grid.js index fc9be76..c17c5cf 100644 --- a/resources/js/grid.js +++ b/resources/js/grid.js @@ -1,4 +1,4 @@ -$(function(){ +(function($){ $(".grid-flash-hide").live("click", function(){ $(this).parent().parent().fadeOut(300); }); @@ -131,4 +131,4 @@ $(function(){ $("table.grid tbody tr:not(.grid-subgrid-row) td.grid-data-cell").live("dblclick", function(e) { $(this).parent().find("a.grid-editable:first").click(); }); -}); \ No newline at end of file +})(jQuery); From 0ef937aa728a49b22cb0356c0cfeb9c0d4363e98 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Mon, 25 Jun 2012 10:13:58 +0200 Subject: [PATCH 20/24] dont die when datepicker from jQuery UI is not present (not nice, should be refactored) --- resources/js/grid.js | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/js/grid.js b/resources/js/grid.js index c17c5cf..7061386 100644 --- a/resources/js/grid.js +++ b/resources/js/grid.js @@ -85,6 +85,7 @@ function setDatepicker() { + if ( ! $.datepicker ) return; // date picker not present $.datepicker.regional['cs'] = { closeText: 'Zavřít', prevText: '<Dříve', From 54ac3fcfd9620e2ab528821e5e70f46ade742f17 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Mon, 25 Jun 2012 10:19:22 +0200 Subject: [PATCH 21/24] option to hide link to current page --- libs/NiftyGrid/Grid.php | 16 ++++++++++++++++ templates/grid.latte | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libs/NiftyGrid/Grid.php b/libs/NiftyGrid/Grid.php index 9471a80..3a59bf7 100644 --- a/libs/NiftyGrid/Grid.php +++ b/libs/NiftyGrid/Grid.php @@ -67,6 +67,8 @@ class Grid extends \Nette\Application\UI\Control /** @var string */ protected $templatePath; + /** @var bool */ + protected $showCurrentLink = TRUE; function __construct() @@ -466,6 +468,20 @@ public function isEditable() return FALSE; } + /** + * @return bool + */ + public function isCurrentLinkShown() + { + return $this->showCurrentLink; + } + + public function showCurrentLink($show = TRUE) + { + $this->showCurrentLink = $show; + return $this; + } + /** * @return bool */ diff --git a/templates/grid.latte b/templates/grid.latte index 85d5c45..2da3896 100644 --- a/templates/grid.latte +++ b/templates/grid.latte @@ -17,7 +17,7 @@
- +
celkem {$results} {($results == 1) ? "záznam" : (($results >= 2 && $results <= 4) ? "záznamy" : "záznamů")}{if $paginate} {if (boolean)$results}(Zobrazeno {$viewedFrom} až {$viewedTo}){/if}{/if}
From 76ddc9add0c59e34c0ca9a738b0f8fcbd0bdc08d Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Tue, 31 Jul 2012 21:00:35 +0200 Subject: [PATCH 22/24] nette addon --- composer.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d647499..e7339cf 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "name": "nifty/nifty-grid", + "type": "nette-addon", "description": "Simple & lightweight datagrid for nette", "keywords": ["datagrid", "nette"], "homepage": "http://addons.nette.org/cs/niftygrid", @@ -11,10 +12,19 @@ ], "require": { "php" : ">=5.3.2", - "nette/nette" : "*" + "nette/nette" : "*", + "nette/addon-installer": "@dev" }, "autoload": { "psr-0": { "NiftyGrid": "libs/" }, "classmap": [ "libs/NiftyGrid/GridExceptions.php" ] + }, + "extra": { + "nette-addon": { + "assets": { + "css": [ "resources/css/" ], + "javascript": [ "resources/js/" ] + } + } } } From 5ba729f8bee3722d8c7eb07a2c3b054c99d996df Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Wed, 1 Aug 2012 11:57:00 +0200 Subject: [PATCH 23/24] experiment - dependecy on nette/extras --- composer.json | 6 +- .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_gloss-wave_16_121212_500x100.png | Bin 1968 -> 0 bytes .../ui-bg_highlight-hard_15_888888_1x100.png | Bin 95 -> 0 bytes .../ui-bg_highlight-hard_55_555555_1x100.png | Bin 115 -> 0 bytes .../ui-bg_highlight-soft_35_adadad_1x100.png | Bin 145 -> 0 bytes .../ui-bg_highlight-soft_60_dddddd_1x100.png | Bin 106 -> 0 bytes .../ui-bg_inset-soft_15_121212_1x100.png | Bin 103 -> 0 bytes .../images/ui-icons_666666_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_aaaaaa_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_bbbbbb_256x240.png | Bin 5355 -> 0 bytes .../images/ui-icons_c98000_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_cccccc_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_f29a00_256x240.png | Bin 4369 -> 0 bytes resources/css/jquery-ui/jquery-ui.css | 354 ------------------ resources/js/jquery-ui.js | 21 -- resources/js/netteForms.js | 310 --------------- 19 files changed, 4 insertions(+), 687 deletions(-) delete mode 100755 resources/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_highlight-hard_55_555555_1x100.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_highlight-soft_35_adadad_1x100.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_highlight-soft_60_dddddd_1x100.png delete mode 100755 resources/css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_666666_256x240.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_aaaaaa_256x240.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_bbbbbb_256x240.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_c98000_256x240.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_cccccc_256x240.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png delete mode 100755 resources/css/jquery-ui/images/ui-icons_f29a00_256x240.png delete mode 100755 resources/css/jquery-ui/jquery-ui.css delete mode 100755 resources/js/jquery-ui.js delete mode 100755 resources/js/netteForms.js diff --git a/composer.json b/composer.json index e7339cf..aaf07fa 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,8 @@ "require": { "php" : ">=5.3.2", "nette/nette" : "*", - "nette/addon-installer": "@dev" + "nette/addon-installer": "@dev", + "nette/extras": "@dev" }, "autoload": { "psr-0": { "NiftyGrid": "libs/" }, @@ -24,7 +25,8 @@ "assets": { "css": [ "resources/css/" ], "javascript": [ "resources/js/" ] - } + }, + "extras": [ "jQuery", "jQuery-UI", "netteForms" ] } } } diff --git a/resources/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png b/resources/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100755 index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 diff --git a/resources/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png b/resources/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100755 index 4443fdc1a156babad4336f004eaf5ca5dfa0f9ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse diff --git a/resources/css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png b/resources/css/jquery-ui/images/ui-bg_gloss-wave_16_121212_500x100.png deleted file mode 100755 index f1a159298743d2448cbf365573d7bd9dda4a0161..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1968 zcmbuAYfzI17KT68U8(M>RaE3wc6KV_5XHDeF5zMop-{C_AvO({m5(GCLMTKMBo}PQ z?hfRFbsO%4VmlRcZHNh=#b_52G<2OtQ02?reZ%T&gE^yU3K69n;qnlNgh*0r*s35GMcJ+Cx5Siy z_)ut^=Qt?*tBy5<$1cW`(9KZd)SXi2ZACzd)+F)?Y-o|zS!S9%BVL_`|x6r7xU9^~OP+T{>sJsXaF${BkLv1*awGsr@uDmgfcU%)U6JTfv=A~KE1n~5= zR8yKVLQX!|>M}Q-V2l*W#w1Zt-1TLlB1;ieIz9<;$|=d|jOhSV<|&onaTG-4qJJu+47X)E+;{;e% z`}6m+tvC=3@trax*O3^laoJ|qut7l8hshPcs^OKqIis<w|BoZiQ*e`*IKZAPUAy zKt-3NtdPztlipJ_bN1C;LQ!F{I@NRorv^(zlBpPpnT+^*@oJ`O!h?6fg&l)2%I$0H zLW#P1m)I1kCibU04u_;`({_FzHv=gJ^#o3u$wd@pC2B*9aI#Tz|5wv`zFdyD^%u-I zaxoq!e_vgVtpCFMMZBOQrI~JjUb)LH~DN8{wpncp%f84;Y|P0F7y3#9%FM@DQip` z>8Gmnu3c3f_fM9jFvz%ur$XzeypRZ6-_2_(JXS1jfNrjKx!%cmdhZ`U_S_wnfe5>l zIsf%4!_no*JXx01sCC`7Ju_tmn9}!lZa7IF7;sqhQrFgxwy900fJc{G=Yh}tY`+~l zFBAx%_#X174d#1Rj{#Nmna&MIH<0Q!T;BN01;2Nye7!IA>3X@c71;9jPtd!6D-ir* z>(8&`Ros2_ZsV}=@XQ`6-!!a*PLZQxwODI9qsTxSK4(O!4=H)PhlTkUkgOCIwP$Lm zO5h&i8Z!GL)i5r)KnRzNka3EW3Z_~km!*{y;YrV%2gBZVEDOZv?4oc5=tQkpB5 zCO`xzQYd;DcOjMcC)8UL| zIhI$PLc`QA?)!g}-xxO5P#=bA?A`ViPc?qpX}2mT6kejQw7F|s#xa!kl(Vg=tLb2K z7ZXJyl0_kd!Om7^;ON;~(%|E$GIl8}Jj_7k%Ga6&xiR~4L=$j9;RD^d7zvSc&Z0E; zv@{a7;OyyZ*h&;PL-7@LsK|h;lo;^(1_E1Ha;OfGpcgJ*ms#6bT6cCkM(Y`Q(wVSZ zXdN4?EoOrS=o&5jao=t$JDx=~2FEQWu|QXgyk)jKdCc)mXu(~2c_R`?j0^8uH*-e< z5cB6(uD*iTy$4(qLwR3DIVCk^M`(O)e*;D`BPGz3OM<3zy4m$maT8}@5?)h2=n7>oNyli}$rkdF zz^IZ+YP(q7#w%!7X%9!i#kzuKmf22hyR-1HLO<5mSCRB!QlOk(qSCz{C~pyXF~|4* gAiMy~*_QpEB}W(v2Ff$mKQWMT;&iIy*xx?>FQwMyMF0Q* diff --git a/resources/css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png b/resources/css/jquery-ui/images/ui-bg_highlight-hard_15_888888_1x100.png deleted file mode 100755 index 66e53e16c5eb8a113fd0fabc472de38e4765bccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$xiDV~E7m>3=i~6%-5_+P)VF=8SHYVO6R2QmdKI;Vst E0J7X4ivR!s diff --git a/resources/css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png b/resources/css/jquery-ui/images/ui-bg_inset-soft_15_121212_1x100.png deleted file mode 100755 index 9df26a065788f5e40df811c8fcb563a5fbeb5f3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%A)HV~E7mWC0v# xhtti?&4z^;2!w&4jm69`r%JGlXHU4NB16C{CJQ00E&f2A44$rjF6*2UngAfo7a9Nn diff --git a/resources/css/jquery-ui/images/ui-icons_666666_256x240.png b/resources/css/jquery-ui/images/ui-icons_666666_256x240.png deleted file mode 100755 index f87de1ca1dc2eeefd7c2a4bed06c3f8bbfe2d483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/resources/css/jquery-ui/images/ui-icons_aaaaaa_256x240.png b/resources/css/jquery-ui/images/ui-icons_aaaaaa_256x240.png deleted file mode 100755 index 64af7f11cfef61daf0fdbd80f6f0b7b5448e795a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/resources/css/jquery-ui/images/ui-icons_bbbbbb_256x240.png b/resources/css/jquery-ui/images/ui-icons_bbbbbb_256x240.png deleted file mode 100755 index 9d71edb08dc14962825dcdff02650bd15a35951d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5355 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 X_Gc^EhHU=dFY}4IzFMt{L(KmGC|zxE diff --git a/resources/css/jquery-ui/images/ui-icons_c98000_256x240.png b/resources/css/jquery-ui/images/ui-icons_c98000_256x240.png deleted file mode 100755 index ba8dafc04c3a7130f91fc03b5d82a427fa30c36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/resources/css/jquery-ui/images/ui-icons_cccccc_256x240.png b/resources/css/jquery-ui/images/ui-icons_cccccc_256x240.png deleted file mode 100755 index 9254e05cfb964be56241b5bb4d0a0eb51c02df80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 oBo%DI*Kv;w;*%(i9W@e`=?odH?_b diff --git a/resources/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png b/resources/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png deleted file mode 100755 index 2ab019b73ec11a485fa09378f3a0e155194f6a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/resources/css/jquery-ui/jquery-ui.css b/resources/css/jquery-ui/jquery-ui.css deleted file mode 100755 index 822cd7d..0000000 --- a/resources/css/jquery-ui/jquery-ui.css +++ /dev/null @@ -1,354 +0,0 @@ -/*! - * jQuery UI CSS Framework 1.8.20 - * - * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,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; } -.ui-helper-clearfix:after { clear: both; } -.ui-helper-clearfix { zoom: 1; } -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/*! - * jQuery UI CSS Framework 1.8.20 - * - * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?tr&ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1&fsDefaultUnit=em&cornerRadius=5&cornerRadiusUnit=px&bgColorHeader=888888&bgTextureHeader=04_highlight_hard.png&bgImgOpacityHeader=15&borderColorHeader=404040&fcHeader=ffffff&iconColorHeader=cccccc&bgColorContent=121212&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=16&borderColorContent=404040&fcContent=eeeeee&iconColorContent=bbbbbb&bgColorDefault=adadad&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=35&borderColorDefault=cccccc&fcDefault=333333&iconColorDefault=666666&bgColorHover=dddddd&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=60&borderColorHover=dddddd&fcHover=000000&iconColorHover=c98000&bgColorActive=121212&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=15&borderColorActive=000000&fcActive=ffffff&iconColorActive=f29a00&bgColorHighlight=555555&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=404040&fcHighlight=cccccc&iconColorHighlight=aaaaaa&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Helvetica, 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: Helvetica, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #404040; background: #121212 url(images/ui-bg_gloss-wave_16_121212_500x100.png) 50% top repeat-x; color: #eeeeee; } -.ui-widget-content a { color: #eeeeee; } -.ui-widget-header { border: 1px solid #404040; background: #888888 url(images/ui-bg_highlight-hard_15_888888_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #adadad url(images/ui-bg_highlight-soft_35_adadad_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #333333; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #333333; 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 #dddddd; background: #dddddd url(images/ui-bg_highlight-soft_60_dddddd_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000000; } -.ui-state-hover a, .ui-state-hover a:hover { color: #000000; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #000000; background: #121212 url(images/ui-bg_inset-soft_15_121212_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #404040; background: #555555 url(images/ui-bg_highlight-hard_55_555555_1x100.png) 50% top repeat-x; color: #cccccc; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #cccccc; } -.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; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_bbbbbb_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_bbbbbb_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_666666_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_c98000_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_f29a00_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_aaaaaa_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } -.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*! - * jQuery UI Datepicker 1.8.20 - * - * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.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: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -} \ No newline at end of file diff --git a/resources/js/jquery-ui.js b/resources/js/jquery-ui.js deleted file mode 100755 index 2a2a3af..0000000 --- a/resources/js/jquery-ui.js +++ /dev/null @@ -1,21 +0,0 @@ -/*! jQuery UI - v1.8.20 - 2012-04-30 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.20",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.autocomplete.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("
    ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length").data("item.autocomplete",c).append(a("").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()
    '))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.20"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
    ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
    '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
    ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
    '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
    '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
    "+(j?""+(g[0]>0&&N==g[1]-1?'
    ':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
    ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
    ",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.20",window["DP_jQuery_"+dpuuid]=$})(jQuery);; \ No newline at end of file diff --git a/resources/js/netteForms.js b/resources/js/netteForms.js deleted file mode 100755 index ea892a4..0000000 --- a/resources/js/netteForms.js +++ /dev/null @@ -1,310 +0,0 @@ -/** - * NetteForms - simple form validation. - * - * This file is part of the Nette Framework. - * Copyright (c) 2004, 2012 David Grudl (http://davidgrudl.com) - */ - -var Nette = Nette || {}; - -Nette.addEvent = function (element, on, callback) { - var original = element['on' + on]; - element['on' + on] = function () { - if (typeof original === 'function' && original.apply(element, arguments) === false) { - return false; - } - return callback.apply(element, arguments); - }; -}; - - -Nette.getValue = function(elem) { - var i, len; - if (!elem) { - return null; - - } else if (!elem.nodeName) { // radio - for (i = 0, len = elem.length; i < len; i++) { - if (elem[i].checked) { - return elem[i].value; - } - } - return null; - - } else if (elem.nodeName.toLowerCase() === 'select') { - var index = elem.selectedIndex, options = elem.options; - - if (index < 0) { - return null; - - } else if (elem.type === 'select-one') { - return options[index].value; - } - - for (i = 0, values = [], len = options.length; i < len; i++) { - if (options[i].selected) { - values.push(options[i].value); - } - } - return values; - - } else if (elem.type === 'checkbox') { - return elem.checked; - - } else if (elem.type === 'radio') { - return Nette.getValue(elem.form.elements[elem.name].nodeName ? [elem] : elem.form.elements[elem.name]); - - } else { - return elem.value.replace(/^\s+|\s+$/g, ''); - } -}; - - -Nette.validateControl = function(elem, rules, onlyCheck) { - rules = rules || eval('[' + (elem.getAttribute('data-nette-rules') || '') + ']'); - for (var id = 0, len = rules.length; id < len; id++) { - var rule = rules[id], op = rule.op.match(/(~)?([^?]+)/); - rule.neg = op[1]; - rule.op = op[2]; - rule.condition = !!rule.rules; - var el = rule.control ? elem.form.elements[rule.control] : elem; - - var success = Nette.validateRule(el, rule.op, rule.arg); - if (success === null) { continue; } - if (rule.neg) { success = !success; } - - if (rule.condition && success) { - if (!Nette.validateControl(elem, rule.rules, onlyCheck)) { - return false; - } - } else if (!rule.condition && !success) { - if (el.disabled) { continue; } - if (!onlyCheck) { - Nette.addError(el, rule.msg.replace('%value', Nette.getValue(el))); - } - return false; - } - } - return true; -}; - - -Nette.validateForm = function(sender) { - var form = sender.form || sender; - if (form['nette-submittedBy'] && form['nette-submittedBy'].getAttribute('formnovalidate') !== null) { - return true; - } - for (var i = 0; i < form.elements.length; i++) { - var elem = form.elements[i]; - if (!(elem.nodeName.toLowerCase() in {input:1, select:1, textarea:1}) || (elem.type in {hidden:1, submit:1, image:1, reset: 1}) || elem.disabled || elem.readonly) { - continue; - } - if (!Nette.validateControl(elem)) { - return false; - } - } - return true; -}; - - -Nette.addError = function(elem, message) { - if (elem.focus) { - elem.focus(); - } - if (message) { - alert(message); - } -}; - - -Nette.validateRule = function(elem, op, arg) { - var val = Nette.getValue(elem); - - if (elem.getAttribute) { - if (val === elem.getAttribute('data-nette-empty-value')) { val = ''; } - } - - if (op.charAt(0) === ':') { - op = op.substr(1); - } - op = op.replace('::', '_'); - op = op.replace('\\', ''); - return Nette.validators[op] ? Nette.validators[op](elem, arg, val) : null; -}; - - -Nette.validators = { - filled: function(elem, arg, val) { - return val !== '' && val !== false && val !== null; - }, - - valid: function(elem, arg, val) { - return Nette.validateControl(elem, null, true); - }, - - equal: function(elem, arg, val) { - if (arg === undefined) { - return null; - } - arg = Nette.isArray(arg) ? arg : [arg]; - for (var i = 0, len = arg.length; i < len; i++) { - if (val == (arg[i].control ? Nette.getValue(elem.form.elements[arg[i].control]) : arg[i])) { - return true; - } - } - return false; - }, - - minLength: function(elem, arg, val) { - return val.length >= arg; - }, - - maxLength: function(elem, arg, val) { - return val.length <= arg; - }, - - length: function(elem, arg, val) { - arg = Nette.isArray(arg) ? arg : [arg, arg]; - return (arg[0] === null || val.length >= arg[0]) && (arg[1] === null || val.length <= arg[1]); - }, - - email: function(elem, arg, val) { - return (/^[^@\s]+@[^@\s]+\.[a-z]{2,10}$/i).test(val); - }, - - url: function(elem, arg, val) { - return (/^.+\.[a-z]{2,6}(\/.*)?$/i).test(val); - }, - - regexp: function(elem, arg, val) { - var parts = typeof arg === 'string' ? arg.match(/^\/(.*)\/([imu]*)$/) : false; - if (parts) { try { - return (new RegExp(parts[1], parts[2].replace('u', ''))).test(val); - } catch (e) {} } - }, - - pattern: function(elem, arg, val) { - try { - return typeof arg === 'string' ? (new RegExp('^(' + arg + ')$')).test(val) : null; - } catch (e) {} - }, - - integer: function(elem, arg, val) { - return (/^-?[0-9]+$/).test(val); - }, - - float: function(elem, arg, val) { - return (/^-?[0-9]*[.,]?[0-9]+$/).test(val); - }, - - range: function(elem, arg, val) { - return Nette.isArray(arg) ? ((arg[0] === null || parseFloat(val) >= arg[0]) && (arg[1] === null || parseFloat(val) <= arg[1])) : null; - }, - - submitted: function(elem, arg, val) { - return elem.form['nette-submittedBy'] === elem; - } -}; - - -Nette.toggleForm = function(form) { - for (var i = 0; i < form.elements.length; i++) { - if (form.elements[i].nodeName.toLowerCase() in {input:1, select:1, textarea:1, button:1}) { - Nette.toggleControl(form.elements[i]); - } - } -}; - - -Nette.toggleControl = function(elem, rules, firsttime) { - rules = rules || eval('[' + (elem.getAttribute('data-nette-rules') || '') + ']'); - var has = false, __hasProp = Object.prototype.hasOwnProperty, handler = function() { Nette.toggleForm(elem.form); }; - - for (var id = 0, len = rules.length; id < len; id++) { - var rule = rules[id], op = rule.op.match(/(~)?([^?]+)/); - rule.neg = op[1]; - rule.op = op[2]; - rule.condition = !!rule.rules; - if (!rule.condition) { continue; } - - var el = rule.control ? elem.form.elements[rule.control] : elem; - var success = Nette.validateRule(el, rule.op, rule.arg); - if (success === null) { continue; } - if (rule.neg) { success = !success; } - - if (Nette.toggleControl(elem, rule.rules, firsttime) || rule.toggle) { - has = true; - if (firsttime) { - if (!el.nodeName) { // radio - for (var i = 0; i < el.length; i++) { - Nette.addEvent(el[i], 'click', handler); - } - } else if (el.nodeName.toLowerCase() === 'select') { - Nette.addEvent(el, 'change', handler); - } else { - Nette.addEvent(el, 'click', handler); - } - } - for (var id2 in rule.toggle || []) { - if (__hasProp.call(rule.toggle, id2)) { Nette.toggle(id2, success ? rule.toggle[id2] : !rule.toggle[id2]); } - } - } - } - return has; -}; - - -Nette.toggle = function(id, visible) { - var elem = document.getElementById(id); - if (elem) { - elem.style.display = visible ? "" : "none"; - } -}; - - -Nette.initForm = function(form) { - form.noValidate = true; - - Nette.addEvent(form, 'submit', function() { - return Nette.validateForm(form); - }); - - Nette.addEvent(form, 'click', function(e) { - e = e || event; - var target = e.target || e.srcElement; - form['nette-submittedBy'] = (target.type in {submit:1, image:1}) ? target : null; - }); - - for (var i = 0; i < form.elements.length; i++) { - Nette.toggleControl(form.elements[i], null, true); - } - - if (/MSIE/.exec(navigator.userAgent)) { - var labels = {}, - wheelHandler = function() { return false; }, - clickHandler = function() { document.getElementById(this.htmlFor).focus(); return false; }; - - for (i = 0, elms = form.getElementsByTagName('label'); i < elms.length; i++) { - labels[elms[i].htmlFor] = elms[i]; - } - - for (i = 0, elms = form.getElementsByTagName('select'); i < elms.length; i++) { - Nette.addEvent(elms[i], 'mousewheel', wheelHandler); // prevents accidental change in IE - if (labels[elms[i].htmlId]) { - Nette.addEvent(labels[elms[i].htmlId], 'click', clickHandler); // prevents deselect in IE 5 - 6 - } - } - } -}; - - -Nette.isArray = function(arg) { - return Object.prototype.toString.call(arg) === '[object Array]'; -}; - - -Nette.addEvent(window, 'load', function () { - for (var i = 0; i < document.forms.length; i++) { - Nette.initForm(document.forms[i]); - } -}); From 06a2d06d787dbe4d2fd742a6bce702018e61c365 Mon Sep 17 00:00:00 2001 From: Jan Dolecek Date: Wed, 1 Aug 2012 13:12:42 +0200 Subject: [PATCH 24/24] updated assets config --- composer.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index aaf07fa..fe1a362 100644 --- a/composer.json +++ b/composer.json @@ -23,8 +23,9 @@ "extra": { "nette-addon": { "assets": { - "css": [ "resources/css/" ], - "javascript": [ "resources/js/" ] + "images": [ "resources/css/images/" ], + "css": [ "resources/css/grid.css" ], + "javascript": [ "resources/js/grid.js" ] }, "extras": [ "jQuery", "jQuery-UI", "netteForms" ] }