From f61bec815dea9bb3ca42ad2cac156776976c04aa Mon Sep 17 00:00:00 2001 From: Rob Clayburn Date: Sat, 27 Aug 2011 21:12:17 +0200 Subject: [PATCH] closes GH-1 --- .../components/com_fabrik/models/form.php | 20 +- components/com_fabrik/helpers/html.php | 75 +- .../com_fabrik/models/pluginmanager.php | 6 +- .../css/calendar-eightysix-v1.1-default.css | 296 -------- .../calendar-eightysix-v1.1-osx-dashboard.css | 198 ------ .../css/calendar-eightysix-v1.1-vista.css | 239 ------- .../date/calendar-eightysix/css/page.css | 76 --- .../date/calendar-eightysix/img/calendar.gif | Bin 523 -> 0 bytes .../img/default/arrow-left-hover-blue.png | Bin 3034 -> 0 bytes .../img/default/arrow-left-hover-green.png | Bin 3043 -> 0 bytes .../img/default/arrow-left-hover-red.png | Bin 3032 -> 0 bytes .../img/default/arrow-left.png | Bin 3009 -> 0 bytes .../img/default/arrow-right-hover-blue.png | Bin 3047 -> 0 bytes .../img/default/arrow-right-hover-green.png | Bin 3033 -> 0 bytes .../img/default/arrow-right-hover-red.png | Bin 3040 -> 0 bytes .../img/default/arrow-right.png | Bin 3009 -> 0 bytes .../img/default/background.gif | Bin 2430 -> 0 bytes .../img/default/background.png | Bin 4424 -> 0 bytes .../img/default/footer-blue.png | Bin 2872 -> 0 bytes .../img/default/footer-green.png | Bin 2870 -> 0 bytes .../img/default/footer-red.png | Bin 2897 -> 0 bytes .../img/osx-dashboard/arrow-left-hover.gif | Bin 49 -> 0 bytes .../img/osx-dashboard/arrow-left.gif | Bin 93 -> 0 bytes .../img/osx-dashboard/arrow-right-hover.gif | Bin 49 -> 0 bytes .../img/osx-dashboard/arrow-right.gif | Bin 93 -> 0 bytes .../img/osx-dashboard/background.gif | Bin 1291 -> 0 bytes .../img/osx-dashboard/background.png | Bin 4451 -> 0 bytes .../date/calendar-eightysix/img/shading.png | Bin 2831 -> 0 bytes .../img/vista/arrow-left-hover.gif | Bin 41 -> 0 bytes .../img/vista/arrow-left.gif | Bin 99 -> 0 bytes .../img/vista/arrow-right-hover.gif | Bin 41 -> 0 bytes .../img/vista/arrow-right.gif | Bin 65 -> 0 bytes .../img/vista/background.gif | Bin 4397 -> 0 bytes .../img/vista/background.png | Bin 5957 -> 0 bytes .../date/calendar-eightysix/img/vista/day.gif | Bin 810 -> 0 bytes .../img/vista/year-decade.gif | Bin 1478 -> 0 bytes .../js/calendar-eightysix-v1.1.js | 642 ------------------ .../js/compressed/calendar-eightysix-v1.1.js | 5 - plugins/fabrik_element/date/date.js | 404 +++++++---- plugins/fabrik_element/date/date.php | 458 ++++++------- 40 files changed, 550 insertions(+), 1869 deletions(-) delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-default.css delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-osx-dashboard.css delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-vista.css delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/css/page.css delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/calendar.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-blue.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-green.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-red.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-blue.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-green.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-red.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/background.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/background.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/footer-blue.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/footer-green.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/default/footer-red.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-left-hover.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-left.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-right-hover.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-right.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/background.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/background.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/shading.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-left-hover.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-left.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-right-hover.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-right.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/background.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/background.png delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/day.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/img/vista/year-decade.gif delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/js/calendar-eightysix-v1.1.js delete mode 100644 plugins/fabrik_element/date/calendar-eightysix/js/compressed/calendar-eightysix-v1.1.js diff --git a/administrator/components/com_fabrik/models/form.php b/administrator/components/com_fabrik/models/form.php index d10fdc4a35e..512948891e8 100644 --- a/administrator/components/com_fabrik/models/form.php +++ b/administrator/components/com_fabrik/models/form.php @@ -112,18 +112,20 @@ public function getAbstractPlugins() $data = array(); $o = $pluginManager->getPlugIn($plugin->name, 'Form'); + if ($o !== false) { + $o->getJForm()->model = $feFormModel; - $o->getJForm()->model = $feFormModel; + // $$$ rob 0 was $x below but that rendered first set of plugins with indexes 1,2,3 + // think they should all be indexed 0 + $str = $o->onRenderAdminSettings($data, 0); + $js = $o->onGetAdminJs($plugin->name, $plugin->name, $str); + $str = addslashes(str_replace(array("\n", "\r"), "", $str)); - // $$$ rob 0 was $x below but that rendered first set of plugins with indexes 1,2,3 - // think they should all be indexed 0 - $str = $o->onRenderAdminSettings($data, 0); - $js = $o->onGetAdminJs($plugin->name, $plugin->name, $str); - $str = addslashes(str_replace(array("\n", "\r"), "", $str)); - - $attr = "class=\"inputbox elementtype\""; - $rules[$plugin->name] = array('plugin'=>$plugin->name, 'html'=>$str, 'js'=>$js); + $attr = "class=\"inputbox elementtype\""; + $rules[$plugin->name] = array('plugin'=>$plugin->name, 'html'=>$str, 'js'=>$js); + } } + asort($rules); $this->abstractPlugins = $rules; return $rules; diff --git a/components/com_fabrik/helpers/html.php b/components/com_fabrik/helpers/html.php index 5c547a9df6e..dabf998b251 100644 --- a/components/com_fabrik/helpers/html.php +++ b/components/com_fabrik/helpers/html.php @@ -297,25 +297,80 @@ function tableList($sel = '') * @param string $theme */ - function loadCalendar($theme = 'default') +function loadCalendar() { + JHtml::_('behavior.calendar'); + /*return; static $calendarLoaded; - if (!is_array($calendarLoaded)) { - $calendarLoaded = array(); - } // Only load once - if (isset($calendarLoaded[$theme])) { + if ($calendarLoaded) { + return; + } + + $calendarLoaded = true; + + $document = JFactory::getDocument(); + // $$$ hugh - if 'raw' and we output the JS stuff, it screws things up by echo'ing stuff ahead + // of the raw view display() method's JSON echo + if ($document->getType() == 'raw') { return; } - $calendarLoaded[$theme] = true; - if (JDEBUG) { - FabrikHelperHTML::script('plugins/fabrik_element/date/calendar-eightysix/js/calendar-eightysix-v1.1.js', true); + $config = &JFactory::getConfig(); + $debug = $config->getValue('config.debug'); + + FabrikHelperHTML::stylesheet('calendar-jos.css', 'media/system/css/', array(' title' => JText::_('green') ,' media' => 'all')); + // $$$ hugh - need to just use JHTML::script() for these, to avoid recursion issues if anything else + // includes these files, and Fabrik is using merged JS, which means page ends up with two copies, + // causing a "too much recursion" error (calendar.js overrides some date object functions) + FabrikHelperHTML::script('calendar.js', 'media/system/js/'); + FabrikHelperHTML::script('calendar-setup.js', 'media/system/js/'); + //JHTML::script('calendar.js', 'media/system/js/'); + //JHTML::script('calendar-setup.js', 'media/system/js/'); + $translation = FabrikHelperHTML::_calendartranslation(); + if ($translation) { + FabrikHelperHTML::addScriptDeclaration($translation); + } +*/ + } + + /** + * Internal method to translate the JavaScript Calendar + * + * @return string JavaScript that translates the object + * @since 1.5 + */ + function _calendartranslation() + { + static $jsscript = 0; + + /* + * Calendar._TT["ABOUT"] = + "DHTML Date/Time Selector\n" + + "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + + "For latest version visit: http://www.dynarch.com/projects/calendar/\n" + + "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + + "\n\n" + + "Date selection:\n" + + "- Use the \xab, \xbb buttons to select year\n" + + "- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" + + "- Hold mouse button on any of the above buttons for faster selection."; + Calendar._TT["ABOUT_TIME"] = "\n\n" + + "Time selection:\n" + + "- Click on any of the time parts to increase it\n" + + "- or Shift-click to decrease it\n" + + "- or click and drag for faster selection."; + */ + if($jsscript == 0) + { + $return = 'Calendar._DN = new Array ("'.JText::_('Sunday').'", "'.JText::_('Monday').'", "'.JText::_('Tuesday').'", "'.JText::_('Wednesday').'", "'.JText::_('Thursday').'", "'.JText::_('Friday').'", "'.JText::_('Saturday').'", "'.JText::_('Sunday').'");Calendar._SDN = new Array ("'.JText::_('Sun').'", "'.JText::_('Mon').'", "'.JText::_('Tue').'", "'.JText::_('Wed').'", "'.JText::_('Thu').'", "'.JText::_('Fri').'", "'.JText::_('Sat').'", "'.JText::_('Sun').'"); Calendar._FD = 0; Calendar._MN = new Array ("'.JText::_('January').'", "'.JText::_('February').'", "'.JText::_('March').'", "'.JText::_('April').'", "'.JText::_('May').'", "'.JText::_('June').'", "'.JText::_('July').'", "'.JText::_('August').'", "'.JText::_('September').'", "'.JText::_('October').'", "'.JText::_('November').'", "'.JText::_('December').'"); Calendar._SMN = new Array ("'.JText::_('January_short').'", "'.JText::_('February_short').'", "'.JText::_('March_short').'", "'.JText::_('April_short').'", "'.JText::_('May_short').'", "'.JText::_('June_short').'", "'.JText::_('July_short').'", "'.JText::_('August_short').'", "'.JText::_('September_short').'", "'.JText::_('October_short').'", "'.JText::_('November_short').'", "'.JText::_('December_short').'");Calendar._TT = {};Calendar._TT["INFO"] = "'.JText::_('About the calendar').'"; + Calendar._TT["PREV_YEAR"] = "'.JText::_('Prev. year (hold for menu)').'";Calendar._TT["PREV_MONTH"] = "'.JText::_('Prev. month (hold for menu)').'"; Calendar._TT["GO_TODAY"] = "'.JText::_('Go Today').'";Calendar._TT["NEXT_MONTH"] = "'.JText::_('Next month (hold for menu)').'";Calendar._TT["NEXT_YEAR"] = "'.JText::_('Next year (hold for menu)').'";Calendar._TT["SEL_DATE"] = "'.JText::_('Select date').'";Calendar._TT["DRAG_TO_MOVE"] = "'.JText::_('Drag to move').'";Calendar._TT["PART_TODAY"] = "'.JText::_('(Today)').'";Calendar._TT["DAY_FIRST"] = "'.JText::_('Display %s first').'";Calendar._TT["WEEKEND"] = "0,6";Calendar._TT["CLOSE"] = "'.JText::_('Close').'";Calendar._TT["TODAY"] = "'.JText::_('Today').'";Calendar._TT["TIME_PART"] = "'.JText::_('(Shift-)Click or drag to change value').'";Calendar._TT["DEF_DATE_FORMAT"] = "'.JText::_('%Y-%m-%d').'"; Calendar._TT["TT_DATE_FORMAT"] = "'.JText::_('%a, %b %e').'";Calendar._TT["WK"] = "'.JText::_('wk').'";Calendar._TT["TIME"] = "'.JText::_('Time:').'";'; + $jsscript = 1; + return $return; } else { - FabrikHelperHTML::script('plugins/fabrik_element/date/calendar-eightysix/js/compressed/calendar-eightysix-v1.1.js', true); + return false; } - FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE.'plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-'.$theme.'.css'); } /** diff --git a/components/com_fabrik/models/pluginmanager.php b/components/com_fabrik/models/pluginmanager.php index f70dfe5093c..5fed567eac4 100644 --- a/components/com_fabrik/models/pluginmanager.php +++ b/components/com_fabrik/models/pluginmanager.php @@ -193,7 +193,11 @@ protected function loadPlugIn($className = '', $group) if (JFile::exists(JPATH_PLUGINS.DS.'fabrik_'.strtolower($group).DS.$className.DS.$className.'.php')) { require_once(JPATH_PLUGINS.DS.'fabrik_'.strtolower($group).DS.$className.DS.$className.'.php'); } else { - require_once(JPATH_PLUGINS.DS.'fabrik_'.strtolower($group).DS.$className.DS.'models'.DS.$className.'.php'); + if (JFile::exists((JPATH_PLUGINS.DS.'fabrik_'.strtolower($group).DS.$className.DS.'models'.DS.$className.'.php'))) { + require_once(JPATH_PLUGINS.DS.'fabrik_'.strtolower($group).DS.$className.DS.'models'.DS.$className.'.php'); + } else { + return false; + } } } $class = 'plgFabrik_'.JString::ucfirst($group).JString::ucfirst($className); diff --git a/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-default.css b/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-default.css deleted file mode 100644 index ae3656b9677..00000000000 --- a/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-default.css +++ /dev/null @@ -1,296 +0,0 @@ -.picker { - cursor: pointer; - width: 13px; - height: 12px; - display: inline-block; - background: url('../img/calendar.gif') no-repeat; - margin-left: -19px; - margin-top: 4px; - position: absolute; - display: inline; -} - -/* General */ - -.calendar-eightysix { - cursor: default; - position: absolute; - z-index: 999; - text-align: center; -} - .calendar-eightysix, .calendar-eightysix * { - overflow: hidden; - padding: 0; - margin: 0; - line-height: 100%; - } - .calendar-eightysix .c86-header.c86-dragger { - cursor: move; - } - - .calendar-eightysix .c86-header .c86-arrow-left, .calendar-eightysix .c86-header .c86-arrow-right { - cursor: pointer; - } - .calendar-eightysix .c86-header .c86-arrow-left { - float: left; - } - .calendar-eightysix .c86-header .c86-arrow-right { - float: right; - } - - .calendar-eightysix .c86-header .c86-label { - display: inline-block; - overflow: visible; - width: 146px; - } - .calendar-eightysix .c86-header .c86-label.c86-clickable { - cursor: pointer; - } - - .calendar-eightysix .c86-body { - position: relative; - } - .calendar-eightysix .c86-body .c86-inner .c86-container { - position: absolute; - left: 0; - } - - .calendar-eightysix .c86-body .c86-inner .c86-container .c86-row div { - float: left; - } - - .calendar-eightysix .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div, - .calendar-eightysix .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div { - cursor: pointer; - } - -/* Specific */ - -.calendar-eightysix.default { - width: 216px; - height: 170px; - background: url('../img/default/background.png') center no-repeat; - font-family: Trebuchet, Tahoma, Arial, sans-serif; - font-size: 11px; - color: #888; -} -*html .calendar-eightysix.default { /* IE6 png fix */ - background-image: url('../img/default/background.gif'); -} - - .calendar-eightysix.default .c86-wrapper { - padding: 8px; - } - - /* Header */ - - .calendar-eightysix.default .c86-header { - height: 25px; - } - - .calendar-eightysix.default .c86-header .c86-arrow-left, .calendar-eightysix.default .c86-header .c86-arrow-right { - width: 12px; - height: 13px; - margin: 6px 7px; - } - .calendar-eightysix.default .c86-header .c86-arrow-left { - background: transparent url('../img/default/arrow-left.png') center no-repeat; - } - *html .calendar-eightysix.default .c86-header .c86-arrow-left { /* IE6 png fix */ - background: none; - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/default/arrow-left.png', sizingMethod='scale'); - } - .calendar-eightysix.default .c86-header .c86-arrow-left:hover { - background-image: url('../img/default/arrow-left-hover-blue.png'); - } - .calendar-eightysix.default .c86-header .c86-arrow-right { - background: transparent url('../img/default/arrow-right.png') center no-repeat; - } - *html .calendar-eightysix.default .c86-header .c86-arrow-right { /* IE6 png fix */ - background: none; - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/default/arrow-right.png', sizingMethod='scale'); - } - .calendar-eightysix.default .c86-header .c86-arrow-right:hover { - background-image: url('../img/default/arrow-right-hover-blue.png'); - } - - *html .calendar-eightysix.default .c86-header .c86-label { - width: 126px !important; - } - .calendar-eightysix.default .c86-header .c86-label { - margin-top: 7px; - color: #8399a6; - } - .calendar-eightysix.default .c86-header .c86-label.c86-clickable:hover { - color: #b2cfe1; - } - - /* Body */ - - .calendar-eightysix.default .c86-body { - height: 126px; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container { - width: 200px; - height: 126px; - } - - /* General container */ - - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row { - width: 200px; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row.c86-even, - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row.c86-even div { - background-color: #eee; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row.c86-odd div { - background-color: #fff; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row div.c86-today { - text-decoration: underline; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row div.c86-selected { - font-weight: bold; - color: #8eaec1 !important; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row div.c86-non-selectable, - .calendar-eightysix.default .c86-body .c86-inner .c86-container .c86-row div.c86-non-selectable:hover { - color: #dcdcdc !important; - cursor: default !important; - } - - /* Month */ - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row.a div { - cursor: default !important; - color: #888 !important; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row { - height: 18px; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row div { - margin-top: 3px; - width: 24px; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-first { - padding-left: 16px; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-last { - padding-right: 16px; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-outside { - color: #dedede; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row.c86-even div.c86-outside { - color: #cecece; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month .c86-row.a div { - color: #9c9c9c; - } - - /* Year & decade */ - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row { - height: 42px; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div { - width: 42px; - padding-top: 15px; - height: 29px; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-first { - margin-left: 16px; - } - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-last { - margin-right: 16px; - } - - *html .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-first { /* IE6 fix */ - margin-left: 9px; - } - *html .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-last { /* IE6 fix */ - margin-right: 9px; - } - - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div:hover, - .calendar-eightysix.default .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div:hover { - color: #b2cfe1; - } - - /* Footer */ - - .calendar-eightysix.default .c86-footer { - background: transparent url('../img/default/footer-blue.png') top no-repeat; - height: 4px; - } - *html .calendar-eightysix.default .c86-footer { /* IE6 png fix */ - background: none; - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/default/footer-blue.png', sizingMethod='scale'); - } - - -/* Red style */ - -.calendar-eightysix.default.red .c86-header .c86-arrow-left:hover { - background-image: url('../img/default/arrow-left-hover-red.png'); -} -.calendar-eightysix.default.red .c86-header .c86-arrow-right:hover { - background-image: url('../img/default/arrow-right-hover-red.png'); -} -.calendar-eightysix.default.red .c86-header .c86-label { - color: #d13a3a; -} - .calendar-eightysix.default.red .c86-header .c86-label.c86-clickable:hover { - color: #d06d6d; - } -.calendar-eightysix.default.red .c86-footer { - background-image: url('../img/default/footer-red.png'); -} - *html .calendar-eightysix.default.red .c86-footer { /* IE6 png fix */ - background: none; - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/default/footer-red.png', sizingMethod='scale'); - } -.calendar-eightysix.default.red .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div:hover, - .calendar-eightysix.default.red .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div:hover { - color: #b90000; -} -.calendar-eightysix.default.red .c86-body .c86-inner .c86-container .c86-row div.c86-selected { - color: #b90000 !important; -} - -/* Green style */ - -.calendar-eightysix.default.green .c86-header .c86-arrow-left:hover { - background-image: url('../img/default/arrow-left-hover-green.png'); -} -.calendar-eightysix.default.green .c86-header .c86-arrow-right:hover { - background-image: url('../img/default/arrow-right-hover-green.png'); -} -.calendar-eightysix.default.green .c86-header .c86-label { - color: #73a642; -} - .calendar-eightysix.default.green .c86-header .c86-label.c86-clickable:hover { - color: #73a642; - } -.calendar-eightysix.default.green .c86-footer { - background-image: url('../img/default/footer-green.png'); -} - *html .calendar-eightysix.default.green .c86-footer { /* IE6 png fix */ - background: none; - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/default/footer-green.png', sizingMethod='scale'); - } -.calendar-eightysix.default.green .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div:hover, - .calendar-eightysix.default.green .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div:hover { - color: #73a642; -} -.calendar-eightysix.default.green .c86-body .c86-inner .c86-container .c86-row div.c86-selected { - color: #9abd79 !important; -} \ No newline at end of file diff --git a/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-osx-dashboard.css b/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-osx-dashboard.css deleted file mode 100644 index 2d93aed5f19..00000000000 --- a/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-osx-dashboard.css +++ /dev/null @@ -1,198 +0,0 @@ -.picker { - cursor: pointer; - width: 13px; - height: 12px; - display: inline-block; - background: url('../img/calendar.gif') no-repeat; - margin-left: -19px; - margin-top: 4px; - position: absolute; - display: inline; -} - -/* General */ - -.calendar-eightysix { - cursor: default; - position: absolute; - z-index: 999; - text-align: center; -} - .calendar-eightysix, .calendar-eightysix * { - overflow: hidden; - padding: 0; - margin: 0; - line-height: 100%; - } - .calendar-eightysix .c86-header.c86-dragger { - cursor: move; - } - - .calendar-eightysix .c86-header .c86-arrow-left, .calendar-eightysix .c86-header .c86-arrow-right { - cursor: pointer; - } - .calendar-eightysix .c86-header .c86-arrow-left { - float: left; - } - .calendar-eightysix .c86-header .c86-arrow-right { - float: right; - } - - .calendar-eightysix .c86-header .c86-label { - display: inline-block; - overflow: visible; - width: 146px; - } - .calendar-eightysix .c86-header .c86-label.c86-clickable { - cursor: pointer; - } - - .calendar-eightysix .c86-body { - position: relative; - } - .calendar-eightysix .c86-body .c86-inner .c86-container { - position: absolute; - left: 0; - } - - .calendar-eightysix .c86-body .c86-inner .c86-container .c86-row div { - float: left; - } - - .calendar-eightysix .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div, - .calendar-eightysix .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div { - cursor: pointer; - } - -/* Specifc */ - -.calendar-eightysix.osx-dashboard { - width: 198px; - height: 162px; - background: url('../img/osx-dashboard/background.png') center; - font-family: Calibri, Helvetica, Trebuchet, Tahoma, Arial, sans-serif; - font-size: 12px; - color: #fff; -} -*html .calendar-eightysix.osx-dashboard { - background-image: url('../img/osx-dashboard/background.gif'); -} - - .calendar-eightysix.osx-dashboard .c86-wrapper { - padding: 16px; - } - - /* Header */ - - .calendar-eightysix.osx-dashboard .c86-header { - height: 22px; - } - - .calendar-eightysix.osx-dashboard .c86-header .c86-arrow-left, .calendar-eightysix.osx-dashboard .c86-header .c86-arrow-right { - width: 12px; - height: 16px; - } - .calendar-eightysix.osx-dashboard .c86-header .c86-arrow-left { - background: transparent url('../img/osx-dashboard/arrow-left.gif') 5px 3px no-repeat; - } - .calendar-eightysix.osx-dashboard .c86-header .c86-arrow-left:hover { - background-image: url('../img/osx-dashboard/arrow-left-hover.gif'); - } - .calendar-eightysix.osx-dashboard .c86-header .c86-arrow-right { - background: transparent url('../img/osx-dashboard/arrow-right.gif') 3px 3px no-repeat; - } - .calendar-eightysix.osx-dashboard .c86-header .c86-arrow-right:hover { - background-image: url('../img/osx-dashboard/arrow-right-hover.gif'); - } - - .calendar-eightysix.osx-dashboard .c86-header .c86-label { - color: #cf0; - width: 120px; - } - .calendar-eightysix.osx-dashboard .c86-header .c86-label.c86-clickable:hover { - color: #fff; - } - - /* Body */ - - .calendar-eightysix.osx-dashboard .c86-body { - height: 108px; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container { - width: 166px; - height: 108px; - } - - /* General container */ - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container .c86-row { - width: 166px; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container .c86-row div.c86-non-selectable, - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container .c86-row div.c86-non-selectable:hover { - color: #dcdcdc !important; - cursor: default !important; - background: none !important; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container .c86-row div.c86-today { - text-decoration: underline; - } - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container .c86-row div.c86-selected { - font-weight: bold; - color: #cf0 !important; - } - - /* Month */ - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row { - height: 122px; - height: 15px; - } - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row.a { - height: 19px; - text-transform: uppercase; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row.a div { - cursor: default !important; - color: #9c9c9c !important; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row div { - padding-top: 1px; - width: 23px; - height: 14px; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-outside { - color: #454545; - } - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row.a div, - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-outside:hover { - color: #9c9c9c !important; - } - - /* Year & decade */ - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-year-decade .c86-row { - height: 36px; - } - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div { - width: 41px; - padding-top: 11px; - height: 24px; - } - - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div:hover, - .calendar-eightysix.osx-dashboard .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div:hover { - color: #cf0; - } - - /* Footer */ - - .calendar-eightysix.osx-dashboard .c86-footer { - display: none; - } \ No newline at end of file diff --git a/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-vista.css b/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-vista.css deleted file mode 100644 index 8d2dd4e9dc4..00000000000 --- a/plugins/fabrik_element/date/calendar-eightysix/css/calendar-eightysix-v1.1-vista.css +++ /dev/null @@ -1,239 +0,0 @@ -.picker { - cursor: pointer; - width: 13px; - height: 12px; - display: inline-block; - background: url('../img/calendar.gif') no-repeat; - margin-left: -19px; - margin-top: 4px; - position: absolute; - display: inline; -} -/* General */ - -.calendar-eightysix { - cursor: default; - position: absolute; - z-index: 999; - text-align: center; -} - .calendar-eightysix, .calendar-eightysix * { - overflow: hidden; - padding: 0; - margin: 0; - line-height: 100%; - } - .calendar-eightysix .c86-header.c86-dragger { - cursor: move; - } - - .calendar-eightysix .c86-header .c86-arrow-left, .calendar-eightysix .c86-header .c86-arrow-right { - cursor: pointer; - } - .calendar-eightysix .c86-header .c86-arrow-left { - float: left; - } - .calendar-eightysix .c86-header .c86-arrow-right { - float: right; - } - - .calendar-eightysix .c86-header .c86-label { - display: inline-block; - overflow: visible; - width: 146px; - } - .calendar-eightysix .c86-header .c86-label.c86-clickable { - cursor: pointer; - } - - .calendar-eightysix .c86-body { - position: relative; - } - .calendar-eightysix .c86-body .c86-inner .c86-container { - position: absolute; - left: 0; - } - - .calendar-eightysix .c86-body .c86-inner .c86-container .c86-row div { - float: left; - } - - .calendar-eightysix .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div, - .calendar-eightysix .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div { - cursor: pointer; - } - -/* Specifc */ - -.calendar-eightysix.vista { - width: 198px; - height: 162px; - background: url('../img/vista/background.png'); - font-family: Calibri, Helvetica, Trebuchet, Tahoma, Arial, sans-serif; - font-size: 12px; - color: #000; -} -*html .calendar-eightysix.vista { - background-image: url('../img/vista/background.gif'); -} - - .calendar-eightysix.vista .c86-wrapper { - padding: 16px; - } - - /* Header */ - - .calendar-eightysix.vista .c86-header { - height: 22px; - } - - .calendar-eightysix.vista .c86-header .c86-arrow-left, .calendar-eightysix.vista .c86-header .c86-arrow-right { - width: 12px; - height: 16px; - } - .calendar-eightysix.vista .c86-header .c86-arrow-left { - background: transparent url('../img/vista/arrow-left.gif') 5px 3px no-repeat; - } - .calendar-eightysix.vista .c86-header .c86-arrow-left:hover { - background-image: url('../img/vista/arrow-left-hover.gif'); - } - .calendar-eightysix.vista .c86-header .c86-arrow-right { - background: transparent url('../img/vista/arrow-right.gif') 3px 3px no-repeat; - } - .calendar-eightysix.vista .c86-header .c86-arrow-right:hover { - background-image: url('../img/vista/arrow-right-hover.gif'); - } - - .calendar-eightysix.vista .c86-header .c86-label { - margin-top: 1px; - width: 120px; - } - .calendar-eightysix.vista .c86-header .c86-label.c86-clickable:hover { - color: #06c; - } - - /* Body */ - - .calendar-eightysix.vista .c86-body { - height: 108px; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container { - width: 166px; - height: 108px; - } - - /* General container */ - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container .c86-row { - width: 166px; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container .c86-row div { - background-color: #fff; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container .c86-row div.c86-non-selectable, - .calendar-eightysix.vista .c86-body .c86-inner .c86-container .c86-row div.c86-non-selectable:hover { - color: #dcdcdc !important; - cursor: default !important; - background: none !important; - } - - /* Month */ - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row { - height: 122px; - height: 15px; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row.a { - height: 16px; - border-bottom: 1px solid #f5f5f5; - margin-bottom: 1px; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row.a div { - cursor: default !important; - color: #9c9c9c !important; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div { - padding-top: 1px; - width: 23px; - height: 14px; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-outside { - color: #dcdcdc; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row.a div { - color: #9c9c9c; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div:hover { - background: url('../img/vista/day.gif') top no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-today { - background: url('../img/vista/day.gif') 0 -17px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-today:hover { - background: url('../img/vista/day.gif') 0 -34px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-selected { - background: url('../img/vista/day.gif') 0 -51px no-repeat; - color: #06c !important; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-selected:hover { - background: url('../img/vista/day.gif') 0 -68px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-today.c86-selected { - background: url('../img/vista/day.gif') 0 -85px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month .c86-row div.c86-today.c86-selected:hover { - background: url('../img/vista/day.gif') 0 -102px no-repeat; - } - - /* Year & decade */ - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row { - height: 36px; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div { - width: 41px; - padding-top: 11px; - height: 24px; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div:hover { - background: url('../img/vista/year-decade.gif') top no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-today { - background: url('../img/vista/year-decade.gif') 0 -37px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-today:hover { - background: url('../img/vista/year-decade.gif') 0 -74px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-selected { - background: url('../img/vista/year-decade.gif') 0 -111px no-repeat; - color: #06c !important; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-selected:hover { - background: url('../img/vista/year-decade.gif') 0 -149px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-today.c86-selected { - background: url('../img/vista/year-decade.gif') 0 -187px no-repeat; - } - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div.c86-today.c86-selected:hover { - background: url('../img/vista/year-decade.gif') 0 -225px no-repeat; - } - - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-month.c86-pickable .c86-row div:hover, - .calendar-eightysix.vista .c86-body .c86-inner .c86-container.c86-year-decade .c86-row div:hover { - color: #06c; - } - - /* Footer */ - - .calendar-eightysix.vista .c86-footer { - display: none; - } \ No newline at end of file diff --git a/plugins/fabrik_element/date/calendar-eightysix/css/page.css b/plugins/fabrik_element/date/calendar-eightysix/css/page.css deleted file mode 100644 index d4203e1b28b..00000000000 --- a/plugins/fabrik_element/date/calendar-eightysix/css/page.css +++ /dev/null @@ -1,76 +0,0 @@ -html { - height: 100%; -} - -body { - padding: 20px; - background: #fff; -} - -body, input, select { - font-family: tahoma, arial, sans-serif; - font-size: 11px; -} - -table td { - padding-bottom: 4px; -} - -table th { - padding-top: 4px; -} - -table td, table th { - vertical-align: top; -} - -h2 { - margin : 0; - padding: 0 0 10px 0; -} - -a { - color: #8399A6; -} - -#exampleVIII { - display: inline-block; - width: 180px; - text-align: center; - cursor: pointer; - background: url('../img/shading.png'); - padding: 5px; -} - -input, select { - text-align: center; - background-color: white; - border: 1px solid; - border-color: #abadb3 #dbdfe6 #e3e9ef #e2e3ea; - padding: 2px; - vertical-align: absmiddle; - width: 66px; - height: 14px; -} - -select { - width: auto; - padding: 1px; - height: 20px; - text-align: left; -} -input:focus, input:hover, select:focus, select:hover { - border-color: #5794bf #b7d5ea #c7e2f1 #c5daed; -} - -.picker { - cursor: pointer; - width: 13px; - height: 12px; - display: inline-block; - background: url('../img/calendar.gif') no-repeat; - margin-left: -19px; - margin-top: 4px; - position: absolute; - display: inline; -} \ No newline at end of file diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/calendar.gif b/plugins/fabrik_element/date/calendar-eightysix/img/calendar.gif deleted file mode 100644 index 5125b626836a66c06108df9debf9c4356d0dacac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-green.png b/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-green.png deleted file mode 100644 index b9764a0579c0f5de9777709acca280494482292c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3043 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-red.png b/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-left-hover-red.png deleted file mode 100644 index 7ceb44d8989b50d3218baeef470546459999c1a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3032 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 DUi_T0 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-blue.png b/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-blue.png deleted file mode 100644 index 4368889bff83c4be35bbadc56ba53b6f09e55aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3047 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-green.png b/plugins/fabrik_element/date/calendar-eightysix/img/default/arrow-right-hover-green.png deleted file mode 100644 index 109b7c2c1ad31b53c7ea76d4b522f3f61102cd52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3033 zcmV;~3nui5P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00035Nkl66g?D#R9B_2OezsXg4m@=CknBMja@(y?8Gj=KqQ?O zVwyB5(piX=poo_G3oOKN5W#SY4`Q<$mg6o14`$zdubJ6E5~&J-lI`Ds#2*^3F9O#< z3_M%K)+KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003CNkl7ZpziW1kcZ7U$W!1F$be@T znX9F1N)nQeC1sLqNo0;8lC%rF0ttYYODfeW8}tPn#=wP#0iGHS-nw0W7K`GB1UN_1 zBs~5$P3<+<8)NLW)3K}hJiOW@4kq$Xzj@B*aL9eF#z(*J%k>!erbMwZ?6q3#x7)sy zSAa+0bQ5^c>#>t0Ve0`&&F~HHgMnSmW@Y1TdLPDHJn%7=v^LI28f}3`jv*@ir4!%` iICAS3;0n0&z~2BF5(X~GKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002&Nkle3BBV*5Ptj)EZMU}6W?}t; zK!gx5SlC<`3ul%gX7|B`H}9Uy47|xCF)IVEL;nH%q~5yLUob!M;GhbDe z@B2P|+5!F5zd)3k`KD>2FC=}P3z(TN%hGpU7yWM}?dO37FlvvaO*(Abb_tBy#69dT z>>z3<>9jbLw7mdt14B0ZOZUJ7a2w9=zzgsif!_fDDL`8UVHQRy00000NkvXXu0mjf DN9>e` diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/background.gif b/plugins/fabrik_element/date/calendar-eightysix/img/default/background.gif deleted file mode 100644 index 0e770cbe8d8d7199ed7ce94b0b60b39d3f0a79cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2430 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/footer-blue.png b/plugins/fabrik_element/date/calendar-eightysix/img/default/footer-blue.png deleted file mode 100644 index 2dc3a022658a95012acd9f9bf94e6d87f694e0da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2872 zcmV-83&-?{P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001ENklo`6oug*W+BL9x*3d&U?mu62FGh^p=rU5ci?>64fn*~EcKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001CNklZ0=jRUq0RR630Aaom UKPIwdC;$Ke07*qoM6N<$f&i_@% diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/default/footer-red.png b/plugins/fabrik_element/date/calendar-eightysix/img/default/footer-red.png deleted file mode 100644 index ba63676553cd4adaa0305c96f5f1d17fadeee533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2897 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 B3$*|M diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-left.gif b/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-left.gif deleted file mode 100644 index 0474de9e5ab04cf7424bfde37b63554e418f68a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmZ?wbhEHbWMN=u*vtR||NsBDwzjsiva+zSFf=q&Q&W?al;q~-28x5_Q3%DKEQ|~c boD4c3QIHu7EL;XB4KjD!xTh7|!C(ylhb$6? diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-right-hover.gif b/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-right-hover.gif deleted file mode 100644 index 4700645169d727a0e364d27a937cd3ce8fe6c37e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49 zcmZ?wbhEHbWMN=uXkcJC^Pl1W|Nn|VSr{1@7#VaJfB+=Jz{KIgCzknUb%+LoH2^rw B3w!_o diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-right.gif b/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/arrow-right.gif deleted file mode 100644 index 9e14d5bc1e1c86d37e6d3d1d08cfab5924bc69c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmZ?wbhEHbWMN=u*vtR||NsBDwzjsiva+zSFf=q&Q&W?al;q~-28x5_Q3%DKEQ|~c boD4c3QIHu7EL;XlBvV!iz0S_gwv|=H}w!;@sTa*4Eb4)YQ__ z(#Xij#>U3Q#l^zH!ok78y}iA5)ugs3IG590000000000000000000000000000000000000000 z00000A^8LW001)pEC2ui0LB2K000L6z?pDJEE41ejE#p&>QX?HuAR$7h(W6L{DqX5n1PKa2kCdWNqA1g=ShH%~ z+EPRbs3N73qH2|^*|TWVcKsUF$keK8%eSvfuV5VnCF{4a;kkg@ z7I|Ctu;a&A6W?8&w=v|)m~%=NELN!A%%DTd+&uWR=+mfWknT)4wd>HU@p`uWy7uAN zlxN%C?HD%^#=L|3^*sc*@Z*T>a+cj1xpTC{g&2QMeQWd?)2nM|dOiF0??<~=22Vb` z^3t@+s~>%ywdwWnVT#uszy8bl&F$+?iU0ln`u(N%-+BQKxL<(=+J|6*@h!+8f$cHp z--F;eNFjL^Uie*x8fwS?VTaUx2%>W$j(A*&CI*LMio31IVr?$I=vs_2qDEtlqTPri zXgcnQS&u$K24s-EMVMQDM8as~Z{sD|;*!NR>7OmRi!qWtVb&38q?N zjtL!<(n)D1k7#12=9)jY=^dOx%K0XpkClmMR(kGvRiAz?1!$m24N9naRk|nOpP+T3YO+$3mJcqst!JETPW^8m*tx?pZCK*V36SoZGJ1t(o7B z87`RPc3G~L=U$or?v(2~*=~~W5*crh^ZHotj`!l2Z;kuP*zb$~vKVlR1DjazhzEn1 zaEA+P*zko9QyB4s6Ej$Gf)^W@@qiou*YSa~f?6wgA&-2fr$^FiGRY`2`RK~FmJG9X zGSAFs%{KpubIyXAdcp`iV>QAFEl26V1R z?e*7Shb{KlWS4FB*=VP&H3})H(18Ss5fK3?;&?!U3wY?f2h+2QK*Fgcol3 z;fU`|f(QGM5&;svIPicl#8_kb<(Ox#`R12n1Hl8N_;W-7wUlo9>8Pi!`s%85V+84} z$1eNqwAbD!`Vs{s0JrVD_wM`era+K@>u3~j{PD;qul(}NH}CxO&_^%*^kM`706XeQ Bikbib diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/background.png b/plugins/fabrik_element/date/calendar-eightysix/img/osx-dashboard/background.png deleted file mode 100644 index 385618870a2d30cc73b553d5aba910d0a6b5af5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4451 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/shading.png b/plugins/fabrik_element/date/calendar-eightysix/img/shading.png deleted file mode 100644 index cc3ed4fc84ed9ea151a5167b81dfd5a06081a57e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2831 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-left-hover.gif b/plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-left-hover.gif deleted file mode 100644 index 730920d7d3fb44bde09f84a75d97325e5ee856e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 tcmZ?wbhEHbWMN=uXkcJqNIUcY|9>4Ig8?MMz{Js0$Z>jCCX)t(H2~8$3H$&6 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-left.gif b/plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-left.gif deleted file mode 100644 index 2655c129d310b759a0fc47411c980e51293a8b71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmZ?wbhEHbWMN=u*v!E2|Nnn$YilbjD+>z?LqkI~H8n{|Np5a#pg03Ip!k!8k%57O gK?fuWGJ}CdK;VQzD}(Z6Ux%NQ54Ig8?MMz{KIgCzknUb%+LoH2}_R3Bv#Y diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-right.gif b/plugins/fabrik_element/date/calendar-eightysix/img/vista/arrow-right.gif deleted file mode 100644 index 7c4dd7f921199c0672ac8194a847c7afce527350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65 zcmZ?wbhEHbWMN=uSj52a|Nnn$YilbjD+>z?LqkI~H8n{|Np5a#9R?r(sbOH|lh~kS REil2ei}l!=%??Zq)&S``4pIOB diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/vista/background.gif b/plugins/fabrik_element/date/calendar-eightysix/img/vista/background.gif deleted file mode 100644 index fa86c2ce9e1d71c231157be3d010acf99312a15f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4397 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/vista/background.png b/plugins/fabrik_element/date/calendar-eightysix/img/vista/background.png deleted file mode 100644 index f1b7543212918d1f0cdf674b0957b54703f12429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5957 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 diff --git a/plugins/fabrik_element/date/calendar-eightysix/img/vista/day.gif b/plugins/fabrik_element/date/calendar-eightysix/img/vista/day.gif deleted file mode 100644 index 7dc315e74641e7fae3bd4053e482470835b4b33d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmZ?wbhEHb6lW-9xXQr5(D0uj?aaZ4|BpWYzvkAz)wlls`1Akk@Bgp9|Nr#s|C=BG z-~aso@z?(^zyE*#^Z(V4|8IZ(|L_Ya`0w-Y|KI-n|M~a-qc4Bn{`mXpH&EHXTc7^i z`~2t8*S`Fr^6<>j6{W$Lu4ysi=gbLP&QKTpDyhimDw8oVW5=fu}H^qL#}Xjg3l2J0r|m z7!C{ibQq>y>F_!1=G%c$e1$+a~C+sZtTE`6Z9K|pXr*4a~~tHV;yNZ55x+wjJek%4JN?CEW~(F_@^ z3NF$M)MbG8|A?3!e(@8-?m zHT8Uunt;ddrHeD!<*&5KoZQtEWv-blZ?NE7-|5@DGAme3HkUJTW#vDUsdHGXGXI3Q zNq}_8iejEDPsO?G8XUhYyAd79ACSH3dt5g+hqc?h87)kGirIZWH;W?AyuN#=)qBG} z^Ihy)TP@aDIQ+}`tt!?Z^?&Q(`wjmTMHJ##9~D2aX3^R)v-a!4uMstGcpu!WewDbx z|5^=8Ov=R$@!n_mGncXMkjhrt`D}j9M%E1JJl&Vi=I8Ha)wok&A^JSN=mhJHImJ$n l&*e)mv+f8f^UY&qz&81G37{yBg>X)(>iLcC)w5*MB}V@RvDsc zXa+lsW5!L$j3Z~!2stx{JLcrO^+)XcF%p>tBYM#Ru&pc3jlvIvv@Fsg1wCPry z!d_hrvofSv-`OyzoOx`nJJaB2m%o_wh297IP;dL{H-r11pH9;)IAFsaDLhXK3iq?+ zk0o8}DBQVnVtFD5H8<64XR|s{7vBN1B-*aezRof*srajYY4NR*M+)Xa!zQ1RGCCQ= zU_XWFTO{fI*y14GTpW2ZJ&aDu7p@JxPVjt@k*cq+%vI95*&2UJ7@j>H4~F}&6Oids*N4T;cKIpfRGf%ynJ7(p*$(r23f+&ur{sBOUKW2A`MVe ztlvl{pmg$_!@OYWx;+$TIG+uZvzdP^MY0B;U@W=nXARJ?kMTa2-MrlpeiSm^_D`-6 z#yQq>5d(#XE8E(z}(mcMd+fnwr^EjGe~;~~(cBD}WyQgL#F z;*|rRY^j~s#wU$IAUWSKE;$cN<(7ajW}t|tkhTCaiO_(cls+dQsAbgqh%#D(JEFY0 z#~x9^;6M@oHu5BJTC1c7UfBU{gjaRL)8O=8vp9J5fV~I2X2kszymrjr99}mO#`gmi z;Gu1xoQSZMdLm36;5Lww2`i1OF&v7P-{@_ccJbfd(=ET^ytr@~v`E z?yxeyw9-)3g{Ul->uhnSQ%ea{{7@6ybgY|tBOS`pu=k>v>y;4cY`N5{v%N<2zL#k> z`z|_>t;Ynj{c^rha|2^*fd+$)2(MdqXN<$6L9QmtbHgtBrnRS4ec@Z9u9puvDx8m5 zuKnN@=4Ygsi#4sw`61^)OzthEsNuY*vLr|H@vd-`LNtwn^1P>HH9Cb87K{>;tltZL zlT9q0$N|e-QDJC;InMtA|782C`8Q?t^>cK--OZH<%LeiW)N7Lap;(t1S-)cJOfDDl z>;;r}x_n1LJ0~-)s$nd1g3pk`be1c&gJi3n-C<1|ETwqa+B<8tofWp_FJ)Vd7=mP* za_(VlJt=ES{AFHG`@SgupUf!kla-oD{H$%>C+(b3@_eY}B19m|Nm`%sLBgGzp lvoMpcHyZ1Au4;MA*QC6*g!9sZnm#exQhw^sFjoeh`VY06+$aD5 diff --git a/plugins/fabrik_element/date/calendar-eightysix/js/calendar-eightysix-v1.1.js b/plugins/fabrik_element/date/calendar-eightysix/js/calendar-eightysix-v1.1.js deleted file mode 100644 index 17f4029421d..00000000000 --- a/plugins/fabrik_element/date/calendar-eightysix/js/calendar-eightysix-v1.1.js +++ /dev/null @@ -1,642 +0,0 @@ -/** - * Calendar Eightysix - MooTools datepicker and calendar class - * @version 1.1 - * - * by dev.base86.com - * - * Source and documentation available at: - * http://dev.base86.com/scripts/mootools_javascript_datepicker_calendar_eightysix.html - * - * Calendar Eightysix is an unobtrusive developer friendly javascript calendar and datepicker - * offering a better user experience for date related functionalities. - * - * -- - * - * This Calendar Eightysix script is licensed under the Creative Commons Attribution-NonCommercial 3.0 License: - * http://creativecommons.org/licenses/by-nc/3.0/ - * - * Calendar Eightysix requires a purchased commercial license when used commercially: - * http://dev.base86.com/scripts/mootools_javascript_datepicker_calendar_eightysix.html#license - */ - -var CalendarEightysix = new Class({ - Implements: [Events, Options], - - options: { - 'slideDuration': 500, - 'fadeDuration': 200, - 'toggleDuration': 200, - 'fadeTransition': Fx.Transitions.linear, - 'slideTransition': Fx.Transitions.Quart.easeOut, - - 'prefill': true, - 'defaultDate': null, - 'linkWithInput': true, - 'keyNavigation': false, - - 'theme': 'default', - 'defaultView': 'month', - 'startMonday': false, - 'alwaysShow': false, - 'injectInsideTarget': false, - 'format': '%m/%d/%Y', - 'alignX': 'right', - 'alignY': 'ceiling', - 'offsetX': 0, - 'offsetY': 0, - - 'draggable': false, - 'pickable': true, - 'toggler': null, - 'disallowUserInput': false, - - 'minDate': null, - 'maxDate': null, - 'excludedWeekdays': null, - 'excludedDates': null, - - 'createHiddenInput': false, - 'hiddenInputName': 'date', - 'hiddenInputFormat': '%t' - }, - - initialize: function(target, options) { - debugger; - this.setOptions(options); - - this.target = $(target); - this.transitioning = false; - this.today = new Date().clearTime(); - - //Extend Date with unix timestamp parser - Date.defineParser({ - re: /^[0-9]{10}$/, - handler: function(bits) { return new Date.parse('Jan 01 1970').set('seconds', bits[0]); } - }); - //Extend Date with a workaround for the '-' delimiter parse bug - Date.defineParser({ - re: /\-/, - handler: function(bits) { return new Date.parse(bits.input.replace(/\-/, '.')); } - }); - - //Create the currect selected date - if($defined(this.options.defaultDate)) - this.selectedDate = new Date().parse(this.options.defaultDate).clearTime(); - else if(this.options.linkWithInput && $chk(this.target.get('value'))) - this.selectedDate = new Date().parse(this.target.get('value')).clearTime(); - if(!$defined(this.selectedDate) || !this.selectedDate.isValid()) - this.selectedDate = this.today.clone(); - - //Create the HTML base of the calender - var innerHtml = '
'+ - '
'; - this.element = new Element('div', { 'class': 'calendar-eightysix', 'html': innerHtml, 'style': 'display: '+ (this.options.alwaysShow ? 'block' : 'none') }).addClass(this.options.theme); - - //Add the calender to the document and position it - if(this.options.injectInsideTarget) this.element.injectBottom(this.target); - else { - this.element.injectBottom($(document.body)); - this.position(); - window.addEvent('resize', this.position.bind(this)); - } - - //Assign the containers - this.currentContainer = this.element.getElement('.c86-container.a').setStyle('z-index', 999); - this.tempContainer = this.element.getElement('.c86-container.b').setStyle('z-index', 998); - - //Assign the interface elements and events - this.header = this.element.getElement('.c86-header'); - this.label = this.header.getElement('.c86-label'); - this.arrowLeft = this.header.getElement('.c86-arrow-left'); - this.arrowRight = this.header.getElement('.c86-arrow-right'); - - this.label.addEvent('click', this.levelUp.bind(this)); - this.arrowLeft.addEvent('click', this.slideLeft.bind(this)); - this.arrowRight.addEvent('click', this.slideRight.bind(this)); - - //Create dates ranges - if($defined(this.options.minDate)) { - this.options.minDate = Date.parse(this.options.minDate).clearTime(); - if(!this.options.minDate.isValid()) this.options.minDate = null; - } - if($defined(this.options.maxDate)) { - this.options.maxDate = Date.parse(this.options.maxDate).clearTime(); - if(!this.options.maxDate.isValid()) this.options.maxDate = null; - } - - //Parse excluded dates - if($defined(this.options.excludedDates)) { - var excludedDates = []; - this.options.excludedDates.each(function(date) { - excludedDates.include(this.format(new Date().parse(date).clearTime(), '%t')); - }.bind(this)); - this.options.excludedDates = excludedDates; - } - - //Make the calendar draggable? - if(this.options.draggable && !this.options.injectInsideTarget) { - this.header.addClass('c86-dragger'); - this.label.setStyle('width', 'auto'); - new Drag(this.element, { 'handle': this.header }); - } - - //Create hidden input - if(this.options.createHiddenInput) { - this.hiddenInput = new Element('input', { 'type': 'hidden', 'name': this.options.hiddenInputName }).injectAfter(this.target); - } - - //Link with the input element - if(!this.options.disallowUserInput && this.options.linkWithInput && this.target.get('tag') == 'input') { - this.target.addEvent('keyup', function() { - this.setDate(this.target.get('value'), false); - }.bind(this)); - } - //Or toggler... - if($defined(this.options.toggler)) this.options.toggler = $(this.options.toggler); - - //Add show and hide events - ($defined(this.options.toggler) ? this.options.toggler : this.target).addEvents({ - 'focus': this.show.bind(this), 'click': this.show.bind(this) - }); - - if(!this.options.alwaysShow) document.addEvent('mousedown', this.outsideClick.bind(this)); - MooTools.lang.addEvent('langChange', function() { this.render(); this.pick(); }.bind(this)); - - //Other events - if(this.target.get('tag') == 'input') { - this.target.addEvent('keydown', this.onKeyDown.bind(this)); - if(this.options.disallowUserInput) this.target.addEvent('contextmenu', ($lambda(false))); - } - - //See if the date is correct - this.selectedDate = this.correctDate(this.selectedDate); - - //Prefill the current date - if(this.options.prefill) this.pick(); - - //Render the default view - this.viewDate = this.selectedDate.clone().set('date', 1).clearTime(); - this.view = this.options.defaultView; - this.render(); - }, - - render: function() { - this.currentContainer.empty(); - - switch(this.view) { - case 'decade': this.renderDecade(); break; - case 'year': this.renderYear(); break; - default: this.renderMonth(); - } - - return this; - }, - - /* Rendering */ - - renderMonth: function() { - this.view = 'month'; - this.currentContainer.empty().addClass('c86-month'); - if(this.options.pickable) this.currentContainer.addClass('c86-pickable'); - - var lang = MooTools.lang.get('Date'), weekdaysCount = this.viewDate.format('%w') - (this.options.startMonday ? 1 : 0); - if(weekdaysCount == -1) weekdaysCount = 6; - - //Label - this.label.set('html', lang.months[this.viewDate.get('month')] +' '+ this.viewDate.format('%Y')); - - //Day label row - var row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - for(var i = (this.options.startMonday ? 1 : 0); i < (this.options.startMonday ? 8 : 7); i++) { - var day = new Element('div', { 'html': lang.days[this.options.startMonday && i == 7 ? 0 : i] }).injectBottom(row); - day.set('html', day.get('html').substr(0, 2)); - } - - //Add days for the beginning non-month days - row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - y = this.viewDate.clone().decrement('month').getLastDayOfMonth(); - for(var i = 0; i < weekdaysCount; i++) { - this.injectDay(row, this.viewDate.clone().decrement('month').set('date', y - (weekdaysCount - i) + 1), true); - } - - //Add month days - for(var i = 1; i <= this.viewDate.getLastDayOfMonth(); i++) { - this.injectDay(row, this.viewDate.clone().set('date', i)); - if(row.getChildren().length == 7) { - row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - } - } - - //Add outside days - var y = 8 - row.getChildren().length, startDate = this.viewDate.clone().increment('month').set('date', 1); - for(var i = 1; i < y; i++) { - this.injectDay(row, startDate.clone().set('date', i), true); - } - - //Always have six rows - for(var y = this.currentContainer.getElements('.c86-row').length; y < 7; y++) { - row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - for(var z = 0; z < 7; z++) { - this.injectDay(row, startDate.clone().set('date', i), true); - i++; - } - } - - this.renderAfter(); - }, - - //Used by renderMonth - injectDay: function(row, date, outside) { - var day = new Element('div', { 'html': date.get('date') }).injectBottom(row); - day.store('date', date); - if(outside) day.addClass('c86-outside'); - - if(($defined(this.options.minDate) && this.format(this.options.minDate, '%t') > this.format(date, '%t')) || - ($defined(this.options.maxDate) && this.format(this.options.maxDate, '%t') < this.format(date, '%t')) || - ($defined(this.options.excludedWeekdays) && this.options.excludedWeekdays.contains(date.format('%w').toInt())) || - ($defined(this.options.excludedDates) && this.options.excludedDates.contains(this.format(date, '%t')))) - day.addClass('c86-non-selectable'); - else if(this.options.pickable) day.addEvent('click', this.pick.bind(this)); - - if(date.format('%x') == this.today.format('%x')) day.addClass('c86-today'); - if(date.format('%x') == this.selectedDate.format('%x')) day.addClass('c86-selected'); - }, - - renderYear: function() { - this.view = 'year'; - this.currentContainer.addClass('c86-year-decade'); - var lang = MooTools.lang.get('Date').months; - - //Label - this.label.set('html', this.viewDate.format('%Y')); - - var row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - for(var i = 1; i < 13; i++) { - var month = new Element('div', { 'html': lang[i - 1] }).injectBottom(row); - month.set('html', month.get('html').substr(0, 3)); //Setting and getting the innerHTML takes care of html entity problems (e.g. [M&a]uml;r => [M�r]z) - var iMonth = this.viewDate.clone().set('month', i - 1); - month.store('date', iMonth); - - if(($defined(this.options.minDate) && this.format(this.options.minDate.clone().set('date', 1), '%t') > this.format(iMonth, '%t')) || - ($defined(this.options.maxDate) && this.format(this.options.maxDate.clone().set('date', 1), '%t') < this.format(iMonth, '%t'))) - month.addClass('c86-non-selectable'); - else month.addEvent('click', this.levelDown.bind(this)); - - if(i - 1 == this.today.get('month') && this.viewDate.get('year') == this.today.get('year')) month.addClass('c86-today'); - if(i - 1 == this.selectedDate.get('month') && this.viewDate.get('year') == this.selectedDate.get('year')) month.addClass('c86-selected'); - if(!(i % 4) && i != 12) row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - } - - this.renderAfter(); - }, - - renderDecade: function() { - this.label.removeClass('c86-clickable'); - this.view = 'decade'; - this.currentContainer.addClass('c86-year-decade'); - - var viewYear, startYear; - viewYear = startYear = this.viewDate.format('%Y').toInt(); - while(startYear % 12) startYear--; - - //Label - this.label.set('html', startYear +' – '+ (startYear + 11)); - - var row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - for(var i = startYear; i < startYear + 12; i++) { - var year = new Element('div', { 'html': i }).injectBottom(row); - var iYear = this.viewDate.clone().set('year', i); - year.store('date', iYear); - - if(($defined(this.options.minDate) && this.options.minDate.get('year') > i) || - ($defined(this.options.maxDate) && this.options.maxDate.get('year') < i)) year.addClass('c86-non-selectable'); - else year.addEvent('click', this.levelDown.bind(this)); - - if(i == this.today.get('year')) year.addClass('c86-today'); - if(i == this.selectedDate.get('year')) year.addClass('c86-selected'); - if(!((i + 1) % 4) && i != startYear + 11) row = new Element('div', { 'class': 'c86-row' }).injectBottom(this.currentContainer); - } - - this.renderAfter(); - }, - - renderAfter: function() { - //Iterate rows and add classes and remove navigation if nessesary - var rows = this.currentContainer.getElements('.c86-row'); - - for(var i = 0; i < rows.length; i++) { - rows[i].set('class', 'c86-row '+ ['a', 'b', 'c', 'd', 'e', 'f', 'g'][i] +' '+ (i % 2 ? 'c86-even' : 'c86-odd')).getFirst().addClass('c86-first'); - rows[i].getLast().addClass('c86-last'); - - if( (this.view == 'month' && i == 1 && $defined(this.options.minDate) && this.options.minDate.diff(this.viewDate) <= 0) || - (this.view != 'month' && i == 0 && $defined(this.options.minDate) && this.format(this.options.minDate, '%t') >= this.format(rows[i].getFirst().retrieve('date'), '%t')) ) - this.arrowLeft.setStyle('visibility', 'hidden'); - - if(i == rows.length - 1 && $defined(this.options.maxDate)) { - if((this.view == 'month' && this.options.maxDate.diff(this.viewDate.clone().increment('month').decrement()) >= 0) || - (this.view == 'year' && this.format(this.options.maxDate, '%t') <= this.format(rows[i].getLast().retrieve('date').clone().increment('month'), '%t')) || - (this.view == 'decade' && this.format(this.options.maxDate, '%t') <= this.format(rows[i].getLast().retrieve('date').clone().increment('year'), '%t'))) - this.arrowRight.setStyle('visibility', 'hidden'); - } - }; - - if($defined(this.$events['render'+ this.view])) { - var elements = this.currentContainer.getElements('div[class~=c86-row] > div'); - if(this.view == 'month') { - for(var i = 0; i < 7; i++) elements[i] = null; - elements = elements.clean(); - } - this.fireEvent('render'+ this.view, { 'view': this.view, 'elements': elements }); - } - }, - - /* Animations */ - - slideLeft: function() { - this.switchContainers(); - - //Render new view - switch(this.view) { - case 'month': this.viewDate.decrement('month'); break; - case 'year': this.viewDate.decrement('year'); break; - case 'decade': this.viewDate.set('year', this.viewDate.get('year') - 12); break; - } - this.render(); - - //Tween the new view in and old view out - this.currentContainer.set('tween', { 'duration': this.options.slideDuration, 'transition': this.options.slideTransition }).tween('left', [-this.currentContainer.getWidth(), 0]); - this.tempContainer.set('tween', { 'duration': this.options.slideDuration, 'transition': this.options.slideTransition }).tween('left', [0, this.tempContainer.getWidth()]); - }, - - slideRight: function() { - this.switchContainers(); - - //Render new view - switch(this.view) { - case 'month': this.viewDate.increment('month'); break; - case 'year': this.viewDate.increment('year'); break; - case 'decade': this.viewDate.set('year', this.viewDate.get('year') + 12); break; - } - this.render(); - - //Tween the new view in and old view out - this.currentContainer.set('tween', { 'duration': this.options.slideDuration, 'transition': this.options.slideTransition }).tween('left', [this.currentContainer.getWidth(), 0]); - this.tempContainer.set('tween', { 'duration': this.options.slideDuration, 'transition': this.options.slideTransition }).tween('left', [0, -this.currentContainer.getWidth()]); - }, - - levelDown: function(e) { - if(this.transitioning) return; - this.switchContainers(); - this.viewDate = $(e.target).retrieve('date'); - - //Render new view - switch(this.view) { - case 'year': this.renderMonth(); break; - case 'decade': this.renderYear(); break; - } - - //Tween the new view in and old view out - this.transitioning = true; - this.currentContainer.set('tween', { 'duration': this.options.fadeDuration, 'transition': this.options.fadeTransition, - 'onComplete': function() { this.transitioning = false }.bind(this) }).setStyles({'opacity': 0, 'left': 0}).fade('in'); - this.tempContainer.set('tween', { 'duration': this.options.fadeDuration, 'transition': this.options.fadeTransition }).fade('out'); - }, - - levelUp: function() { - if(this.view == 'decade' || this.transitioning) return; - this.switchContainers(); - - //Set viewdates and render - switch(this.view) { - case 'month': this.renderYear(); break; - case 'year': this.renderDecade(); break; - } - - //Tween the new view in and old view out - this.transitioning = true; - this.currentContainer.set('tween', { 'duration': this.options.fadeDuration, 'transition': this.options.fadeTransition, - 'onComplete': function() { this.transitioning = false }.bind(this) }).setStyles({'opacity': 0, 'left': 0}).fade('in'); - this.tempContainer.set('tween', { 'duration': this.options.fadeDuration, 'transition': this.options.fadeTransition }).fade('out'); - }, - - switchContainers: function() { - this.currentContainer = this.currentContainer.hasClass('a') ? this.element.getElement('.c86-container.b') : this.element.getElement('.c86-container.a'); - this.tempContainer = this.tempContainer.hasClass('a') ? this.element.getElement('.c86-container.b') : this.element.getElement('.c86-container.a'); - this.currentContainer.empty().removeClass('c86-month').removeClass('c86-year-decade').setStyles({ 'opacity': 1, 'display': 'block', 'z-index': 999 }); - this.tempContainer.setStyle('z-index', 998); - - this.label.addClass('c86-clickable'); - this.arrowLeft.setStyle('visibility', 'visible'); - this.arrowRight.setStyle('visibility', 'visible'); - }, - - /* Positioning and visibility */ - - position: function() { - var top, left; - var coordinates = this.target.getCoordinates(); - - switch(this.options.alignX) { - case 'left': - left = coordinates.left; - break; - case 'middle': - left = coordinates.left + (coordinates.width / 2) - (this.element.getWidth() / 2); - break; - case 'right': default: - left = coordinates.left + coordinates.width; - } - - switch(this.options.alignY) { - case 'bottom': - top = coordinates.top + coordinates.height; - break; - case 'top': - top = coordinates.top - this.element.getHeight(); - break; - case 'ceiling': default: - top = coordinates.top; - } - - left += this.options.offsetX.toInt(); - top += this.options.offsetY.toInt(); - - this.element.setStyles({ 'top': top, 'left': left }); - }, - - show: function() { - debugger; - if(!this.visible & !this.options.alwaysShow) { - this.visible = true; - if(!Browser.Engine.trident) { - this.element.setStyles({ 'opacity': 0, 'display': 'block' }); - if(!this.options.injectInsideTarget) this.position(); - this.element.set('tween', { 'duration': this.options.toggleDuration, 'transition': this.options.fadeTransition }).fade('in'); - } else { - this.element.setStyles({ 'opacity': 1, 'display': 'block' }); - if(!this.options.injectInsideTarget) this.position(); - } - } - }, - - hide: function() { - if(this.visible & !this.options.alwaysShow) { - this.visible = false; - if(!Browser.Engine.trident) { - this.element.set('tween', { 'duration': this.options.toggleDuration, 'transition': this.options.fadeTransition, - 'onComplete': function() { this.element.setStyle('display', 'none') }.bind(this) }).fade('out'); - } else this.element.setStyle('display', 'none'); - } - }, - - toggle: function() { - if(this.visible) this.hide(); - else this.show(); - }, - - outsideClick: function(e) { - if(this.visible) { - var elementCoords = this.element.getCoordinates(); - var targetCoords = this.target.getCoordinates(); - if(((e.page.x < elementCoords.left || e.page.x > (elementCoords.left + elementCoords.width)) || - (e.page.y < elementCoords.top || e.page.y > (elementCoords.top + elementCoords.height))) && - ((e.page.x < targetCoords.left || e.page.x > (targetCoords.left + targetCoords.width)) || - (e.page.y < targetCoords.top || e.page.y > (targetCoords.top + targetCoords.height))) ) this.hide(); - } - }, - - /* Formating and picking */ - - pick: function(e) { - if($defined(e)) { - this.selectedDate = $(e.target).retrieve('date'); - this.element.getElements('.c86-selected').removeClass('c86-selected'); - $(e.target).addClass('c86-selected'); - - (this.hide.bind(this)).delay(150); - - //If outside day, set viewdate and render - if($(e.target).hasClass('c86-outside')) { - if(this.options.alwaysShow) { - if(this.selectedDate.diff(this.viewDate) > 0) this.slideLeft(); - else this.slideRight(); - } else { - this.viewDate = this.selectedDate.clone().set('date', 1); - (this.render.bind(this)).delay(300); - } - } - } - - var value = this.format(this.selectedDate); - - if(!this.options.injectInsideTarget) { - switch(this.target.get('tag')) { - case 'input': this.target.set('value', value); break; - default: this.target.set('html', value); - } - } - - if($defined(this.hiddenInput)) this.hiddenInput.set('value', this.format(this.selectedDate, this.options.hiddenInputFormat)); - this.fireEvent('change', this.selectedDate); - - return this; - }, - - //Extended format parser - format: function(date, format) { - if(!$defined(format)) format = this.options.format; - if(!$defined(date)) return; - format = format.replace(/%([a-z%])/gi, - function($1, $2) { - switch($2) { - case 'D': return date.get('date'); - case 'n': return date.get('mo') + 1; - case 't': return (date.getTime() / 1000).toInt(); - } - return '%'+ $2; - } - ); - return date.format(format); - }, - - onKeyDown: function(e) { - if(this.options.keyNavigation) { - var newDate = this.selectedDate.clone(); - var right = true; - var pressed = false; - - switch(e.code) { - //Left - case 37: newDate.decrement(); pressed = true; right = false; break; - //Right - case 39: newDate.increment(); pressed = true; break; - //Up - case 38: newDate.decrement('month'); pressed = true; right = false; break; - //Down - case 40: newDate.increment('month'); pressed = true; break; - } - - if(pressed) { - //Correct it - newDate = this.correctDate(newDate, right); - - //If different, set it - if(this.selectedDate.diff(newDate) != 0) this.setDate(newDate); - } - } - if(this.options.disallowUserInput) return false; - }, - - //Checks if the date is an excluded date, excluded weekday or isn't within the range - //If so it returns a correct pickable date - correctDate: function(date, right) { - if(!$defined(right)) right = true; - - //Check if the date is lower than the minimal date - if($defined(this.options.minDate) && date.diff(this.options.minDate) > 0) date = this.options.minDate.clone(); - //Check if the date is higher than the maximum date - else if($defined(this.options.maxDate) && date.diff(this.options.maxDate) < 0) date = this.options.maxDate.clone(); - - //Check if the currect picked weekday is allowed - var i = 0; - while( ($defined(this.options.excludedWeekdays) && this.options.excludedWeekdays.contains(date.format('%w').toInt())) || - ( ($defined(this.options.minDate) && date.diff(this.options.minDate) > 0) || - ($defined(this.options.maxDate) && date.diff(this.options.maxDate) < 0) ) || - ($defined(this.options.excludedDates) && this.options.excludedDates.contains(this.format(date, '%t'))) ) { - if(i == 31) right = !right; //Reverse - else if(i == 62) { - date = this.options.minDate.clone(); - break; //Stop a possible infinitive loop - } - - if(right) date.increment(); - else date.decrement(); - i++; - } - - return date; - }, - - setDate: function(value, pick) { - if(!$defined(pick)) pick = true; - - if(typeOf(value) == 'date') { - var date = value.clearTime(); - } else { - var date = $chk(value) ? new Date().parse(this.target.get('value')).clearTime() : new Date().clearTime(); - } - - if(date.isValid()) { - this.selectedDate = this.correctDate(date); - this.viewDate = this.selectedDate.clone().set('date', 1); - this.render(); - if(pick) this.pick(); - } - - return this; - }, - - getDate: function() { - return this.selectedDate; - } -}); \ No newline at end of file diff --git a/plugins/fabrik_element/date/calendar-eightysix/js/compressed/calendar-eightysix-v1.1.js b/plugins/fabrik_element/date/calendar-eightysix/js/compressed/calendar-eightysix-v1.1.js deleted file mode 100644 index 94a778eca04..00000000000 --- a/plugins/fabrik_element/date/calendar-eightysix/js/compressed/calendar-eightysix-v1.1.js +++ /dev/null @@ -1,5 +0,0 @@ -/** Calendar Eightysix (compressed version) by dev.base86.com - @version 1.1 - Licensed under the Creative Commons Attribution-NonCommercial 3.0 License: http://creativecommons.org/licenses/by-nc/3.0/ - Requires a purchased commercial license when used commercially: http://dev.base86.com/scripts/mootools_javascript_datepicker_calendar_eightysix.html#license -*/ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('o 3H=H 3I({3J:[3K,3L],h:{\'1U\':3M,\'1V\':2V,\'2u\':2V,\'1F\':2W.2X.3N,\'1W\':2W.2X.3O.3P,\'2Y\':V,\'2v\':1o,\'2w\':V,\'2Z\':U,\'30\':\'1X\',\'32\':\'s\',\'1Y\':U,\'1K\':U,\'1L\':U,\'p\':\'%m/%d/%Y\',\'33\':\'Z\',\'34\':\'35\',\'36\':0,\'3a\':0,\'3b\':U,\'2a\':V,\'1M\':1o,\'2b\':U,\'L\':1o,\'O\':1o,\'1Z\':1o,\'1c\':1o,\'3c\':U,\'3d\':\'l\',\'3e\':\'%t\'},3Q:u(I,h){5.3R(h);5.I=$(I);5.1G=U;5.1p=H 14().1d();14.3f({3g:/^[0-9]{10}$/,3h:u(2c){W H 14.1w(\'3S 3T 3U\').r(\'3V\',2c[0])}});14.3f({3g:/\\-/,3h:u(2c){W H 14.1w(2c.20.3i(/\\-/,\'.\'))}});j($A(5.h.2v))5.J=H 14().1w(5.h.2v).1d();15 j(5.h.2w&&$3j(5.I.E(\'19\')))5.J=H 14().1w(5.I.E(\'19\')).1d();j(!$A(5.J)||!5.J.2d())5.J=5.1p.P();o 3k=\'\'+\'\';5.M=H 16(\'q\',{\'Q\':\'3Z-41\',\'1a\':3k,\'42\':\'1N: \'+(5.h.1K?\'2f\':\'2y\')}).R(5.h.30);j(5.h.1L)5.M.17(5.I);15{5.M.17($(3m.3l));5.21();43.1b(\'44\',5.21.T(5))}5.F=5.M.1f(\'.k-1y.a\').1g(\'z-2g\',3n);5.1q=5.M.1f(\'.k-1y.b\').1g(\'z-2g\',3o);5.1x=5.M.1f(\'.k-1x\');5.1e=5.1x.1f(\'.k-1e\');5.2h=5.1x.1f(\'.k-2e-K\');5.2i=5.1x.1f(\'.k-2e-Z\');5.1e.1b(\'1H\',5.3p.T(5));5.2h.1b(\'1H\',5.2z.T(5));5.2i.1b(\'1H\',5.2A.T(5));j($A(5.h.L)){5.h.L=14.1w(5.h.L).1d();j(!5.h.L.2d())5.h.L=1o}j($A(5.h.O)){5.h.O=14.1w(5.h.O).1d();j(!5.h.O.2d())5.h.O=1o}j($A(5.h.1c)){o 1c=[];5.h.1c.45(u(l){1c.46(5.p(H 14().1w(l).1d(),\'%t\'))}.T(5));5.h.1c=1c}j(5.h.3b&&!5.h.1L){5.1x.R(\'k-47\');5.1e.1g(\'22\',\'48\');H 49(5.M,{\'4a\':5.1x})}j(5.h.3c){5.2B=H 16(\'20\',{\'3q\':\'2C\',\'4b\':5.h.3d}).4c(5.I)}j(!5.h.2b&&5.h.2w&&5.I.E(\'2D\')==\'20\'){5.I.1b(\'4d\',u(){5.2E(5.I.E(\'19\'),U)}.T(5))}j($A(5.h.1M))5.h.1M=$(5.h.1M);($A(5.h.1M)?5.h.1M:5.I).4e({\'4f\':5.2j.T(5),\'1H\':5.2j.T(5)});j(!5.h.1K)3m.1b(\'4g\',5.3r.T(5));2F.1z.1b(\'4h\',u(){5.1r();5.1s()}.T(5));j(5.I.E(\'2D\')==\'20\'){5.I.1b(\'4i\',5.3s.T(5));j(5.h.2b)5.I.1b(\'4j\',($4k(U)))}5.J=5.2k(5.J);j(5.h.2Y)5.1s();5.C=5.J.P().r(\'l\',1).1d();5.S=5.h.32;5.1r()},1r:u(){5.F.2G();1h(5.S){G\'1i\':5.2H();N;G\'v\':5.2l();N;1X:5.2I()}W 5},2I:u(){5.S=\'s\';5.F.2G().R(\'k-s\');j(5.h.2a)5.F.R(\'k-2a\');o 1z=2F.1z.E(\'14\'),23=5.C.p(\'%w\')-(5.h.1Y?1:0);j(23==-1)23=6;5.1e.r(\'1a\',1z.3t[5.C.E(\'s\')]+\' \'+5.C.p(\'%Y\'));o B=H 16(\'q\',{\'Q\':\'k-B\'}).17(5.F);1j(o i=(5.h.1Y?1:0);i<(5.h.1Y?8:7);i++){o 1k=H 16(\'q\',{\'1a\':1z.4l[5.h.1Y&&i==7?0:i]}).17(B);1k.r(\'1a\',1k.E(\'1a\').3u(0,2))}B=H 16(\'q\',{\'Q\':\'k-B\'}).17(5.F);y=5.C.P().1A(\'s\').3v();1j(o i=0;i<23;i++){5.24(B,5.C.P().1A(\'s\').r(\'l\',y-(23-i)+1),V)}1j(o i=1;i<=5.C.3v();i++){5.24(B,5.C.P().r(\'l\',i));j(B.3w().25==7){B=H 16(\'q\',{\'Q\':\'k-B\'}).17(5.F)}}o y=8-B.3w().25,2J=5.C.P().1t(\'s\').r(\'l\',1);1j(o i=1;i5.p(l,\'%t\'))||($A(5.h.O)&&5.p(5.h.O,\'%t\')<5.p(l,\'%t\'))||($A(5.h.1Z)&&5.h.1Z.2p(l.p(\'%w\').1O()))||($A(5.h.1c)&&5.h.1c.2p(5.p(l,\'%t\'))))1k.R(\'k-2L-2M\');15 j(5.h.2a)1k.1b(\'1H\',5.1s.T(5));j(l.p(\'%x\')==5.1p.p(\'%x\'))1k.R(\'k-1p\');j(l.p(\'%x\')==5.J.p(\'%x\'))1k.R(\'k-1P\')},2l:u(){5.S=\'v\';5.F.R(\'k-v-1i\');o 1z=2F.1z.E(\'14\').3t;5.1e.r(\'1a\',5.C.p(\'%Y\'));o B=H 16(\'q\',{\'Q\':\'k-B\'}).17(5.F);1j(o i=1;i<13;i++){o s=H 16(\'q\',{\'1a\':1z[i-1]}).17(B);s.r(\'1a\',s.E(\'1a\').3u(0,3));o 2q=5.C.P().r(\'s\',i-1);s.2K(\'l\',2q);j(($A(5.h.L)&&5.p(5.h.L.P().r(\'l\',1),\'%t\')>5.p(2q,\'%t\'))||($A(5.h.O)&&5.p(5.h.O.P().r(\'l\',1),\'%t\')<5.p(2q,\'%t\')))s.R(\'k-2L-2M\');15 s.1b(\'1H\',5.2N.T(5));j(i-1==5.1p.E(\'s\')&&5.C.E(\'v\')==5.1p.E(\'v\'))s.R(\'k-1p\');j(i-1==5.J.E(\'s\')&&5.C.E(\'v\')==5.J.E(\'v\'))s.R(\'k-1P\');j(!(i%4)&&i!=12)B=H 16(\'q\',{\'Q\':\'k-B\'}).17(5.F)}5.2n()},2H:u(){5.1e.2r(\'k-2x\');5.S=\'1i\';5.F.R(\'k-v-1i\');o 3x,1u;3x=1u=5.C.p(\'%Y\').1O();3y(1u%12)1u--;5.1e.r(\'1a\',1u+\' z; \'+(1u+11));o B=H 16(\'q\',{\'Q\':\'k-B\'}).17(5.F);1j(o i=1u;i<1u+12;i++){o v=H 16(\'q\',{\'1a\':i}).17(B);o 3A=5.C.P().r(\'v\',i);v.2K(\'l\',3A);j(($A(5.h.L)&&5.h.L.E(\'v\')>i)||($A(5.h.O)&&5.h.O.E(\'v\')=5.p(1B[i].3B().26(\'l\'),\'%t\')))5.2h.1g(\'2s\',\'2C\');j(i==1B.25-1&&$A(5.h.O)){j((5.S==\'s\'&&5.h.O.1C(5.C.P().1t(\'s\').1A())>=0)||(5.S==\'v\'&&5.p(5.h.O,\'%t\')<=5.p(1B[i].2O().26(\'l\').P().1t(\'s\'),\'%t\'))||(5.S==\'1i\'&&5.p(5.h.O,\'%t\')<=5.p(1B[i].2O().26(\'l\').P().1t(\'v\'),\'%t\')))5.2i.1g(\'2s\',\'2C\')}};j($A(5.$4q[\'1r\'+5.S])){o 1Q=5.F.2m(\'q[Q~=k-B] > q\');j(5.S==\'s\'){1j(o i=0;i<7;i++)1Q[i]=1o;1Q=1Q.4r()}5.3C(\'1r\'+5.S,{\'S\':5.S,\'1Q\':1Q})}},2z:u(){5.27();1h(5.S){G\'s\':5.C.1A(\'s\');N;G\'v\':5.C.1A(\'v\');N;G\'1i\':5.C.r(\'v\',5.C.E(\'v\')-12);N}5.1r();5.F.r(\'18\',{\'1l\':5.h.1U,\'1m\':5.h.1W}).18(\'K\',[-5.F.28(),0]);5.1q.r(\'18\',{\'1l\':5.h.1U,\'1m\':5.h.1W}).18(\'K\',[0,5.1q.28()])},2A:u(){5.27();1h(5.S){G\'s\':5.C.1t(\'s\');N;G\'v\':5.C.1t(\'v\');N;G\'1i\':5.C.r(\'v\',5.C.E(\'v\')+12);N}5.1r();5.F.r(\'18\',{\'1l\':5.h.1U,\'1m\':5.h.1W}).18(\'K\',[5.F.28(),0]);5.1q.r(\'18\',{\'1l\':5.h.1U,\'1m\':5.h.1W}).18(\'K\',[0,-5.F.28()])},2N:u(e){j(5.1G)W;5.27();5.C=$(e.I).26(\'l\');1h(5.S){G\'v\':5.2I();N;G\'1i\':5.2l();N}5.1G=V;5.F.r(\'18\',{\'1l\':5.h.1V,\'1m\':5.h.1F,\'2P\':u(){5.1G=U}.T(5)}).1R({\'29\':0,\'K\':0}).1S(\'2Q\');5.1q.r(\'18\',{\'1l\':5.h.1V,\'1m\':5.h.1F}).1S(\'2R\')},3p:u(){j(5.S==\'1i\'||5.1G)W;5.27();1h(5.S){G\'s\':5.2l();N;G\'v\':5.2H();N}5.1G=V;5.F.r(\'18\',{\'1l\':5.h.1V,\'1m\':5.h.1F,\'2P\':u(){5.1G=U}.T(5)}).1R({\'29\':0,\'K\':0}).1S(\'2Q\');5.1q.r(\'18\',{\'1l\':5.h.1V,\'1m\':5.h.1F}).1S(\'2R\')},27:u(){5.F=5.F.2S(\'a\')?5.M.1f(\'.k-1y.b\'):5.M.1f(\'.k-1y.a\');5.1q=5.1q.2S(\'a\')?5.M.1f(\'.k-1y.b\'):5.M.1f(\'.k-1y.a\');5.F.2G().2r(\'k-s\').2r(\'k-v-1i\').1R({\'29\':1,\'1N\':\'2f\',\'z-2g\':3n});5.1q.1g(\'z-2g\',3o);5.1e.R(\'k-2x\');5.2h.1g(\'2s\',\'1D\');5.2i.1g(\'2s\',\'1D\')},21:u(){o X,K;o 1n=5.I.2T();1h(5.h.33){G\'K\':K=1n.K;N;G\'4s\':K=1n.K+(1n.22/2)-(5.M.28()/2);N;G\'Z\':1X:K=1n.K+1n.22}1h(5.h.34){G\'4t\':X=1n.X+1n.2U;N;G\'X\':X=1n.X-5.M.4u();N;G\'35\':1X:X=1n.X}K+=5.h.36.1O();X+=5.h.3a.1O();5.M.1R({\'X\':X,\'K\':K})},2j:u(){j(!5.1D&!5.h.1K){5.1D=V;j(!3D.3E.3F){5.M.1R({\'29\':0,\'1N\':\'2f\'});j(!5.h.1L)5.21();5.M.r(\'18\',{\'1l\':5.h.2u,\'1m\':5.h.1F}).1S(\'2Q\')}15{5.M.1R({\'29\':1,\'1N\':\'2f\'});j(!5.h.1L)5.21()}}},2t:u(){j(5.1D&!5.h.1K){5.1D=U;j(!3D.3E.3F){5.M.r(\'18\',{\'1l\':5.h.2u,\'1m\':5.h.1F,\'2P\':u(){5.M.1g(\'1N\',\'2y\')}.T(5)}).1S(\'2R\')}15 5.M.1g(\'1N\',\'2y\')}},4v:u(){j(5.1D)5.2t();15 5.2j()},3r:u(e){j(5.1D){o 1I=5.M.2T();o 1J=5.I.2T();j(((e.1E.x<1I.K||e.1E.x>(1I.K+1I.22))||(e.1E.y<1I.X||e.1E.y>(1I.X+1I.2U)))&&((e.1E.x<1J.K||e.1E.x>(1J.K+1J.22))||(e.1E.y<1J.X||e.1E.y>(1J.X+1J.2U))))5.2t()}},1s:u(e){j($A(e)){5.J=$(e.I).26(\'l\');5.M.2m(\'.k-1P\').2r(\'k-1P\');$(e.I).R(\'k-1P\');(5.2t.T(5)).3G(3z);j($(e.I).2S(\'k-2o\')){j(5.h.1K){j(5.J.1C(5.C)>0)5.2z();15 5.2A()}15{5.C=5.J.P().r(\'l\',1);(5.1r.T(5)).3G(4w)}}}o 19=5.p(5.J);j(!5.h.1L){1h(5.I.E(\'2D\')){G\'20\':5.I.r(\'19\',19);N;1X:5.I.r(\'1a\',19)}}j($A(5.2B))5.2B.r(\'19\',5.p(5.J,5.h.3e));5.3C(\'4x\',5.J);W 5},p:u(l,p){j(!$A(p))p=5.h.p;j(!$A(l))W;p=p.3i(/%([a-z%])/4y,u($1,$2){1h($2){G\'D\':W l.E(\'l\');G\'n\':W l.E(\'4z\')+1;G\'t\':W(l.4A()/4B).1O()}W\'%\'+$2});W l.p(p)},3s:u(e){j(5.h.2Z){o 1v=5.J.P();o Z=V;o 1T=U;1h(e.4C){G 37:1v.1A();1T=V;Z=U;N;G 39:1v.1t();1T=V;N;G 38:1v.1A(\'s\');1T=V;Z=U;N;G 40:1v.1t(\'s\');1T=V;N}j(1T){1v=5.2k(1v,Z);j(5.J.1C(1v)!=0)5.2E(1v)}}j(5.h.2b)W U},2k:u(l,Z){j(!$A(Z))Z=V;j($A(5.h.L)&&l.1C(5.h.L)>0)l=5.h.L.P();15 j($A(5.h.O)&&l.1C(5.h.O)<0)l=5.h.O.P();o i=0;3y(($A(5.h.1Z)&&5.h.1Z.2p(l.p(\'%w\').1O()))||(($A(5.h.L)&&l.1C(5.h.L)>0)||($A(5.h.O)&&l.1C(5.h.O)<0))||($A(5.h.1c)&&5.h.1c.2p(5.p(l,\'%t\')))){j(i==31)Z=!Z;15 j(i==4D){l=5.h.L.P();N}j(Z)l.1t();15 l.1A();i++}W l},2E:u(19,1s){j(!$A(1s))1s=V;j($3q(19)==\'l\'){o l=19.1d()}15{o l=$3j(19)?H 14().1w(5.I.E(\'19\')).1d():H 14().1d()}j(l.2d()){5.J=5.2k(l);5.C=5.J.P().r(\'l\',1);5.1r();j(1s)5.1s()}W 5},4E:u(){W 5.J}});',62,289,'|||||this||||||||||||options||if|c86|date|||var|format|div|set|month||function|year|||||defined|row|viewDate||get|currentContainer|case|new|target|selectedDate|left|minDate|element|break|maxDate|clone|class|addClass|view|bind|false|true|return|top||right|||||Date|else|Element|injectBottom|tween|value|html|addEvent|excludedDates|clearTime|label|getElement|setStyle|switch|decade|for|day|duration|transition|coordinates|null|today|tempContainer|render|pick|increment|startYear|newDate|parse|header|container|lang|decrement|rows|diff|visible|page|fadeTransition|transitioning|click|elementCoords|targetCoords|alwaysShow|injectInsideTarget|toggler|display|toInt|selected|elements|setStyles|fade|pressed|slideDuration|fadeDuration|slideTransition|default|startMonday|excludedWeekdays|input|position|width|weekdaysCount|injectDay|length|retrieve|switchContainers|getWidth|opacity|pickable|disallowUserInput|bits|isValid|arrow|block|index|arrowLeft|arrowRight|show|correctDate|renderYear|getElements|renderAfter|outside|contains|iMonth|removeClass|visibility|hide|toggleDuration|defaultDate|linkWithInput|clickable|none|slideLeft|slideRight|hiddenInput|hidden|tag|setDate|MooTools|empty|renderDecade|renderMonth|startDate|store|non|selectable|levelDown|getLast|onComplete|in|out|hasClass|getCoordinates|height|200|Fx|Transitions|prefill|keyNavigation|theme||defaultView|alignX|alignY|ceiling|offsetX||||offsetY|draggable|createHiddenInput|hiddenInputName|hiddenInputFormat|defineParser|re|handler|replace|chk|innerHtml|body|document|999|998|levelUp|type|outsideClick|onKeyDown|months|substr|getLastDayOfMonth|getChildren|viewYear|while|150|iYear|getFirst|fireEvent|Browser|Engine|trident|delay|CalendarEightysix|Class|Implements|Events|Options|500|linear|Quart|easeOut|initialize|setOptions|Jan|01|1970|seconds|wrapper|inner|footer|calendar||eightysix|style|window|resize|each|include|dragger|auto|Drag|handle|name|injectAfter|keyup|addEvents|focus|mousedown|langChange|keydown|contextmenu|lambda|days|even|odd|first|last|events|clean|middle|bottom|getHeight|toggle|300|change|gi|mo|getTime|1000|code|62|getDate'.split('|'),0,{})) \ No newline at end of file diff --git a/plugins/fabrik_element/date/date.js b/plugins/fabrik_element/date/date.js index d05f63c5b5c..c6e7fcd4c72 100644 --- a/plugins/fabrik_element/date/date.js +++ b/plugins/fabrik_element/date/date.js @@ -2,6 +2,7 @@ var FbDateTime = new Class({ Extends: FbElement, initialize: function(element, options) { this.parent(element, options); + this.setOptions(element, options); this.hour = '0'; this.plugin = 'fabrikdate'; this.minute = '00'; @@ -10,91 +11,114 @@ var FbDateTime = new Class({ this.startElement = element; this.setUp = false; this.watchButtons(); - if (this.options.editable !== false) { - //debugger; - //this.options.calendarSetup.defaultDate = this.element.getElement('.fabrikinput').get('value'); - var calendar = new CalendarEightysix(this.getElement().getElement('input').id, this.options.calendarSetup); - if(this.options.validations){ - calendar.addEvent('change', function(e){ - this.form.doElementValidation(this.options.element); - }.bind(this)); - } - if(this.options.typing == false){ - //yes we really can set the none existant 'readonly' property of the subelement container - //and get it when checking the validations - cool or what? - this.element.setProperty('readonly', 'readonly'); - this.element.getElements('.fabrikinput').each(function(f){ - f.addEvent('focus', function(){ - if(f.hasClass('timeField')){ - this.element.findClassUp('fabrikElementContainer').getElement('.timeButton').fireEvent('click'); - } - }.bind(this)); - }.bind(this)); - } + if (this.options.typing == false) { + this.disableTyping(); } }, - - getValue:function(){ - if(!this.options.editable){ + + disableTyping : function() { + if (typeOf(this.element) === 'null') { + fconsole(element + ': not date element container - is this a custom template with a missing $element->containerClass div/li surrounding the element?'); + return; + } + // yes we really can set the none existant 'readonly' property of the + // subelement container + // and get it when checking the validations - cool or what? + this.element.setProperty('readonly', 'readonly'); + this.element.getElements('.fabrikinput').each(function(f) { + f.addEvent('focus', function(e) { + if(typeOf(e) == 'null'){ + return; + } + if (e.target.hasClass('timeField')) { + this.element.findClassUp('fabrikElementContainer').getElement('.timeButton').fireEvent('click'); + } else { + debugger; + this.options.calendarSetup.inputField = e.target.id; + this.options.calendarSetup.button = this.element.id + "_img"; + this.addEventToCalOpts(); + Calendar.setup(this.options.calendarSetup); + } + }.bind(this)); + }.bind(this)); + }, + + getValue : function() { + if (!this.options.editable) { return this.options.value; } this.getElement(); var v = this.element.getElement('.fabrikinput').get('value'); - if(this.options.showtime == true && this.timeElement){ + // @TODO use relative class name to get time value + if (this.options.showtime == true && this.timeElement) { v += ' ' + this.timeElement.get('value'); } - return(v); + return (v); }, - - watchButtons: function(){ - if(this.options.showtime & this.options.editable){ + + watchButtons : function() { + if ($(this.options.element + '_cal_img')) { + // $(this.options.element + '_cal_img').removeEvents('click'); + $(this.options.element + '_cal_img').addEvent('click', function(e) { + this.showCalendar('y-mm-dd', e); + }.bind(this)); + } + if (this.options.showtime & this.options.editable) { this.timeElement = this.element.findClassUp('fabrikElementContainer').getElement('.timeField'); this.timeButton = this.element.findClassUp('fabrikElementContainer').getElement('.timeButton'); - if(this.timeButton){ + if (this.timeButton) { this.timeButton.removeEvents('click'); - this.timeButton.addEvent('click', this.showTime.bindWithEvent(this)); - if(!this.setUp){ - if(this.timeElement){ + this.timeButton.addEvent('click', this.showTime.bindAsEventListener(this)); + if (!this.setUp) { + if (this.timeElement) { this.dropdown = this.makeDropDown(); this.setAbsolutePos(this.timeElement); this.setUp = true; } } } - } - }, - hasSubElements: function(){ - return true; + } }, - addNewEvent: function(action, js ){ - //this._getSubElements(); - if(action == 'load'){ - eval(js); - }else{ - if(!this.element){ + addNewEvent : function(action, js) { + // this._getSubElements(); + if (action == 'load') { + this.loadEvents.push(js); + this.runLoadEvent(js); + } else { + if (!this.element) { this.element = $(this.strElement); } - this.element.getElements('input').each(function(i){ - i.addEvent(action, function(e){ - eval(js); - e.stop(); - }); + if (action === 'change') { + window.addEvent('fabrik.date.select', function(){ + typeOf(js) === 'function' ? js.delay(0) : eval(js); + }); + } + this.element.getElements('input').each(function(i) { + i.addEvent(action, function(e) { + if(typeOf(e) == 'event') { + e.stop(); + } + typeOf(js) === 'function' ? js.delay(0) : eval(js); + }); }.bind(this)); } }, - - update: function(val){ - this.fireEvents(['change']); - if(typeOf(val) === 'null' || val === false){ + + update : function(val) { + this.fireEvents([ 'change' ]); + if (typeOf(val) === 'null' || val === false) { return; } if (!this.options.editable) { - this.element.innerHTML = val; + if (typeOf(this.element) !== 'null') { + this.element.set('html', val); + } return; } - //have to reget the time element as update is called (via reset) in duplicate group code - //before cloned() method called + // have to reget the time element as update is called (via reset) in + // duplicate group code + // before cloned() method called this.timeElement = this.element.findClassUp('fabrikElementContainer').getElement('.timeField'); var bits = val.split(" "); var date = bits[0]; @@ -105,20 +129,26 @@ var FbDateTime = new Class({ this.element.getElement('.fabrikinput').value = date; this.stateTime(); }, - - /*showCalendar:function(format, e){ - if(window.ie){ - //when scrolled down the page the offset of the calendar is wrong - this fixes it + + showCalendar : function(format, e) { + if (window.ie) { + // when scrolled down the page the offset of the calendar is wrong - this + // fixes it var calHeight = $(window.calendar.element).getStyle('height').toInt(); e = new Event(e); var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY; u = u.toInt(); - $(window.calendar.element).setStyles({'top': u - calHeight + 'px'}); + $(window.calendar.element).setStyles({ + 'top' : u - calHeight + 'px' + }); } - },*/ - - getAbsolutePos: function(el) { - var r = { x: el.offsetLeft, y: el.offsetTop }; + }, + + getAbsolutePos : function(el) { + var r = { + x : el.offsetLeft, + y : el.offsetTop + }; if (el.offsetParent) { var tmp = this.getAbsolutePos(el.offsetParent); r.x += tmp.x; @@ -126,175 +156,275 @@ var FbDateTime = new Class({ } return r; }, - - setAbsolutePos: function(el){ + + setAbsolutePos : function(el) { var r = this.getAbsolutePos(el); - this.dropdown.setStyles({position:'absolute', left:r.x, top:r.y + 30}); + this.dropdown.setStyles({ + position : 'absolute', + left : r.x, + top : r.y + 30 + }); }, - makeDropDown:function(){ + makeDropDown : function() { var h = null; var handle = new Element('div', { - styles:{ - 'height':'20px', - 'curor':'move', - 'color':'#dddddd', - 'padding':'2px;', - 'background-color':'#333333' + styles : { + 'height' : '20px', + 'curor' : 'move', + 'color' : '#dddddd', + 'padding' : '2px;', + 'background-color' : '#333333' }, - 'id':this.startElement + '_handle' + 'id' : this.startElement + '_handle' }).appendText(this.options.timelabel); var d = new Element('div', { - 'className':'fbDateTime', - 'styles':{ - 'z-index':999999, - display:'none', - cursor:'move',width:'264px',height:'125px',border:'1px solid #999999',backgroundColor:'#EEEEEE' + 'className' : 'fbDateTime', + 'styles' : { + 'z-index' : 999999, + display : 'none', + cursor : 'move', + width : '264px', + height : '125px', + border : '1px solid #999999', + backgroundColor : '#EEEEEE' } }); - + d.appendChild(handle); - for(var i=0;i<24;i++){ - h = new Element('div', {styles:{width:'20px','float':'left','cursor':'pointer','background-color':'#ffffff','margin':'1px','text-align':'center'}}); + for ( var i = 0; i < 24; i++) { + h = new Element('div', { + styles : { + width : '20px', + 'float' : 'left', + 'cursor' : 'pointer', + 'background-color' : '#ffffff', + 'margin' : '1px', + 'text-align' : 'center' + } + }); h.innerHTML = i; h.className = 'fbdateTime-hour'; d.appendChild(h); - $(h).addEvent('click', function(event){ + $(h).addEvent('click', function(event) { var e = new Event(event); this.hour = $(e.target).innerHTML; this.stateTime(); this.setActive(); }.bind(this)); - $(h).addEvent('mouseover', function(event){ + $(h).addEvent('mouseover', function(event) { var e = new Event(event); var h = $(e.target); - if(this.hour != h.innerHTML){ - e.target.setStyles({background:'#cbeefb'}); + if (this.hour != h.innerHTML) { + e.target.setStyles({ + background : '#cbeefb' + }); } }.bind(this)); - $(h).addEvent('mouseout', function(event){ + $(h).addEvent('mouseout', function(event) { var e = new Event(event); var h = $(e.target); - if(this.hour != h.innerHTML){ - h.setStyles({background:this.buttonBg}); + if (this.hour != h.innerHTML) { + h.setStyles({ + background : this.buttonBg + }); } }.bind(this)); } - var d2 = new Element('div', {styles:{clear:'both',paddingTop:'5px'}}); - for(i=0;i<12;i++){ - h = new Element('div', {styles:{width:'41px','float':'left','cursor':'pointer','background':'#ffffff','margin':'1px','text-align':'center'}}); + var d2 = new Element('div', { + styles : { + clear : 'both', + paddingTop : '5px' + } + }); + for (i = 0; i < 12; i++) { + h = new Element('div', { + styles : { + width : '41px', + 'float' : 'left', + 'cursor' : 'pointer', + 'background' : '#ffffff', + 'margin' : '1px', + 'text-align' : 'center' + } + }); h.setStyles(); h.innerHTML = ':' + (i * 5); h.className = 'fbdateTime-minute'; d2.appendChild(h); - $(h).addEvent('click', function(e){ + $(h).addEvent('click', function(e) { e = new Event(e); this.minute = this.formatMinute(e.target.innerHTML); this.stateTime(); this.setActive(); }.bind(this)); - h.addEvent('mouseover', function(event){ + h.addEvent('mouseover', function(event) { var e = new Event(event); var h = $(e.target); - if(this.minute != this.formatMinute(h.innerHTML)){ - e.target.setStyles({background:'#cbeefb'}); + if (this.minute != this.formatMinute(h.innerHTML)) { + e.target.setStyles({ + background : '#cbeefb' + }); } }.bind(this)); - h.addEvent('mouseout', function(event){ + h.addEvent('mouseout', function(event) { var e = new Event(event); var h = $(e.target); - if(this.minute != this.formatMinute(h.innerHTML)){ - e.target.setStyles({background:this.buttonBg}); + if (this.minute != this.formatMinute(h.innerHTML)) { + e.target.setStyles({ + background : this.buttonBg + }); } }.bind(this)); } d.appendChild(d2); - document.addEvent('click', function(event){ - if(this.timeActive){ + document.addEvent('click', function(event) { + if (this.timeActive) { var e = new Event(event); var t = $(e.target); - if(t != this.timeButton && t != this.timeElement){ - if(!t.within(this.dropdown)){ + if (t != this.timeButton && t != this.timeElement) { + if (!t.within(this.dropdown)) { this.hideTime(); } } } }.bind(this)); - d.inject(document.body); + d.injectInside(document.body); var mydrag = new Drag.Move(d); return d; }, - - toggleTime: function(){ - if(this.dropdown.style.display == 'none'){ + + toggleTime : function() { + if (this.dropdown.style.display == 'none') { this.doShowTime(); - }else{ + } else { this.hideTime(); } }, - - doShowTime:function(){ - this.dropdown.setStyles({'display':'block'}); + + doShowTime : function() { + this.dropdown.setStyles({ + 'display' : 'block' + }); this.timeActive = true; + window.fireEvent('fabrik.date.showtime', this); }, - - hideTime:function(){ + + hideTime : function() { this.timeActive = false; - this.dropdown.setStyles({'display':'none'}); + this.dropdown.setStyles({ + 'display' : 'none' + }); this.form.doElementValidation(this.element.id); + window.fireEvent('fabrik.date.hidetime', this); + window.fireEvent('fabrik.date.select', this); }, - - formatMinute:function(m){ - m = m.replace(':',''); - if(m.length == 1){ + + formatMinute : function(m) { + m = m.replace(':', ''); + if (m.length == 1) { m = '0' + m; } return m; }, - stateTime:function(){ - if(this.timeElement){ - var newv = this.hour+ ':' + this.minute; + stateTime : function() { + if (this.timeElement) { + var newv = this.hour + ':' + this.minute; var changed = this.timeElement.value != newv; this.timeElement.value = newv; - if(changed){ - this.fireEvents(['change']); + if (changed) { + this.fireEvents([ 'change' ]); } } }, - showTime:function(){ - this.setAbsolutePos(this.timeElement); //need to recall if using tabbed form + showTime : function() { + this.setAbsolutePos(this.timeElement); // need to recall if using tabbed + // form this.toggleTime(); this.setActive(); }, - setActive: function(){ + setActive : function() { var hours = this.dropdown.getElements('.fbdateTime-hour'); - hours.each(function(e){ - e.setStyles({backgroundColor:this.buttonBg}); + hours.each(function(e) { + e.setStyles({ + backgroundColor : this.buttonBg + }); }, this); var mins = this.dropdown.getElements('.fbdateTime-minute'); - mins.each(function(e){ - e.setStyles({backgroundColor:this.buttonBg}); + mins.each(function(e) { + e.setStyles({ + backgroundColor : this.buttonBg + }); }, this); - hours[this.hour].setStyles({backgroundColor:this.buttonBgSelected}); - mins[this.minute / 5].setStyles({backgroundColor:this.buttonBgSelected}); + hours[this.hour.toInt()].setStyles({ + backgroundColor : this.buttonBgSelected + }); + mins[this.minute / 5].setStyles({ + backgroundColor : this.buttonBgSelected + }); }, - cloned: function(c){ + addEventToCalOpts:function(){ + var form = this.form; + var elid = this.element.id; + var el = this; + var onclose = (function(e) { + window.fireEvent('fabrik.date.close', this); + this.hide(); + try { + form.triggerEvents(elid, [ "blur", "click", "change" ], el); + } catch (err) { + fconsole(err); + } + ; + }); + var onselect = (function(calendar, date) { + elementid = calendar.params.inputField.id.replace('_cal', ''); + calendar.params.inputField.value = date; + window.fireEvent('fabrik.date.select', this); + if (calendar.dateClicked) { + calendar.callCloseHandler(); + } + }); + + var datechange = (function(date) { + try{ + return disallowDate(this, date); + }catch(err) { + //fconsole(err); + } + }); + this.options.calendarSetup.onClose = onclose; + this.options.calendarSetup.onSelect = onselect; + this.options.calendarSetup.dateStatusFunc = datechange; + }, + + cloned : function(c) { this.setUp = false; this.hour = 0; this.watchButtons(); - //var button = this.element.getElement('img'); - var button = this.element.getElement('div.picker'); + var button = this.element.getElement('img'); button.id = this.element.id + "_img"; var datefield = this.element.getElement('input'); datefield.id = this.element.id + "_cal"; this.options.calendarSetup.inputField = datefield.id; this.options.calendarSetup.button = this.element.id + "_img"; - //Calendar.setup(this.options.calendarSetup); + + if (this.options.typing == false) { + this.disableTyping(); + } + this.addEventToCalOpts(); + Calendar.setup(this.options.calendarSetup); } }); +/// you can add custom events with: + /* + * window.addEvent('fabrik.date.select', function(){ + console.log('trigger custom date event'); + }) + */ \ No newline at end of file diff --git a/plugins/fabrik_element/date/date.php b/plugins/fabrik_element/date/date.php index c2ca3fc9d4f..05dd1cb703b 100644 --- a/plugins/fabrik_element/date/date.php +++ b/plugins/fabrik_element/date/date.php @@ -20,6 +20,7 @@ class plgFabrik_ElementDate extends plgFabrik_Element /** @var bol toggle to determine if storedatabaseformat resets the date to GMT*/ protected $_resetToGMT = true; + /** * Dates are stored in database as GMT times * i.e. with no offsets @@ -46,18 +47,20 @@ private function getNullDates() function renderListData($data, $oAllRowsData) { //@TODO: deal with time options (currently can be defined in date_table_format param). - $config =& JFactory::getConfig(); - $config = JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); + $config =& JFactory::getConfig(); + $tzoffset = (int)$config->getValue('config.offset'); $aNullDates = $this->getNullDates(); $params =& $this->getParams(); $store_as_local = (int)$params->get('date_store_as_local', 0); $groupModel =& $this->getGroup(); - $data = FabrikWorker::JSONtoData($data, true); - + if ($groupModel->canRepeat()) { + $data = explode(GROUPSPLITTER, $data); + } else { + $data = array($data); + } $f = $params->get('date_table_format', '%Y-%m-%d'); if ($f == 'Y-m-d') { @@ -66,23 +69,23 @@ function renderListData($data, $oAllRowsData) $format = array(); foreach ($data as $d) { if (!in_array($d, $aNullDates)) { - $date = JFactory::getDate($d); + $date = JFactory::getDate($d); //$$$ rob - if not time selector then the date gets stored as 2009-11-13 00:00:00 //if we have a -1 timezone then date gets set to 2009-11-12 23:00:00 //then shown as 2009-11-12 which is wrong if ($params->get('date_showtime') && !$store_as_local) { - $date->setTimeZone($tzoffset); + $date->setOffset($tzoffset); } if ($f == '{age}') { - $format[] = date('Y') - $date->toFormat('%Y', true); + $format[] = date('Y') - $date->toFormat('%Y'); } else { - $format[] = $date->toFormat($f, true); + $format[] = $date->toFormat($f); } } else { $format[] = ''; } } - $data = json_encode($format); + $data = implode(GROUPSPLITTER, $format); return parent::renderListData($data, $oAllRowsData); } @@ -98,17 +101,21 @@ function renderListData_csv($data, $oAllRowsData) { //@TODO: deal with time options (currently can be defined in date_table_format param). - $config =& JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); + $config = JFactory::getConfig(); + $tzoffset = (int)$config->getValue('config.offset'); - $db =& FabrikWorker::getDbo(); + $db = FabrikWorker::getDbo(); $aNullDates = $this->getNullDates(); - $params =& $this->getParams(); + $params = $this->getParams(); $element = $this->getElement(); $store_as_local = (int)$params->get('date_store_as_local', 0); $groupModel =& $this->getGroup(); - $data = FabrikWorker::JSONtoData($data, true); + if ($groupModel->canRepeat()) { + $data = explode(GROUPSPLITTER, $data); + } else { + $data = array($data); + } $f = $params->get('date_table_format', '%Y-%m-%d'); // $$$ hugh - see http://fabrikar.com/forums/showthread.php?p=87507 // Really don't think we need to worry about 'incraw' here. The raw, GMT/MySQL data will get @@ -131,12 +138,12 @@ function renderListData_csv($data, $oAllRowsData) // $$$ hugh - added the showtime test so we don't get the day offset issue, // as per regular table render. if ($params->get('date_showtime') && !$store_as_local) { - $date->setTimeZone($tzoffset); + $date->setOffset($tzoffset); } if ($f == '{age}') { - $format[] = date('Y') - $date->toFormat('%Y', true); + $format[] = date('Y') - $date->toFormat('%Y'); } else { - $format[] = $date->toFormat($f, true); + $format[] = $date->toFormat($f); } } } else { @@ -144,23 +151,12 @@ function renderListData_csv($data, $oAllRowsData) } } if (count($format) > 1) { - return json_encode($format); + return implode(GROUPSPLITTER, $format); } else { return implode('', $format); } } - /** - * @abstract - * used in things like date when its id is suffixed with _cal - * called from getLabel(); - * @param initial id - */ - - protected function modHTMLId(&$id){ - $id = $id ."_cal"; - } - /** * draws the form element * @param int repeat group counter @@ -169,36 +165,36 @@ protected function modHTMLId(&$id){ function render($data, $repeatCounter = 0) { - $this->_data = $data;//need to store this for reuse in getCalOpts 3.0 - $config = JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); + //@TODO: deal with time picker + $config =& JFactory::getConfig(); + $tzoffset = $config->getValue('config.offset'); + $db =& FabrikWorker::getDbo(); $aNullDates = $this->getNullDates(); - //FabrikHelperHTML::loadCalendar(); - $name = $this->getHTMLName($repeatCounter); - $id = $this->getHTMLId($repeatCounter); - $params = $this->getParams(); - $element = $this->getElement(); - $format = $params->get('date_form_format', $params->get('date_table_format', '%Y-%m-%d')); + FabrikHelperHTML::loadcalendar(); + $name = $this->getHTMLName($repeatCounter); + $id = $this->getHTMLId($repeatCounter); + $params =& $this->getParams(); + $element =& $this->getElement(); + $format = $params->get('date_form_format', $params->get('date_table_format', '%Y-%m-%d')); $timeformat = $params->get('date_time_format'); //value should be in mySQL format $value = $this->getValue($data, $repeatCounter); $store_as_local = (int)$params->get('date_store_as_local', 0); - if ($params->get('date_showtime', 0) && !$element->hidden) { + if ($params->get('date_showtime', 0)) { //cant have names as simply [] as json only picks up the last one $timeElName = $name."[time]"; $name .= '[date]'; } $readonly = $params->get('date_allow_typing_in_field', true) == false ? ' readonly="readonly" ' : ""; - $calopts = array('class'=>'fabrikinput inputbox', 'size'=>(int)$element->width + 2, 'maxlength'=>'19'); + $calopts = array('class'=>'fabrikinput inputbox', 'size'=>$element->width, 'maxlength'=>'19'); if ($params->get('date_allow_typing_in_field', true) == false) { $calopts['readonly'] = 'readonly'; } $str = "
"; - if (!in_array($value, $aNullDates) && FabrikWorker::isDate($value)) { - + if (!in_array($value, $aNullDates)) { $oDate = JFactory::getDate($value); //if we are coming back from a validation then we don't want to re-offset the date if (JRequest::getVar('Submit', '') == '' || $params->get('date_defaulttotoday', 0)) { @@ -207,48 +203,33 @@ function render($data, $repeatCounter = 0) //if we have a -1 timezone then date gets set to 2009-11-12 23:00:00 //then shown as 2009-11-12 which is wrong if ($params->get('date_showtime') && !$store_as_local) { - $oDate->setTimeZone($tzoffset); + $oDate->setOffset($tzoffset); } } //get the formatted date - $date = $oDate->toFormat($format, true); + $date = $oDate->toFormat($format); + if (!$this->_editable) { - $time = ($params->get('date_showtime', 0)) ? " " .$oDate->toFormat($timeformat, true) : ''; + $time = ($params->get('date_showtime', 0)) ? " " .$oDate->toFormat($timeformat) : ''; return $date . $time; } - $str .= $this->calendar($date, $name, $id ."_cal", $format, $calopts, $repeatCounter); - //get the formatted time if ($params->get('date_showtime', 0)) { - if (!$element->hidden) { - $time = $oDate->toFormat($timeformat, true); - $length = strlen($timeformat); - //$$$ rob NOOOOO!!! :D Dont put ids in things like this! - it breaks horribly when you have to deal with repeating groups - // also the js class references the input already with this.timeElement - //$str .= "\n"; - $str .= "\n"; - $str .= "\n".'time'; - } - + $time = $oDate->toFormat($timeformat); } } else { if (!$this->_editable) { return ''; } - - $str .= $this->calendar('', $name, $id ."_cal", $format, $calopts); - - //get the formatted time - if ($params->get('date_showtime', 0)) { - if (!$element->hidden) { - $timeformat = $params->get('date_time_format'); - $time = ''; - $length = strlen($timeformat); - $str .= "\n"; - $str .= "\n".'time'; - } - } + $date = ''; + $time = ''; + } + $str .= $this->calendar($date, $name, $id ."_cal", $format, $calopts, $repeatCounter); + if ($params->get('date_showtime', 0)) { + $timelength = strlen($timeformat); + $str .= "\n"; + $str .= "\n".'time'; } $str .= "
"; return $str; @@ -263,7 +244,6 @@ function render($data, $repeatCounter = 0) private function _indStoreDBFormat($val) { - jimport('joomla.utilities.date'); $params =& $this->getParams(); $store_as_local = (int)$params->get('date_store_as_local', 0); $listModel =& $this->getListModel(); @@ -280,13 +260,14 @@ private function _indStoreDBFormat($val) if ((is_string($val) && trim($val) === '') || (is_array($val) && trim(implode('', $val)) === '')) { return ''; } + // $$$ rob moved beneath as here $val can be an array which gives errors as getDate expects a string /*$orig = JFactory::getDate($val); if ($val === $orig->toMySQL()) { return $this->toMySQLGMT( $orig); }*/ if ($params->get('date_showtime', 0)) { - $format = $params->get('date_form_format') . ' ' . $params->get('date_time_format'); + $format = $params->get('date_form_format') . ' ' . $params->get('date_time_format'); // $$$ hugh - no can do, getDefault already munged $val into a string // $$$ rob - erm no! - its an array when submitting from the form, perhaps elsewhere its sent // as a string - so added test for array @@ -297,23 +278,15 @@ private function _indStoreDBFormat($val) } else { $format = $params->get('date_form_format', $params->get('date_table_format', '%Y-%m-%d')); } - $b = FabrikWorker::strToDateTime($val, $format); - //3.0 can't use timestamp as that gets offset as its taken as numeric by JDate - //$orig = new JDate($datebits['timestamp'], 2); - $bstr = $b['year'].'-'.$b['mon'].'-'.$b['day'].' '.$b['hour'].':'.$b['min'].':'.$b['sec']; - $orig = new JDate($bstr); - $this->_resetToGMT = true; - + $orig = JFactory::getDate($val); + //if ($val === $orig->toMySQL()) { if ($val === $orig->toMySQL() && $params->get('date_showtime', 0)) { - $date = $this->toMySQLGMT($orig); return $date; } - //$datebits = FabrikWorker::strToDateTime($val, $format); - //3.0 produces a double offset in timezone - //$date = JFactory::getDate($datebits['timestamp']); - $date = $orig; + $datebits = FabrikWorker::strToDateTime($val, $format); + $date = JFactory::getDate($datebits['timestamp']); if (!$params->get('date_showtime', 0)) { $this->_resetToGMT = false; } @@ -331,17 +304,9 @@ private function _indStoreDBFormat($val) function toMySQLGMT($date) { if ($this->_resetToGMT) { - // $$$ rob 3.0 offset is no longer an integer but a timezone string - $config = JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); - $hours = $tzoffset->getOffset($date) / (60 * 60); - // 5.3 only - if (class_exists('DateInterval')) { - $dateInterval = new DateInterval('PT'.$hours.'H'); - $date->sub($dateInterval); - } else { - $date->modify('+'.$hours.' hour'); - } + $config =& JFactory::getConfig(); + $tzoffset = (int)$config->getValue('config.offset') * -1; + $date->setOffset($tzoffset); return $date->toMySQL(true); } return $date->toMySQL(); @@ -370,7 +335,7 @@ function storeDatabaseFormat($val, $data) $res[] = $this->_indStoreDBFormat($v); } - return json_encode($res); + return implode(GROUPSPLITTER, $res); } } } @@ -385,7 +350,7 @@ function storeDatabaseFormat($val, $data) * @return string formatted value */ - function getEmailValue($value, $data = array(), $repeatCounter = 0) + protected function _getEmailValue($value, $data = array(), $repeatCounter = 0) { # $$$ hugh - need to convert to database format so we GMT-ified date return $this->renderListData($this->storeDatabaseFormat($value, $data), new stdClass()); @@ -409,8 +374,8 @@ function getTitlePart($data, $repeatCounter = 0, $opts = array()) // somewhere that does this? $params =& $this->getParams(); $store_as_local = (int)$params->get('date_store_as_local', 0); - $config = JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); + $config =& JFactory::getConfig(); + $tzoffset = (int)$config->getValue('config.offset'); $aNullDates = $this->getNullDates(); $f = $params->get('date_table_format', '%Y-%m-%d'); if ($f == 'Y-m-d') { @@ -420,12 +385,12 @@ function getTitlePart($data, $repeatCounter = 0, $opts = array()) if (!in_array($gmt_date, $aNullDates)) { $date = JFactory::getDate($gmt_date); if (!$store_as_local) { - $date->setTimeZone($tzoffset); + $date->setOffset($tzoffset); } if ($f == '{age}') { - $tz_date = date('Y') - $date->toFormat('%Y', true); + $tz_date = date('Y') - $date->toFormat('%Y'); } else { - $tz_date = $date->toFormat($f, true); + $tz_date = $date->toFormat($f); } } return $tz_date; @@ -441,7 +406,7 @@ protected function toLabel(&$v) $params =& $this->getParams(); $store_as_local = (int)$params->get('date_store_as_local', 0); $f = $params->get('date_table_format', '%Y-%m-%d'); - $tzoffset = new DateTimeZone(JFactory::getConfig()->get('offset')); + $tzoffset = (int)JFactory::getConfig()->getValue('config.offset'); $aNullDates = $this->getNullDates(); $format = array(); if (!in_array($v, $aNullDates)) { @@ -450,12 +415,12 @@ protected function toLabel(&$v) //if we have a -1 timezone then date gets set to 2009-11-12 23:00:00 //then shown as 2009-11-12 which is wrong if ($params->get('date_showtime')) { - $date->setTimeZone($tzoffset); + $date->setOffset($tzoffset); } if ($f == '{age}') { - $v = date('Y') - $date->toFormat('%Y', true); + $v = date('Y') - $date->toFormat('%Y'); } else { - $v = $date->toFormat($f, true); + $v = $date->toFormat($f); } } else { $v = ''; @@ -501,12 +466,82 @@ protected function _fixTime($time) function calendar($value, $name, $id, $format = '%Y-%m-%d', $attribs = null, $repeatCounter = 0) { - $sattribs= ''; - foreach ($attribs as $k=>$v) { - $sattribs.="$k=\"$v\" "; + //JHTML::_('behavior.calendar'); //load the calendar behavior + FabrikHelperHTML::loadcalendar(); + if (is_array($attribs)) { + $attribs = JArrayHelper::toString($attribs); + } + + $document =& JFactory::getDocument(); + $opts = $this->_CalendarJSOpts($id); + $opts->ifFormat = $format; + $opts = json_encode($opts); + + $validations =& $this->getValidations(); + + $script = 'head.ready(function() { + + if($("' . $id . '")) { '; + + $subElContainerId = $this->getHTMLId($repeatCounter); + + $formModel =& $this->getForm(); + //$$$rob might we get away with just testing if the view is a form or detailed view but for now leave as it is + if (JRequest::getVar('task') != 'elementFilter' && JRequest::getVar('view') != 'table') { + $opts = rtrim($opts, "}"); + $opts .= ',"onClose":onclose, "onSelect":onselect, "dateStatusFunc":datechange}'; + $script .= 'var onclose = (function(e) { + this.hide(); + try{ + form_'.$formModel->getId().'.triggerEvents(\''.$subElContainerId.'\', ["blur", "click", "change"], this); + window.fireEvent(\'fabrik.date.close\', this); + }catch(err) { + fconsole(err); + }; + '; + + if (!empty($validations)) { + //if we have a validation on the element run it when the calendar closes itself + //this ensures that alert messages are removed if the new data meets validation criteria + $script .= 'form_'.$formModel->_id.'.doElementValidation(\''.$subElContainerId.'\');' . "\n"; + } + $script .= "});\n"; //end onclose function + + //onselect function + $script .= 'var onselect = (function(calendar, date) { + $(\''.$id.'\').value = date; + if (calendar.dateClicked) { + calendar.callCloseHandler(); + } + window.fireEvent(\'fabrik.date.select\', this); + try{ + form_'.$formModel->getId().'.triggerEvents(\''.$subElContainerId.'\', ["click", "focus", "change"], this); + }catch(err) { + fconsole(err); + }; + });'; + //end onselect function + + //date change function + $script .= ' + var datechange = (function(date) { + try{ + return disallowDate(this, date); + }catch(err) { + fconsole(err); + } + }); + '; + //end onselect function } - return ''. - '
 
'; + $script .= 'Calendar.setup('.$opts.');'. + '}'. //end if id + "\n});"; //end domready function + + FabrikHelperHTML::addScriptDeclaration($script); + + return ''. + 'calendar'; } /** @@ -522,36 +557,17 @@ protected function _CalendarJSOpts($id = null) $id = $this->getHTMLId(); } $opts = new stdClass(); - $opts->startMonday = (boolean)$params->get('date_firstday'); - $opts->toggler = $id.'_cal-picker'; - $opts->theme = $params->get('date_theme', 'default'); - //define default date so that its in an easily understandable format for the calendar (as field may be formatted as d/m/Y) - $opts->defaultDate = $this->getValue(@$this->_data); - $opts->format = $params->get('date_form_format'); - if ($opts->defaultDate == '') { - $opts->defaultDate = JFactory::getDate()->toFormat($opts->format); - } - $opts->disallowUserInput = !$params->get('date_allow_typing_in_field', true); - + $opts->inputField = $id; + $opts->ifFormat = $params->get('date_form_format'); + $opts->button = $id."_img"; + $opts->align = "Tl"; + $opts->singleClick = true; + $opts->firstDay = intval($params->get('date_firstday')); return $opts; } /** - * load the javascript class that manages interaction with the form element - * should only be called once - * @return string javascript class file - */ - - function formJavascriptClass(&$srcs) - { - $params = $this->getParams(); - $theme = $params->get('date_theme', 'default'); - FabrikHelperHTML::loadCalendar($theme); - parent::formJavascriptClass($srcs); - } - - /** - * return the javascript to create an instance of the class defined in formJavascriptClass + * return tehe javascript to create an instance of the class defined in formJavascriptClass * @return string javascript to create instance. Instance name must be 'el' */ @@ -564,15 +580,8 @@ function elementJavascript($repeatCounter) $opts->timelabel = JText::_('time'); $opts->typing = $params->get('date_allow_typing_in_field', true); $opts->timedisplay = $params->get('date_timedisplay', 1); - $validations =& $this->getValidations(); - $opts->validations = empty($validations) ? false : true; - //for reuse if element is duplicated in repeat group $opts->calendarSetup = $this->_CalendarJSOpts($id); - - if ($opts->value == '') { - $opts->calendarSetup->prefill = 0; - } $opts = json_encode($opts); return "new FbDateTime('$id', $opts)"; } @@ -625,10 +634,10 @@ function getValidationWatchElements($repeatCounter) function getDefaultValue($data = array()) { if (!isset($this->_default)) { - $params =& $this->getParams(); + $params = $this->getParams(); $element = $this->getElement(); - $config =& JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); + $config = JFactory::getConfig(); + $tzoffset = (int)$config->getValue('config.offset'); $store_as_local = (int)$params->get('date_store_as_local', 0); if ($params->get('date_defaulttotoday', 0)) { if ($store_as_local) { @@ -676,7 +685,7 @@ function getValue($data, $repeatCounter = 0, $opts = array()) $groupModel =& $this->getGroup(); $group =& $groupModel->getGroup(); $joinid = $group->join_id; - $element = $this->getElement(); + $element =& $this->getElement(); $params =& $this->getParams(); $store_as_local = (int)$params->get('date_store_as_local', 0); if ($params->get('date_alwaystoday', false)) { @@ -692,8 +701,8 @@ function getValue($data, $repeatCounter = 0, $opts = array()) //bea: different than original date_time, local //$date = JFactory::getDate(); //$config =& JFactory::getConfig(); - //$tzoffset = $config->get('offset'); - //$date->setTimeZone( $tzoffset ); + //$tzoffset = (int)$config->getValue('config.offset'); + //$date->setOffset( $tzoffset ); $value = $date->toMySQL(); } else { // $$$rob - if no search form data submitted for the search element then the default @@ -727,7 +736,7 @@ function getValue($data, $repeatCounter = 0, $opts = array()) } else { //occurs when getting from the db - $a = FabrikWorker::JSONtoData($data[$name], true); + $a = explode(GROUPSPLITTER, $data[$name]); } if (array_key_exists($repeatCounter, $a)) { $value = $a[$repeatCounter]; @@ -768,6 +777,7 @@ function getValue($data, $repeatCounter = 0, $opts = array()) } /** + * Can be overwritten by plugin - see fabrikdate * called on failed form validation. * Ensures submitted form data is converted back into the format * that the form would expect to get it in, if the data had been @@ -869,13 +879,12 @@ function &getFilter($counter, $normal = true) $params =& $this->getParams(); $listModel =& $this->getListModel(); $table =& $listModel->getTable(); - $element = $this->getElement(); + $element =& $this->getElement(); $origTable = $table->db_table_name; $fabrikDb =& $listModel->getDb(); $elName = $this->getFullName(false, true, false); $elName2 = $this->getFullName(false, false, false); - $ids = $listModel->getColumnData($elName2); $v = 'fabrik___filter[list_'.$table->id.'][value]['.$counter.']'; //corect default got @@ -886,7 +895,7 @@ function &getFilter($counter, $normal = true) $fromTable = $origTable; $joinStr = ''; // $$$ hugh - in advanced search, _aJoins wasn't getting set - $joins = $listModel->getJoins(); + $joins =& $listModel->getJoins(); foreach ($joins as $aJoin) { // not sure why the group id key wasnt found - but put here to remove error if (array_key_exists('group_id', $aJoin)) { @@ -900,10 +909,6 @@ function &getFilter($counter, $normal = true) $where = $listModel->_buildQueryPrefilterWhere($this); $elName = FabrikString::safeColName($elName); - //dont format here as the format string is different between mysql and php's calendar strftime - $sql = "SELECT DISTINCT($elName) AS text, $elName AS value FROM `$origTable` $joinStr" - . "\n WHERE $elName IN ('" . implode("','", $ids) . "')" - . "\n AND TRIM($elName) <> '' $where GROUP BY text ASC"; $requestName = $elName."___filter"; if (array_key_exists($elName, $_REQUEST)) { if (is_array($_REQUEST[$elName]) && array_key_exists('value', $_REQUEST[$elName])) { @@ -912,81 +917,57 @@ function &getFilter($counter, $normal = true) } $htmlid = $this->getHTMLId(); -$tzoffset = new DateTimeZone(JFactory::getConfig()->get('offset')); - - - $script = array(); + if (in_array($element->filter_type, array('dropdown'))) { + $rows = $this->filterValueList($normal); + } + $calOpts = array('class'=>'inputbox fabrik_filter', 'maxlength'=>'19', 'size'=>16); switch ($element->filter_type) { case "range": - FabrikHelperHTML::loadCalendar($params->get('date_theme', 'default')); + FabrikHelperHTML::loadcalendar(); //@TODO: this messes up if the table date format is different to the form date format if (empty($default)) { $default = array('', ''); } - $v = 'fabrik___filter[list_'.$table->id.'][value]['.$counter.']'; - - $filterid = $htmlid . "_filter_range_0_" . JRequest::getCmd('task'); - $calopts = $this->_CalendarJSOpts($filterid); - $calopts->prefill = false; - $calopts = json_encode($calopts); - $filterid.='_cal'; - - $return = JText::_('COM_FABRIK_DATE_RANGE_BETWEEN') . - $this->calendar($default[0], $v.'[]', $filterid, $format, array('class'=>'inputbox fabrik_filter', 'maxlength'=>'19', 'size'=>16)); - - $script[] = "new CalendarEightysix('$filterid', $calopts);"; + $v = 'fabrik___filter[table_'.$table->id.'][value]['.$counter.']'; + $return = JText::_('DATE RANGE BETWEEN') . + $this->calendar($default[0], $v.'[0]', $this->getHTMLId() . "_filter_range_0_" . JRequest::getVar('task'), $format, $calOpts); + $return .= "
" . JText::_('DATE RANGE AND') . + $this->calendar($default[1], $v.'[1]', $this->getHTMLId() . "_filter_range_1" . JRequest::getVar('task'), $format, $calOpts); - $filterid = $htmlid . "_filter_range_1_" . JRequest::getCmd('task'); - $calopts = $this->_CalendarJSOpts($filterid); - $calopts->prefill = false; - $calopts = json_encode($calopts); - $filterid.='_cal'; - - $return .= "
" . JText::_('COM_FABRIK_DATE_RANGE_AND') . - $this->calendar($default[1], $v.'[]', $filterid, $format, array('class'=>'inputbox fabrik_filter', 'maxlength'=>'19', 'size'=>16)); - - $script[] = "new CalendarEightysix('$filterid', $calopts);"; break; case "dropdown": - $fabrikDb->setQuery($sql); - FabrikHelperHTML::debug($fabrikDb->getQuery(), 'fabrikdate getFilter'); - $oDistinctData = $fabrikDb->loadObjectList(); + // cant do the format in the MySQL query as its not the same formatting // e.g. M in mysql is month and J's date code its minute + jimport('joomla.utilities.date'); $ddData = array(); - foreach ($oDistinctData as $k => $o) { + foreach ($rows as $k => $o) { if ($fabrikDb->getNullDate() === $o->text) { $o->text = ''; $o->value = ''; } else { - jimport('joomla.utilities.date'); - - - - $d = new JDate($o->text, $tzoffset); - $this->toLocalTime($d); + $d = new JDate($o->text); //@TODO add an option as to whether we format values or not (if records as timestamps we don't want to format the filter value as running // the filter will result in no records found. see http://fabrikar.com/forums/showthread.php?t=10964 - $o->value = $d->toFormat($format, true); //if we have a table format like %m-%d then we want to remove duplicate full times - $o->text = $d->toFormat($format, true); + $o->value = $d->toFormat($format); //if we have a table format like %m-%d then we want to remove duplicate full times + $o->text = $d->toFormat($format); } if (!array_key_exists($o->value, $ddData)) { $ddData[$o->value] = $o; } } - $rows[] = JHTML::_('select.option', '', JText::_('COM_FABRIK_FILTER_PLEASE_SELECT')); - if (is_array($oDistinctData)) { - $rows = array_merge($rows, $ddData); - } - $return = JHTML::_('select.genericlist', $rows, $v, 'class="inputbox fabrik_filter" size="1" maxlength="19"', 'value', 'text', $default, $htmlid . "_filter_range_0"); + + array_unshift($ddData, JHTML::_('select.option', '', $this->filterSelectLabel())); + + $return = JHTML::_('select.genericlist', $ddData, $v, 'class="inputbox fabrik_filter" size="1" maxlength="19"', 'value', 'text', $default, $htmlid . "_filter_range_0"); break; default: case "field": - FabrikHelperHTML::loadCalendar($params->get('date_theme', 'default')); + FabrikHelperHTML::loadcalendar(); if (is_array($default)) { $default = array_shift($default); } @@ -995,13 +976,7 @@ function &getFilter($counter, $normal = true) } $default = htmlspecialchars($default); - $filterid = $htmlid . "_filter_range_0_" . JRequest::getCmd('task'); - $calopts = $this->_CalendarJSOpts($filterid); - $calopts->prefill = false; - $calopts = json_encode($calopts); - $filterid.='_cal'; - $return = $this->calendar($default, $v, $filterid, $format, array('class'=>'inputbox fabrik_filter', 'maxlength'=>'19')); - $script[] = "new CalendarEightysix('$filterid', $calopts);"; + $return = $this->calendar($default, $v, $htmlid . "_filter_range_0_" . JRequest::getVar('task'), $format, $calOpts); break; case 'auto-complete': @@ -1015,7 +990,7 @@ function &getFilter($counter, $normal = true) if (!$normal) { $autoId = '#advanced-search-table .autocomplete-trigger'; } - FabrikHelperHTML::autoComplete($autoId, $this->getElement()->id, 'date'); + FabrikHelperHTML::autoComplete($autoId, $this->getElement()->id, $this->_pluginName); break; } if ($normal) { @@ -1023,41 +998,17 @@ function &getFilter($counter, $normal = true) } else { $return .= $this->getAdvancedFilterHiddenFields(); } - if (!empty($script)) { - $script = implode("\n", $script); - $document = JFactory::getDocument(); - $document->addScriptDeclaration("head.ready(function() { - $script - })"); - } return $return; } - /** - * @since 3.0 takes a date from the server and applies the timezone offset - * probably not the right way to do this but ive been at it all day - * @param object JDate - */ - - protected function toLocalTime(&$d){ - $tzoffset = new DateTimeZone(JFactory::getConfig()->get('offset')); - $hours = $tzoffset->getOffset($d) / (60 * 60); - $dateInterval = new DateInterval('PT'.$hours.'H'); - $d->add($dateInterval); - - } - - public function onAutocomplete_options() + public function autocomplete_options() { - //needed for ajax update (since we are calling this method via dispatcher element is not set - $this->_id = JRequest::getInt('element_id'); - $this->getElement(true); - $listModel =& $this->getlistModel(); - $table =& $listModel->getTable(); - $db =& $listModel->getDb(); + $listModel = $this->getListModel(); + $table = $listModel->getTable(); + $db = $listModel->getDb(); $name = $this->getFullName(false, false, false); $db->setQuery("SELECT DISTINCT($name) AS value, $name AS text FROM $table->db_table_name WHERE $name LIKE " . $db->Quote('%'.addslashes(JRequest::getVar('value').'%'))); - $tmp =& $db->loadObjectList(); + $tmp = $db->loadObjectList(); $ddData = array(); foreach ($tmp as &$t) { $this->toLabel($t->text); @@ -1089,7 +1040,7 @@ function prepareCSVData(&$data, $key, $is_raw = false) for ($j=0; $j < count($data); $j++) { $orig_data = $data[$j][$key]; $date = JFactory::getDate($data[$j][$key]); - $data[$j][$key] = $date->toFormat($format, true); + $data[$j][$key] = $date->toFormat($format); // $$$ hugh - bit of a hack specific to a customer who needs to import dates with year as 1899, // which we then change to 1999 using a tablecsv import script (don't ask!). But of course JDate doesn't // like dates outside of UNIX timestamp range, so the previous line was zapping them. So I'm just restoring @@ -1117,7 +1068,7 @@ function dataConsideredEmpty($data, $repeatCounter) /** * format the filter date range into a mySQL format - * @see components/com_fabrik/models/plgFabrik_Element#getRangedFilterValue($value) + * @see components/com_fabrik/models/FabrikModelElement#getRangedFilterValue($value) */ function getRangedFilterValue($value) @@ -1160,19 +1111,15 @@ function tableDateToMySQL($v) { $params =& $this->getParams(); $store_as_local = (int)$params->get('date_store_as_local', 0); + if (in_array($v, $this->getNullDates()) || $v === JFactory::getDate($v)->toMySQL()) { + return $v; + } $format = $params->get('date_table_format', '%Y-%m-%d'); - $b = FabrikWorker::strToDateTime($v, $format); - if (!is_array($b)) { + $datebits = FabrikWorker::strToDateTime($v, $format); + if (!is_array($datebits)) { return false; } - //3.0 can't use timestamp as that gets offset as its taken as numeric by JDate - //$orig = new JDate($datebits['timestamp'], 2); - $bstr = $b['year'].'-'.$b['mon'].'-'.$b['day'].' '.$b['hour'].':'.$b['min'].':'.$b['sec']; - $date = JFactory::getDate($bstr); - if (in_array($v, $this->getNullDates()) || $v === $date->toMySQL()) { - return $v; - } - + $date =& JFactory::getDate($datebits['timestamp']); if ($store_as_local) { $this->_resetToGMT = false; } @@ -1302,7 +1249,6 @@ protected function toSeconds($date) } /** - * @TODO test this in J1.6 * takes strftime time formatting - http://fr.php.net/manual/en/function.strftime.php * and converts to format used in mySQL DATE_FORMAT http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html */ @@ -1399,8 +1345,8 @@ public function onCopyRow($val) if (!$store_as_local) { $date = JFactory::getDate($val); $config =& JFactory::getConfig(); - $tzoffset = new DateTimeZone($config->get('offset')); - $date->setTimeZone($tzoffset); + $tzoffset = (int)$config->getValue('config.offset'); + $date->setOffset($tzoffset); $val = $date->toMySQL(true); } }