Browse Source

Added error catching on json parse for ajax calls

causefx 7 years ago
parent
commit
6061919a46
1 changed files with 356 additions and 61 deletions
  1. 356 61
      js/functions.js

+ 356 - 61
js/functions.js

@@ -326,9 +326,15 @@ function cleanClass(string){
 function noTabs(arrayItems){
 	if (arrayItems.data.user.loggedin === true) {
 		organizrConnect('api/?v1/no_tabs').success(function(data) {
-			var json = JSON.parse(data);
+            try {
+                var response = JSON.parse(data);
+            }catch(e) {
+                console.log(e + ' error: ' + data);
+                alert(e + ' error: ' + data);
+                return false;
+            }
 			console.log("Organizr Function: No Tabs Available");
-			$(json.data).appendTo($('.organizr-area'));
+			$(response.data).appendTo($('.organizr-area'));
 		}).fail(function(xhr) {
 			console.error("Organizr Function: API Connection Failed");
 		});
@@ -358,7 +364,13 @@ function formatIcon (icon) {
 function logout(){
 	message('',' Goodbye!',activeInfo.settings.notifications.position,'#FFF','success','10000');
 	organizrAPI('GET','api/?v1/logout').success(function(data) {
-		var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		if(html.data == true){
             local('set','message','Goodbye|Logout Successful|success');
 			location.reload();
@@ -953,13 +965,19 @@ function buildPluginsItem(array){
 }
 function loadMarketplace(type){
     marketplaceJSON(type).success(function(data) {
-        var json = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         switch (type) {
             case 'plugins':
-                loadMarketplacePluginsItems(json);
+                loadMarketplacePluginsItems(response);
                 break;
             case 'themes':
-                loadMarketplaceThemesItems(json);
+                loadMarketplaceThemesItems(response);
                 break;
             default:
         }
@@ -1235,7 +1253,13 @@ function removePlugin(plugin=null){
     message('Removing Plugin',plugin.name,activeInfo.settings.notifications.position,"#FFF","success","5000");
     plugin.downloadList = pluginFileList(plugin.files,plugin.github_folder,'plugins');
     organizrAPI('POST','api/?v1/plugin/remove',{plugin:plugin}).success(function(data) {
-        var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if(html.data.substr(0, 7) == 'Success'){
             var newPlugins = html.data.split('!@!');
             activeInfo.settings.misc.installedPlugins = newPlugins[1];
@@ -1256,7 +1280,13 @@ function removeTheme(theme=null){
     message('Removing Plugin',theme.name,activeInfo.settings.notifications.position,"#FFF","success","5000");
     theme.downloadList = pluginFileList(theme.files,theme.github_folder,'plugins');
     organizrAPI('POST','api/?v1/theme/remove',{theme:theme}).success(function(data) {
-        var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if(html.data.substr(0, 7) == 'Success'){
             var newThemes = html.data.split('!@!');
             activeInfo.settings.misc.installedThemes = newThemes[1];
@@ -1277,7 +1307,13 @@ function installPlugin(plugin=null){
     message('Installing Plugin',plugin.name,activeInfo.settings.notifications.position,"#FFF","success","5000");
     plugin.downloadList = pluginFileList(plugin.files,plugin.github_folder,'plugins');
     organizrAPI('POST','api/?v1/plugin/install',{plugin:plugin}).success(function(data) {
-        var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if(html.data.substr(0, 7) == 'Success'){
             var newPlugins = html.data.split('!@!');
             activeInfo.settings.misc.installedPlugins = newPlugins[1];
@@ -1298,7 +1334,13 @@ function installTheme(theme=null){
     message('Installing Theme',theme.name,activeInfo.settings.notifications.position,"#FFF","success","5000");
     theme.downloadList = pluginFileList(theme.files,theme.github_folder,'themes');
     organizrAPI('POST','api/?v1/theme/install',{theme:theme}).success(function(data) {
-        var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         console.log(data);
         if(html.data.substr(0, 7) == 'Success'){
             var newThemes = html.data.split('!@!');
@@ -1401,7 +1443,13 @@ function buildHomepageItem(array){
 }
 function buildPlugins(){
 	organizrAPI('GET','api/?v1/settings/plugins/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#main-plugin-area').html(buildPluginsItem(response.data));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1409,7 +1457,13 @@ function buildPlugins(){
 }
 function buildHomepage(){
 	organizrAPI('GET','api/?v1/settings/homepage/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#settings-homepage-list').html(buildHomepageItem(response.data));
 		customHTMLoneEditor = ace.edit("customHTMLoneEditor");
 		var HTMLMode = ace.require("ace/mode/html").Mode;
@@ -1514,7 +1568,13 @@ function buildImageManagerViewItem(array){
 }
 function buildImageManagerView(){
 	organizrAPI('GET','api/?v1/image/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#settings-image-manager-list').html(buildImageManagerViewItem(response.data));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1522,7 +1582,13 @@ function buildImageManagerView(){
 }
 function buildCustomizeAppearance(){
 	organizrAPI('GET','api/?v1/customize/appearance').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#customize-appearance-form').html(buildFormGroup(response.data));
 		cssEditor = ace.edit("customCSSEditor");
 		var CssMode = ace.require("ace/mode/css").Mode;
@@ -1572,7 +1638,13 @@ function buildCustomizeAppearance(){
 }
 function buildSSO(){
 	organizrAPI('GET','api/?v1/sso').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#sso-form').html(buildFormGroup(response.data));
     }).fail(function (xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1580,7 +1652,13 @@ function buildSSO(){
 }
 function buildSettingsMain(){
 	organizrAPI('GET','api/?v1/settings/main').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#settings-main-form').html(buildFormGroup(response.data));
 		changeAuth();
 	}).fail(function(xhr) {
@@ -1589,7 +1667,13 @@ function buildSettingsMain(){
 }
 function buildUserManagement(){
 	organizrAPI('GET','api/?v1/user/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#manageUserTable').html(buildUserManagementItem(response.data));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1597,7 +1681,13 @@ function buildUserManagement(){
 }
 function buildGroupManagement(){
 	organizrAPI('GET','api/?v1/user/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#manageGroupTable').html(buildGroupManagementItem(response.data));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1605,7 +1695,13 @@ function buildGroupManagement(){
 }
 function buildTabEditor(){
 	organizrAPI('GET','api/?v1/tab/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#tabEditorTable').html(buildTabEditorItem(response.data));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1613,7 +1709,13 @@ function buildTabEditor(){
 }
 function buildCategoryEditor(){
 	organizrAPI('GET','api/?v1/tab/list').success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#categoryEditorTable').html(buildCategoryEditorItem(response.data));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
@@ -1621,7 +1723,13 @@ function buildCategoryEditor(){
 }
 function settingsAPI(post, callbacks=null){
 	organizrAPI('POST',post.api,post).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		//console.log(response);
 		message(post.messageTitle,post.messageBody,activeInfo.settings.notifications.position,"#FFF","success","5000");
 		if(callbacks){ callbacks.fire(); }
@@ -1673,7 +1781,13 @@ function removeFile(path,name){
 		};
 		ajaxloader(".content-wrap","in");
 		organizrAPI('POST','api/?v1/remove/file',post).success(function(data) {
-			var response = JSON.parse(data);
+            try {
+                var response = JSON.parse(data);
+            }catch(e) {
+                console.log(e + ' error: ' + data);
+                alert(e + ' error: ' + data);
+                return false;
+            }
 			if(response.data == true){
 				messageSingle('',window.lang.translate('Removed File')+' - '+name,activeInfo.settings.notifications.position,'#FFF','success','5000');
 			}else{
@@ -1703,7 +1817,13 @@ function updateUserInformation(){
 		};
 		ajaxloader(".content-wrap","in");
 		organizrAPI('POST','api/?v1/manage/user',post).success(function(data) {
-			var response = JSON.parse(data);
+            try {
+                var response = JSON.parse(data);
+            }catch(e) {
+                console.log(e + ' error: ' + data);
+                alert(e + ' error: ' + data);
+                return false;
+            }
 			if(response.data == true){
 				$.magnificPopup.close();
 				messageSingle('',window.lang.translate('User Info Updated'),activeInfo.settings.notifications.position,'#FFF','success','5000');
@@ -1720,7 +1840,13 @@ function twoFA(action, type, secret = null){
     switch(action){
         case 'activate':
             organizrAPI('POST','api/?v1/2fa/create',{type:type}).success(function(data) {
-                var html = JSON.parse(data);
+                try {
+                    var html = JSON.parse(data);
+                }catch(e) {
+                    console.log(e + ' error: ' + data);
+                    alert(e + ' error: ' + data);
+                    return false;
+                }
                 $('.twofa-modal-title').html(html.data.type);
                 $('.twofa-modal-image').html('<img class="center" src="'+html.data.url+'">');
                 $('.twofa-modal-secret').html(html.data.secret);
@@ -1731,7 +1857,13 @@ function twoFA(action, type, secret = null){
             break;
         case 'deactivate':
             organizrAPI('GET','api/?v1/2fa/remove').success(function(data) {
-                var html = JSON.parse(data);
+                try {
+                    var html = JSON.parse(data);
+                }catch(e) {
+                    console.log(e + ' error: ' + data);
+                    alert(e + ' error: ' + data);
+                    return false;
+                }
                 $('.2fa-list').replaceWith(buildTwoFA('internal'));
             }).fail(function(xhr) {
                 console.error("Organizr Function: Connection Failed");
@@ -1742,7 +1874,13 @@ function twoFA(action, type, secret = null){
             var code = $('#twofa-verify').val();
             if(type !== '' && secret !== '' && code !== ''){
                 organizrAPI('POST','api/?v1/2fa/verify',{type:type, secret:secret, code:code}).success(function(data) {
-                    var html = JSON.parse(data);
+                    try {
+                        var html = JSON.parse(data);
+                    }catch(e) {
+                        console.log(e + ' error: ' + data);
+                        alert(e + ' error: ' + data);
+                        return false;
+                    }
                     if(html.data == true){
                         message('2FA Success','Input Code Validated! Saving...',activeInfo.settings.notifications.position,"#FFF","success","5000");
                         $('#twofa-modal').modal('hide');
@@ -1759,8 +1897,14 @@ function twoFA(action, type, secret = null){
             break;
         case 'save':
             organizrAPI('POST','api/?v1/2fa/save',{type:type, secret:secret}).success(function(data) {
-                var html = JSON.parse(data);
-                console.log(html);
+                try {
+                    var html = JSON.parse(data);
+                }catch(e) {
+                    console.log(e + ' error: ' + data);
+                    alert(e + ' error: ' + data);
+                    return false;
+                }
+                //console.log(html);
                 if(html.data == true){
                     message('2FA Success','2FA Saved',activeInfo.settings.notifications.position,"#FFF","success","5000");
                     $('.2fa-list').replaceWith(buildTwoFA(type));
@@ -1838,7 +1982,13 @@ function buildTwoFA(current){
 }
 function revokeToken(token,id){
     organizrAPI('POST','api/?v1/token/revoke',{token:token}).success(function(data) {
-        var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if(response.data == true){
             $('#token-'+id).fadeOut();
             message(window.lang.translate('Removed Token'),"",activeInfo.settings.notifications.position,"#FFF","success","3500");
@@ -2242,9 +2392,15 @@ function buildLogin(){
 	removeMenuActive();
 	$('#menu-login a').addClass('active');
 	organizrConnect('api/?v1/login_page').success(function(data) {
-		var json = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		console.log("Organizr Function: Opening Login Page");
-		$('.login-area').html(json.data);
+		$('.login-area').html(response.data);
 	}).fail(function(xhr) {
 		console.error("Organizr Function: Login Connection Failed");
 	});
@@ -2254,9 +2410,15 @@ function buildLockscreen(){
 	$("#preloader").fadeIn();
 	closeSideMenu();
 	organizrConnect('api/?v1/lockscreen').success(function(data) {
-		var json = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		console.log("Organizr Function: Adding Lockscreen");
-		$(json.data).appendTo($('body'));
+		$(response.data).appendTo($('body'));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: Lockscreen Connection Failed");
 	});
@@ -2696,7 +2858,13 @@ function buildVersion(array){
 }
 function loadInternal(url,tabName){
 	organizrAPI('get',url).success(function(data) {
-		var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		$('#internal-'+tabName).html(html.data);
 	}).fail(function(xhr) {
 		console.error("Organizr Function: Connection Failed");
@@ -2704,17 +2872,29 @@ function loadInternal(url,tabName){
 }
 function loadSettingsPage(api,element,organizrFn){
 	organizrAPI('get',api).success(function(data) {
-		var json = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		console.log('Organizr Function: Loading '+organizrFn);
-		$(element).html(json.data);
+		$(element).html(response.data);
 	}).fail(function(xhr) {
 		console.error("Organizr Function: API Connection Failed");
 	});
 }
 function updateCheck(){
 	githubVersions().success(function(data) {
-		var json = JSON.parse(data);
-		for (var a in reverseObject(json)){
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
+		for (var a in reverseObject(response)){
 			var latest = a;
 			break;
 		}
@@ -2722,14 +2902,20 @@ function updateCheck(){
 			console.log('Update Function: Update to '+latest+' is available');
 			message(window.lang.translate('Update Available'),latest+' '+window.lang.translate('is available, goto')+' <a href="javascript:void(0)" onclick="tabActions(event,\'Settings\',0);clickPath(\'update\')"><span lang="en">Update Tab</span></a>',activeInfo.settings.notifications.position,'#FFF','update','60000');
 		}
-		$('#githubVersions').html(buildVersion(reverseObject(json)));
+		$('#githubVersions').html(buildVersion(reverseObject(response)));
 	}).fail(function(xhr) {
 		console.error("Organizr Function: Github Connection Failed");
 	});
 }
 function sponsorLoad(){
     sponsorsJSON().success(function(data) {
-        var json = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         /*for (var a in reverseObject(json)){
             var latest = a;
             break;
@@ -2738,8 +2924,8 @@ function sponsorLoad(){
             console.log('Update Function: Update to '+latest+' is available');
             message(window.lang.translate('Update Available'),latest+' '+window.lang.translate('is available, goto')+' <a href="javascript:void(0)" onclick="tabActions(event,\'Settings\',0);$(\'#update-button\').click()"><span lang="en">Update Tab</span></a>',activeInfo.settings.notifications.position,'#FFF','update','60000');
         }*/
-        $('#sponsorList').html(buildSponsor(json));
-        $('#sponsorListModals').html(buildSponsorModal(json));
+        $('#sponsorList').html(buildSponsor(response));
+        $('#sponsorListModals').html(buildSponsorModal(response));
         $('.sponsor-items').owlCarousel({
             nav:false,
             autoplay:true,
@@ -2859,12 +3045,24 @@ function updateNow(){
 	updateUpdateBar('Starting Download','5%');
 	messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'),window.lang.translate('Starting Update Process'),activeInfo.settings.notifications.position,'#FFF','success','60000');
 	organizrAPI('POST','api/?v1/update', {branch:activeInfo.branch,stage:1}).success(function(data) {
-		var json = JSON.parse(data);
+        try {
+            var json = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		if(json.data == true) {
             updateUpdateBar('Starting Unzip', '50%');
             messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'), window.lang.translate('Update File Downloaded'), activeInfo.settings.notifications.position, '#FFF', 'success', '60000');
             organizrAPI('POST', 'api/?v1/update', {branch: activeInfo.branch, stage: 2}).success(function (data) {
-                var json = JSON.parse(data);
+                try {
+                    var json = JSON.parse(data);
+                }catch(e) {
+                    console.log(e + ' error: ' + data);
+                    alert(e + ' error: ' + data);
+                    return false;
+                }
                 if (json.data == true) {
                     updateUpdateBar('Starting Copy', '70%');
                     messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'), window.lang.translate('Update File Unzipped'), activeInfo.settings.notifications.position, '#FFF', 'success', '60000');
@@ -2872,7 +3070,13 @@ function updateNow(){
                         branch: activeInfo.branch,
                         stage: 3
                     }).success(function (data) {
-                        var json = JSON.parse(data);
+                        try {
+                            var json = JSON.parse(data);
+                        }catch(e) {
+                            console.log(e + ' error: ' + data);
+                            alert(e + ' error: ' + data);
+                            return false;
+                        }
                         if (json.data == true) {
                             updateUpdateBar('Starting Cleanup', '90%');
                             messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'), window.lang.translate('Update Files Copied'), activeInfo.settings.notifications.position, '#FFF', 'success', '60000');
@@ -2880,7 +3084,13 @@ function updateNow(){
                                 branch: activeInfo.branch,
                                 stage: 4
                             }).success(function (data) {
-                                var json = JSON.parse(data);
+                                try {
+                                    var json = JSON.parse(data);
+                                }catch(e) {
+                                    console.log(e + ' error: ' + data);
+                                    alert(e + ' error: ' + data);
+                                    return false;
+                                }
                                 if (json.data == true) {
                                     updateUpdateBar('Restarting Organizr in', '100%', true);
                                     messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'), window.lang.translate('Update Cleanup Finished'), activeInfo.settings.notifications.position, '#FFF', 'success', '60000');
@@ -2980,7 +3190,13 @@ function changeSettingsMenu(path){
 }
 function buildWizard(){
 	organizrConnect('api/?v1/wizard_page').success(function(data) {
-		var json = JSON.parse(data);
+        try {
+            var json = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		console.log("Organizr Function: Starting Install Wizard");
 		$(json.data).appendTo($('.organizr-area'));
 	}).fail(function(xhr) {
@@ -2990,7 +3206,13 @@ function buildWizard(){
 }
 function buildDependencyCheck(orgdata){
 	organizrConnect('api/?v1/dependencies_page').success(function(data) {
-		var json = JSON.parse(data);
+        try {
+            var json = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		console.log("Organizr Function: Starting Dependencies Check");
 		$(json.data).appendTo($('.organizr-area'));
 		$(buildBrowserInfo()).appendTo($('#browser-info'));
@@ -3619,6 +3841,7 @@ function buildRequestItem(array, extra=null){
 				var badge = '';
 				var badge2 = '';
 				var bg = (v.background.includes('.')) ? v.background : 'plugins/images/cache/no-np.png';
+				v.user = (activeInfo.settings.homepage.ombi.alias) ? v.userAlias : v.user;
 				//Set Status
 				var status = (v.approved) ? '<span class="badge bg-org m-r-10" lang="en">Approved</span>' : '<span class="badge bg-danger m-r-10" lang="en">Unapproved</span>';
 				status += (v.available) ? '<span class="badge bg-org m-r-10" lang="en">Available</span>' : '<span class="badge bg-danger m-r-10" lang="en">Unavailable</span>';
@@ -4133,8 +4356,14 @@ function ombiActions(id,action,type){
 	ajaxloader('.preloader-'+id,'in');
     ajaxloader('.mfp-content .white-popup .col-md-8 .white-box .user-bg','in');
 	organizrAPI('POST','api/?v1/ombi',{id:id, action:action, type:type}).success(function(data) {
-		var response = JSON.parse(data);
-		console.log(response.data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
+		//console.log(response.data);
 		if(response.data !== false){
             if(action == 'delete'){
                 homepageRequests();
@@ -4142,7 +4371,13 @@ function ombiActions(id,action,type){
                 message(window.lang.translate('Deleted Request Item'),'',activeInfo.settings.notifications.position,"#FFF",'success',"3500");
                 return true;
             }
-            var responseData = JSON.parse(response.data.bd);
+            try {
+                var responseData = JSON.parse(response.data.bd);
+            }catch(e) {
+                console.log(e + ' error: ' + response.data.bd);
+                alert(e + ' error: ' + response.data.bd);
+                return false;
+            }
             console.log(responseData);
             var responseMessage = (responseData.isError == true) ? responseData.errorMessage : 'Success';
             var responseType = (responseData.isError == true) ? 'error' : 'success';
@@ -4834,7 +5069,13 @@ function homepageDownloader(type, timeout){
 
 	}
 	organizrAPI('POST','api/?v1/homepage/connect',{action:action}).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		//document.getElementById('homepageOrder'+type).innerHTML = '';
 		if(response.data !== null){
 			buildDownloaderItem(response.data, type);
@@ -4859,7 +5100,13 @@ function homepageStream(type, timeout){
 
 	}
 	organizrAPI('POST','api/?v1/homepage/connect',{action:action}).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		document.getElementById('homepageOrder'+type+'nowplaying').innerHTML = '';
 		$('#homepageOrder'+type+'nowplaying').html(buildStream(response.data, type));
 	}).fail(function(xhr) {
@@ -4883,7 +5130,13 @@ function homepageRecent(type, timeout){
 
 	}
 	organizrAPI('POST','api/?v1/homepage/connect',{action:action}).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		document.getElementById('homepageOrder'+type+'recent').innerHTML = '';
 		$('#homepageOrder'+type+'recent').html(buildRecent(response.data, type));
 		$('.recent-items').owlCarousel({
@@ -4911,7 +5164,13 @@ function homepagePlaylist(type, timeout=30000){
 
 	}
 	organizrAPI('POST','api/?v1/homepage/connect',{action:action}).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		document.getElementById('homepageOrder'+type+'playlist').innerHTML = '';
 		$('#homepageOrder'+type+'playlist').html(buildPlaylist(response.data, type));
 		$('.playlist-items').owlCarousel({
@@ -4929,7 +5188,13 @@ function homepagePlaylist(type, timeout=30000){
 function homepageRequests(timeout){
 	var timeout = (typeof timeout !== 'undefined') ? timeout : activeInfo.settings.homepage.refresh.ombiRefresh;
 	organizrAPI('POST','api/?v1/homepage/connect',{action:'getRequests'}).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
 		document.getElementById('homepageOrderombi').innerHTML = '';
 		if(response.data.content !== false){
 			$('#homepageOrderombi').html(buildRequest(response.data));
@@ -4951,7 +5216,13 @@ function homepageRequests(timeout){
 function testAPIConnection(service){
     messageSingle('',' Testing now...',activeInfo.settings.notifications.position,'#FFF','info','10000');
     organizrAPI('POST','api/?v1/test/api/connection',{action:service}).success(function(data) {
-        var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if(response.data == true){
             messageSingle('',' API Connection Success',activeInfo.settings.notifications.position,'#FFF','success','10000');
         }else{
@@ -4969,7 +5240,13 @@ function homepageCalendar(timeout){
         $('.fc-toolbar').addClass('fc-alternate');
     }
 	organizrAPI('POST','api/?v1/homepage/connect',{action:'getCalendar'}).success(function(data) {
-		var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         $('#calendar').fullCalendar('removeEvents');
         $('#calendar').fullCalendar('addEventSource', response.data.events);
         $('#calendar').fullCalendar('addEventSource', response.data.ical);
@@ -5278,7 +5555,13 @@ function importUsers(type){
     $('.importUsersButton').attr('disabled', true);
     messageSingle('',window.lang.translate('Importing Users'),activeInfo.settings.notifications.position,'#FFF','success','5000');
     organizrAPI('POST','api/?v1/import/users',{type:type}).success(function(data) {
-        var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if(response.data !== false){
             messageSingle('',window.lang.translate('Imported [' + response.data + '] Users'),activeInfo.settings.notifications.position,'#FFF','success','5000');
             $('.importUsersButton').attr('disabled', false);
@@ -5477,7 +5760,13 @@ function getPingList(arrayItems){
 }
 function pingUpdate(pingList,timeout){
     organizrAPI('POST','api/?v1/ping/list',{pingList:pingList}).success(function(data) {
-        var response = JSON.parse(data);
+        try {
+            var response = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         if (response.data !== false || response.data !== null) {
             $('.menu-category-ping').each(function( index ) {
                 $(this).attr('data-good','0');
@@ -5882,7 +6171,13 @@ function lock(){
         return false;
     }
     organizrAPI('POST','api/?v1/lock','').success(function(data) {
-        var html = JSON.parse(data);
+        try {
+            var html = JSON.parse(data);
+        }catch(e) {
+            console.log(e + ' error: ' + data);
+            alert(e + ' error: ' + data);
+            return false;
+        }
         console.log(html);
         if(html.data == true){
             location.reload();