Github user tgravescs commented on a diff in the pull request: https://github.com/apache/spark/pull/21688#discussion_r224164134 --- Diff: core/src/main/resources/org/apache/spark/ui/static/stagepage.js --- @@ -0,0 +1,872 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var blockUICount = 0; + +$(document).ajaxStop(function () { + if (blockUICount == 0) { + $.unblockUI(); + blockUICount++; + } +}); + +$(document).ajaxStart(function () { + if (blockUICount == 0) { + $.blockUI({message: '<h3>Loading Stage Page...</h3>'}); + } +}); + +$.extend( $.fn.dataTable.ext.type.order, { + "duration-pre": ConvertDurationString, + + "duration-asc": function ( a, b ) { + a = ConvertDurationString( a ); + b = ConvertDurationString( b ); + return ((a < b) ? -1 : ((a > b) ? 1 : 0)); + }, + + "duration-desc": function ( a, b ) { + a = ConvertDurationString( a ); + b = ConvertDurationString( b ); + return ((a < b) ? 1 : ((a > b) ? -1 : 0)); + } +} ); + +// This function will only parse the URL under certain format +// e.g. (history) https://domain:50509/history/application_1536254569791_3806251/1/stages/stage/?id=4&attempt=1 +// e.g. (proxy) https://domain:50505/proxy/application_1502220952225_59143/stages/stage?id=4&attempt=1 +function stageEndPoint(appId) { + var urlRegex = /https\:\/\/[^\/]+\/([^\/]+)\/([^\/]+)\/([^\/]+)?\/?([^\/]+)?\/?([^\/]+)?\/?([^\/]+)?/gm; + var urlArray = urlRegex.exec(document.baseURI); + var ind = urlArray.indexOf("proxy"); + var queryString = document.baseURI.split('?'); + var words = document.baseURI.split('/'); + var stageId = queryString[1].split("&").filter(word => word.includes("id="))[0].split("=")[1]; + if (ind > 0) { + var appId = urlArray[2]; + var indexOfProxy = words.indexOf("proxy"); + var newBaseURI = words.slice(0, indexOfProxy + 2).join('/'); + return newBaseURI + "/api/v1/applications/" + appId + "/stages/" + stageId; + } + ind = urlArray.indexOf("history"); + if (ind > 0) { + var appId = urlArray[2]; + var appAttemptId = urlArray[ind + 2]; + var indexOfHistory = words.indexOf("history"); --- End diff -- similar here can't we get rid of one of the indexes and just use words to look up appId and appAttemptId?
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org