diff --git a/modules/backend/formwidgets/CodeEditor.php b/modules/backend/formwidgets/CodeEditor.php index 662c902aa..df8df2891 100644 --- a/modules/backend/formwidgets/CodeEditor.php +++ b/modules/backend/formwidgets/CodeEditor.php @@ -118,6 +118,10 @@ class CodeEditor extends FormWidgetBase { $this->applyEditorPreferences(); + if ($this->formField->disabled) { + $this->readOnly = true; + } + $this->fillFromConfig([ 'language', 'showGutter', diff --git a/modules/backend/formwidgets/FileUpload.php b/modules/backend/formwidgets/FileUpload.php index 40aa52060..8ec4f5a8a 100644 --- a/modules/backend/formwidgets/FileUpload.php +++ b/modules/backend/formwidgets/FileUpload.php @@ -96,6 +96,10 @@ class FileUpload extends FormWidgetBase 'useCaption' ]); + if ($this->formField->disabled) { + $this->previewMode = true; + } + $this->checkUploadPostback(); } diff --git a/modules/backend/formwidgets/RichEditor.php b/modules/backend/formwidgets/RichEditor.php index 620b90b71..eefed3fe8 100644 --- a/modules/backend/formwidgets/RichEditor.php +++ b/modules/backend/formwidgets/RichEditor.php @@ -31,6 +31,11 @@ class RichEditor extends FormWidgetBase */ public $toolbarButtons = null; + /** + * @var boolean If true, the editor is set to read-only mode + */ + public $readOnly = false; + // // Object properties // @@ -45,8 +50,13 @@ class RichEditor extends FormWidgetBase */ public function init() { + if ($this->formField->disabled) { + $this->readOnly = true; + } + $this->fillFromConfig([ 'fullPage', + 'readOnly', 'toolbarButtons', ]); } @@ -70,6 +80,7 @@ class RichEditor extends FormWidgetBase $this->vars['fullPage'] = $this->fullPage; $this->vars['stretch'] = $this->formField->stretch; $this->vars['size'] = $this->formField->size; + $this->vars['readOnly'] = $this->readOnly; $this->vars['name'] = $this->getFieldName(); $this->vars['value'] = $this->getLoadValue(); $this->vars['toolbarButtons'] = $this->evalToolbarButtons(); diff --git a/modules/backend/formwidgets/richeditor/assets/js/build-min.js b/modules/backend/formwidgets/richeditor/assets/js/build-min.js index 48c234a31..feec67aca 100755 --- a/modules/backend/formwidgets/richeditor/assets/js/build-min.js +++ b/modules/backend/formwidgets/richeditor/assets/js/build-min.js @@ -606,7 +606,7 @@ Base.call(this) this.init()} RichEditor.prototype=Object.create(BaseProto) RichEditor.prototype.constructor=RichEditor -RichEditor.DEFAULTS={linksHandler:null,stylesheet:null,fullpage:false,editorLang:'en',toolbarButtons:null,allowEmptyTags:null,allowTags:null,noWrapTags:null,removeTags:null,imageStyles:null,linkStyles:null,paragraphStyles:null,tableStyles:null,tableCellStyles:null,aceVendorPath:'/'} +RichEditor.DEFAULTS={linksHandler:null,stylesheet:null,fullpage:false,editorLang:'en',toolbarButtons:null,allowEmptyTags:null,allowTags:null,noWrapTags:null,removeTags:null,imageStyles:null,linkStyles:null,paragraphStyles:null,tableStyles:null,tableCellStyles:null,aceVendorPath:'/',readOnly:false} RichEditor.prototype.init=function(){var self=this;this.$el.one('dispose-control',this.proxy(this.dispose)) if(!this.$textarea.attr('id')){this.$textarea.attr('id','element-'+Math.random().toString(36).substring(7))} this.initFroala()} @@ -642,6 +642,7 @@ this.$textarea.on('froalaEditor.html.set',this.proxy(this.onSetContent)) this.$form.on('oc.beforeRequest',this.proxy(this.onFormBeforeRequest)) this.$textarea.froalaEditor(froalaOptions) this.editor=this.$textarea.data('froala.editor') +if(this.options.readOnly){this.editor.edit.off()} this.$el.on('keydown','.fr-view figure',this.proxy(this.onFigureKeydown))} RichEditor.prototype.dispose=function(){this.unregisterHandlers() this.$textarea.froalaEditor('destroy') diff --git a/modules/backend/formwidgets/richeditor/assets/js/richeditor.js b/modules/backend/formwidgets/richeditor/assets/js/richeditor.js index f83d2d3f5..981791070 100755 --- a/modules/backend/formwidgets/richeditor/assets/js/richeditor.js +++ b/modules/backend/formwidgets/richeditor/assets/js/richeditor.js @@ -49,7 +49,8 @@ paragraphStyles: null, tableStyles: null, tableCellStyles: null, - aceVendorPath: '/' + aceVendorPath: '/', + readOnly: false } RichEditor.prototype.init = function() { @@ -176,6 +177,10 @@ this.editor = this.$textarea.data('froala.editor') + if (this.options.readOnly) { + this.editor.edit.off() + } + this.$el.on('keydown', '.fr-view figure', this.proxy(this.onFigureKeydown)) } diff --git a/modules/backend/formwidgets/richeditor/partials/_richeditor.htm b/modules/backend/formwidgets/richeditor/partials/_richeditor.htm index 835101909..9df80113d 100755 --- a/modules/backend/formwidgets/richeditor/partials/_richeditor.htm +++ b/modules/backend/formwidgets/richeditor/partials/_richeditor.htm @@ -6,6 +6,7 @@ id="getId() ?>" class="field-richeditor size- " data-fullpage="true" + data-read-only="true" data-editor-lang="" data-toolbar-buttons="" data-allow-empty-tags="" diff --git a/modules/backend/lang/en/lang.php b/modules/backend/lang/en/lang.php index 7f3d5d150..bde80d7c4 100644 --- a/modules/backend/lang/en/lang.php +++ b/modules/backend/lang/en/lang.php @@ -242,6 +242,7 @@ return [ 'confirm_tab_close' => 'Close the tab? Unsaved changes will be lost.', 'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.', 'preview_no_files_message' => 'There are no files uploaded.', + 'preview_no_media_message' => 'There is no media selected.', 'preview_no_record_message' => 'There is no record selected.', 'select' => 'Select', 'select_all' => 'all', diff --git a/modules/backend/widgets/Form.php b/modules/backend/widgets/Form.php index 8b8cec11c..cf885d750 100644 --- a/modules/backend/widgets/Form.php +++ b/modules/backend/widgets/Form.php @@ -216,10 +216,12 @@ class Form extends WidgetBase $this->prepareVars(); /* - * Apply preview mode to widgets + * Force preview mode on all widgets */ - foreach ($this->formWidgets as $widget) { - $widget->previewMode = $this->previewMode; + if ($this->previewMode) { + foreach ($this->formWidgets as $widget) { + $widget->previewMode = $this->previewMode; + } } return $this->makePartial($targetPartial, $extraVars); diff --git a/modules/cms/formwidgets/MediaFinder.php b/modules/cms/formwidgets/MediaFinder.php index 55d0142f6..d9e3d09a4 100644 --- a/modules/cms/formwidgets/MediaFinder.php +++ b/modules/cms/formwidgets/MediaFinder.php @@ -3,6 +3,7 @@ use Lang; use ApplicationException; use Cms\Classes\MediaLibrary; +use Backend\Classes\FormField; use Backend\Classes\FormWidgetBase; /** @@ -51,6 +52,10 @@ class MediaFinder extends FormWidgetBase 'mode', 'prompt' ]); + + if ($this->formField->disabled) { + $this->previewMode = true; + } } /** @@ -75,6 +80,18 @@ class MediaFinder extends FormWidgetBase $this->vars['mode'] = $this->mode; } + /** + * {@inheritDoc} + */ + public function getSaveValue($value) + { + if ($this->formField->disabled || $this->formField->hidden) { + return FormField::NO_SAVE_DATA; + } + + return $value; + } + /** * {@inheritDoc} */ @@ -83,4 +100,4 @@ class MediaFinder extends FormWidgetBase $this->addJs('js/mediafinder.js', 'core'); $this->addCss('css/mediafinder.css', 'core'); } -} \ No newline at end of file +} diff --git a/modules/cms/formwidgets/mediafinder/assets/css/mediafinder.css b/modules/cms/formwidgets/mediafinder/assets/css/mediafinder.css index 3f78d4631..70e87a086 100644 --- a/modules/cms/formwidgets/mediafinder/assets/css/mediafinder.css +++ b/modules/cms/formwidgets/mediafinder/assets/css/mediafinder.css @@ -50,6 +50,10 @@ .field-mediafinder.is-populated .find-object:hover .meta .find-remove-button { display: block; } +.field-mediafinder.is-preview .find-button, +.field-mediafinder.is-preview .find-remove-button { + display: none !important; +} @media (max-width: 1024px) { .field-fileupload.is-populated .find-object h4 a, .field-fileupload.is-populated .find-object .meta .find-remove-button { diff --git a/modules/cms/formwidgets/mediafinder/assets/js/mediafinder.js b/modules/cms/formwidgets/mediafinder/assets/js/mediafinder.js index f3eb76cb7..36a715bbc 100644 --- a/modules/cms/formwidgets/mediafinder/assets/js/mediafinder.js +++ b/modules/cms/formwidgets/mediafinder/assets/js/mediafinder.js @@ -33,13 +33,22 @@ this.options.isMulti = this.$el.hasClass('is-multi') } + if (this.options.isPreview === null) { + this.options.isPreview = this.$el.hasClass('is-preview') + } + if (this.options.isImage === null) { this.options.isImage = this.$el.hasClass('is-image') } + this.$el.one('dispose-control', this.proxy(this.dispose)) + + // Stop here for preview mode + if (this.options.isPreview) + return + this.$el.on('click', '.find-button', this.proxy(this.onClickFindButton)) this.$el.on('click', '.find-remove-button', this.proxy(this.onClickRemoveButton)) - this.$el.one('dispose-control', this.proxy(this.dispose)) this.$findValue = $('[data-find-value]', this.$el) } @@ -110,6 +119,7 @@ MediaFinder.DEFAULTS = { isMulti: null, + isPreview: null, isImage: null } diff --git a/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.base.less b/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.base.less index 3ff37b7bd..1b524a123 100644 --- a/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.base.less +++ b/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.base.less @@ -117,6 +117,16 @@ } } + // + // Preview mode + // + + &.is-preview { + .find-button, + .find-remove-button { + display: none !important; + } + } } // diff --git a/modules/cms/formwidgets/mediafinder/partials/_file_single.htm b/modules/cms/formwidgets/mediafinder/partials/_file_single.htm index 59734ba87..8a774a14a 100644 --- a/modules/cms/formwidgets/mediafinder/partials/_file_single.htm +++ b/modules/cms/formwidgets/mediafinder/partials/_file_single.htm @@ -1,6 +1,6 @@
@@ -39,4 +39,4 @@ value="" data-find-value /> -
\ No newline at end of file + diff --git a/modules/cms/formwidgets/mediafinder/partials/_image_single.htm b/modules/cms/formwidgets/mediafinder/partials/_image_single.htm index 2a1af4467..0169d315c 100644 --- a/modules/cms/formwidgets/mediafinder/partials/_image_single.htm +++ b/modules/cms/formwidgets/mediafinder/partials/_image_single.htm @@ -1,6 +1,6 @@
@@ -32,4 +32,4 @@ value="" data-find-value /> -
\ No newline at end of file + diff --git a/modules/cms/formwidgets/mediafinder/partials/_mediafinder.htm b/modules/cms/formwidgets/mediafinder/partials/_mediafinder.htm index 48ec20ad1..b4b703508 100644 --- a/modules/cms/formwidgets/mediafinder/partials/_mediafinder.htm +++ b/modules/cms/formwidgets/mediafinder/partials/_mediafinder.htm @@ -1,11 +1,19 @@ -previewMode && !$value): ?> - case 'image': ?> - makePartial('image_single') ?> - + - - makePartial('file_single') ?> - + - + + makePartial('image_single') ?> + + + + makePartial('file_single') ?> + + + + + diff --git a/modules/system/assets/js/lang/lang.ru.js b/modules/system/assets/js/lang/lang.ru.js index e174a1a3c..ce28269b1 100644 --- a/modules/system/assets/js/lang/lang.ru.js +++ b/modules/system/assets/js/lang/lang.ru.js @@ -5,7 +5,7 @@ if ($.oc === undefined) $.oc = {} if ($.oc.langMessages === undefined) $.oc.langMessages = {} $.oc.langMessages['ru'] = $.extend( $.oc.langMessages['ru'] || {}, - {"markdowneditor":{"formatting":"\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","quote":"\u0426\u0438\u0442\u0430\u0442\u0430","code":"\u041a\u043e\u0434","header1":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1","header2":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2","header3":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3","header4":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4","header5":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5","header6":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6","bold":"\u0416\u0438\u0440\u043d\u044b\u0439 \u0448\u0440\u0438\u0444\u0442","italic":"\u041a\u0443\u0440\u0441\u0438\u0432","unorderedlist":"\u041d\u0435\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a","orderedlist":"\u041d\u0443\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a","video":"\u0412\u0438\u0434\u0435\u043e","image":"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435","link":"\u0421\u0441\u044b\u043b\u043a\u0430","horizontalrule":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0447\u0435\u0440\u0442\u0443","fullscreen":"\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d","preview":"\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440"},"mediamanager":{"insert_link":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0441\u0441\u044b\u043b\u043a\u0443","insert_image":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435","insert_video":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0432\u0438\u0434\u0435\u043e","insert_audio":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0430\u0443\u0434\u0438\u043e","invalid_file_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0441\u044b\u043b\u043a\u0438.","invalid_file_single_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b.","invalid_image_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438.","invalid_video_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438.","invalid_audio_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u0443\u0434\u0438\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438."},"alert":{"confirm_button_text":"\u041e\u043a","cancel_button_text":"\u041e\u0442\u043c\u0435\u043d\u0430","widget_remove_confirm":"Remove this widget?"},"datepicker":{"previousMonth":"Previous Month","nextMonth":"Next Month","months":["January","February","March","April","May","June","July","August","September","October","November","December"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"weekdaysShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},"filter":{"group":{"all":"all"},"dates":{"all":"all","filter_button_text":"Filter","reset_button_text":"Reset","date_placeholder":"Date","after_placeholder":"After","before_placeholder":"Before"}},"eventlog":{"show_stacktrace":"Show the stacktrace","hide_stacktrace":"Hide the stacktrace","tabs":{"formatted":"Formatted","raw":"Raw"},"editor":{"title":"Source code editor","description":"Your operating system should be configured to listen to one of these URL schemes.","openWith":"Open with","remember_choice":"Remember selected option for this session","open":"Open","cancel":"Cancel"}}} + {"markdowneditor":{"formatting":"\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","quote":"\u0426\u0438\u0442\u0430\u0442\u0430","code":"\u041a\u043e\u0434","header1":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1","header2":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2","header3":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3","header4":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4","header5":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5","header6":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6","bold":"\u0416\u0438\u0440\u043d\u044b\u0439 \u0448\u0440\u0438\u0444\u0442","italic":"\u041a\u0443\u0440\u0441\u0438\u0432","unorderedlist":"\u041d\u0435\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a","orderedlist":"\u041d\u0443\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a","video":"\u0412\u0438\u0434\u0435\u043e","image":"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435","link":"\u0421\u0441\u044b\u043b\u043a\u0430","horizontalrule":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0447\u0435\u0440\u0442\u0443","fullscreen":"\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d","preview":"\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440"},"mediamanager":{"insert_link":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0441\u0441\u044b\u043b\u043a\u0443","insert_image":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435","insert_video":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0432\u0438\u0434\u0435\u043e","insert_audio":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430-\u0430\u0443\u0434\u0438\u043e","invalid_file_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0441\u044b\u043b\u043a\u0438.","invalid_file_single_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b.","invalid_image_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438.","invalid_video_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438.","invalid_audio_empty_insert":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u0443\u0434\u0438\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438."},"alert":{"confirm_button_text":"\u041e\u043a","cancel_button_text":"\u041e\u0442\u043c\u0435\u043d\u0430","widget_remove_confirm":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u0438\u0434\u0436\u0435\u0442?"},"datepicker":{"previousMonth":"\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043c\u0435\u0441\u044f\u0446","nextMonth":"\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0441\u044f\u0446","months":["\u042f\u043d\u0432\u0430\u0440\u044c","\u0424\u0435\u0432\u0440\u0430\u043b\u044c","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0435\u043b\u044c","\u041c\u0430\u0439","\u0418\u044e\u043d\u044c","\u0418\u044e\u043b\u044c","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","\u041e\u043a\u0442\u044f\u0431\u0440\u044c","\u041d\u043e\u044f\u0431\u0440\u044c","\u0414\u0435\u043a\u0430\u0431\u0440\u044c"],"weekdays":["\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u0438\u0435","\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0412\u0442\u043e\u0440\u043d\u0438\u043a","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440\u0433","\u041f\u044f\u0442\u043d\u0438\u0446\u0430","\u0421\u0443\u0431\u0431\u043e\u0442\u0430"],"weekdaysShort":["\u0412\u0441","\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"]},"filter":{"group":{"all":"\u0432\u0441\u0435"},"dates":{"all":"\u0432\u0441\u0435","filter_button_text":"\u0424\u0438\u043b\u044c\u0442\u0440","reset_button_text":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c","date_placeholder":"\u0414\u0430\u0442\u0430","after_placeholder":"\u041f\u043e\u0441\u043b\u0435","before_placeholder":"\u0414\u043e"}},"eventlog":{"show_stacktrace":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0441\u0442\u0435\u043a\u0430","hide_stacktrace":"\u0421\u043a\u0440\u044b\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0441\u0442\u0435\u043a\u0430","tabs":{"formatted":"\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439","raw":"\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439"},"editor":{"title":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","description":"\u0412\u0430\u0448\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u043a \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0445\u0435\u043c URL.","openWith":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e","remember_choice":"\u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438","open":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c","cancel":"\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c"}}} ); //! moment.js locale configuration