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="= $this->getId() ?>"
class="field-richeditor size-= $size ?> = $stretch?'layout-relative stretch':'' ?>"
data-fullpage="true"
+ data-read-only="true"
data-editor-lang="= $editorLang ?>"
data-toolbar-buttons="= implode(',', $toolbarButtons) ?>"
data-allow-empty-tags="= e($allowEmptyTags) ?>"
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="= e($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="= e($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': ?>
- = $this->makePartial('image_single') ?>
-
+ = e(trans('backend::lang.form.preview_no_media_message')) ?>
-
- = $this->makePartial('file_single') ?>
-
+
-
+
+ = $this->makePartial('image_single') ?>
+
+
+
+ = $this->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