%PDF- %PDF-
Direktori : /home/lightco1/upgrade.lightco.com.au/media/com_sitemapgenerator/js/ |
Current File : /home/lightco1/upgrade.lightco.com.au/media/com_sitemapgenerator/js/sitemap.js |
'use strict'; var sitemapGeneratorApp = angular.module('sitemapGeneratorApp', []); var sitemapGeneratorBlob; sitemapGeneratorApp.config(['$compileProvider', function($compileProvider) { $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); } ]); sitemapGeneratorApp.controller('SitemapController', ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) { $scope.downloadDisabled = true; $scope.generateDisabled = false; $scope.message = "The generation of the sitemap was not started yet."; $scope.messageClass = "alert-info"; $scope.generateClass = sitemapGeneratorVars.btnPrimaryClass; $scope.downloadClass = sitemapGeneratorVars.btnDefaultClass; $scope.generate = function(base64URL, identifier) { if ($scope.sitemapForm.$valid) { $scope.downloadDisabled = true; $scope.generateDisabled = true; $scope.pageCount = 0; $scope.stats = null; $scope.message = "The sitemap is being generated. Please wait a moment."; $scope.messageClass = "alert-warning"; $scope.generateClass = sitemapGeneratorVars.btnPrimaryClass; $scope.downloadClass = sitemapGeneratorVars.btnDefaultClass; var poller = function() { var proxyURL = sitemapGeneratorVars.proxyURL; if (sitemapGeneratorVars.systemName == 'Joomla') { proxyURL += '&base64url=' + base64URL + '&identifier=' + identifier; } $http({ method: 'GET', url: proxyURL, headers: { 'Cache-Control': 'no-store', }, }). success(function(data, status, headers, config) { if (headers('Content-Type').startsWith('application/xml')) { sitemapGeneratorBlob = new Blob([ data ], { type : 'application/xml' }); $scope.href = (window.URL || window.webkitURL).createObjectURL(sitemapGeneratorBlob); $scope.downloadDisabled = false; $scope.generateDisabled = false; if (headers('X-Limit-Reached') == 1) { $scope.message = "The Sitemap Generator reached the URL limit and the generated sitemap probably isn't complete. You may buy a token for the <a href=\"" + sitemapGeneratorVars.professionalURL + "\">Sitemap Generator Professional</a> to crawl up to 50'000 URLs and create a complete sitemap. Additionally to a higher URL limit, the professional version also adds images and videos to your sitemap."; $scope.messageClass = "alert-danger"; } else { $scope.message = "The generation of the sitemap was successful. The sitemap was saved as sitemap.xml in the " + sitemapGeneratorVars.systemName + " root folder. Please see the stats below."; $scope.messageClass = "alert-success"; } if (headers('X-Stats') != null) { $scope.stats = JSON.parse(headers('X-Stats')); } $scope.generateClass = sitemapGeneratorVars.btnDefaultClass; $scope.downloadClass = sitemapGeneratorVars.btnPrimaryClass; } else { $scope.pageCount = data.page_count; $timeout(poller, 1000); } }). error(function(data, status, headers, config) { $scope.generateDisabled = false; if (status == 401) { // unauthorized $scope.message = "The validation of your token failed. The token is invalid or has expired. Please try it again or contact me if the token should be valid."; } else if (status == 500) { if (data != '' && headers('Content-Type').startsWith('application/json')) { $scope.message = "The generation of your sitemap failed with the error:<br/><strong>" + JSON.parse(data) + "</strong>."; } else { $scope.message = "The generation of your sitemap failed. Please try it again."; } } else if (status == 503) { $scope.message = "The backend server is temporarily unavailable. Please try it again later."; } else if (status == 504 && headers('X-CURL-Error') == 1) { var message = JSON.parse(data); if (message == '') { $scope.message = "A cURL error occurred. Please contact the developer of the extensions."; } else { $scope.message = "A cURL error occurred with the error message:<br/><strong>" + message + "</strong>."; } } else { $scope.message = "The generation of your sitemap failed. Please try it again or contact the developer of the extensions."; } $scope.messageClass = "alert-danger"; }); } poller(); } } $scope.download = function() { if (window.navigator.msSaveOrOpenBlob && sitemapGeneratorBlob) { window.navigator.msSaveOrOpenBlob(sitemapGeneratorBlob, 'sitemap.xml'); } } } ]); sitemapGeneratorApp.filter("sanitize", ['$sce', function($sce) { return function(htmlCode){ return $sce.trustAsHtml(htmlCode); } }]);