22 | | |
| 22 | |
| 23 | var advParamsMap = { |
| 24 | 'advLangDir' : 'dir', |
| 25 | 'advAccessKey' : 'accessKey', |
| 26 | 'advName' : 'name', |
| 27 | 'advLangCode' : 'lang', |
| 28 | 'advTabIndex' : 'tabindex', |
| 29 | 'advTitle' : 'title', |
| 30 | 'advContentType' : 'type', |
| 31 | 'advCSSClasses' : 'class', |
| 32 | 'advCharset' : 'charset', |
| 33 | 'advStyles' : 'style', |
| 34 | 'advId' : 'id' |
| 35 | }; |
| 36 | |
| 37 | var setupAdvParams = function( data ) |
| 38 | { |
| 39 | var attrName = advParamsMap[ this.id ]; |
| 40 | var value = data.hasAttribute( attrName ) && data.getAttribute( attrName ); |
| 41 | |
| 42 | // Compatibility with showborders plugin. |
| 43 | if ( attrName == 'class' ) |
| 44 | { |
| 45 | var _tmpValue = CKEDITOR.tools.trim( value ).split( ' ' ); |
| 46 | if ( CKEDITOR.tools.indexOf( _tmpValue, 'cke_show_border' ) != -1 ) |
| 47 | { |
| 48 | var newValue = []; |
| 49 | for ( var i = 0; i < _tmpValue.length; i++ ) |
| 50 | { |
| 51 | if ( _tmpValue[ i ] != 'cke_show_border' ) |
| 52 | newValue.push( _tmpValue[ i ] ); |
| 53 | } |
| 54 | value = newValue.length && newValue.join( ' ' ) || undefined; |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | if ( value !== undefined ) |
| 59 | this.setValue( value ) |
| 60 | }; |
| 61 | |
| 62 | var commitAdvParams = function( data, element ) |
| 63 | { |
| 64 | var value = this.getValue(); |
| 65 | if ( value ) |
| 66 | { |
| 67 | var attrName = advParamsMap[ this.id ]; |
| 68 | |
| 69 | // Compatibility with showborders plugin. |
| 70 | if ( attrName == 'class' ) |
| 71 | { |
| 72 | if ( CKEDITOR.tools.indexOf( CKEDITOR.tools.trim( element.getAttribute( 'class' ) ).split( ' ' ), 'cke_show_border' ) != -1 ) |
| 73 | value += ' cke_show_border'; |
| 74 | } |
| 75 | |
| 76 | if ( attrName != 'id' || ( attrName == 'id' && this._.selectedElement ) ) |
| 77 | element.setAttribute( attrName, value ); |
| 78 | } |
| 79 | else |
| 80 | element.removeAttribute( attrName, value ); |
| 81 | }; |
| 82 | |
583 | | } |
584 | | ] |
| 643 | }, |
| 644 | { |
| 645 | id : 'advanced', |
| 646 | label : editor.lang.link.advanced, |
| 647 | title : editor.lang.link.advanced, |
| 648 | elements : |
| 649 | [ |
| 650 | { |
| 651 | type : 'vbox', |
| 652 | padding : 1, |
| 653 | children : |
| 654 | [ |
| 655 | { |
| 656 | type : 'hbox', |
| 657 | widths : [ '45%', '35%', '20%' ], |
| 658 | children : |
| 659 | [ |
| 660 | { |
| 661 | type : 'text', |
| 662 | id : 'advId', |
| 663 | label : editor.lang.link.id, |
| 664 | setup : setupAdvParams, |
| 665 | commit : commitAdvParams |
| 666 | }, |
| 667 | { |
| 668 | type : 'select', |
| 669 | id : 'advLangDir', |
| 670 | label : editor.lang.link.langDir, |
| 671 | 'default' : '', |
| 672 | style : 'width:110px', |
| 673 | items : |
| 674 | [ |
| 675 | [ editor.lang.common.notSet, '' ], |
| 676 | [ editor.lang.link.langDirLTR, 'ltr' ], |
| 677 | [ editor.lang.link.langDirRTL, 'rtl' ] |
| 678 | ], |
| 679 | setup : setupAdvParams, |
| 680 | commit : commitAdvParams |
| 681 | }, |
| 682 | { |
| 683 | type : 'text', |
| 684 | id : 'advAccessKey', |
| 685 | width : '80px', |
| 686 | label : editor.lang.link.acccessKey, |
| 687 | maxLength : 1, |
| 688 | setup : setupAdvParams, |
| 689 | commit : commitAdvParams |
| 690 | |
| 691 | } |
| 692 | ] |
| 693 | }, |
| 694 | { |
| 695 | type : 'hbox', |
| 696 | widths : [ '45%', '35%', '20%' ], |
| 697 | children : |
| 698 | [ |
| 699 | { |
| 700 | type : 'text', |
| 701 | label : editor.lang.link.name, |
| 702 | id : 'advName', |
| 703 | setup : setupAdvParams, |
| 704 | commit : commitAdvParams |
| 705 | |
| 706 | }, |
| 707 | { |
| 708 | type : 'text', |
| 709 | label : editor.lang.link.langCode, |
| 710 | id : 'advLangCode', |
| 711 | width : '110px', |
| 712 | 'default' : '', |
| 713 | setup : setupAdvParams, |
| 714 | commit : commitAdvParams |
| 715 | |
| 716 | }, |
| 717 | { |
| 718 | type : 'text', |
| 719 | label : editor.lang.link.tabIndex, |
| 720 | id : 'advTabIndex', |
| 721 | width : '80px', |
| 722 | maxLength : 5, |
| 723 | setup : setupAdvParams, |
| 724 | commit : commitAdvParams |
| 725 | |
| 726 | } |
| 727 | ] |
| 728 | } |
| 729 | ] |
| 730 | }, |
| 731 | { |
| 732 | type : 'vbox', |
| 733 | padding : 1, |
| 734 | children : |
| 735 | [ |
| 736 | { |
| 737 | type : 'hbox', |
| 738 | widths : [ '45%', '55%' ], |
| 739 | children : |
| 740 | [ |
| 741 | { |
| 742 | type : 'text', |
| 743 | label : editor.lang.link.advisoryTitle, |
| 744 | 'default' : '', |
| 745 | id : 'advTitle', |
| 746 | setup : setupAdvParams, |
| 747 | commit : commitAdvParams |
| 748 | |
| 749 | }, |
| 750 | { |
| 751 | type : 'text', |
| 752 | label : editor.lang.link.advisoryContentType, |
| 753 | 'default' : '', |
| 754 | id : 'advContentType', |
| 755 | setup : setupAdvParams, |
| 756 | commit : commitAdvParams |
| 757 | |
| 758 | } |
| 759 | ] |
| 760 | }, |
| 761 | { |
| 762 | type : 'hbox', |
| 763 | widths : [ '45%', '55%' ], |
| 764 | children : |
| 765 | [ |
| 766 | { |
| 767 | type : 'text', |
| 768 | label : editor.lang.link.cssClasses, |
| 769 | 'default' : '', |
| 770 | id : 'advCSSClasses', |
| 771 | setup : setupAdvParams, |
| 772 | commit : commitAdvParams |
| 773 | |
| 774 | }, |
| 775 | { |
| 776 | type : 'text', |
| 777 | label : editor.lang.link.charset, |
| 778 | 'default' : '', |
| 779 | id : 'advCharset', |
| 780 | setup : setupAdvParams, |
| 781 | commit : commitAdvParams |
| 782 | |
| 783 | } |
| 784 | ] |
| 785 | }, |
| 786 | { |
| 787 | type : 'hbox', |
| 788 | children : |
| 789 | [ |
| 790 | { |
| 791 | type : 'text', |
| 792 | label : editor.lang.link.styles, |
| 793 | 'default' : '', |
| 794 | id : 'advStyles', |
| 795 | setup : setupAdvParams, |
| 796 | commit : commitAdvParams |
| 797 | |
| 798 | } |
| 799 | ] |
| 800 | } |
| 801 | ] |
| 802 | } |
| 803 | ] |
| 804 | } |
| 805 | ] |