Skip to content

Commit df8e27b

Browse files
authored
Merge pull request #48 from greyli/fix-ckeditor-class
Fix unnecessary "ckeditor" class when using ckeditor.config()
2 parents 2af915b + d1e2842 commit df8e27b

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

CHANGES.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
0.4.5
5+
-----
6+
7+
Release date: -
8+
9+
- Fix unnecessary "ckeditor" class when using ``ckeditor.config()``.
10+
411
0.4.4.1
512
-------
613

flask_ckeditor/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ def config(name='ckeditor', custom_config='', **kwargs):
105105

106106
return Markup('''
107107
<script type="text/javascript">
108+
document.getElementById("%s").classList.remove("ckeditor");
108109
CKEDITOR.replace( "%s", {
109110
language: "%s",
110111
height: %s,
@@ -118,7 +119,7 @@ def config(name='ckeditor', custom_config='', **kwargs):
118119
%s
119120
});
120121
</script>''' % (
121-
name, language, height, width, code_theme, file_uploader, file_uploader, file_browser,
122+
name, name, language, height, width, code_theme, file_uploader, file_uploader, file_browser,
122123
','.join(extra_plugins), csrf_header, custom_config))
123124

124125
@staticmethod
@@ -130,8 +131,10 @@ def create(name='ckeditor', value=''):
130131
:param value: The preset value for textarea.
131132
132133
.. versionadded:: 0.3
134+
.. versionchanged:: 0.4.5
135+
The value of ``name`` will be used as ``id`` attribute.
133136
"""
134-
return Markup('<textarea class="ckeditor" name="%s">%s</textarea>' % (name, value))
137+
return Markup('<textarea class="ckeditor" name="%s" id="%s">%s</textarea>' % (name, name, value))
135138

136139
@staticmethod
137140
def load_code_theme():

test_flask_ckeditor.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,12 @@ def test_create(self):
161161
rv = self.ckeditor.create()
162162
self.assertIn('<textarea class="ckeditor"', rv)
163163

164+
rv = self.ckeditor.create(name='foo')
165+
self.assertIn('<textarea class="ckeditor" name="foo" id="foo"', rv)
166+
167+
rv = self.ckeditor.create(value='bar')
168+
self.assertIn('<textarea class="ckeditor" name="ckeditor" id="ckeditor">bar</textarea>', rv)
169+
164170
def test_render_template(self):
165171
response = self.client.get('/')
166172
data = response.get_data(as_text=True)
@@ -200,3 +206,25 @@ def test_local_resources_plugins(self):
200206
response = self.client.get(url)
201207
response.close()
202208
self.assertEqual(response.status_code, 200)
209+
210+
def test_ckeditor_class(self):
211+
response = self.client.get('/')
212+
data = response.get_data(as_text=True)
213+
self.assertIn('document.getElementById("ckeditor").classList.remove("ckeditor")', data)
214+
self.assertIn('id="ckeditor"', data)
215+
216+
response = self.client.get('/field')
217+
data = response.get_data(as_text=True)
218+
self.assertIn('document.getElementById("body").classList.remove("ckeditor")', data)
219+
self.assertIn('id="body"', data)
220+
221+
@self.app.route('/create-without-config')
222+
def create_without_config():
223+
return render_template_string('''
224+
{{ ckeditor.create() }}
225+
{{ ckeditor.load() }}''')
226+
227+
response = self.client.get('/create-without-config')
228+
data = response.get_data(as_text=True)
229+
self.assertIn('class="ckeditor', data)
230+
self.assertNotIn('document.getElementById("ckeditor").classList.remove("ckeditor")', data)

0 commit comments

Comments
 (0)