diff --git a/CHANGELOG b/CHANGELOG index e1e42c068..964a91570 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -31,7 +31,8 @@ Core: - Added template hook system for plugins. - Made a lot of code clean up, improvements and bug fixes in client and backend. -- Use CKEditor for editing projector messages. +- Use a separate dialog with CKEditor for editing projector messages. +- Use CKEditor in settings for text markup. Motions: - Added adjustable line numbering mode (outside, inside, none) for each diff --git a/openslides/core/config.py b/openslides/core/config.py index 3eaab937a..b2546ec3e 100644 --- a/openslides/core/config.py +++ b/openslides/core/config.py @@ -7,6 +7,7 @@ from .models import ConfigStore INPUT_TYPE_MAPPING = { 'string': str, 'text': str, + 'markupText': str, 'integer': int, 'boolean': bool, 'choice': str, diff --git a/openslides/core/config_variables.py b/openslides/core/config_variables.py index 2b68b8017..7e09e2667 100644 --- a/openslides/core/config_variables.py +++ b/openslides/core/config_variables.py @@ -60,7 +60,7 @@ def get_config_variables(): 'free web based presentation and assembly system for ' 'visualizing and controlling agenda, motions and ' 'elections of an assembly.', - input_type='text', + input_type='markupText', label='Legal notice', weight=132, group='General', @@ -79,7 +79,7 @@ def get_config_variables(): yield ConfigVariable( name='general_event_welcome_text', default_value='[Space for your welcome text.]', - input_type='text', + input_type='markupText', label='Front page text', weight=136, group='General', diff --git a/openslides/core/static/js/core/site.js b/openslides/core/static/js/core/site.js index 29530ff25..b111bad8c 100644 --- a/openslides/core/static/js/core/site.js +++ b/openslides/core/static/js/core/site.js @@ -635,6 +635,7 @@ angular.module('OpenSlidesApp.core.site', [ return { string: 'text', text: 'textarea', + markupText: 'editor', integer: 'number', boolean: 'checkbox', choice: 'choice', @@ -878,11 +879,17 @@ angular.module('OpenSlidesApp.core.site', [ 'configOptions', 'gettextCatalog', 'DateTimePickerTranslation', - function($scope, MajorityMethodChoices, Config, configOptions, gettextCatalog, DateTimePickerTranslation) { + 'Editor', + function($scope, MajorityMethodChoices, Config, configOptions, gettextCatalog, DateTimePickerTranslation, Editor) { Config.bindAll({}, $scope, 'configs'); $scope.configGroups = configOptions.data.config_groups; $scope.dateTimePickerTranslatedButtons = DateTimePickerTranslation.getButtons(); + $scope.ckeditorOptions = Editor.getOptions(); + $scope.ckeditorOptions.on.change = function (event) { + $scope.save(event.editor.element.$.id, this.getData()); + }; + // save changed config value $scope.save = function(key, value) { Config.get(key).value = value; diff --git a/openslides/core/static/templates/config-form-field.html b/openslides/core/static/templates/config-form-field.html index 621b5d2fc..e9507da36 100644 --- a/openslides/core/static/templates/config-form-field.html +++ b/openslides/core/static/templates/config-form-field.html @@ -71,6 +71,14 @@ id="{{ key }}" class="form-control"> + + +