diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/css/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/css/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/css/style.css b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/css/style.css new file mode 100644 index 00000000..049d0211 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/css/style.css @@ -0,0 +1,219 @@ +/** + * @version $Id$ + * @author JoomlaUX + * @package Joomla.Site + * @subpackage mod_jux_timeline + * @copyright Copyright (C) 2013 JoomlaUX. All rights reserved. + * @license License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php +*/ + +@charset "UTF-8"; + + +.clearfix:after { + content: ""; + display: table; + line-height: 0; +} +.clearfix:after { + clear: both; +} + +.jux-tl { +} +.jux-tl-wrap { + position: relative; + background: url("../images/line.png") repeat-y scroll center center transparent; +} +.jux-tl-line { + background: url("../images/line.png") repeat-y scroll 0 0 transparent; + height: 100%; + left: 50%; + position: absolute; + transform: translate(-50%); + width:3px; +} +.jux-tl-item { + margin-bottom: 20px; + position: relative; + width: 50%; +} +.jux-tl-item.right{ + float: right; +} +.jux-tl-item.left { + float: left; +} +.jux-tl-control{ + background: url("../images/plus.png") no-repeat scroll 0 0 transparent; + display: block; + height: 23px; + position: absolute; + top: 20px; + width: 23px; + cursor: pointer; +} +.jux-tl-item.right .jux-tl-control{ + left: -12px; +} +.jux-tl-item.left .jux-tl-control{ + right: -12px; +} +.jux-tl-item.selected .jux-tl-control{ + background: url("../images/minus.png") no-repeat scroll 0 0 transparent; +} + +.jux-tl-item .jux-tl-time { + color: #797979; + font-size: 14px; + font-weight: bold; + position: absolute; + top: 20px; + min-height: 23px; + min-width: 230px; + cursor: pointer; +} +.jux-tl-item.right .jux-tl-time { + margin: 0 30px 0 0; + right: 100%; + text-align: right; +} +.jux-tl-item.left .jux-tl-time { + left: 100%; + margin-left: 30px; + text-align: left; +} + +.jux-tl-info { + background: none repeat scroll 0 0 #5C5C5C; + border-radius: 8px 8px 8px 8px; + padding: 25px 40px; + position: relative; +} +.jux-tl-item.left .jux-tl-info{ + margin-right: 30px; +} +.jux-tl-item.right .jux-tl-info{ + margin-left: 30px; +} + +.jux-tl-info .arrow, +.jux-tl-info .arrow:after { + position: absolute; + display: inline-block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.jux-tl-info .arrow:after { + content: ""; + z-index: -1; +} + +.jux-tl-item.right .arrow { + top: 30px; + left: -10px; + margin-top: -10px; + border-width: 10px 10px 10px 0; + border-right-color: #5C5C5C; +} +.jux-tl-item.right .arrow:after { + border-width: 11px 11px 11px 0; + border-right-color: rgba(0, 0, 0, 0.25); + bottom: -11px; + left: -1px; +} + +.jux-tl-item.left .arrow { + top:30px; + right: -10px; + margin-top: -10px; + border-width: 10px 0 10px 10px; + border-left-color: #5C5C5C; +} +.jux-tl-item.left .arrow:after { + border-width: 11px 0 11px 11px; + border-left-color: rgba(0, 0, 0, 0.25); + bottom: -11px; + right: -1px; +} + +.jux-tl-item h2 a { + margin: 0; + color: #bfbfbf; + text-decoration: none; + transition: all 0.2s ease-in-out 0s; + -ms-transition: all 0.2s ease-in-out 0s; + -moz-transition: all 0.2s ease-in-out 0s; + -o-transition: all 0.2s ease-in-out 0s; + -webkit-transition: all 0.2s ease-in-out 0s; + +} +.jux-tl-item h2 a:hover{ + text-decoration: none; + color: #EDEAEA; +} +.jux-tl-item .jux-tl-desc { + display:none; + overflow: hidden; + color:#9b9b9b; +} +.jux-tl-item.selected .jux-tl-desc{ + +} + +@media (max-width: 767px){ + .jux-tl-item { + width: 100%; + } + .jux-tl-item.right, + .jux-tl-item.left{ + float: left; + } + .jux-tl-control{ + top: 0px + } + .jux-tl-item.left .jux-tl-control{ + right: 50%; + margin-right: -12px; + } + .jux-tl-item.right .jux-tl-control{ + left: 50%; + margin-left: -12px; + } + + .jux-tl-item.right .jux-tl-info, + .jux-tl-item.left .jux-tl-info{ + margin:40px 0 0 0; + } + + .jux-tl-item.left .arrow, + .jux-tl-item.right .arrow + { + border-bottom-color: #5C5C5C; + border-left-color: transparent; + border-right-color: transparent; + border-width: 0 10px 10px; + left: 50%; + margin-left: -10px; + margin-top: 0; + top: -10px; + } + .jux-tl-item.right .arrow:after, + .jux-tl-item.left .arrow:after{ + border-width: 0 11px 11px; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -1px; + left: -11px; + } + .jux-tl-item .jux-tl-time{ + top:0 + } + .jux-tl-item.left .jux-tl-time{ + left: 50%; + } + .jux-tl-item.right .jux-tl-time{ + right: 50%; + } +} \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/dot.png b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/dot.png new file mode 100644 index 00000000..2fc52b9c Binary files /dev/null and b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/dot.png differ diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/line.png b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/line.png new file mode 100644 index 00000000..dd8a658b Binary files /dev/null and b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/line.png differ diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/minus.png b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/minus.png new file mode 100644 index 00000000..a815b265 Binary files /dev/null and b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/minus.png differ diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/plus.png b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/plus.png new file mode 100644 index 00000000..c5001208 Binary files /dev/null and b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/images/plus.png differ diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/js/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/js/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/js/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/js/script.js b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/js/script.js new file mode 100644 index 00000000..b32d8063 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/assets/js/script.js @@ -0,0 +1,31 @@ +/** + * @version $Id$ + * @author JoomlaUX + * @package Joomla.Site + * @subpackage mod_jux_timeline + * @copyright Copyright (C) 2013 JoomlaUX. All rights reserved. + * @license License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php + */ +!function($){ + "use strict"; + $.fn.juxtimeline = function(options){ + return this.each(function(){ + var $this = $(this), + controls = $this.find(".jux-tl-control,.jux-tl-time,.jux-tl-title"); + controls.click(function(){ + var that = $(this), + parent = that.closest(".jux-tl-item"); + if(parent.hasClass("selected")){ + parent.removeClass("selected").find(".jux-tl-desc").hide(400); + }else{ + var selected = $this.find(".selected"); + if(selected){ + selected.removeClass("selected").find(".jux-tl-desc").hide(400); + } + parent.addClass("selected").find(".jux-tl-desc").show(400); + } + return false; + }); + }); + } +}(window.jQuery); \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/css/juxtimeline.css b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/css/juxtimeline.css new file mode 100644 index 00000000..e60bc04f --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/css/juxtimeline.css @@ -0,0 +1,15 @@ +/** + * @version $Id$ + * @author JoomlaUX + * @package Joomla.Site + * + * @copyright Copyright (C) 2013 JoomlaUX. All rights reserved. + * @license License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php + */ +.ntm-item{ + cursor: move; + position: relative; +} +#juxtimeline_remove{ + float: right; +} \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/js/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/js/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/js/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/js/juxtimeline.js b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/js/juxtimeline.js new file mode 100644 index 00000000..832aa5e2 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/assets/js/juxtimeline.js @@ -0,0 +1,186 @@ +/** + * @version $Id$ + * @author JoomlaUX + * @package Joomla.Site + * + * @copyright Copyright (C) 2013 JoomlaUX. All rights reserved. + * @license License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php + */ +!function ($) { + "use strict"; + $.fn.juxtimeline = function(options){ + return this.each(function(){ + var $this = $(this), + container = null, + btn_add = null; + container = $('
').insertAfter($this); + container.append('
'); + container.append('
'); + var main_wap = $(".ntm-items"); + btn_add = $("#juxtimeline_add"); + if($this.val() != ""){ + var items = $.parseJSON(htmlspecialchars_decode($this.val())); + $.each(items,function(key,item){ + main_wap.append(createTimeline(item.frame,item.title,item.description)); + $(".ntm-items").sortable(); + }); + } + btn_add.click(function(){ + main_wap.prepend(createTimeline()); + $(".ntm-items").sortable(); + }); + var form = document.adminForm; + if(!form){ + return false; + } + var onsubmit = form.onsubmit; + form.onsubmit = function(e){ + juxtimelineUpdate(); + if(jQuery.isFunction(onsubmit)){ + onsubmit(); + } + }; + + function htmlspecialchars (string, quote_style, charset, double_encode) { + var optTemp = 0, + i = 0, + noquotes = false; + if (typeof quote_style === 'undefined' || quote_style === null) { + quote_style = 2; + } + string = string.toString(); + if (double_encode !== false) { // Put this first to avoid double-encoding + string = string.replace(/&/g, '&'); + } + string = string.replace(//g, '>'); + + var OPTS = { + 'ENT_NOQUOTES': 0, + 'ENT_HTML_QUOTE_SINGLE': 1, + 'ENT_HTML_QUOTE_DOUBLE': 2, + 'ENT_COMPAT': 2, + 'ENT_QUOTES': 3, + 'ENT_IGNORE': 4 + }; + if (quote_style === 0) { + noquotes = true; + } + if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags + quote_style = [].concat(quote_style); + for (i = 0; i < quote_style.length; i++) { + // Resolve string input to bitwise e.g. 'ENT_IGNORE' becomes 4 + if (OPTS[quote_style[i]] === 0) { + noquotes = true; + } + else if (OPTS[quote_style[i]]) { + optTemp = optTemp | OPTS[quote_style[i]]; + } + } + quote_style = optTemp; + } + if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) { + string = string.replace(/'/g, '''); + } + if (!noquotes) { + string = string.replace(/"/g, '"'); + } + + return string; + } + + + function htmlspecialchars_decode (string, quote_style) { + var optTemp = 0, + i = 0, + noquotes = false; + if (typeof quote_style === 'undefined') { + quote_style = 2; + } + string = string.toString().replace(/</g, '<').replace(/>/g, '>'); + var OPTS = { + 'ENT_NOQUOTES': 0, + 'ENT_HTML_QUOTE_SINGLE': 1, + 'ENT_HTML_QUOTE_DOUBLE': 2, + 'ENT_COMPAT': 2, + 'ENT_QUOTES': 3, + 'ENT_IGNORE': 4 + }; + if (quote_style === 0) { + noquotes = true; + } + if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags + quote_style = [].concat(quote_style); + for (i = 0; i < quote_style.length; i++) { + // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4 + if (OPTS[quote_style[i]] === 0) { + noquotes = true; + } else if (OPTS[quote_style[i]]) { + optTemp = optTemp | OPTS[quote_style[i]]; + } + } + quote_style = optTemp; + } + if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) { + string = string.replace(/�*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should + // string = string.replace(/'|�*27;/g, "'"); // This would also be useful here, but not a part of PHP + } + if (!noquotes) { + string = string.replace(/"/g, '"'); + } + // Put this in last place to avoid escape being double-decoded + string = string.replace(/&/g, '&'); + + return string; + } + + + function juxtimelineUpdate(){ + var items = container.find(".ntm-item"), + config = {}; + items.each(function(index,element){ + var that = $(this), + item = {'frame':that.find("#timeline_frame").val(),'title':that.find("#timeline_title").val(),'description':that.find("#timeline_description").val()}; + if (Object.keys(item).length) config[index] = item; + }); + $this.val(htmlspecialchars(JSON.stringify(config))); + }; + + function createTimeline(frame,title,description){ + frame = typeof(frame) == 'undefined' ? '' : frame; + title = typeof(title) == 'undefined' ? '' : title; + description = typeof(description) == 'undefined' ? '' : description; + var html = '
' + +'
' + +'
' + +'' + +'
' + +'
' + +'' + +'
' + +'
' + +'
' + +'
' + +'' + +'
' + +'
' + +'' + +'
' + +'
' + +'
' + +'
' + +'' + +'
' + +'
' + +'' + +'
' + +'
' + +'
'; + return html; + } + }); + } +}(window.jQuery); + +function juxtimelineRemove(element){ + jQuery(element).closest(".ntm-item").remove(); +} \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/juxtimeline.php b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/juxtimeline.php new file mode 100644 index 00000000..5ea9777c --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/juxtimeline.php @@ -0,0 +1,52 @@ +addScript($uri.'/assets/js/juxtimeline.js'); + $document->addStyleSheet($uri.'/assets/css/juxtimeline.css'); + $document->addScriptDeclaration(' + jQuery(document).ready(function($){ + $("#'.$this->id.'").juxtimeline(); + }); + '); + // Initialize some field attributes. + $class = $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : ''; + $disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : ''; + + // Initialize JavaScript field attributes. + $onchange = $this->element['onchange'] ? ' onchange="' . (string) $this->element['onchange'] . '"' : ''; + + return ''; + } + + protected function getLabel(){ + return parent::getLabel(); + } +} \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/juxupdate.php b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/juxupdate.php new file mode 100644 index 00000000..56051087 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/elements/juxupdate.php @@ -0,0 +1,191 @@ +element['heading'] ? (string) $this->element['heading'] : 'h4'; + $class = !empty($this->class) ? ' class="' . $this->class . '"' : ''; + $close = (string) $this->element['close']; + $download_url = (string) $this->element['download_url']; + $html = array(); + + if ($close) + { + $close = $close == 'true' ? 'alert' : $close; + $html[] = ''; + } + $this->extension_id = $this->getExtensionID(); + $updateInfo = $this->getUpdates(); + if ($updateInfo['hasUpdate']) { + $html[] = '

An updated version of '.$updateInfo['name'].' ('.$updateInfo['version'].') is available for download. + +

+

Before updating ensure that the update is compatible with your current version

+

+ + Get this version + + + More information + +

'; + return '
' . implode('', $html); + } else { + return ''; + } + +} + + /** + * Method to get the field input markup. + * + * @return string The field input markup. + * + * @since 11.1 + */ + protected function getInput() + { + return ''; + } + + protected function getExtensionID() { + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + $query->select('extension_id') + ->from('#__extensions') + ->where($db->qn('element') . ' = ' . $db->q('mod_jux_timeline')); + $db->setQuery($query); + try { + $ids = $db->loadColumn(); + } catch (Exception $exc) { + return false; + } + + if (empty($ids)) { + return false; + } + + return $extension_id = array_shift($ids); + } + + + /** + * Gets the update site Ids for our extension. + * + * @return mixed An array of Ids or null if the query failed. + */ + public function getUpdateSiteIds() + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select($db->qn('update_site_id')) + ->from($db->qn('#__update_sites_extensions')) + ->where($db->qn('extension_id') . ' = ' . $db->q($this->extension_id)); + $db->setQuery($query); + $updateSiteIds = $db->loadColumn(0); + + return $updateSiteIds; + } + + public function getUpdates($force = false) + { + $db = JFactory::getDBO(); + + // Default response (no update) + $updateResponse = array( + 'hasUpdate' => false, + 'version' => '', + 'infoURL' => '', + 'name' => '' + ); + + if (empty($this->extension_id)) + { + return $updateResponse; + } + + // If we are forcing the reload, set the last_check_timestamp to 0 + // and remove cached component update info in order to force a reload + if ($force) + { + // Find the update site IDs + $updateSiteIds = $this->getUpdateSiteIds(); + + if (empty($updateSiteIds)) + { + return $updateResponse; + } + + // Set the last_check_timestamp to 0 + $query = $db->getQuery(true) + ->update($db->qn('#__update_sites')) + ->set($db->qn('last_check_timestamp') . ' = ' . $db->q('0')) + ->where($db->qn('update_site_id') .' IN ('.implode(', ', $updateSiteIds).')'); + $db->setQuery($query); + $db->execute(); + + // Remove cached component update info from #__updates + $query = $db->getQuery(true) + ->delete($db->qn('#__updates')) + ->where($db->qn('update_site_id') .' IN ('.implode(', ', $updateSiteIds).')'); + $db->setQuery($query); + $db->execute(); + } + + // Use the update cache timeout specified in com_installer + $comInstallerParams = JComponentHelper::getParams('com_installer', false); + $timeout = 3600 * $comInstallerParams->get('cachetimeout', '6'); + // Load any updates from the network into the #__updates table + + // Get the update record from the database + $query = $db->getQuery(true) + ->select('*') + ->from($db->qn('#__updates')) + ->where($db->qn('extension_id') . ' = ' . $db->q($this->extension_id)); + $db->setQuery($query); + $updateRecord = $db->loadObject(); + + // If we have an update record in the database return the information found there + if (is_object($updateRecord)) + { + $updateResponse = array( + 'hasUpdate' => true, + 'version' => $updateRecord->version, + 'infoURL' => $updateRecord->infourl, + 'name' => $updateRecord->name + ); + } + return $updateResponse; + } +} \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/helper.php b/deployed/mod_jux_timeline/modules/mod_jux_timeline/helper.php new file mode 100644 index 00000000..4f1f7b81 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/helper.php @@ -0,0 +1,20 @@ +get('timeline'); + $timeline = json_decode(htmlspecialchars_decode($timeline),true); + return $timeline; + } +} diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/index.html new file mode 100644 index 00000000..640bda4a --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/index.html @@ -0,0 +1 @@ + diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/language/en-GB.mod_jux_timeline.ini b/deployed/mod_jux_timeline/modules/mod_jux_timeline/language/en-GB.mod_jux_timeline.ini new file mode 100644 index 00000000..216e4537 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/language/en-GB.mod_jux_timeline.ini @@ -0,0 +1,14 @@ +; Joomla! Project +; Copyright (C) 2013 JoomlaUX. All rights reserved. +; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php +; Note : All ini files need to be saved as UTF-8 - No BOM + + +MOD_JUX_TIMELINE="JUX TimeLine" +MOD_JUX_TIMELINE_DISPLAY="Display" +MOD_JUX_TIMELINE_DISPLAY_DESC="The display type of the timeline module show when first load, Set 'Default' to expand the top timeline, set 'Expand' to expand all timeline information or 'Collapse' to collapse all." +JUX_TIMELINE_DEFAULT="Default" +JUX_TIMELINE_EXPAND="Expand" +JUX_TIMELINE_COLLAPSE="Collapse" +MOD_JUX_TIMELINE_ADD_LABEL="Time Line Data" +MOD_JUX_TIMELINE_ADD_DESC="Please use the 'New' button to add new timeline data, use 'Remove' button to delete a timeline. Drag/Drop the box to re-order the timeline. Each timeline has a Time Frame, Timeline Title and Timeline details information." \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/language/en-GB.mod_jux_timeline.sys.ini b/deployed/mod_jux_timeline/modules/mod_jux_timeline/language/en-GB.mod_jux_timeline.sys.ini new file mode 100644 index 00000000..89790712 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/language/en-GB.mod_jux_timeline.sys.ini @@ -0,0 +1,7 @@ +; Joomla! Project +; Copyright (C) 2013 JoomlaUX. All rights reserved. +; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php +; Note : All ini files need to be saved as UTF-8 - No BOM + + +MOD_JUX_TIMELINE="JUX TimeLine" \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/mod_jux_timeline.php b/deployed/mod_jux_timeline/modules/mod_jux_timeline/mod_jux_timeline.php new file mode 100644 index 00000000..6061fe38 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/mod_jux_timeline.php @@ -0,0 +1,29 @@ +addStyleSheet('modules/' . $module->module . '/assets/css/style.css'); +//Include js +$document->addScript('modules/' . $module->module . '/assets/js/script.js'); +$document->addScriptDeclaration(' + jQuery(document).ready(function($){ + $("#jux_tl'.$module->id.'").juxtimeline(); + }); +'); + +$lists = modJUXTimeLineHelper::getTimeLine($params); + +require (JModuleHelper::getLayoutPath('mod_jux_timeline',$params->get('layout', 'default'))); \ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/mod_jux_timeline.xml b/deployed/mod_jux_timeline/modules/mod_jux_timeline/mod_jux_timeline.xml new file mode 100644 index 00000000..44f1f58a --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/mod_jux_timeline.xml @@ -0,0 +1,156 @@ + + + JUX Timeline + JoomlaUX + December 2014 + Copyright (C) 2014 JoomlaUX. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + admin@joomlaux.com + www.joomlaux.com + 1.0.1 + + +

JUX Timeline

+ JUX Timeline +

JUX Timeline is a joomla module which was built to help business, organizations showing their timeline of development and impress new customers. From the timeline, customers can easily have an overview about the company activities and evolution. +

+

+

Most completed Timeline

+
    +
  • JUX Timeline will Display in vertical line
  • +
  • Help you can Detail information
  • +
  • Mobile & Tablets compatible!
  • +
  • Backend fully control
  • +
  • Available for Joomla™ 3.x
  • + +
+

Easy to use

+
    +
  • Works out of the box with most Joomla Templates
  • +
  • No coding required!
  • +
+

Userful Links

+ +

Copyright 2013 - 2014 JoomlaUX.com.

+ + + +
+ ]]> + + + mod_jux_timeline.php + tmpl + assets + elements + helper.php + index.html + mod_jux_timeline.xml + language + + + language/en-GB.mod_jux_timeline.ini + language/en-GB.mod_jux_timeline.sys.ini + + + http://www.joomlaux.com/updates/extensions/mod_jux_timeline_update.xml + + + +
+ + + + + + + + + +
+
+ + + + + + + + + + + + +
+
+
+ diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/tmpl/default.php b/deployed/mod_jux_timeline/modules/mod_jux_timeline/tmpl/default.php new file mode 100644 index 00000000..e660a370 --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/tmpl/default.php @@ -0,0 +1,30 @@ +get('display'); +?> +
+
+ + +
+
+
+
+
+

+
style="display:block">
+
+
+
+ +
+
\ No newline at end of file diff --git a/deployed/mod_jux_timeline/modules/mod_jux_timeline/tmpl/index.html b/deployed/mod_jux_timeline/modules/mod_jux_timeline/tmpl/index.html new file mode 100644 index 00000000..640bda4a --- /dev/null +++ b/deployed/mod_jux_timeline/modules/mod_jux_timeline/tmpl/index.html @@ -0,0 +1 @@ +