From fe24864d876ef0c6d93e80c89f7c268e127ca3f6 Mon Sep 17 00:00:00 2001 From: Jens Herlevsen Date: Sun, 17 Jul 2016 02:56:09 +0200 Subject: [PATCH 01/28] Add 'exact' field preset type to input.preset.js --- modules/system/assets/ui/js/input.preset.js | 5 ++++- modules/system/assets/ui/storm-min.js | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/system/assets/ui/js/input.preset.js b/modules/system/assets/ui/js/input.preset.js index bdca25cfe..8f77e83b6 100644 --- a/modules/system/assets/ui/js/input.preset.js +++ b/modules/system/assets/ui/js/input.preset.js @@ -244,7 +244,10 @@ } InputPreset.prototype.formatValue = function() { - if (this.options.inputPresetType == 'namespace') { + if (this.options.inputPresetType == 'exact') { + return this.$src.val(); + } + else if (this.options.inputPresetType == 'namespace') { return this.formatNamespace() } diff --git a/modules/system/assets/ui/storm-min.js b/modules/system/assets/ui/storm-min.js index 127ef9e04..c9f6a6bf4 100644 --- a/modules/system/assets/ui/storm-min.js +++ b/modules/system/assets/ui/storm-min.js @@ -3883,7 +3883,8 @@ $el.val(prefix+self.formatValue())}) this.$el.on('change',function(){self.cancelled=true})} InputPreset.prototype.formatNamespace=function(){var value=toCamel(this.$src.val()) return value.substr(0,1).toUpperCase()+value.substr(1)} -InputPreset.prototype.formatValue=function(){if(this.options.inputPresetType=='namespace'){return this.formatNamespace()} +InputPreset.prototype.formatValue=function(){if(this.options.inputPresetType=='exact'){return this.$src.val();} +else if(this.options.inputPresetType=='namespace'){return this.formatNamespace()} if(this.options.inputPresetType=='camel'){var value=toCamel(this.$src.val())} else{var value=slugify(this.$src.val())} if(this.options.inputPresetType=='url'){value='/'+value} From 1d91c221b0b32592ec93c9f4824d108fc2a5cc5e Mon Sep 17 00:00:00 2001 From: Jim Cottrell Date: Tue, 2 Aug 2016 15:38:44 -0600 Subject: [PATCH 02/28] Add scrolling to JS TreeView when dragging sortable elements --- modules/backend/assets/js/october.treeview.js | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/modules/backend/assets/js/october.treeview.js b/modules/backend/assets/js/october.treeview.js index 2e51918b9..1a22d60b9 100644 --- a/modules/backend/assets/js/october.treeview.js +++ b/modules/backend/assets/js/october.treeview.js @@ -71,6 +71,7 @@ TreeView.prototype.dispose = function() { this.unregisterHandlers() + this.clearScrollTimeout() this.options = null this.$el.removeData('oc.treeView') @@ -210,6 +211,7 @@ useAnimation: false, usePlaceholderClone: true, handle: 'span.drag-handle', + onDrag: this.proxy(this.onDrag), tolerance: -20 // Give 20px of carry between containers }) @@ -295,6 +297,66 @@ this.toggleGroup($(ev.currentTarget).closest('li')) return false } + + // TREEVIEW SCROLL ON DRAG + // ============================ + + TreeView.prototype.onDrag = function ($item, position, _super, event) { + + this.dragCallback = function() { + _super($item, position, null, event) + }; + + this.clearScrollTimeout() + this.dragCallback() + + if (!this.$scrollbar || this.$scrollbar.length === 0) + return + + if (position.top < 0) + this.scrollOffset = -10 + Math.floor(position.top / 5) + else if (position.top > this.$scrollbar.height()) + this.scrollOffset = 10 + Math.ceil((position.top - this.$scrollbar.height()) / 5) + else + return + + this.scrollMax = function() { + return this.$el.height() - this.$scrollbar.height() + }; + + this.dragScroll() + } + + TreeView.prototype.dragScroll = function() { + var startScrollTop = this.$scrollbar.scrollTop() + var changed + + this.scrollTimeout = null + + this.$scrollbar.scrollTop( Math.min(startScrollTop + this.scrollOffset, this.scrollMax()) ) + changed = this.$scrollbar.scrollTop() - startScrollTop + if (changed === 0) + return + + this.$el.children('ol').each(function() { + var sortable = $(this).data('oc.sortable') + + sortable.refresh() + sortable.cursorAdjustment.top -= changed // Keep cursor adjustment in sync with scroll + }); + + this.dragCallback() + this.$scrollbar.data('oc.scrollbar').setThumbPosition() // Update scrollbar position + + this.scrollTimeout = window.setTimeout(this.proxy(this.dragScroll), 100) + } + + TreeView.prototype.clearScrollTimeout = function() { + if (this.scrollTimeout) { + window.clearTimeout(this.scrollTimeout) + this.scrollTimeout = null + } + } // TREEVIEW PLUGIN DEFINITION // ============================ From ce1e7949d7c6a0aa6af493af4bc2e0782f813950 Mon Sep 17 00:00:00 2001 From: MarvinDurot Date: Thu, 4 Aug 2016 12:46:11 +0200 Subject: [PATCH 03/28] Fix multiple definition list refresh when index_onDelete method is called --- modules/backend/behaviors/ListController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/backend/behaviors/ListController.php b/modules/backend/behaviors/ListController.php index 0d23cfc32..231693695 100644 --- a/modules/backend/behaviors/ListController.php +++ b/modules/backend/behaviors/ListController.php @@ -313,7 +313,7 @@ class ListController extends ControllerBehavior Flash::error(Lang::get('backend::lang.list.delete_selected_empty')); } - return $this->controller->listRefresh(); + return $this->controller->listRefresh($definition); } /** From b02e4d7ecf2fd44cbe40d3995aa801050be6fa9e Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Fri, 5 Aug 2016 07:50:51 +1000 Subject: [PATCH 04/28] Resolve paths correctly when deep hashing Fixes #2270 --- modules/system/classes/CombineAssets.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/system/classes/CombineAssets.php b/modules/system/classes/CombineAssets.php index e2e4d84f6..93268c5f3 100644 --- a/modules/system/classes/CombineAssets.php +++ b/modules/system/classes/CombineAssets.php @@ -401,7 +401,7 @@ class CombineAssets $key = ''; $assetFiles = array_map(function($file) { - return $this->localPath.'/'.$file; + return File::symbolizePath($file, null) ?: $this->localPath . $file; }, $assets); foreach ($assetFiles as $file) { From e10c1626678b197e7458f135a4c1abf4216c8d59 Mon Sep 17 00:00:00 2001 From: soulshockers Date: Fri, 5 Aug 2016 18:51:27 +0300 Subject: [PATCH 05/28] Fixed calling dynamic methods for dynamically extended widgets. --- modules/backend/classes/Controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/backend/classes/Controller.php b/modules/backend/classes/Controller.php index 35426d156..f8230a40f 100644 --- a/modules/backend/classes/Controller.php +++ b/modules/backend/classes/Controller.php @@ -511,7 +511,7 @@ class Controller extends Extendable throw new SystemException(Lang::get('backend::lang.widget.not_bound', ['name'=>$widgetName])); } - if (($widget = $this->widget->{$widgetName}) && method_exists($widget, $handlerName)) { + if (($widget = $this->widget->{$widgetName}) && $widget->methodExists($handlerName)) { $result = call_user_func_array([$widget, $handlerName], $this->params); return ($result) ?: true; } @@ -542,7 +542,7 @@ class Controller extends Extendable $this->execPageAction($this->action, $this->params); foreach ((array) $this->widget as $widget) { - if (method_exists($widget, $handler)) { + if ($widget->methodExists($handler)) { $result = call_user_func_array([$widget, $handler], $this->params); return ($result) ?: true; } From 0b0e1580094f6ac19818b869b138a7e974115e3d Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Sat, 6 Aug 2016 09:47:26 +1000 Subject: [PATCH 06/28] Recompile assets Refs #2267 --- modules/backend/assets/css/october.css | 4 ++-- modules/system/assets/ui/storm-min.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/backend/assets/css/october.css b/modules/backend/assets/css/october.css index 8f1398267..2650d0d44 100644 --- a/modules/backend/assets/css/october.css +++ b/modules/backend/assets/css/october.css @@ -250,8 +250,8 @@ .tooltip.in{opacity:1;filter:alpha(opacity=100)} .oc-logo-white{background-image:url(../images/october-logo-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} .oc-logo{background-image:url(../images/october-logo.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} -.layout.control-tabs.oc-logo-transparent:not(.has-tabs),.layout-cell.oc-logo-transparent{background-size:50% auto;background-repeat:no-repeat;background-image:url(../images/october-logo.svg);background-position:50% 50%;position:relative} -.layout.control-tabs.oc-logo-transparent:not(.has-tabs):after,.layout-cell.oc-logo-transparent:after{content:'';display:table-cell;position:absolute;left:0;top:0;height:100%;width:100%;background:rgba(249,249,249,0.7)} +.layout.control-tabs.oc-logo-transparent:not(.has-tabs),.layout-cell.oc-logo-transparent,.flex-layout-column.oc-logo-transparent{background-size:50% auto;background-repeat:no-repeat;background-image:url(../images/october-logo.svg);background-position:50% 50%;position:relative} +.layout.control-tabs.oc-logo-transparent:not(.has-tabs):after,.layout-cell.oc-logo-transparent:after,.flex-layout-column.oc-logo-transparent:after{content:'';display:table-cell;position:absolute;left:0;top:0;height:100%;width:100%;background:rgba(249,249,249,0.7)} .report-widget{padding:15px;background:white;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:13px} .report-widget h3{font-size:14px;color:#7e8c8d;text-transform:uppercase;font-weight:600;margin-top:0;margin-bottom:30px} .report-widget .height-100{height:100px} diff --git a/modules/system/assets/ui/storm-min.js b/modules/system/assets/ui/storm-min.js index c9f6a6bf4..8bf12f1d1 100644 --- a/modules/system/assets/ui/storm-min.js +++ b/modules/system/assets/ui/storm-min.js @@ -3840,7 +3840,7 @@ if(typeof option=='string')data[option].apply(data,args)})} $.fn.hotKey.Constructor=HotKey $.fn.hotKey.noConflict=function(){$.fn.hotKey=old return this} -$(document).render(function(){$('[data-hotkey]').hotKey()})}(window.jQuery);+function($){"use strict";var LATIN_MAP={'À':'A','Á':'A','Â':'A','Ã':'A','Ä':'A','Å':'A','Æ':'AE','Ç':'C','È':'E','É':'E','Ê':'E','Ë':'E','Ì':'I','Í':'I','Î':'I','Ï':'I','Ð':'D','Ñ':'N','Ò':'O','Ó':'O','Ô':'O','Õ':'O','Ö':'O','Ő':'O','Ø':'O','Ù':'U','Ú':'U','Û':'U','Ü':'U','Ű':'U','Ý':'Y','Þ':'TH','Ÿ':'Y','ß':'ss','à':'a','á':'a','â':'a','ã':'a','ä':'a','å':'a','æ':'ae','ç':'c','è':'e','é':'e','ê':'e','ë':'e','ì':'i','í':'i','î':'i','ï':'i','ð':'d','ñ':'n','ò':'o','ó':'o','ô':'o','õ':'o','ö':'o','ő':'o','ø':'o','ō':'o','œ':'oe','ù':'u','ú':'u','û':'u','ü':'u','ű':'u','ý':'y','þ':'th','ÿ':'y'},LATIN_SYMBOLS_MAP={'©':'(c)'},GREEK_MAP={'α':'a','β':'b','γ':'g','δ':'d','ε':'e','ζ':'z','η':'h','θ':'8','ι':'i','κ':'k','λ':'l','μ':'m','ν':'n','ξ':'3','ο':'o','π':'p','ρ':'r','σ':'s','τ':'t','υ':'y','φ':'f','χ':'x','ψ':'ps','ω':'w','ά':'a','έ':'e','ί':'i','ό':'o','ύ':'y','ή':'h','ώ':'w','ς':'s','ϊ':'i','ΰ':'y','ϋ':'y','ΐ':'i','Α':'A','Β':'B','Γ':'G','Δ':'D','Ε':'E','Ζ':'Z','Η':'H','Θ':'8','Ι':'I','Κ':'K','Λ':'L','Μ':'M','Ν':'N','Ξ':'3','Ο':'O','Π':'P','Ρ':'R','Σ':'S','Τ':'T','Υ':'Y','Φ':'F','Χ':'X','Ψ':'PS','Ω':'W','Ά':'A','Έ':'E','Ί':'I','Ό':'O','Ύ':'Y','Ή':'H','Ώ':'W','Ϊ':'I','Ϋ':'Y'},TURKISH_MAP={'ş':'s','Ş':'S','ı':'i','İ':'I','ç':'c','Ç':'C','ü':'u','Ü':'U','ö':'o','Ö':'O','ğ':'g','Ğ':'G'},RUSSIAN_MAP={'а':'a','б':'b','в':'v','г':'g','д':'d','е':'e','ё':'yo','ж':'zh','з':'z','и':'i','й':'j','к':'k','л':'l','м':'m','н':'n','о':'o','п':'p','р':'r','с':'s','т':'t','у':'u','ф':'f','х':'h','ц':'c','ч':'ch','ш':'sh','щ':'sh','ъ':'','ы':'y','ь':'','э':'e','ю':'yu','я':'ya','А':'A','Б':'B','В':'V','Г':'G','Д':'D','Е':'E','Ё':'Yo','Ж':'Zh','З':'Z','И':'I','Й':'J','К':'K','Л':'L','М':'M','Н':'N','О':'O','П':'P','Р':'R','С':'S','Т':'T','У':'U','Ф':'F','Х':'H','Ц':'C','Ч':'Ch','Ш':'Sh','Щ':'Sh','Ъ':'','Ы':'Y','Ь':'','Э':'E','Ю':'Yu','Я':'Ya'},UKRAINIAN_MAP={'Є':'Ye','І':'I','Ї':'Yi','Ґ':'G','є':'ye','і':'i','ї':'yi','ґ':'g'},CZECH_MAP={'č':'c','ď':'d','ě':'e','ň':'n','ř':'r','š':'s','ť':'t','ů':'u','ž':'z','Č':'C','Ď':'D','Ě':'E','Ň':'N','Ř':'R','Š':'S','Ť':'T','Ů':'U','Ž':'Z'},POLISH_MAP={'ą':'a','ć':'c','ę':'e','ł':'l','ń':'n','ó':'o','ś':'s','ź':'z','ż':'z','Ą':'A','Ć':'C','Ę':'E','Ł':'L','Ń':'N','Ó':'O','Ś':'S','Ź':'Z','Ż':'Z'},LATVIAN_MAP={'ā':'a','č':'c','ē':'e','ģ':'g','ī':'i','ķ':'k','ļ':'l','ņ':'n','š':'s','ū':'u','ž':'z','Ā':'A','Č':'C','Ē':'E','Ģ':'G','Ī':'I','Ķ':'K','Ļ':'L','Ņ':'N','Š':'S','Ū':'U','Ž':'Z'},ARABIC_MAP={'أ':'a','ب':'b','ت':'t','ث':'th','ج':'g','ح':'h','خ':'kh','د':'d','ذ':'th','ر':'r','ز':'z','س':'s','ش':'sh','ص':'s','ض':'d','ط':'t','ظ':'th','ع':'aa','غ':'gh','ف':'f','ق':'k','ك':'k','ل':'l','م':'m','ن':'n','ه':'h','و':'o','ي':'y'},PERSIAN_MAP={'آ':'a','ا':'a','پ':'p','چ':'ch','ژ':'zh','ک':'k','گ':'gh','ی':'y'},LITHUANIAN_MAP={'ą':'a','č':'c','ę':'e','ė':'e','į':'i','š':'s','ų':'u','ū':'u','ž':'z','Ą':'A','Č':'C','Ę':'E','Ė':'E','Į':'I','Š':'S','Ų':'U','Ū':'U','Ž':'Z'},SERBIAN_MAP={'ђ':'dj','ј':'j','љ':'lj','њ':'nj','ћ':'c','џ':'dz','đ':'dj','Ђ':'Dj','Ј':'j','Љ':'Lj','Њ':'Nj','Ћ':'C','Џ':'Dz','Đ':'Dj'},AZERBAIJANI_MAP={'ç':'c','ə':'e','ğ':'g','ı':'i','ö':'o','ş':'s','ü':'u','Ç':'C','Ə':'E','Ğ':'G','İ':'I','Ö':'O','Ş':'S','Ü':'U'},SPECIFIC_MAPS={'de':{'Ä':'AE','Ö':'OE','Ü':'UE','ä':'ae','ö':'oe','ü':'ue'}},ALL_MAPS=[LATIN_MAP,LATIN_SYMBOLS_MAP,GREEK_MAP,TURKISH_MAP,RUSSIAN_MAP,UKRAINIAN_MAP,CZECH_MAP,POLISH_MAP,LATVIAN_MAP,ARABIC_MAP,PERSIAN_MAP,LITHUANIAN_MAP,SERBIAN_MAP,AZERBAIJANI_MAP] +$(document).render(function(){$('[data-hotkey]').hotKey()})}(window.jQuery);+function($){"use strict";var LATIN_MAP={'À':'A','Á':'A','Â':'A','Ã':'A','Ä':'A','Å':'A','Æ':'AE','Ç':'C','È':'E','É':'E','Ê':'E','Ë':'E','Ì':'I','Í':'I','Î':'I','Ï':'I','Ð':'D','Ñ':'N','Ò':'O','Ó':'O','Ô':'O','Õ':'O','Ö':'O','Ő':'O','Ø':'O','Ù':'U','Ú':'U','Û':'U','Ü':'U','Ű':'U','Ý':'Y','Þ':'TH','Ÿ':'Y','ß':'ss','à':'a','á':'a','â':'a','ã':'a','ä':'a','å':'a','æ':'ae','ç':'c','è':'e','é':'e','ê':'e','ë':'e','ì':'i','í':'i','î':'i','ï':'i','ð':'d','ñ':'n','ò':'o','ó':'o','ô':'o','õ':'o','ö':'o','ő':'o','ø':'o','ō':'o','œ':'oe','ù':'u','ú':'u','û':'u','ü':'u','ű':'u','ý':'y','þ':'th','ÿ':'y'},LATIN_SYMBOLS_MAP={'©':'(c)'},GREEK_MAP={'α':'a','β':'b','γ':'g','δ':'d','ε':'e','ζ':'z','η':'h','θ':'8','ι':'i','κ':'k','λ':'l','μ':'m','ν':'n','ξ':'3','ο':'o','π':'p','ρ':'r','σ':'s','τ':'t','υ':'y','φ':'f','χ':'x','ψ':'ps','ω':'w','ά':'a','έ':'e','ί':'i','ό':'o','ύ':'y','ή':'h','ώ':'w','ς':'s','ϊ':'i','ΰ':'y','ϋ':'y','ΐ':'i','Α':'A','Β':'B','Γ':'G','Δ':'D','Ε':'E','Ζ':'Z','Η':'H','Θ':'8','Ι':'I','Κ':'K','Λ':'L','Μ':'M','Ν':'N','Ξ':'3','Ο':'O','Π':'P','Ρ':'R','Σ':'S','Τ':'T','Υ':'Y','Φ':'F','Χ':'X','Ψ':'PS','Ω':'W','Ά':'A','Έ':'E','Ί':'I','Ό':'O','Ύ':'Y','Ή':'H','Ώ':'W','Ϊ':'I','Ϋ':'Y'},TURKISH_MAP={'ş':'s','Ş':'S','ı':'i','İ':'I','ç':'c','Ç':'C','ü':'u','Ü':'U','ö':'o','Ö':'O','ğ':'g','Ğ':'G'},RUSSIAN_MAP={'а':'a','б':'b','в':'v','г':'g','д':'d','е':'e','ё':'yo','ж':'zh','з':'z','и':'i','й':'j','к':'k','л':'l','м':'m','н':'n','о':'o','п':'p','р':'r','с':'s','т':'t','у':'u','ф':'f','х':'h','ц':'c','ч':'ch','ш':'sh','щ':'sh','ъ':'','ы':'y','ь':'','э':'e','ю':'yu','я':'ya','А':'A','Б':'B','В':'V','Г':'G','Д':'D','Е':'E','Ё':'Yo','Ж':'Zh','З':'Z','И':'I','Й':'J','К':'K','Л':'L','М':'M','Н':'N','О':'O','П':'P','Р':'R','С':'S','Т':'T','У':'U','Ф':'F','Х':'H','Ц':'C','Ч':'Ch','Ш':'Sh','Щ':'Sh','Ъ':'','Ы':'Y','Ь':'','Э':'E','Ю':'Yu','Я':'Ya'},UKRAINIAN_MAP={'Є':'Ye','І':'I','Ї':'Yi','Ґ':'G','є':'ye','і':'i','ї':'yi','ґ':'g'},CZECH_MAP={'č':'c','ď':'d','ě':'e','ň':'n','ř':'r','š':'s','ť':'t','ů':'u','ž':'z','Č':'C','Ď':'D','Ě':'E','Ň':'N','Ř':'R','Š':'S','Ť':'T','Ů':'U','Ž':'Z'},POLISH_MAP={'ą':'a','ć':'c','ę':'e','ł':'l','ń':'n','ó':'o','ś':'s','ź':'z','ż':'z','Ą':'A','Ć':'C','Ę':'E','Ł':'L','Ń':'N','Ó':'O','Ś':'S','Ź':'Z','Ż':'Z'},LATVIAN_MAP={'ā':'a','č':'c','ē':'e','ģ':'g','ī':'i','ķ':'k','ļ':'l','ņ':'n','š':'s','ū':'u','ž':'z','Ā':'A','Č':'C','Ē':'E','Ģ':'G','Ī':'I','Ķ':'K','Ļ':'L','Ņ':'N','Š':'S','Ū':'U','Ž':'Z'},ARABIC_MAP={'أ':'a','ب':'b','ت':'t','ث':'th','ج':'g','ح':'h','خ':'kh','د':'d','ذ':'th','ر':'r','ز':'z','س':'s','ش':'sh','ص':'s','ض':'d','ط':'t','ظ':'th','ع':'aa','غ':'gh','ف':'f','ق':'k','ك':'k','ل':'l','م':'m','ن':'n','ه':'h','و':'o','ي':'y'},PERSIAN_MAP={'آ':'a','ا':'a','پ':'p','چ':'ch','ژ':'zh','ک':'k','گ':'gh','ی':'y'},LITHUANIAN_MAP={'ą':'a','č':'c','ę':'e','ė':'e','į':'i','š':'s','ų':'u','ū':'u','ž':'z','Ą':'A','Č':'C','Ę':'E','Ė':'E','Į':'I','Š':'S','Ų':'U','Ū':'U','Ž':'Z'},SERBIAN_MAP={'ђ':'dj','ј':'j','љ':'lj','њ':'nj','ћ':'c','џ':'dz','đ':'dj','Ђ':'Dj','Ј':'j','Љ':'Lj','Њ':'Nj','Ћ':'C','Џ':'Dz','Đ':'Dj'},AZERBAIJANI_MAP={'ç':'c','ə':'e','ğ':'g','ı':'i','ö':'o','ş':'s','ü':'u','Ç':'C','Ə':'E','Ğ':'G','İ':'I','Ö':'O','Ş':'S','Ü':'U'},ROMANIAN_MAP={'ă':'a','â':'a','î':'i','ș':'s','ț':'t','Ă':'A','Â':'A','Î':'I','Ș':'S','Ț':'T'},SPECIFIC_MAPS={'de':{'Ä':'AE','Ö':'OE','Ü':'UE','ä':'ae','ö':'oe','ü':'ue'}},ALL_MAPS=[LATIN_MAP,LATIN_SYMBOLS_MAP,GREEK_MAP,TURKISH_MAP,RUSSIAN_MAP,UKRAINIAN_MAP,CZECH_MAP,POLISH_MAP,LATVIAN_MAP,ARABIC_MAP,PERSIAN_MAP,LITHUANIAN_MAP,SERBIAN_MAP,AZERBAIJANI_MAP,ROMANIAN_MAP] var removeList=["a","an","as","at","before","but","by","for","from","is","in","into","like","of","off","on","onto","per","since","than","the","this","that","to","up","via","with"] var locale=$('meta[name="backend-locale"]').attr('content') var Downcoder={Initialize:function(){if(Downcoder.map){return;} From 556b951e63a169d4f3e64ebc51d4d5e3844a4f45 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Sat, 6 Aug 2016 09:55:42 +1000 Subject: [PATCH 07/28] Calling dynamic methods for extended components In the spirit of #2288 --- modules/cms/classes/Controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cms/classes/Controller.php b/modules/cms/classes/Controller.php index 3c2b5a255..cecf15180 100644 --- a/modules/cms/classes/Controller.php +++ b/modules/cms/classes/Controller.php @@ -1268,13 +1268,13 @@ class Controller public function findComponentByHandler($handler) { foreach ($this->page->components as $component) { - if (method_exists($component, $handler)) { + if ($component->methodExists($handler)) { return $component; } } foreach ($this->layout->components as $component) { - if (method_exists($component, $handler)) { + if ($component->methodExists($handler)) { return $component; } } From 7f3527759cec853404ac575236fd79df0abf6c8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szab=C3=B3=20Gerg=C5=91?= Date: Sat, 6 Aug 2016 03:46:29 +0200 Subject: [PATCH 08/28] Update the Hungarian translate (#2271) * Update the Hungarian translate --- modules/backend/lang/hu/lang.php | 27 ++++++++++++++++++--------- modules/cms/lang/hu/lang.php | 3 ++- modules/system/lang/hu/client.php | 12 ++++++------ modules/system/lang/hu/lang.php | 2 +- modules/system/lang/hu/validation.php | 19 ++++++++++++++----- 5 files changed, 41 insertions(+), 22 deletions(-) diff --git a/modules/backend/lang/hu/lang.php b/modules/backend/lang/hu/lang.php index 874d64cc3..6588cd9a8 100644 --- a/modules/backend/lang/hu/lang.php +++ b/modules/backend/lang/hu/lang.php @@ -2,7 +2,7 @@ return [ 'auth' => [ - 'title' => 'Adminisztrációs oldal' + 'title' => 'Admin felület' ], 'field' => [ 'invalid_type' => 'A(z) :type mezőtípus érvénytelen.', @@ -19,6 +19,11 @@ return [ 'help' => 'Ön nem rendelkezik a szükséges engedélyekkel ennek a lapnak a megtekintéséhez.', 'cms_link' => 'Vissza a látogatói oldalra' ], + 'no_database' => [ + 'label' => 'Hiányzó adatbázis', + 'help' => 'Az admin felület eléréséhez szükséges az adatbázis. Kérjük ellenőrizze a hozzáférési adatok helyességét majd próbálja újra.', + 'cms_link' => 'Vissza a weboldalra' + ], 'invalid_token' => [ 'label' => 'Érvénytelen a biztonsági kód.' ] @@ -123,6 +128,10 @@ return [ 'allow' => 'Engedélyezés', 'inherit' => 'Öröklés', 'deny' => 'Tiltás', + 'activated' => 'Aktivált', + 'last_login' => 'Bejelentkezve', + 'created_at' => 'Létrehozva', + 'updated_at' => 'Módosítva', 'group' => [ 'name' => 'Csoport', 'name_comment' => 'A név a csoport létrehozásnál és szerkesztésnél jelenik meg.', @@ -165,7 +174,7 @@ return [ 'records_per_page' => 'Listázás', 'records_per_page_help' => 'Adja meg az elemek laponként megjelenítendő számát. Minél nagyobbat választ, annál több időbe kerül a lista frissítése. Az ajánlott érték 20 és 40 közötti.', 'check' => 'Bejelöl', - 'delete_selected' => 'Kiválasztottak törlése', + 'delete_selected' => 'Eltávolítás', 'delete_selected_empty' => 'A törléshez előbb ki kell választani elemet.', 'delete_selected_confirm' => 'Töröljük a kiválasztott elemeket?', 'delete_selected_success' => 'Sikeresen törölve lettek a kiválasztott elemek.', @@ -322,16 +331,16 @@ return [ 'theme' => 'Színséma', 'markup_styles' => 'Stílusok', 'custom_styles' => 'Egyéni megjelenés', - 'custom styles_comment' => 'Saját stílusok megadása, amik a HTML szerkesztőre is vonatkoznak.', - 'markup_classes' => 'CSS osztályok', + 'custom styles_comment' => 'Saját stílusok és megjelenések megadása.', + 'markup_classes' => 'Értékek', 'paragraph' => 'Bekezdés', 'link' => 'Hivatkozás', 'table' => 'Táblázat', 'table_cell' => 'Táblázat cella', 'image' => 'Kép', - 'label' => 'Címke', - 'class_name' => 'Osztály neve', - 'markup_tags' => 'HTML elemek', + 'label' => 'Megnevezés', + 'class_name' => 'CSS osztály', + 'markup_tags' => 'Szabályok', 'allowed_empty_tags' => 'Engedélyezett üres elemek', 'allowed_empty_tags_comment' => 'Azon HTML elemek, amik üres érték esetén sem lesznek eltávolítva.', 'allowed_tags' => 'Engedélyezett elemek', @@ -381,7 +390,7 @@ return [ 'region' => 'Régió', 'code_editor' => 'Kódszerkesztő', 'timezone' => 'Időzóna', - 'timezone_comment' => 'Dátumok megjelenítése a választott időzóna alapján.', + 'timezone_comment' => 'Válassza ki az alapértelmezett időzónát.', 'locale' => 'Nyelv', 'locale_comment' => 'Válassza ki az alapértelmezett nyelvet.' ], @@ -447,7 +456,7 @@ return [ 'required_match_column_error' => 'Please specify a match for the required field :label.', 'empty_export_columns_error' => 'Kérjük adjon meg néhány oszlopot az exportáláshoz.', 'behavior_missing_uselist_error' => 'You must implement the controller behavior ListController with the export "useList" option enabled.', - 'missing_model_class_error' => 'Please specify the modelClass property for :type', + 'missing_model_class_error' => 'Kérjük adja meg a modelClass tulajdonságát ehhez: :type', 'missing_column_id_error' => 'Hiányzó oszlop azonosító', 'unknown_column_error' => 'Ismeretlen oszlop', 'encoding_not_supported_error' => 'Source file encoding is not recognized. Please select the custom file format option with the proper encoding to import your file.', diff --git a/modules/cms/lang/hu/lang.php b/modules/cms/lang/hu/lang.php index 62b6f1543..b2b1e13df 100644 --- a/modules/cms/lang/hu/lang.php +++ b/modules/cms/lang/hu/lang.php @@ -94,7 +94,8 @@ return [ 'settings_menu' => 'Karbantartás', 'settings_menu_description' => 'Szolgáltatás aktiválása és testreszabása.', 'is_enabled' => 'Karbantartás engedélyezése', - 'is_enabled_comment' => 'Aktiválása esetén a weboldal látogatói csak a kiválasztott lapot fogják látni.' + 'is_enabled_comment' => 'Aktiválása esetén a weboldal látogatói csak a kiválasztott lapot fogják látni.', + 'hint' => 'Karbantartás módban a lentebb megadott lap fog megjelenni azon látogatók számára, akik nincsennek bejelentkezve az admin felületre.' ], 'page' => [ 'not_found_name' => "A következő lap nem található: ':name'", diff --git a/modules/system/lang/hu/client.php b/modules/system/lang/hu/client.php index 022b6e97d..6d722d0e0 100644 --- a/modules/system/lang/hu/client.php +++ b/modules/system/lang/hu/client.php @@ -68,23 +68,23 @@ return [ 'filter_button_text' => 'Szűrés', 'reset_button_text' => 'Alaphelyzet', 'date_placeholder' => 'Dátum', - 'after_placeholder' => 'Utána', - 'before_placeholder' => 'Előtte' + 'after_placeholder' => 'Kezdete', + 'before_placeholder' => 'Vége' ] ], 'eventlog' => [ - 'show_stacktrace' => 'Mutatás', + 'show_stacktrace' => 'Részletek', 'hide_stacktrace' => 'Rejtés', 'tabs' => [ 'formatted' => 'Formázott', 'raw' => 'Tömörített', ], 'editor' => [ - 'title' => 'Válassza ki melyik szerkesztőt szeretné használni', - 'description' => 'Your environnement must be configured to listen to one of these URL schemes.', + 'title' => 'Forráskód szerkesztő', + 'description' => 'Your operating system should be configured to listen to one of these URL schemes.', 'openWith' => 'Megnyitás mint', - 'remember_choice' => 'Megnyitás és munkamenet megjegyzése', + 'remember_choice' => 'Kiválasztott beállítások megjegyzése ebben a munkamenetben', 'open' => 'Megnyitás', 'cancel' => 'Mégsem' ] diff --git a/modules/system/lang/hu/lang.php b/modules/system/lang/hu/lang.php index 4ae40a265..6c1688b2c 100644 --- a/modules/system/lang/hu/lang.php +++ b/modules/system/lang/hu/lang.php @@ -325,7 +325,7 @@ return [ 'id' => 'Azonosító', 'id_label' => 'Napló azonosító', 'count' => 'Számláló', - 'referer' => 'Hivatkozók', + 'referer' => 'Hivatkozás', 'url' => 'Webcím', 'status_code' => 'Állapotkód', 'preview_title' => 'Kérelem' diff --git a/modules/system/lang/hu/validation.php b/modules/system/lang/hu/validation.php index cdfb28895..b37391bc8 100644 --- a/modules/system/lang/hu/validation.php +++ b/modules/system/lang/hu/validation.php @@ -95,11 +95,20 @@ return [ */ 'attributes' => [ - 'nev' => 'név', - 'email' => 'e-mail', - 'telefon' => 'telefon', - 'targy' => 'tárgy', - 'uzenet' => 'üzenet', + 'nev' => 'név', + 'vnev' => 'vezetéknév', + 'knev' => 'keresztnév', + 'email' => 'e-mail', + 'telefon' => 'telefonszám', + 'mobil' => 'mobilszám', + 'targy' => 'tárgy', + 'uzenet' => 'üzenet', + 'varos' => 'város', + 'telepules' => 'település', + 'cim' => 'cím', + 'utca' => 'útca', + 'irszam' => 'irányítószám', + 'kep' => 'kép', ], ]; From 35e8b8f9fb1c9f2cb7567e196b6ea6c3315b2c69 Mon Sep 17 00:00:00 2001 From: coderwen Date: Sat, 6 Aug 2016 09:53:23 +0800 Subject: [PATCH 09/28] Add missing Chinese translation (#2291) Various chinese translations --- modules/backend/lang/zh-cn/lang.php | 6 ++++-- modules/cms/lang/zh-cn/lang.php | 9 ++++++--- modules/system/lang/zh-cn/lang.php | 7 +++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/modules/backend/lang/zh-cn/lang.php b/modules/backend/lang/zh-cn/lang.php index 785868aa0..d7ecd4ddb 100644 --- a/modules/backend/lang/zh-cn/lang.php +++ b/modules/backend/lang/zh-cn/lang.php @@ -79,7 +79,7 @@ return [ 'login' => '登录', 'first_name' => '名', 'last_name' => '姓', - 'full_name' => '全民', + 'full_name' => '全名', 'email' => '邮件', 'groups' => '团队', 'groups_comment' => '指明这个人属于哪个组.', @@ -99,9 +99,11 @@ return [ 'deny' => '拒绝', 'group' => [ 'name' => '组', + 'name_comment' => '该名字将在群组列表中展示', 'name_field' => '名字', 'description_field' => '描述', - 'is_new_user_default_field' => '默认增加新管理员到这个组', + 'is_new_user_default_field_label' => '默认组', + 'is_new_user_default_field_comment' => '默认增加新管理员到这个组', 'code_field' => '代码', 'code_comment' => '如果你想访问 API, 请输入唯一码.', 'menu_label' => '群组', diff --git a/modules/cms/lang/zh-cn/lang.php b/modules/cms/lang/zh-cn/lang.php index baf99f483..c1ad74dcc 100644 --- a/modules/cms/lang/zh-cn/lang.php +++ b/modules/cms/lang/zh-cn/lang.php @@ -10,7 +10,8 @@ return [ 'invalid_file_extension'=>'不合法的文件扩展: :invalid. 允许的扩展: :allowed.', 'error_deleting' => "删除模板文件 ':name' 错误. 请检查写权限.", 'delete_success' => '模板成功删除: :count.', - 'file_name_required' => '需要文件名字段.' + 'file_name_required' => '需要文件名字段.', + 'safe_mode_enabled' => '安全模式已经启用.', ], 'dashboard' => [ 'active_theme' => [ @@ -91,7 +92,8 @@ return [ 'settings_menu' => '维护模式', 'settings_menu_description' => '配置维护模式页面和开关设置.', 'is_enabled' => '启用维护模式', - 'is_enabled_comment' => '当启用时, 网站访问者会看到下述页面.' + 'is_enabled_comment' => '当启用时, 网站访问者会看到下述页面.', + 'hint' => '维护模式将对未登陆后台的访客展示维护页面.', ], 'page' => [ 'not_found_name' => "页面 ':name' 找不到", @@ -237,7 +239,8 @@ return [ 'manage_pages' => '管理页面', 'manage_layouts' => '管理布局', 'manage_partials' => '管理部件', - 'manage_themes' => '管理主题' + 'manage_themes' => '管理主题', + 'manage_media' => '管理媒体' ], 'media' => [ 'invalid_path' => "不合法的路径: ':path'.", diff --git a/modules/system/lang/zh-cn/lang.php b/modules/system/lang/zh-cn/lang.php index 5a17d75cd..ded03b822 100644 --- a/modules/system/lang/zh-cn/lang.php +++ b/modules/system/lang/zh-cn/lang.php @@ -29,7 +29,7 @@ return [ 'sk' => 'Slovak (Slovakia)', 'tr' => 'Turkish', 'zh-cn' => '简体中文', - 'zh-tw' => 'Chinese (Taiwan)', + 'zh-tw' => '繁體中文', 'el' => 'Greek' ], 'directory' => [ @@ -300,7 +300,8 @@ return [ 'count' => '次数', 'referer' => '来源', 'url' => 'URL', - 'status_code' => '状态' + 'status_code' => '状态', + 'preview_title'=> '预览事件日志' ], 'permissions' => [ 'name' => '系统', @@ -310,6 +311,8 @@ return [ 'manage_mail_templates' => '管理邮件模板', 'manage_mail_settings' => '管理邮件设置', 'manage_other_administrators' => '管理其他管理员', + 'manage_preferences' => '管理后台偏好设置', + 'manage_editor' => '管理代码编辑器偏好设置', 'view_the_dashboard' => '查看仪表盘', 'manage_branding' => '自定义后台' ] From 61ac68fd5e9f84d16a435f4f7b678195538151d9 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Sat, 6 Aug 2016 13:14:46 +1000 Subject: [PATCH 10/28] Allows relationRender to specify readOnly mode Fixes #2245 --- .../backend/behaviors/RelationController.php | 54 +++++++++++++++---- .../partials/_container.htm | 7 +-- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 1bd618578..63a275995 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -30,6 +30,11 @@ class RelationController extends ControllerBehavior */ const PARAM_MODE = '_relation_mode'; + /** + * @var const Postback parameter for read only mode. + */ + const PARAM_READ_ONLY = '_relation_read_only'; + /** * @var Backend\Classes\WidgetBase Reference to the search widget object. */ @@ -237,6 +242,7 @@ class RelationController extends ControllerBehavior $this->vars['relationViewWidget'] = $this->viewWidget; $this->vars['relationViewModel'] = $this->viewModel; $this->vars['relationPivotWidget'] = $this->pivotWidget; + $this->vars['relationReadOnly'] = $this->readOnly ? 1 : 0; $this->vars['relationSessionKey'] = $this->relationGetSessionKey(); } @@ -310,7 +316,6 @@ class RelationController extends ControllerBehavior $this->relationObject = $this->model->{$field}(); $this->relationModel = $this->relationObject->getRelated(); - $this->readOnly = $this->getConfig('readOnly'); $this->deferredBinding = $this->getConfig('deferredBinding') || !$this->model->exists; $this->toolbarButtons = $this->evalToolbarButtons(); $this->viewMode = $this->evalViewMode(); @@ -358,6 +363,13 @@ class RelationController extends ControllerBehavior $this->pivotWidget->bindToController(); } } + + /* + * Read only mode + */ + if (post(self::PARAM_READ_ONLY, $this->getConfig('readOnly'))) { + $this->makeReadOnly(); + } } /** @@ -374,8 +386,6 @@ class RelationController extends ControllerBehavior $options = ['sessionKey' => $options]; } - $this->prepareVars(); - /* * Session key */ @@ -383,6 +393,15 @@ class RelationController extends ControllerBehavior $this->sessionKey = $options['sessionKey']; } + /* + * Read only mode + */ + if (isset($options['readOnly']) && $options['readOnly']) { + $this->makeReadOnly(); + } + + $this->prepareVars(); + /* * Determine the partial to use based on the supplied section option */ @@ -506,11 +525,9 @@ class RelationController extends ControllerBehavior /* * Add buttons to toolbar */ - $defaultButtons = null; - - if (!$this->readOnly && $this->toolbarButtons) { - $defaultButtons = '~/modules/backend/behaviors/relationcontroller/partials/_toolbar.htm'; - } + $defaultButtons = $this->toolbarButtons + ? '~/modules/backend/behaviors/relationcontroller/partials/_toolbar.htm' + : null; $defaultConfig['buttons'] = $this->getConfig('view[toolbarPartial]', $defaultButtons); @@ -578,7 +595,7 @@ class RelationController extends ControllerBehavior $config->showSorting = $this->getConfig('view[showSorting]', true); $config->defaultSort = $this->getConfig('view[defaultSort]'); $config->recordsPerPage = $this->getConfig('view[recordsPerPage]'); - $config->showCheckboxes = $this->getConfig('view[showCheckboxes]', !$this->readOnly); + $config->showCheckboxes = $this->getConfig('view[showCheckboxes]', true); $config->recordUrl = $this->getConfig('view[recordUrl]', null); $defaultOnClick = sprintf( @@ -1416,10 +1433,9 @@ class RelationController extends ControllerBehavior case 'morphMany': if ($this->eventTarget == 'button-add') return 'list'; else return 'form'; - case 'morphMany': + case 'morphMany': return 'form'; } - } /** @@ -1444,6 +1460,22 @@ class RelationController extends ControllerBehavior return $context; } + /** + * Apply read only mode. + */ + protected function makeReadOnly() + { + $this->readOnly = true; + + if ($this->toolbarWidget && !$this->getConfig('view[toolbarPartial]', false)) { + $this->toolbarWidget->buttons = null; + } + + if ($this->viewWidget && $this->viewMode == 'multi' && !$this->getConfig('view[showCheckboxes]', false)) { + $this->viewWidget->showCheckboxes = false; + } + } + /** * Returns the configuration for a mode (view, manage, pivot) for an * expected type (list, form). Uses fallback configuration. diff --git a/modules/backend/behaviors/relationcontroller/partials/_container.htm b/modules/backend/behaviors/relationcontroller/partials/_container.htm index 9b2ddc976..e23b39885 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_container.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_container.htm @@ -1,11 +1,12 @@
relationRenderToolbar()): ?>
- +
@@ -14,4 +15,4 @@ relationRenderView() ?>
- \ No newline at end of file + From becc4ca5d1a45d358398288a91d15e89c01d8120 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Mon, 8 Aug 2016 08:26:17 +1000 Subject: [PATCH 11/28] Revert "Fix the background for flex-layout panel like in RainLab.Builder" --- modules/backend/assets/less/controls/common.less | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/backend/assets/less/controls/common.less b/modules/backend/assets/less/controls/common.less index 59346d211..cc1b8ee44 100644 --- a/modules/backend/assets/less/controls/common.less +++ b/modules/backend/assets/less/controls/common.less @@ -45,8 +45,7 @@ } .layout.control-tabs.oc-logo-transparent:not(.has-tabs), -.layout-cell.oc-logo-transparent, -.flex-layout-column.oc-logo-transparent { +.layout-cell.oc-logo-transparent { background-size: 50% auto; background-repeat: no-repeat; background-image: url(../images/october-logo.svg); From c4007dd5707805da356aa4d10dbb3bfe4d10663a Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Mon, 8 Aug 2016 08:28:14 +1000 Subject: [PATCH 12/28] Recompile assets --- modules/backend/assets/css/october.css | 4 ++-- modules/system/assets/js/lang/lang.hu.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/backend/assets/css/october.css b/modules/backend/assets/css/october.css index 2650d0d44..8f1398267 100644 --- a/modules/backend/assets/css/october.css +++ b/modules/backend/assets/css/october.css @@ -250,8 +250,8 @@ .tooltip.in{opacity:1;filter:alpha(opacity=100)} .oc-logo-white{background-image:url(../images/october-logo-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} .oc-logo{background-image:url(../images/october-logo.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} -.layout.control-tabs.oc-logo-transparent:not(.has-tabs),.layout-cell.oc-logo-transparent,.flex-layout-column.oc-logo-transparent{background-size:50% auto;background-repeat:no-repeat;background-image:url(../images/october-logo.svg);background-position:50% 50%;position:relative} -.layout.control-tabs.oc-logo-transparent:not(.has-tabs):after,.layout-cell.oc-logo-transparent:after,.flex-layout-column.oc-logo-transparent:after{content:'';display:table-cell;position:absolute;left:0;top:0;height:100%;width:100%;background:rgba(249,249,249,0.7)} +.layout.control-tabs.oc-logo-transparent:not(.has-tabs),.layout-cell.oc-logo-transparent{background-size:50% auto;background-repeat:no-repeat;background-image:url(../images/october-logo.svg);background-position:50% 50%;position:relative} +.layout.control-tabs.oc-logo-transparent:not(.has-tabs):after,.layout-cell.oc-logo-transparent:after{content:'';display:table-cell;position:absolute;left:0;top:0;height:100%;width:100%;background:rgba(249,249,249,0.7)} .report-widget{padding:15px;background:white;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:13px} .report-widget h3{font-size:14px;color:#7e8c8d;text-transform:uppercase;font-weight:600;margin-top:0;margin-bottom:30px} .report-widget .height-100{height:100px} diff --git a/modules/system/assets/js/lang/lang.hu.js b/modules/system/assets/js/lang/lang.hu.js index 4997cee74..e48488b8d 100644 --- a/modules/system/assets/js/lang/lang.hu.js +++ b/modules/system/assets/js/lang/lang.hu.js @@ -5,7 +5,7 @@ if ($.oc === undefined) $.oc = {} if ($.oc.langMessages === undefined) $.oc.langMessages = {} $.oc.langMessages['hu'] = $.extend( $.oc.langMessages['hu'] || {}, - {"markdowneditor":{"formatting":"Forr\u00e1sk\u00f3d","quote":"Id\u00e9zet","code":"K\u00f3d","header1":"C\u00edmsor 1","header2":"C\u00edmsor 2","header3":"C\u00edmsor 3","header4":"C\u00edmsor 4","header5":"C\u00edmsor 5","header6":"C\u00edmsor 6","bold":"F\u00e9lk\u00f6v\u00e9r","italic":"D\u00f6lt","unorderedlist":"Rendezett lista","orderedlist":"Sz\u00e1mozott lista","video":"Vide\u00f3","image":"K\u00e9p","link":"Hivatkoz\u00e1s","horizontalrule":"Vonal besz\u00far\u00e1sa","fullscreen":"Teljes k\u00e9perny\u0151","preview":"El\u0151n\u00e9zet"},"mediamanager":{"insert_link":"Hivatkoz\u00e1s besz\u00far\u00e1sa","insert_image":"K\u00e9p besz\u00far\u00e1sa","insert_video":"Vide\u00f3 besz\u00far\u00e1sa","insert_audio":"Audi\u00f3 besz\u00far\u00e1sa","invalid_file_empty_insert":"Hivatkoz\u00e1s k\u00e9sz\u00edt\u00e9s\u00e9hez jel\u00f6lj\u00f6n ki egy sz\u00f6vegr\u00e9szt.","invalid_file_single_insert":"K\u00e9rj\u00fck jel\u00f6lj\u00f6n ki egy f\u00e1jlt.","invalid_image_empty_insert":"V\u00e1lasszon ki legal\u00e1bb egy k\u00e9pet a besz\u00far\u00e1shoz.","invalid_video_empty_insert":"V\u00e1lasszon ki legal\u00e1bb egy vide\u00f3t a besz\u00far\u00e1shoz.","invalid_audio_empty_insert":"V\u00e1lasszon ki legal\u00e1bb egy audi\u00f3t a besz\u00far\u00e1shoz."},"alert":{"confirm_button_text":"OK","cancel_button_text":"M\u00e9gsem"},"datepicker":{"previousMonth":"El\u0151z\u0151 h\u00f3nap","nextMonth":"K\u00f6vetkez\u0151 h\u00f3nap","months":["janu\u00e1r","febru\u00e1r","m\u00e1rcius","\u00e1prilis","m\u00e1jus","j\u00fanius","j\u00falius","augusztus","szeptember","okt\u00f3ber","november","december"],"weekdays":["vas\u00e1rnap","h\u00e9tf\u0151","kedd","szerda","cs\u00fct\u00f6rt\u00f6k","p\u00e9ntek","szombat"],"weekdaysShort":["va","h\u00e9","ke","sze","cs","p\u00e9","szo"]},"filter":{"group":{"all":"\u00f6sszes"},"dates":{"all":"\u00f6sszes","filter_button_text":"Sz\u0171r\u00e9s","reset_button_text":"Alaphelyzet","date_placeholder":"D\u00e1tum","after_placeholder":"Ut\u00e1na","before_placeholder":"El\u0151tte"}},"eventlog":{"show_stacktrace":"Mutat\u00e1s","hide_stacktrace":"Rejt\u00e9s","tabs":{"formatted":"Form\u00e1zott","raw":"T\u00f6m\u00f6r\u00edtett"},"editor":{"title":"V\u00e1lassza ki melyik szerkeszt\u0151t szeretn\u00e9 haszn\u00e1lni","description":"Your environnement must be configured to listen to one of these URL schemes.","openWith":"Megnyit\u00e1s mint","remember_choice":"Megnyit\u00e1s \u00e9s munkamenet megjegyz\u00e9se","open":"Megnyit\u00e1s","cancel":"M\u00e9gsem"}}} + {"markdowneditor":{"formatting":"Forr\u00e1sk\u00f3d","quote":"Id\u00e9zet","code":"K\u00f3d","header1":"C\u00edmsor 1","header2":"C\u00edmsor 2","header3":"C\u00edmsor 3","header4":"C\u00edmsor 4","header5":"C\u00edmsor 5","header6":"C\u00edmsor 6","bold":"F\u00e9lk\u00f6v\u00e9r","italic":"D\u00f6lt","unorderedlist":"Rendezett lista","orderedlist":"Sz\u00e1mozott lista","video":"Vide\u00f3","image":"K\u00e9p","link":"Hivatkoz\u00e1s","horizontalrule":"Vonal besz\u00far\u00e1sa","fullscreen":"Teljes k\u00e9perny\u0151","preview":"El\u0151n\u00e9zet"},"mediamanager":{"insert_link":"Hivatkoz\u00e1s besz\u00far\u00e1sa","insert_image":"K\u00e9p besz\u00far\u00e1sa","insert_video":"Vide\u00f3 besz\u00far\u00e1sa","insert_audio":"Audi\u00f3 besz\u00far\u00e1sa","invalid_file_empty_insert":"Hivatkoz\u00e1s k\u00e9sz\u00edt\u00e9s\u00e9hez jel\u00f6lj\u00f6n ki egy sz\u00f6vegr\u00e9szt.","invalid_file_single_insert":"K\u00e9rj\u00fck jel\u00f6lj\u00f6n ki egy f\u00e1jlt.","invalid_image_empty_insert":"V\u00e1lasszon ki legal\u00e1bb egy k\u00e9pet a besz\u00far\u00e1shoz.","invalid_video_empty_insert":"V\u00e1lasszon ki legal\u00e1bb egy vide\u00f3t a besz\u00far\u00e1shoz.","invalid_audio_empty_insert":"V\u00e1lasszon ki legal\u00e1bb egy audi\u00f3t a besz\u00far\u00e1shoz."},"alert":{"confirm_button_text":"OK","cancel_button_text":"M\u00e9gsem"},"datepicker":{"previousMonth":"El\u0151z\u0151 h\u00f3nap","nextMonth":"K\u00f6vetkez\u0151 h\u00f3nap","months":["janu\u00e1r","febru\u00e1r","m\u00e1rcius","\u00e1prilis","m\u00e1jus","j\u00fanius","j\u00falius","augusztus","szeptember","okt\u00f3ber","november","december"],"weekdays":["vas\u00e1rnap","h\u00e9tf\u0151","kedd","szerda","cs\u00fct\u00f6rt\u00f6k","p\u00e9ntek","szombat"],"weekdaysShort":["va","h\u00e9","ke","sze","cs","p\u00e9","szo"]},"filter":{"group":{"all":"\u00f6sszes"},"dates":{"all":"\u00f6sszes","filter_button_text":"Sz\u0171r\u00e9s","reset_button_text":"Alaphelyzet","date_placeholder":"D\u00e1tum","after_placeholder":"Kezdete","before_placeholder":"V\u00e9ge"}},"eventlog":{"show_stacktrace":"R\u00e9szletek","hide_stacktrace":"Rejt\u00e9s","tabs":{"formatted":"Form\u00e1zott","raw":"T\u00f6m\u00f6r\u00edtett"},"editor":{"title":"Forr\u00e1sk\u00f3d szerkeszt\u0151","description":"Your operating system should be configured to listen to one of these URL schemes.","openWith":"Megnyit\u00e1s mint","remember_choice":"Kiv\u00e1lasztott be\u00e1ll\u00edt\u00e1sok megjegyz\u00e9se ebben a munkamenetben","open":"Megnyit\u00e1s","cancel":"M\u00e9gsem"}}} ); //! moment.js locale configuration From 7f22ba62dca21ffbbd1c4774dd511993689da446 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Gaulin?= Date: Mon, 8 Aug 2016 08:35:57 +0200 Subject: [PATCH 13/28] Propagate the readOnly option to the viewClickList AJAX action --- modules/backend/behaviors/RelationController.php | 5 +++-- .../relationcontroller/assets/js/october.relation.js | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 63a275995..ce78b16ab 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -599,10 +599,11 @@ class RelationController extends ControllerBehavior $config->recordUrl = $this->getConfig('view[recordUrl]', null); $defaultOnClick = sprintf( - "$.oc.relationBehavior.clickViewListRecord(':%s', '%s', '%s')", + "$.oc.relationBehavior.clickViewListRecord(':%s', '%s', '%s', %s)", $this->relationModel->getKeyName(), $this->field, - $this->relationGetSessionKey() + $this->relationGetSessionKey(), + $this->readOnly ? 1 : 0 ); if ($config->recordUrl) { diff --git a/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js b/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js index 5e13a2810..85c052814 100644 --- a/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js +++ b/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js @@ -9,7 +9,7 @@ $(el).closest('.control-list').listWidget('toggleChecked', [el]) } - this.clickViewListRecord = function(recordId, relationField, sessionKey) { + this.clickViewListRecord = function(recordId, relationField, sessionKey, readOnly) { var newPopup = $('') newPopup.popup({ @@ -18,7 +18,8 @@ extraData: { 'manage_id': recordId, '_relation_field': relationField, - '_session_key': sessionKey + '_session_key': sessionKey, + '_relation_read_only': readOnly ? 1 : 0 } }) } From ee9554d8468ade09bb41010f86ea8748c288de5c Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Thu, 11 Aug 2016 06:50:09 +1000 Subject: [PATCH 14/28] Minor styling fix to exception page. Clicking / selecting the exception lines no longer activates a weird textarea appearance --- modules/system/views/exception.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/system/views/exception.php b/modules/system/views/exception.php index d8c24f5ec..4ec127dc1 100644 --- a/modules/system/views/exception.php +++ b/modules/system/views/exception.php @@ -62,6 +62,7 @@