Просмотр исходного кода

Fix tab edit/create when using same tab name already in use - Fix #1066

causefx 7 лет назад
Родитель
Сommit
dca245de0d
3 измененных файлов с 25 добавлено и 1 удалено
  1. 8 0
      js/custom.js
  2. 0 0
      js/custom.min.js
  3. 17 1
      js/functions.js

+ 8 - 0
js/custom.js

@@ -885,6 +885,10 @@ $(document).on("click", ".editTab", function () {
     if ((typeof post.tabURL == 'undefined' || post.tabURL == '') && (typeof post.tabLocalURL == 'undefined' || post.tabLocalURL == '')) {
     if ((typeof post.tabURL == 'undefined' || post.tabURL == '') && (typeof post.tabLocalURL == 'undefined' || post.tabLocalURL == '')) {
         message('Edit Tab Error',' Please set a Tab URL or Local URL',activeInfo.settings.notifications.position,'#FFF','warning','5000');
         message('Edit Tab Error',' Please set a Tab URL or Local URL',activeInfo.settings.notifications.position,'#FFF','warning','5000');
     }
     }
+    if(checkIfTabNameExists(post.tabName)){
+        message('New Tab Error',' Tab name already used',activeInfo.settings.notifications.position,'#FFF','warning','5000');
+        return false;
+    }
     if(post.id !== '' && post.tabName !== '' && post.tabImage !== ''){
     if(post.id !== '' && post.tabName !== '' && post.tabImage !== ''){
         var callbacks = $.Callbacks();
         var callbacks = $.Callbacks();
         callbacks.add( buildTabEditor );
         callbacks.add( buildTabEditor );
@@ -925,6 +929,10 @@ $(document).on("click", ".addNewTab", function () {
     if (typeof post.tabImage == 'undefined' || post.tabImage == '') {
     if (typeof post.tabImage == 'undefined' || post.tabImage == '') {
         message('New Tab Error',' Please set a Tab Image',activeInfo.settings.notifications.position,'#FFF','warning','5000');
         message('New Tab Error',' Please set a Tab Image',activeInfo.settings.notifications.position,'#FFF','warning','5000');
     }
     }
+    if(checkIfTabNameExists(post.tabName)){
+        message('New Tab Error',' Tab name already used',activeInfo.settings.notifications.position,'#FFF','warning','5000');
+        return false;
+    }
     if(post.tabOrder !== '' && post.tabName !== '' && (post.tabURL !== '' || post.tabLocalURL !== '') && post.tabImage !== '' ){
     if(post.tabOrder !== '' && post.tabName !== '' && (post.tabURL !== '' || post.tabLocalURL !== '') && post.tabImage !== '' ){
         var callbacks = $.Callbacks();
         var callbacks = $.Callbacks();
         callbacks.add( buildTabEditor );
         callbacks.add( buildTabEditor );

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
js/custom.min.js


+ 17 - 1
js/functions.js

@@ -2315,7 +2315,7 @@ function buildInternalContainer(name,url,type){
 function buildMenuList(name,url,type,icon,ping=null){
 function buildMenuList(name,url,type,icon,ping=null){
     var ping = (ping !== null) ? `<small class="menu-`+cleanClass(ping)+`-ping-ms hidden-xs label label-rouded label-inverse pull-right hidden">
     var ping = (ping !== null) ? `<small class="menu-`+cleanClass(ping)+`-ping-ms hidden-xs label label-rouded label-inverse pull-right hidden">
 </small><div class="menu-`+cleanClass(ping)+`-ping" data-tab-name="`+name+`" data-previous-state=""></div>` : '';
 </small><div class="menu-`+cleanClass(ping)+`-ping" data-tab-name="`+name+`" data-previous-state=""></div>` : '';
-	return `<li id="menu-`+cleanClass(name)+`" type="`+type+`" data-url="`+url+`"><a class="waves-effect" onclick="tabActions(event,'`+cleanClass(name)+`',`+type+`);">`+iconPrefix(icon)+`<span class="hide-menu">`+name+`</span>`+ping+`</a></li>`;
+	return `<li class="allTabsList" id="menu-`+cleanClass(name)+`" data-tab-name="`+cleanClass(name)+`" type="`+type+`" data-url="`+url+`"><a class="waves-effect" onclick="tabActions(event,'`+cleanClass(name)+`',`+type+`);">`+iconPrefix(icon)+`<span class="hide-menu">`+name+`</span>`+ping+`</a></li>`;
 }
 }
 function tabProcess(arrayItems) {
 function tabProcess(arrayItems) {
 	var iFrameList = '';
 	var iFrameList = '';
@@ -6261,6 +6261,22 @@ function clickPath(type,path=null){
 function toggleWritableFolders(){
 function toggleWritableFolders(){
     $('.folders-writable').toggleClass('hidden');
     $('.folders-writable').toggleClass('hidden');
 }
 }
+function getAllTabNames(){
+    var allTabs = $('.allTabsList');
+    var tabList = [];
+    $.each(allTabs, function(i,v) {
+        console.log(v.getAttribute('data-tab-name'));
+        tabList[i] = v.getAttribute('data-tab-name').toLowerCase();
+    });
+    return tabList;
+}
+function checkIfTabNameExists(tabName){
+    if (getAllTabNames().indexOf(tabName.toLowerCase()) == -1) {
+        return false;
+    }else{
+        return true;
+    }
+}
 function launch(){
 function launch(){
 	organizrConnect('api/?v1/launch_organizr').success(function (data) {
 	organizrConnect('api/?v1/launch_organizr').success(function (data) {
         try {
         try {

Некоторые файлы не были показаны из-за большого количества измененных файлов