~canonical-sysadmins/wordpress/4.8.2

« back to all changes in this revision

Viewing changes to wp-includes/js/tinymce/plugins/lists/plugin.js

  • Committer: Nick Moffitt
  • Date: 2016-04-14 10:44:19 UTC
  • mfrom: (1.1.14 upstream)
  • Revision ID: nick.moffitt@canonical.com-20160414104419-w6lxcr3ru4enc2w5
Merge WP4.5 from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
tinymce.PluginManager.add('lists', function(editor) {
15
15
        var self = this;
16
16
 
 
17
        function isChildOfBody(elm) {
 
18
                return editor.$.contains(editor.getBody(), elm);
 
19
        }
 
20
 
 
21
        function isBr(node) {
 
22
                return node && node.nodeName == 'BR';
 
23
        }
 
24
 
17
25
        function isListNode(node) {
18
 
                return node && (/^(OL|UL|DL)$/).test(node.nodeName);
 
26
                return node && (/^(OL|UL|DL)$/).test(node.nodeName) && isChildOfBody(node);
19
27
        }
20
28
 
21
29
        function isFirstChild(node) {
425
433
                                return true;
426
434
                        }
427
435
 
428
 
                        if (sibling && sibling.nodeName == 'LI' && isListNode(li.lastChild)) {
 
436
                        /*if (sibling && sibling.nodeName == 'LI' && isListNode(li.lastChild)) {
429
437
                                return false;
430
 
                        }
 
438
                        }*/
431
439
 
432
440
                        sibling = li.previousSibling;
433
441
                        if (sibling && sibling.nodeName == 'LI') {
498
506
                }
499
507
 
500
508
                function applyList(listName) {
501
 
                        var rng = selection.getRng(true), bookmark = createBookmark(rng), listItemName = 'LI';
 
509
                        var rng = selection.getRng(true), bookmark, listItemName = 'LI';
 
510
 
 
511
                        if (dom.getContentEditable(selection.getNode()) === "false") {
 
512
                                return;
 
513
                        }
502
514
 
503
515
                        listName = listName.toUpperCase();
504
516
 
554
566
                                                return;
555
567
                                        }
556
568
 
557
 
                                        if (dom.isBlock(node) || node.nodeName == 'BR') {
558
 
                                                if (node.nodeName == 'BR') {
 
569
                                        if (dom.isBlock(node) || isBr(node)) {
 
570
                                                if (isBr(node)) {
559
571
                                                        dom.remove(node);
560
572
                                                }
561
573
 
583
595
                                return textBlocks;
584
596
                        }
585
597
 
 
598
                        bookmark = createBookmark(rng);
 
599
 
586
600
                        tinymce.each(getSelectedTextBlocks(), function(block) {
587
601
                                var listBlock, sibling;
588
602
 
659
673
                        };
660
674
                }
661
675
 
 
676
                function isBogusBr(node) {
 
677
                        if (!isBr(node)) {
 
678
                                return false;
 
679
                        }
 
680
 
 
681
                        if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) {
 
682
                                return true;
 
683
                        }
 
684
 
 
685
                        return false;
 
686
                }
 
687
 
662
688
                self.backspaceDelete = function(isForward) {
663
689
                        function findNextCaretContainer(rng, isForward) {
664
690
                                var node = rng.startContainer, offset = rng.startOffset;
669
695
                                }
670
696
 
671
697
                                nonEmptyBlocks = editor.schema.getNonEmptyElements();
672
 
                                walker = new tinymce.dom.TreeWalker(rng.startContainer);
673
 
 
674
 
                                while ((node = walker[isForward ? 'next' : 'prev']())) {
 
698
                                if (node.nodeType == 1) {
 
699
                                        node = tinymce.dom.RangeUtils.getNode(node, offset);
 
700
                                }
 
701
 
 
702
                                walker = new tinymce.dom.TreeWalker(node, editor.getBody());
 
703
 
 
704
                                // Delete at <li>|<br></li> then jump over the bogus br
 
705
                                if (isForward) {
 
706
                                        if (isBogusBr(node)) {
 
707
                                                walker.next();
 
708
                                        }
 
709
                                }
 
710
 
 
711
                                while ((node = walker[isForward ? 'next' : 'prev2']())) {
675
712
                                        if (node.nodeName == 'LI' && !node.hasChildNodes()) {
676
713
                                                return node;
677
714
                                        }
689
726
                        function mergeLiElements(fromElm, toElm) {
690
727
                                var node, listNode, ul = fromElm.parentNode;
691
728
 
 
729
                                if (!isChildOfBody(fromElm) || !isChildOfBody(toElm)) {
 
730
                                        return;
 
731
                                }
 
732
 
692
733
                                if (isListNode(toElm.lastChild)) {
693
734
                                        listNode = toElm.lastChild;
694
735
                                }
695
736
 
 
737
                                if (ul == toElm.lastChild) {
 
738
                                        if (isBr(ul.previousSibling)) {
 
739
                                                dom.remove(ul.previousSibling);
 
740
                                        }
 
741
                                }
 
742
 
696
743
                                node = toElm.lastChild;
697
 
                                if (node && node.nodeName == 'BR' && fromElm.hasChildNodes()) {
 
744
                                if (node && isBr(node) && fromElm.hasChildNodes()) {
698
745
                                        dom.remove(node);
699
746
                                }
700
747