Code Duplication    Length = 70-70 lines in 2 locations

public/js/tinymce/themes/inlite/theme.js 1 location

@@ 8966-9035 (lines=70) @@
8963
      hasMenus: function () {
8964
        return !!this.settings.menu;
8965
      },
8966
      showMenu: function () {
8967
        var self = this;
8968
        var settings = self.settings;
8969
        var menu;
8970
        var parent = self.parent();
8971
        parent.items().each(function (ctrl) {
8972
          if (ctrl !== self) {
8973
            ctrl.hideMenu();
8974
          }
8975
        });
8976
        if (settings.menu) {
8977
          menu = self.menu;
8978
          if (!menu) {
8979
            menu = settings.menu;
8980
            if (menu.length) {
8981
              menu = {
8982
                type: 'menu',
8983
                items: menu
8984
              };
8985
            } else {
8986
              menu.type = menu.type || 'menu';
8987
            }
8988
            if (parent.settings.itemDefaults) {
8989
              menu.itemDefaults = parent.settings.itemDefaults;
8990
            }
8991
            menu = self.menu = global$b.create(menu).parent(self).renderTo();
8992
            menu.reflow();
8993
            menu.on('cancel', function (e) {
8994
              e.stopPropagation();
8995
              self.focus();
8996
              menu.hide();
8997
            });
8998
            menu.on('show hide', function (e) {
8999
              if (e.control.items) {
9000
                e.control.items().each(function (ctrl) {
9001
                  ctrl.active(ctrl.settings.selected);
9002
                });
9003
              }
9004
            }).fire('show');
9005
            menu.on('hide', function (e) {
9006
              if (e.control === menu) {
9007
                self.classes.remove('selected');
9008
              }
9009
            });
9010
            menu.submenu = true;
9011
          } else {
9012
            menu.show();
9013
          }
9014
          menu._parentMenu = parent;
9015
          menu.classes.add('menu-sub');
9016
          var rel = menu.testMoveRel(self.getEl(), self.isRtl() ? [
9017
            'tl-tr',
9018
            'bl-br',
9019
            'tr-tl',
9020
            'br-bl'
9021
          ] : [
9022
            'tr-tl',
9023
            'br-bl',
9024
            'tl-tr',
9025
            'bl-br'
9026
          ]);
9027
          menu.moveRel(self.getEl(), rel);
9028
          menu.rel = rel;
9029
          rel = 'menu-sub-' + rel;
9030
          menu.classes.remove(menu._lastRel).add(rel);
9031
          menu._lastRel = rel;
9032
          self.classes.add('selected');
9033
          self.aria('expanded', true);
9034
        }
9035
      },
9036
      hideMenu: function () {
9037
        var self = this;
9038
        if (self.menu) {

public/js/tinymce/themes/modern/theme.js 1 location

@@ 8774-8843 (lines=70) @@
8771
      hasMenus: function () {
8772
        return !!this.settings.menu;
8773
      },
8774
      showMenu: function () {
8775
        var self = this;
8776
        var settings = self.settings;
8777
        var menu;
8778
        var parent = self.parent();
8779
        parent.items().each(function (ctrl) {
8780
          if (ctrl !== self) {
8781
            ctrl.hideMenu();
8782
          }
8783
        });
8784
        if (settings.menu) {
8785
          menu = self.menu;
8786
          if (!menu) {
8787
            menu = settings.menu;
8788
            if (menu.length) {
8789
              menu = {
8790
                type: 'menu',
8791
                items: menu
8792
              };
8793
            } else {
8794
              menu.type = menu.type || 'menu';
8795
            }
8796
            if (parent.settings.itemDefaults) {
8797
              menu.itemDefaults = parent.settings.itemDefaults;
8798
            }
8799
            menu = self.menu = global$4.create(menu).parent(self).renderTo();
8800
            menu.reflow();
8801
            menu.on('cancel', function (e) {
8802
              e.stopPropagation();
8803
              self.focus();
8804
              menu.hide();
8805
            });
8806
            menu.on('show hide', function (e) {
8807
              if (e.control.items) {
8808
                e.control.items().each(function (ctrl) {
8809
                  ctrl.active(ctrl.settings.selected);
8810
                });
8811
              }
8812
            }).fire('show');
8813
            menu.on('hide', function (e) {
8814
              if (e.control === menu) {
8815
                self.classes.remove('selected');
8816
              }
8817
            });
8818
            menu.submenu = true;
8819
          } else {
8820
            menu.show();
8821
          }
8822
          menu._parentMenu = parent;
8823
          menu.classes.add('menu-sub');
8824
          var rel = menu.testMoveRel(self.getEl(), self.isRtl() ? [
8825
            'tl-tr',
8826
            'bl-br',
8827
            'tr-tl',
8828
            'br-bl'
8829
          ] : [
8830
            'tr-tl',
8831
            'br-bl',
8832
            'tl-tr',
8833
            'bl-br'
8834
          ]);
8835
          menu.moveRel(self.getEl(), rel);
8836
          menu.rel = rel;
8837
          rel = 'menu-sub-' + rel;
8838
          menu.classes.remove(menu._lastRel).add(rel);
8839
          menu._lastRel = rel;
8840
          self.classes.add('selected');
8841
          self.aria('expanded', true);
8842
        }
8843
      },
8844
      hideMenu: function () {
8845
        var self = this;
8846
        if (self.menu) {