effective_ckeditor 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d165f84430656b10ab8f8ba62df645964858890a
|
4
|
+
data.tar.gz: 708735a82d9871476dccb38f56e0aa7af3d5153a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d7636a51adb87a78ab1afe07d086f95102951446e611ed1f2999fc4020ef711abf97f3a8f2c8af2b0f4436621f2cd3bd03cb83d5bc8d2461618338991e10573
|
7
|
+
data.tar.gz: be7eff5a1e22c58030d1f72842529f6e483adf405c2732320341c36b83584834aa2cd53d443911e2ad506fcefdd4eb770c57dc40de3f71fa9d715819052cd11f
|
@@ -330,13 +330,15 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
330
330
|
id: 'source',
|
331
331
|
type: 'radio',
|
332
332
|
label: 'Link Type',
|
333
|
-
items: [['Page', 'Page'], ['URL', 'URL'], ['Route', 'Route'], ['Divider', 'Divider']]
|
333
|
+
items: [['Page', 'Page'], ['URL', 'URL'], ['Route', 'Route'], ['Divider', 'Divider'], ['Dropdown', 'Dropdown']]
|
334
334
|
setup: (element) ->
|
335
335
|
menuable_id = element.children('.menu-item').children("input[name$='[menuable_id]']").val() || ''
|
336
336
|
special = element.children('.menu-item').children("input[name$='[special]']").val() || ''
|
337
337
|
url = element.children('.menu-item').children("input[name$='[url]']").val() || ''
|
338
338
|
|
339
|
-
if
|
339
|
+
if this.getDialog().effective_menu_item.hasClass('dropdown')
|
340
|
+
this.setValue('Dropdown')
|
341
|
+
else if menuable_id.length > 0
|
340
342
|
this.setValue('Page')
|
341
343
|
else if special == 'divider'
|
342
344
|
this.setValue('Divider')
|
@@ -348,12 +350,18 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
348
350
|
this.setValue('Page')
|
349
351
|
|
350
352
|
onChange: (event) ->
|
353
|
+
if this.getValue() != 'Dropdown'
|
354
|
+
radios = $('#' + this.getDialog().getContentElement('item', 'source').getElement().getId())
|
355
|
+
radios.find('input').prop('disabled', false)
|
356
|
+
radios.find("input[value='Dropdown']").prop('disabled', true)
|
357
|
+
|
351
358
|
if this.getValue() == 'Page'
|
352
359
|
this.getDialog().getContentElement('item', 'title').getElement().show()
|
353
360
|
this.getDialog().getContentElement('item', 'menuable_id').getElement().show()
|
354
361
|
|
355
362
|
this.getDialog().getContentElement('item', 'url').getElement().hide()
|
356
363
|
this.getDialog().getContentElement('item', 'special').getElement().hide()
|
364
|
+
this.getDialog().getContentElement('item', 'dropdown').getElement().hide()
|
357
365
|
|
358
366
|
if this.getValue() == 'URL'
|
359
367
|
this.getDialog().getContentElement('item', 'title').getElement().show()
|
@@ -361,12 +369,23 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
361
369
|
|
362
370
|
this.getDialog().getContentElement('item', 'menuable_id').getElement().hide()
|
363
371
|
this.getDialog().getContentElement('item', 'special').getElement().hide()
|
372
|
+
this.getDialog().getContentElement('item', 'dropdown').getElement().hide()
|
364
373
|
|
365
374
|
if this.getValue() == 'Divider'
|
366
375
|
this.getDialog().getContentElement('item', 'url').getElement().hide()
|
367
376
|
this.getDialog().getContentElement('item', 'title').getElement().hide()
|
368
377
|
this.getDialog().getContentElement('item', 'menuable_id').getElement().hide()
|
369
378
|
this.getDialog().getContentElement('item', 'special').getElement().hide()
|
379
|
+
this.getDialog().getContentElement('item', 'dropdown').getElement().hide()
|
380
|
+
|
381
|
+
if this.getValue() == 'Dropdown'
|
382
|
+
this.getDialog().getContentElement('item', 'title').getElement().show()
|
383
|
+
this.getDialog().getContentElement('item', 'dropdown').getElement().show()
|
384
|
+
$('#' + this.getDialog().getContentElement('item', 'source').getElement().getId()).find('input').prop('disabled', true)
|
385
|
+
|
386
|
+
this.getDialog().getContentElement('item', 'special').getElement().hide()
|
387
|
+
this.getDialog().getContentElement('item', 'url').getElement().hide()
|
388
|
+
this.getDialog().getContentElement('item', 'menuable_id').getElement().hide()
|
370
389
|
|
371
390
|
if this.getValue() == 'Route'
|
372
391
|
this.getDialog().getContentElement('item', 'title').getElement().show()
|
@@ -374,32 +393,28 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
374
393
|
|
375
394
|
this.getDialog().getContentElement('item', 'menuable_id').getElement().hide()
|
376
395
|
this.getDialog().getContentElement('item', 'url').getElement().hide()
|
396
|
+
this.getDialog().getContentElement('item', 'dropdown').getElement().hide()
|
377
397
|
},
|
378
398
|
{
|
379
399
|
id: 'menuable_id',
|
380
400
|
type: 'select',
|
381
401
|
label: 'Page',
|
382
|
-
items: (
|
383
|
-
pages = []
|
384
|
-
$.ajax
|
385
|
-
url: '/admin/pages'
|
386
|
-
dataType: 'json'
|
387
|
-
async: false
|
388
|
-
complete: (data) -> pages = data.responseJSON
|
389
|
-
pages
|
390
|
-
),
|
402
|
+
items: ((CKEDITOR.config['effective_regions'] || {})['pages'] || [['', '']]),
|
391
403
|
setup: (element) ->
|
392
404
|
this.setValue(element.children('.menu-item').children("input[name$='[menuable_id]']").val())
|
393
405
|
commit: (element) ->
|
394
|
-
if this.
|
406
|
+
if this.getDialog().getValueOf('item', 'source') == 'Page'
|
395
407
|
element.children('.menu-item').children("input[name$='[menuable_id]']").val(this.getValue())
|
396
408
|
element.children('.menu-item').children("input[name$='[menuable_type]']").val('Effective::Page')
|
409
|
+
else if this.getDialog().getValueOf('item', 'source') == 'Dropdown'
|
410
|
+
# Nothing
|
397
411
|
else
|
398
412
|
element.children('.menu-item').children("input[name$='[menuable_id]']").val('')
|
399
413
|
element.children('.menu-item').children("input[name$='[menuable_type]']").val('')
|
400
414
|
validate: ->
|
401
|
-
if this.
|
402
|
-
|
415
|
+
if this.getDialog().getValueOf('item', 'source') == 'Page' && (this.getValue() || '').length == 0
|
416
|
+
if this.getDialog().effective_menu_item.hasClass('dropdown') == false
|
417
|
+
CKEDITOR.dialog.validate.notEmpty('please select a page').apply(this)
|
403
418
|
},
|
404
419
|
{
|
405
420
|
id: 'url',
|
@@ -408,12 +423,13 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
408
423
|
setup: (element) ->
|
409
424
|
this.setValue(element.children('.menu-item').children("input[name$='[url]']").val())
|
410
425
|
commit: (element) ->
|
411
|
-
if this.
|
426
|
+
if this.getDialog().getValueOf('item', 'source') == 'URL' then value = this.getValue() else value = ''
|
412
427
|
|
413
|
-
|
414
|
-
|
428
|
+
if this.getDialog().getValueOf('item', 'source') != 'Dropdown'
|
429
|
+
element.children('.menu-item').children("input[name$='[url]']").val(value)
|
430
|
+
element.children('a').attr('href', value || '#')
|
415
431
|
validate: ->
|
416
|
-
if this.
|
432
|
+
if this.getDialog().getValueOf('item', 'source') == 'URL' && (this.getValue() || '').length == 0
|
417
433
|
CKEDITOR.dialog.validate.notEmpty('please enter a URL').apply(this)
|
418
434
|
},
|
419
435
|
{
|
@@ -426,8 +442,10 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
426
442
|
if this.getDialog().getValueOf('item', 'source') == 'Divider'
|
427
443
|
element.children('.menu-item').children("input[name$='[special]']").val('divider')
|
428
444
|
element.children('a').html('')
|
429
|
-
else if this.
|
445
|
+
else if this.getDialog().getValueOf('item', 'source') == 'Route'
|
430
446
|
element.children('.menu-item').children("input[name$='[special]']").val(this.getValue())
|
447
|
+
else if this.getDialog().getValueOf('item', 'source') == 'Dropdown'
|
448
|
+
# Nothing
|
431
449
|
else
|
432
450
|
element.children('.menu-item').children("input[name$='[special]']").val('')
|
433
451
|
# There is more stuff in the classes commit
|
@@ -435,9 +453,14 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
435
453
|
if this.getDialog().getValueOf('item', 'source') == 'Divider'
|
436
454
|
if this.getDialog().effective_menu_item.hasClass('dropdown')
|
437
455
|
CKEDITOR.dialog.validate.notEmpty('cannot convert existing dropdown menu to a Divider').apply(this)
|
438
|
-
else if this.
|
456
|
+
else if this.getDialog().getValueOf('item', 'source') == 'Route'
|
439
457
|
if (this.getValue() || '').length == 0
|
440
458
|
CKEDITOR.dialog.validate.notEmpty('please enter a route').apply(this)
|
459
|
+
},
|
460
|
+
{
|
461
|
+
id: 'dropdown',
|
462
|
+
type: 'html',
|
463
|
+
html: 'Dropdown menu items cannot also be links.<br><br>To change this dropdown back to a regular menu item,<br>please click Cancel and then use the drag & drop<br>functionality to remove all its child menu items.'
|
441
464
|
}
|
442
465
|
] # /tab1 elements
|
443
466
|
},
|
@@ -455,7 +478,9 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
455
478
|
onChange: (event) ->
|
456
479
|
if this.getValue() == true
|
457
480
|
this.getDialog().setValueOf('permissions', 'signed_in', false)
|
458
|
-
|
481
|
+
|
482
|
+
for role, index in ((CKEDITOR.config['effective_regions'] || {})['roles'] || [])
|
483
|
+
this.getDialog().setValueOf('permissions', "role_#{role[1]}", false)
|
459
484
|
},
|
460
485
|
{
|
461
486
|
id: 'signed_in',
|
@@ -467,30 +492,50 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
467
492
|
onChange: (event) ->
|
468
493
|
if this.getValue() == true
|
469
494
|
this.getDialog().setValueOf('permissions', 'signed_out', false)
|
470
|
-
}
|
495
|
+
}
|
471
496
|
{
|
472
|
-
id: '
|
473
|
-
type: '
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
497
|
+
id: 'roles',
|
498
|
+
type: 'vbox',
|
499
|
+
width: '100%',
|
500
|
+
children:
|
501
|
+
[{type: 'html', html: '<p>Only visible when signed in as a user with one or more<br>of the following website roles:</p>'}].concat(
|
502
|
+
for role, index in ((CKEDITOR.config['effective_regions'] || {})['roles'] || [])
|
503
|
+
bit_mask = Math.pow(2, index)
|
504
|
+
# role == [description, title, 'disabled' or null] We're not using description
|
505
|
+
{
|
506
|
+
id: "role_#{role[1]}",
|
507
|
+
type: 'checkbox',
|
508
|
+
label: "#{role[1]}",
|
509
|
+
className: "role_#{bit_mask}_#{role[2]}_box"
|
510
|
+
setup: (element) ->
|
511
|
+
this.disable() if (this.className.split('_')[2] == 'disabled')
|
512
|
+
|
513
|
+
roles_mask = parseInt(element.children('.menu-item').children("input[name$='[roles_mask]']").val(), 10) || 0
|
514
|
+
roles_mask = 0 if roles_mask == -1
|
515
|
+
bit_mask = parseInt(this.className.split('_')[1], 10) || 0
|
516
|
+
|
517
|
+
this.setValue((bit_mask & roles_mask) != 0)
|
518
|
+
onClick: (event) ->
|
519
|
+
if this.getValue() == true # Ensure Only visible when signed in is checked too if we have roles
|
520
|
+
this.getDialog().setValueOf('permissions', 'signed_in', true)
|
521
|
+
this.getDialog().setValueOf('permissions', 'signed_out', false)
|
522
|
+
}
|
523
|
+
)
|
478
524
|
commit: (element) ->
|
479
|
-
|
480
|
-
|
525
|
+
roles_mask = 0
|
526
|
+
|
527
|
+
for role, index in ((CKEDITOR.config['effective_regions'] || {})['roles'] || [])
|
528
|
+
if this.getDialog().getValueOf('permissions', "role_#{role[1]}") == true
|
529
|
+
roles_mask += Math.pow(2, index)
|
530
|
+
|
531
|
+
if roles_mask > 0
|
532
|
+
element.children('.menu-item').children("input[name$='[roles_mask]']").val(roles_mask)
|
481
533
|
else if this.getDialog().getValueOf('permissions', 'signed_in') == true
|
482
534
|
element.children('.menu-item').children("input[name$='[roles_mask]']").val(0)
|
483
535
|
else if this.getDialog().getValueOf('permissions', 'signed_out') == true
|
484
536
|
element.children('.menu-item').children("input[name$='[roles_mask]']").val(-1)
|
485
537
|
else
|
486
538
|
element.children('.menu-item').children("input[name$='[roles_mask]']").val('')
|
487
|
-
onKeyup: (event) ->
|
488
|
-
if ('' + this.getValue()).length > 0
|
489
|
-
this.getDialog().setValueOf('permissions', 'signed_in', true)
|
490
|
-
this.getDialog().setValueOf('permissions', 'signed_out', false)
|
491
|
-
validate: ->
|
492
|
-
if ('' + this.getValue()).length > 0
|
493
|
-
CKEDITOR.dialog.validate.integer('roles_mask must be an integer').apply(this)
|
494
539
|
}
|
495
540
|
]
|
496
541
|
},
|
@@ -537,11 +582,11 @@ CKEDITOR.plugins.add 'effective_menus',
|
|
537
582
|
onShow: -> this.setupContent(this.effective_menu_item) if this.effective_menu_item
|
538
583
|
|
539
584
|
onOk: ->
|
540
|
-
this.
|
541
|
-
|
542
|
-
|
585
|
+
if this.effective_menu_item
|
586
|
+
this.commitContent(this.effective_menu_item)
|
587
|
+
this.effective_menu_item.removeClass('new-item') if this.effective_menu_item.hasClass('new-item')
|
543
588
|
|
544
589
|
onCancel: ->
|
545
|
-
this.effective_menu_item
|
546
|
-
|
590
|
+
if this.effective_menu_item && this.effective_menu_item.hasClass('new-item')
|
591
|
+
this.effective_menu_item.remove()
|
547
592
|
}
|
@@ -108,7 +108,7 @@ Regions = {
|
|
108
108
|
}
|
109
109
|
|
110
110
|
Snippets = {
|
111
|
-
all: -> CKEDITOR.config['effective_regions']['snippets']
|
111
|
+
all: -> ((CKEDITOR.config['effective_regions'] || {})['snippets'] || {})
|
112
112
|
|
113
113
|
build: (editor, name, values) ->
|
114
114
|
snippet = {}
|
@@ -168,7 +168,7 @@ Snippets = {
|
|
168
168
|
}
|
169
169
|
|
170
170
|
Templates = {
|
171
|
-
all: -> CKEDITOR.config['effective_regions']['templates']
|
171
|
+
all: -> ((CKEDITOR.config['effective_regions'] || {})['templates'] || {})
|
172
172
|
build: (definition) -> definition
|
173
173
|
}
|
174
174
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_ckeditor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|