http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-swimlane-process-line.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-swimlane-process-line.js b/tez-ui2/src/main/webapp/app/components/em-swimlane-process-line.js deleted file mode 100644 index 2d6e2b6..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-swimlane-process-line.js +++ /dev/null @@ -1,60 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - - process: null, - processor: null, - - didInsertElement: Ember.observer("process.startEvent.time", - "process.endEvent.time", "processor.timeWindow", function () { - var processor = this.get("processor"), - startPos = processor.timeToPositionPercent(this.get("process.startEvent.time")), - endPos = processor.timeToPositionPercent(this.get("process.endEvent.time")); - - Ember.run.later(this, function () { - this.$(".process-line").css({ - left: startPos + "%", - right: (100 - endPos) + "%", - "background-color": this.get("process").getColor() - }); - }); - }), - - sendMouseAction: function (name, mouseEvent) { - this.sendAction(name, "process-line", this.get("process"), { - mouseEvent: mouseEvent, - }); - }, - - mouseEnter: function (mouseEvent) { - this.sendMouseAction("showTooltip", mouseEvent); - }, - - mouseLeave: function (mouseEvent) { - this.sendMouseAction("hideTooltip", mouseEvent); - }, - - mouseUp: function (mouseEvent) { - this.sendMouseAction("click", mouseEvent); - } - - -});
http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-swimlane-process-name.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-swimlane-process-name.js b/tez-ui2/src/main/webapp/app/components/em-swimlane-process-name.js deleted file mode 100644 index eea897d..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-swimlane-process-name.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - - process: null, - - classNames: ["em-swimlane-process-name"], - - sendMouseAction: function (name, mouseEvent) { - this.sendAction(name, "process-name", this.get("process"), { - mouseEvent: mouseEvent, - }); - }, - - mouseEnter: function (mouseEvent) { - this.sendMouseAction("showTooltip", mouseEvent); - }, - - mouseLeave: function (mouseEvent) { - this.sendMouseAction("hideTooltip", mouseEvent); - }, - - mouseUp: function (mouseEvent) { - this.sendMouseAction("click", mouseEvent); - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-swimlane-process-visual.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-swimlane-process-visual.js b/tez-ui2/src/main/webapp/app/components/em-swimlane-process-visual.js deleted file mode 100644 index aa555cd..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-swimlane-process-visual.js +++ /dev/null @@ -1,66 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -const BUBBLE_DIA = 10; // Same as that in css - -export default Ember.Component.extend({ - - process: null, - processor: null, - focusedProcess: null, - - classNames: ["em-swimlane-process-visual"], - - actions: { - showTooltip: function(type, process, options) { - - if(type === "event") { - let clientX = options.mouseEvent.clientX, - events = process.get("events"), - eventsUnderMouse = []; - - this.$(".em-swimlane-event").each(function (index) { - var offsetLeft = Ember.$(this).offset().left; - - if(clientX >= offsetLeft - BUBBLE_DIA && clientX <= offsetLeft + BUBBLE_DIA) { - eventsUnderMouse.push(events[index]); - } - }); - - if(events.length) { - eventsUnderMouse.sort(function (eventA, eventB) { - return eventA.time - eventB.time; - }); - options.events = eventsUnderMouse; - } - } - - this.sendAction("showTooltip", type, process, options); - }, - - hideTooltip: function(type, process, options) { - this.sendAction("hideTooltip", type, process, options); - }, - click: function (type, process, options) { - this.sendAction("click", type, process, options); - } - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-swimlane-ruler.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-swimlane-ruler.js b/tez-ui2/src/main/webapp/app/components/em-swimlane-ruler.js deleted file mode 100644 index 4d1b933..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-swimlane-ruler.js +++ /dev/null @@ -1,98 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; -import moment from 'moment'; - -const DEFAULT_MARK_COUNT = 10; - -export default Ember.Component.extend({ - - zoom: null, - processor: null, - scroll: 0, - - classNames: ["em-swimlane-ruler"], - - markDef: Ember.computed("processor.timeWindow", "zoom", function () { - var markCount = parseInt(DEFAULT_MARK_COUNT * this.get("zoom") / 100), - timeWindow = this.get("processor.timeWindow"), - duration = moment.duration(parseInt(timeWindow / markCount)), - - markUnit = "Milliseconds", - markBaseValue = 0, - markWindow = 0, - styleWidth = 0; - - if(markBaseValue = duration.years()) { - markUnit = "Years"; - } - else if(markBaseValue = duration.months()) { - markUnit = "Months"; - } - else if(markBaseValue = duration.days()) { - markUnit = "Days"; - } - else if(markBaseValue = duration.hours()) { - markUnit = "Hours"; - } - else if(markBaseValue = duration.minutes()) { - markUnit = "Minutes"; - } - else if(markBaseValue = duration.seconds()) { - markUnit = "Seconds"; - } - else { - markBaseValue = duration.milliseconds(); - } - - if(markBaseValue > 10) { - markBaseValue = Math.floor(markBaseValue / 10) * 10; - } - - markWindow = moment.duration(markBaseValue, markUnit.toLowerCase()).asMilliseconds(); - styleWidth = markWindow / timeWindow * 100; - - return { - unit: markUnit, - baseValue: markBaseValue, - style: Ember.String.htmlSafe(`width: ${styleWidth}%;`), - count: parseInt(100 / styleWidth * 1.1) - }; - }), - - unitTextStyle: Ember.computed("scroll", function () { - var scroll = this.get("scroll"); - return Ember.String.htmlSafe(`left: ${scroll}px;`); - }), - - marks: Ember.computed("processor.timeWindow", "markDef", function () { - var def = this.get("markDef"), - baseValue = def.baseValue, - marks = []; - - for(var i=0, count = def.count; i < count; i++) { - marks.push({ - duration: parseInt(baseValue * i) - }); - } - - return marks; - }) - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-swimlane-vertex-name.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-swimlane-vertex-name.js b/tez-ui2/src/main/webapp/app/components/em-swimlane-vertex-name.js deleted file mode 100644 index 36a7bbc..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-swimlane-vertex-name.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -const MAX_TEXT_LENGTH = 10; - -export default Ember.Component.extend({ - - process: null, - - classNames: ["em-swimlane-vertex-name"], - - sendMouseAction: function (name, mouseEvent) { - this.sendAction(name, "process-name", this.get("process"), { - mouseEvent: mouseEvent, - }); - }, - - progressText: Ember.computed("process.vertex.finalStatus", "process.vertex.progress", function () { - if(this.get("process.vertex.finalStatus") === "RUNNING") { - let progress = this.get("process.vertex.progress"); - if(!isNaN(progress)) { - let percent = parseInt(progress * 100); - return `${percent}%`; - } - } - }), - - useEllipsis: Ember.computed("process.name", "progressText", function () { - var name = this.get("process.name") || "", - progressLength = this.get("progressText.length"); - progressLength = progressLength ? progressLength + 1 : 0; - return name.length + progressLength - 1 > MAX_TEXT_LENGTH; - }), - - processName: Ember.computed("process.name", "progressText", function () { - var name = this.get("process.name") || "", - progressLength = this.get("progressText.length"); - progressLength = progressLength ? progressLength + 1 : 0; - return name.substr(Math.max(name.length - MAX_TEXT_LENGTH - progressLength, 0)); - }), - - mouseEnter: function (mouseEvent) { - this.sendMouseAction("showTooltip", mouseEvent); - }, - - mouseLeave: function (mouseEvent) { - this.sendMouseAction("hideTooltip", mouseEvent); - }, - - mouseUp: function (mouseEvent) { - this.sendMouseAction("click", mouseEvent); - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-swimlane.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-swimlane.js b/tez-ui2/src/main/webapp/app/components/em-swimlane.js deleted file mode 100644 index 0c8b589..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-swimlane.js +++ /dev/null @@ -1,171 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import Processor from '../utils/processor'; -import Process from '../utils/process'; - -export default Ember.Component.extend({ - - classNames: ["em-swimlane"], - - processes: [], - processor: Processor.create(), - - nameComponent: "em-swimlane-process-name", - visualComponent: "em-swimlane-process-visual", - - tooltipContents: null, - focusedProcess: null, - scroll: 0, - - consolidate: false, - - zoom: 100, - - startTime: Ember.computed("[email protected]", function () { - var startTime = this.get("processes.0.startEvent.time"); - this.get("processes").forEach(function (process) { - var time = process.get("startEvent.time"); - if(startTime > time){ - startTime = time; - } - }); - return startTime; - }), - endTime: Ember.computed("[email protected]", function () { - var endTime = this.get("processes.0.endEvent.time"); - this.get("processes").forEach(function (process) { - var time = process.get("endEvent.time"); - if(endTime < time){ - endTime = time; - } - }); - return endTime; - }), - - processorSetup: Ember.on("init", Ember.observer("startTime", "endTime", "processes.length", function () { - this.get("processor").setProperties({ - startTime: this.get("startTime"), - endTime: this.get("endTime"), - processCount: this.get("processes.length") - }); - })), - - didInsertElement: function () { - this.onZoom(); - this.listenScroll(); - }, - - onZoom: Ember.observer("zoom", function () { - var zoom = this.get("zoom"); - this.$(".zoom-panel").css("width", `${zoom}%`); - }), - - listenScroll: function () { - var that = this; - this.$(".process-visuals").scroll(function () { - that.set("scroll", Ember.$(this).scrollLeft()); - }); - }, - - willDestroy: function () { - // Release listeners - }, - - normalizedProcesses: Ember.computed("[email protected]", function () { - var processes = this.get("processes"), - normalizedProcesses, - idHash = {}, - containsBlockers = false, - processor = this.get("processor"); - - // Validate and reset blocking - processes.forEach(function (process) { - if(!(process instanceof Process)) { - Ember.Logger.error("em-swimlane : Unknown type, must be of type Process"); - } - - if(process.get("blockers.length")) { - containsBlockers = true; - } - process.set("blocking", Ember.A()); - }); - - if(containsBlockers) { - normalizedProcesses = []; - - // Recreate blocking list - processes.forEach(function (process) { - var blockers = process.get("blockers"); - if(blockers) { - blockers.forEach(function (blocker) { - blocker.get("blocking").push(process); - }); - } - }); - - // Give an array of the processes in blocking order - processes.forEach(function (process) { - if(process.get("blocking.length") === 0) { // The root processes - normalizedProcesses.push(process); - normalizedProcesses.push.apply(normalizedProcesses, process.getAllBlockers()); - } - }); - normalizedProcesses.reverse(); - normalizedProcesses = normalizedProcesses.filter(function (process, index) { - // Filters out the recurring processes in the list (after graph traversal), we just - // need the top processes - var id = process.get("_id"); - if(idHash[id] === undefined) { - idHash[id] = index; - } - return idHash[id] === index; - }); - } - else { - normalizedProcesses = processes; - } - - // Set process colors & index - normalizedProcesses.forEach(function (process, index) { - process.setProperties({ - color: processor.createProcessColor(index), - index: index - }); - }); - - return Ember.A(normalizedProcesses); - }), - - actions: { - showTooltip: function (type, process, options) { - this.set("tooltipContents", process.getTooltipContents(type, options)); - this.set("focusedProcess", process); - }, - hideTooltip: function () { - this.set("tooltipContents", null); - this.set("focusedProcess", null); - }, - click: function (type, process, options) { - this.sendAction("click", type, process, options); - } - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-table-status-cell.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-table-status-cell.js b/tez-ui2/src/main/webapp/app/components/em-table-status-cell.js deleted file mode 100644 index 7751719..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-table-status-cell.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - - content: null, - - classNames: ["em-table-status-cell"], - - statusName: Ember.computed("content", function () { - var status = this.get("content"); - - if(status) { - status = status.toString().dasherize(); - status = "status-" + status; - } - return status; - }), -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/em-tooltip.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/em-tooltip.js b/tez-ui2/src/main/webapp/app/components/em-tooltip.js deleted file mode 100644 index 33e30cb..0000000 --- a/tez-ui2/src/main/webapp/app/components/em-tooltip.js +++ /dev/null @@ -1,159 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -const TIP_PADDING = 15, // As in em-tooltip.css - FADE_TIME = 150; - -export default Ember.Component.extend({ - - title: null, - description: null, - properties: null, - contents: null, - - classNames: ["em-tooltip"], - classNameBindings: ["arrowPos"], - - x: 0, - y: 0, - - _contents: null, - show: false, - arrowPos: null, - - window: null, - tip: null, - bubbles: null, - - _contentObserver: Ember.on("init", Ember.observer("title", "description", "properties", "contents", function () { - var contents, - tip = this.get("tip"); - - if(this.get("title") || this.get("description") || this.get("properties")){ - contents = [{ - title: this.get("title"), - description: this.get("description"), - properties: this.get("properties"), - }]; - } - else if(Array.isArray(this.get("contents"))){ - contents = this.get("contents"); - } - - this.set("show", false); - if(contents) { - if(tip) { - tip.hide(); - } - this.set("_contents", contents); - - Ember.run.later(this, function () { - this.set("bubbles", this.$(".bubble")); - this.set("show", true); - this.renderTip(); - }); - } - else if(tip){ - tip.stop(true).fadeOut(FADE_TIME); - } - })), - - didInsertElement: function () { - this.setProperties({ - window: Ember.$(window), - tip: this.$(), - }); - Ember.$(document).on("mousemove", this, this.onMouseMove); - }, - - willDestroyElement: function () { - Ember.$(document).off("mousemove", this.onMouseMove); - }, - - onMouseMove: function (event) { - event.data.setProperties({ - x: event.clientX, - y: event.clientY - }); - - if(Ember.get(event, "data.tip")) { - event.data.renderTip(); - } - }, - - getBubbleOffset: function (x, bubbleElement, winWidth) { - var bubbleWidth = Math.max(bubbleElement.width(), 0), - bubbleOffset = bubbleWidth >> 1; - - if(x - bubbleOffset - TIP_PADDING < 0) { - bubbleOffset = x - TIP_PADDING; - } - else if(x + TIP_PADDING + bubbleOffset > winWidth) { - bubbleOffset = x - (winWidth - bubbleWidth) + TIP_PADDING; - } - - return -bubbleOffset; - }, - - renderTip: function () { - if(this.get("show")) { - let x = this.get("x"), - y = this.get("y"), - - winHeight = this.get("window").height(), - winWidth = this.get("window").width(), - - showAbove = y < (winHeight >> 1), - - that = this, - tip = this.get("tip"); - - if(x > TIP_PADDING && x < winWidth - TIP_PADDING) { - if(!showAbove) { - y -= tip.height(); - this.set("arrowPos", "below"); - } - else { - this.set("arrowPos", "above"); - } - } - else { - this.set("arrowPos", null); - } - - tip.css({ - left: `${x}px`, - top: `${y}px`, - }); - - tip.fadeIn({ - duration: FADE_TIME, - start: function () { - that.get("bubbles").each(function () { - var bubble = Ember.$(this), - bubbleOffset = that.getBubbleOffset(x, bubble, winWidth); - bubble.css("left", `${bubbleOffset}px`); - }); - } - }); - } - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/error-bar.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/error-bar.js b/tez-ui2/src/main/webapp/app/components/error-bar.js deleted file mode 100644 index 1086010..0000000 --- a/tez-ui2/src/main/webapp/app/components/error-bar.js +++ /dev/null @@ -1,109 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -const DISPLAY_TIME = 30 * 1000; - -export default Ember.Component.extend({ - - error: null, - - visible: false, - detailsAvailable: false, - - classNames: ['error-bar'], - classNameBindings: ['visible', 'detailsAvailable'], - - code: null, - message: null, - details: null, - stack: null, - - showDetails: false, - - displayTimerId: 0, - - _errorObserver: Ember.observer("error", function () { - var error = this.get("error"), - - code = Ember.get(error, "errors.0.status"), - title = Ember.get(error, "errors.0.title"), - message = error.message || "Error", - details = Ember.get(error, "errors.0.detail") || "", - stack = error.stack, - lineEndIndex = Math.min(message.indexOf('\n'), message.indexOf('<br')); - - if(code === "0") { - code = ""; - } - - if(title) { - message += ". " + title; - } - - if(lineEndIndex > 0) { - if(details) { - details = "\n" + details; - } - details = message.substr(lineEndIndex) + details; - message = message.substr(0, lineEndIndex); - } - - if(details) { - details += "\n"; - } - - if(error) { - this.setProperties({ - code: code, - message: message, - details: details, - stack: stack, - - detailsAvailable: !!(details || stack), - visible: true - }); - - this.clearTimer(); - this.set("displayTimerId", setTimeout(this.close.bind(this), DISPLAY_TIME)); - } - else { - this.close(); - } - }), - - clearTimer: function () { - clearTimeout(this.get("displayTimerId")); - }, - close: function () { - this.set("visible", false); - this.clearTimer(); - }, - - actions: { - toggleDetailsDisplay: function () { - this.toggleProperty("showDetails"); - this.clearTimer(); - }, - close: function () { - this.close(); - } - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/stats-link.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/stats-link.js b/tez-ui2/src/main/webapp/app/components/stats-link.js deleted file mode 100644 index 0fb56df..0000000 --- a/tez-ui2/src/main/webapp/app/components/stats-link.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - value: null, - routeName: null, - statsType: null, - - searchText: Ember.computed.oneWay("statsType"), - _statsType: Ember.computed("statsType", function () { - var type = this.get("statsType"); - if(type) { - return Ember.String.capitalize(type.toLowerCase()); - } - }) -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/tab-n-refresh.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/tab-n-refresh.js b/tez-ui2/src/main/webapp/app/components/tab-n-refresh.js deleted file mode 100644 index 6ac6454..0000000 --- a/tez-ui2/src/main/webapp/app/components/tab-n-refresh.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - init: function () { - this._super(); - this.setApplication(); - }, - - autoRefreshEnabled: false, - autoRefreshVisible: true, - - setApplication: function () { - var application = this.get("targetObject.container").lookup('controller:application'); - this.set("application", application); - }, - - autoRefreshObserver: Ember.observer("autoRefreshEnabled", function () { - this.get('targetObject').send('autoRefreshChanged', this.get("autoRefreshEnabled")); - }), - - normalizedTabs: Ember.computed("tabs", "application.currentPath", function () { - var tabs = this.get("tabs") || [], - activeRouteName = this.get("application.currentPath"); - - return tabs.map(function (tab) { - return { - text: tab.text, - routeName: tab.routeName, - active: tab.routeName === activeRouteName - }; - }); - }), - - actions: { - refresh: function () { - this.get('targetObject').send('reload'); - } - } -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/table-controls.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/table-controls.js b/tez-ui2/src/main/webapp/app/components/table-controls.js deleted file mode 100644 index 9923711..0000000 --- a/tez-ui2/src/main/webapp/app/components/table-controls.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - classNames: ['table-controls'], - - actions: { - cogClicked: function () { - this.get('targetObject.targetObject').send('openColumnSelector'); - } - } -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/components/zip-download-modal.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/components/zip-download-modal.js b/tez-ui2/src/main/webapp/app/components/zip-download-modal.js deleted file mode 100644 index c55b34e..0000000 --- a/tez-ui2/src/main/webapp/app/components/zip-download-modal.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -export default Ember.Component.extend({ - classNames: ['zip-download-modal'], - content: null, - - _onSuccess: Ember.observer("content.downloader.succeeded", function () { - if(this.get("content.downloader.succeeded")) { - Ember.run.later(this, "close"); - } - }), - - close: function () { - Ember.$(".simple-modal").modal("hide"); - }, - - actions: { - cancel: function () { - var downloader = this.get("content.downloader"); - if(downloader) { - downloader.cancel(); - } - } - } -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/abstract.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/abstract.js b/tez-ui2/src/main/webapp/app/controllers/abstract.js deleted file mode 100644 index 863a63f..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/abstract.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import NameMixin from '../mixins/name'; - -export default Ember.Controller.extend(NameMixin, { - // Must be set by inheriting classes - breadcrumbs: null, - - // Must be set from abstract route - loadTime: null, - isLoading: false, - - init: function () { - this._super(); - Ember.run.later(this, "setBreadcrumbs"); - }, - - loaded: Ember.computed("model", "isLoading", function () { - return this.get("model") && !this.get("isLoading"); - }), - - crumbObserver: Ember.observer("breadcrumbs", function () { - Ember.run.later(this, "setBreadcrumbs"); - }), - - setBreadcrumbs: function () { - var crumbs = {}, - name = this.get("name"); - crumbs[name] = this.get("breadcrumbs"); - this.send("setBreadcrumbs", crumbs); - } -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/app.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/app.js b/tez-ui2/src/main/webapp/app/controllers/app.js deleted file mode 100644 index f379e80..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/app.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import ParentController from './parent'; - -export default ParentController.extend({ - breadcrumbs: Ember.computed("model.appID", "model.app.name", function () { - var name = this.get("model.app.name") || this.get("model.appID"); - - return [{ - text: `Application [ ${name} ]`, - routeName: "app.index", - model: this.get("model.entityID") - }]; - }), - - tabs: [{ - text: "Application Details", - routeName: "app.index" - }, { - text: "DAGs", - routeName: "app.dags" - }, { - text: "Configurations", - routeName: "app.configs" - }] -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/app/configs.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/app/configs.js b/tez-ui2/src/main/webapp/app/controllers/app/configs.js deleted file mode 100644 index 838abc1..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/app/configs.js +++ /dev/null @@ -1,60 +0,0 @@ -/*global more*/ -/** - * 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. - */ - -import Ember from 'ember'; - -import TableController from '../table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -var MoreObject = more.Object; - -export default TableController.extend({ - searchText: "tez", - - breadcrumbs: [{ - text: "Configurations", - routeName: "app.configs", - }], - - columns: ColumnDefinition.make([{ - id: 'configName', - headerTitle: 'Configuration Name', - contentPath: 'configName', - }, { - id: 'configValue', - headerTitle: 'Configuration Value', - contentPath: 'configValue', - }]), - - configs: Ember.computed("model.configs", function () { - var configs = this.get("model.configs"), - configRows = []; - - if(configs) { - MoreObject.forEach(configs, function (key, value) { - configRows.push(Ember.Object.create({ - configName: key, - configValue: value - })); - }); - } - - return Ember.A(configRows); - }) -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/app/dags.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/app/dags.js b/tez-ui2/src/main/webapp/app/controllers/app/dags.js deleted file mode 100644 index e0c5e68..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/app/dags.js +++ /dev/null @@ -1,98 +0,0 @@ -/** - * 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. - */ - -import MultiTableController from '../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -export default MultiTableController.extend({ - breadcrumbs: [{ - text: "DAGs", - routeName: "app.dags", - }], - - columns: ColumnDefinition.make([{ - id: 'name', - headerTitle: 'Dag Name', - contentPath: 'name', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "dag", - model: row.get("entityID"), - text: row.get("name") - }; - } - },{ - id: 'entityID', - headerTitle: 'Id', - contentPath: 'entityID' - },{ - id: 'submitter', - headerTitle: 'Submitter', - contentPath: 'submitter' - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'status', - cellComponentName: 'em-table-status-cell', - observePath: true - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellComponentName: 'em-table-progress-cell', - observePath: true - },{ - id: 'startTime', - headerTitle: 'Start Time', - contentPath: 'startTime', - cellComponentName: 'date-formatter', - },{ - id: 'endTime', - headerTitle: 'End Time', - contentPath: 'endTime', - cellComponentName: 'date-formatter', - },{ - id: 'duration', - headerTitle: 'Duration', - contentPath: 'duration', - cellDefinition: { - type: 'duration' - } - },{ - id: 'queue', - headerTitle: 'Queue', - contentPath: 'queue' - },{ - id: 'callerID', - headerTitle: 'Context ID', - contentPath: 'callerID' - },{ - id: 'logs', - headerTitle: 'Logs', - contentPath: 'containerLogs', - cellComponentName: "em-table-linked-cell", - cellDefinition: { - target: "_blank" - } - }]), - - getCounterColumns: function () { - return this._super().concat(this.get('env.app.tables.defaultColumns.dagCounters')); - } -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/app/index.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/app/index.js b/tez-ui2/src/main/webapp/app/controllers/app/index.js deleted file mode 100644 index 7f7bc78..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/app/index.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; -import PageController from '../page'; - -export default PageController.extend({ - - trackingURL: Ember.computed("model.appID", function () { - return [ - this.get("hosts.rm"), - this.get("env.app.namespaces.web.rm"), - "app", - this.get("model.appID") - ].join("/"); - }) - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/application.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/application.js b/tez-ui2/src/main/webapp/app/controllers/application.js deleted file mode 100644 index 4911a16..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/application.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -const BREADCRUMB_PREFIX = [{ - text: "All DAGs", - routeName: 'application' -}]; - -export default Ember.Controller.extend({ - breadcrumbs: null, - appError: null, - - prefixedBreadcrumbs: Ember.computed("breadcrumbs", function () { - var prefix = BREADCRUMB_PREFIX, - breadcrumbs = this.get('breadcrumbs'); - - if(Array.isArray(breadcrumbs)) { - prefix = prefix.concat(breadcrumbs); - } - - return prefix; - }) -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/attempt.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/attempt.js b/tez-ui2/src/main/webapp/app/controllers/attempt.js deleted file mode 100644 index b10fc7f..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/attempt.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import ParentController from './parent'; - -export default ParentController.extend({ - breadcrumbs: Ember.computed("model.dag", function () { - var dagName = this.get("model.dag.name"), - vertexName = this.get("model.vertexName"), - taskIndex = this.get("model.taskIndex"), - attemptNo = this.get("model.index"); - - return [{ - text: `DAG [ ${dagName} ]`, - routeName: "dag.index", - model: this.get("model.dagID") - },{ - text: `Vertex [ ${vertexName} ]`, - routeName: "vertex.index", - model: this.get("model.vertexID") - },{ - text: `Task [ ${taskIndex} ]`, - routeName: "task.index", - model: this.get("model.taskID") - },{ - text: `Attempt [ ${attemptNo} ]`, - routeName: "attempt.index", - model: this.get("model.entityID") - }]; - }), - - tabs: [{ - text: "Attempt Details", - routeName: "attempt.index" - },{ - text: "Attempt Counters", - routeName: "attempt.counters" - }] -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/attempt/counters.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/attempt/counters.js b/tez-ui2/src/main/webapp/app/controllers/attempt/counters.js deleted file mode 100644 index 1a93c80..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/attempt/counters.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 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. - */ - -import CountersTableController from '../counters-table'; - -export default CountersTableController.extend({ - breadcrumbs: [{ - text: "Attempt Counters", - routeName: "attempt.counters", - }], -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/attempt/index.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/attempt/index.js b/tez-ui2/src/main/webapp/app/controllers/attempt/index.js deleted file mode 100644 index 9745328..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/attempt/index.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * 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. - */ - -import PageController from '../page'; - -export default PageController.extend({ -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/counters-table.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/counters-table.js b/tez-ui2/src/main/webapp/app/controllers/counters-table.js deleted file mode 100644 index 42361b4..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/counters-table.js +++ /dev/null @@ -1,74 +0,0 @@ -/*global more*/ -/** - * 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. - */ - -import Ember from 'ember'; - -import TableController from './table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -var MoreObject = more.Object; - -export default TableController.extend({ - counters: Ember.A(), - countersCount: 0, // Because Ember.Array doesn't handle length well - - columns: ColumnDefinition.make([{ - id: 'groupName', - headerTitle: 'Group Name', - contentPath: 'groupName', - }, { - id: 'counterName', - headerTitle: 'Counter Name', - contentPath: 'counterName', - }, { - id: 'counterValue', - headerTitle: 'Counter Value', - contentPath: 'counterValue', - observePath: true - }]), - - _countersObserver: Ember.observer("model.counterGroupsHash", function () { - var counterGroupsHash = this.get("model.counterGroupsHash"), - counters = this.get("counters"), - counterIndex = 0; - - if(counterGroupsHash) { - MoreObject.forEach(counterGroupsHash, function (groupName, countersHash) { - if(countersHash) { - MoreObject.forEach(countersHash, function (counterName, counterValue) { - let counterRow = counters.get(counterIndex); - if(!counterRow) { - counterRow = Ember.Object.create(); - counters.push(counterRow); - } - - counterRow.setProperties({ - groupName: groupName, - counterName: counterName, - counterValue: counterValue - }); - counterIndex++; - }); - } - }); - } - - this.set("countersCount", counterIndex); - }) -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag.js b/tez-ui2/src/main/webapp/app/controllers/dag.js deleted file mode 100644 index 46200b8..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import ParentController from './parent'; - -export default ParentController.extend({ - breadcrumbs: Ember.computed("model", function () { - var name = this.get("model.name"); - - return [{ - text: `DAG [ ${name} ]`, - routeName: "dag.index.index", - model: this.get("model.entityID") - }]; - }), - - tabs: [{ - text: "DAG Details", - routeName: "dag.index.index" - }, { - text: "DAG Counters", - routeName: "dag.counters" - }, { - text: "Graphical View", - routeName: "dag.graphical" - }, { - text: "All Vertices", - routeName: "dag.vertices" - }, { - text: "All Tasks", - routeName: "dag.tasks" - }, { - text: "All Task Attempts", - routeName: "dag.attempts" - }, { - text: "Vertex Swimlane", - routeName: "dag.swimlane" - }] -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/attempts.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/attempts.js b/tez-ui2/src/main/webapp/app/controllers/dag/attempts.js deleted file mode 100644 index 9f9ba15..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/attempts.js +++ /dev/null @@ -1,120 +0,0 @@ -/** - * 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. - */ - -import MultiTableController from '../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -export default MultiTableController.extend({ - breadcrumbs: [{ - text: "All Task Attempts", - routeName: "dag.attempts", - }], - - columns: ColumnDefinition.make([{ - id: 'index', - headerTitle: 'Attempt No', - contentPath: 'index', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "attempt", - model: row.get("entityID"), - text: row.get("index") - }; - } - },{ - id: 'taskIndex', - headerTitle: 'Task Index', - contentPath: 'taskIndex', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "task", - model: row.get("taskID"), - text: row.get("taskIndex") - }; - } - },{ - id: 'vertexName', - headerTitle: 'Vertex Index', - contentPath: 'vertexName', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "vertex", - model: row.get("vertexID"), - text: row.get("vertexName") - }; - } - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'status', - cellComponentName: 'em-table-status-cell', - observePath: true - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellComponentName: 'em-table-progress-cell', - observePath: true - },{ - id: 'startTime', - headerTitle: 'Start Time', - contentPath: 'startTime', - cellComponentName: 'date-formatter', - },{ - id: 'endTime', - headerTitle: 'End Time', - contentPath: 'endTime', - cellComponentName: 'date-formatter', - },{ - id: 'duration', - headerTitle: 'Duration', - contentPath: 'duration', - cellDefinition: { - type: 'duration' - } - },{ - id: 'containerID', - headerTitle: 'Container', - contentPath: 'containerID' - },{ - id: 'nodeID', - headerTitle: 'Node', - contentPath: 'nodeID' - }, { - id: 'log', - headerTitle: 'Log', - contentPath: 'logURL', - cellComponentName: 'em-table-linked-cell', - cellDefinition: { - target: "_blank" - }, - getCellContent: function (row) { - return [{ - href: row.get("logURL"), - text: "View" - }, { - href: row.get("logURL"), - text: "Download", - download: true - }]; - } - }]) -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/counters.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/counters.js b/tez-ui2/src/main/webapp/app/controllers/dag/counters.js deleted file mode 100644 index c54fd7e..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/counters.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 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. - */ - -import CountersTableController from '../counters-table'; - -export default CountersTableController.extend({ - breadcrumbs: [{ - text: "DAG Counters", - routeName: "dag.counters", - }], -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/graphical.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/graphical.js b/tez-ui2/src/main/webapp/app/controllers/dag/graphical.js deleted file mode 100644 index 535f32b..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/graphical.js +++ /dev/null @@ -1,174 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import MultiTableController from '../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -export default MultiTableController.extend({ - - columnSelectorTitle: 'Customize vertex tooltip', - - breadcrumbs: [{ - text: "Graphical View", - routeName: "dag.graphical", - }], - - columns: ColumnDefinition.make([{ - id: 'name', - headerTitle: 'Vertex Name', - contentPath: 'name', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "vertex", - model: row.get("entityID"), - text: row.get("name") - }; - } - },{ - id: 'entityID', - headerTitle: 'Vertex Id', - contentPath: 'entityID' - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'finalStatus', - cellComponentName: 'em-table-status-cell', - observePath: true - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellComponentName: 'em-table-progress-cell', - observePath: true - },{ - id: 'startTime', - headerTitle: 'Start Time', - contentPath: 'startTime', - cellComponentName: 'date-formatter', - },{ - id: 'endTime', - headerTitle: 'End Time', - contentPath: 'endTime', - cellComponentName: 'date-formatter', - },{ - id: 'duration', - headerTitle: 'Duration', - contentPath: 'duration', - cellDefinition: { - type: 'duration' - } - },{ - id: 'firstTaskStartTime', - headerTitle: 'First Task Start Time', - contentPath: 'firstTaskStartTime', - cellComponentName: 'date-formatter', - },{ - id: 'totalTasks', - headerTitle: 'Tasks', - contentPath: 'totalTasks', - },{ - id: 'succeededTasks', - headerTitle: 'Succeeded Tasks', - contentPath: 'succeededTasks', - observePath: true - },{ - id: 'runningTasks', - headerTitle: 'Running Tasks', - contentPath: 'runningTasks', - observePath: true - },{ - id: 'pendingTasks', - headerTitle: 'Pending Tasks', - contentPath: 'pendingTasks', - observePath: true - },{ - id: 'processorClassName', - headerTitle: 'Processor Class', - contentPath: 'processorClassName', - }]), - - redirect: function (details) { - switch(details.type) { - case 'vertex': - this.transitionToRoute('vertex.index', details.d.get('data.entityID')); - break; - case 'task': - this.transitionToRoute('vertex.tasks', details.d.get('data.entityID')); - break; - case 'io': - break; - case 'input': - break; - case 'output': - break; - } - }, - - actions: { - entityClicked: function (details) { - - /** - * In IE 11 under Windows 7, mouse events are not delivered to the page - * anymore at all after a SVG use element that was under the mouse is - * removed from the DOM in the event listener in response to a mouse click. - * See https://connect.microsoft.com/IE/feedback/details/796745 - * - * This condition and related actions must be removed once the bug is fixed - * in all supported IE versions - */ - if(this.get("env.ENV.isIE")) { - var pageType = details.type === "io" ? "additionals" : details.type, - message = `You will be redirected to ${pageType} page`; - - alert(message); - } - this.redirect(details); - } - }, - - viewData: Ember.computed("model", function () { - var model = this.get("model"), - dag, vertices, entities; - - if(!model) { - return {}; - } - - dag = this.get('model.firstObject.dag'); - vertices = this.get('model.firstObject.dag.vertices') || []; - entities = {}; - - model.forEach(function (vertexData) { - entities[vertexData.get('name')] = vertexData; - }); - - vertices.forEach(function (vertex) { - vertex.data = entities[vertex.vertexName]; - }); - - return { - vertices: vertices, - edges: dag.get('edges'), - vertexGroups: dag.get('vertexGroups') - }; - }) - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/index.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/index.js b/tez-ui2/src/main/webapp/app/controllers/dag/index.js deleted file mode 100644 index 9745328..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/index.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * 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. - */ - -import PageController from '../page'; - -export default PageController.extend({ -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/index/index.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/index/index.js b/tez-ui2/src/main/webapp/app/controllers/dag/index/index.js deleted file mode 100644 index 2937a2b..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/index/index.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import MultiTableController from '../../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -export default MultiTableController.extend({ - columns: ColumnDefinition.make([{ - id: 'name', - headerTitle: 'Vertex Name', - contentPath: 'name', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "vertex", - model: row.get("entityID"), - text: row.get("name") - }; - } - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'status', - cellComponentName: 'em-table-status-cell', - observePath: true - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellComponentName: 'em-table-progress-cell', - observePath: true - },{ - id: 'totalTasks', - headerTitle: 'Total Tasks', - contentPath: 'totalTasks', - observePath: true - },{ - id: 'succeededTasks', - headerTitle: 'Succeeded Tasks', - contentPath: 'succeededTasks', - observePath: true - },{ - id: 'runningTasks', - headerTitle: 'Running Tasks', - contentPath: 'runningTasks', - observePath: true - },{ - id: 'pendingTasks', - headerTitle: 'Pending Tasks', - contentPath: 'pendingTasks', - observePath: true - },{ - id: 'failedTaskAttempts', - headerTitle: 'Failed Task Attempts', - contentPath: 'failedTaskAttempts', - observePath: true - },{ - id: 'killedTaskAttempts', - headerTitle: 'Killed Task Attempts', - contentPath: 'killedTaskAttempts', - observePath: true - }]), - - stats: Ember.computed("[email protected]", function () { - var vertices = this.get("model"); - - if(vertices) { - let succeededVertices = 0, - succeededTasks = 0, - totalTasks =0, - - failedTasks = 0, - killedTasks = 0, - failedTaskAttempts = 0, - killedTaskAttempts = 0; - - vertices.forEach(function (vertex) { - if(vertex.get("status") === "SUCCEEDED") { - succeededVertices++; - } - - succeededTasks += vertex.get("succeededTasks"); - totalTasks += vertex.get("totalTasks"); - - failedTasks += vertex.get("failedTasks"); - killedTasks += vertex.get("killedTasks"); - - failedTaskAttempts += vertex.get("failedTaskAttempts"); - killedTaskAttempts += vertex.get("killedTaskAttempts"); - }); - - return { - succeededVertices: succeededVertices, - totalVertices: vertices.get("length"), - - succeededTasks: succeededTasks, - totalTasks: totalTasks, - - failedTasks: failedTasks, - killedTasks: killedTasks, - - failedTaskAttempts: failedTaskAttempts, - killedTaskAttempts: killedTaskAttempts - }; - } - }), - - beforeSort: function () { - return true; - } - -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/swimlane.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/swimlane.js b/tez-ui2/src/main/webapp/app/controllers/dag/swimlane.js deleted file mode 100644 index 259d72f..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/swimlane.js +++ /dev/null @@ -1,151 +0,0 @@ -/** - * 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. - */ - -import Ember from 'ember'; - -import MultiTableController from '../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; -import VertexProcess from '../../utils/vertex-process'; - -import fullscreen from 'em-tgraph/utils/fullscreen'; - -export default MultiTableController.extend({ - - zoom: 100, - - columnSelectorTitle: 'Customize vertex tooltip', - - breadcrumbs: [{ - text: "Vertex Swimlane", - routeName: "dag.swimlane", - }], - - columns: ColumnDefinition.make([{ - id: 'entityID', - headerTitle: 'Vertex Id', - contentPath: 'entityID' - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'finalStatus', - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellDefinition: { - type: 'number', - format: '0%' - } - },{ - id: 'startTime', - headerTitle: 'Start Time', - contentPath: 'startTime', - cellDefinition: { - type: 'date' - } - },{ - id: 'endTime', - headerTitle: 'End Time', - contentPath: 'endTime', - cellDefinition: { - type: 'date' - } - },{ - id: 'duration', - headerTitle: 'Duration', - contentPath: 'duration', - cellDefinition: { - type: 'duration' - } - },{ - id: 'firstTaskStartTime', - headerTitle: 'First Task Start Time', - contentPath: 'firstTaskStartTime', - cellDefinition: { - type: 'date' - } - },{ - id: 'totalTasks', - headerTitle: 'Tasks', - contentPath: 'totalTasks', - },{ - id: 'succeededTasks', - headerTitle: 'Succeeded Tasks', - contentPath: 'succeededTasks', - },{ - id: 'runningTasks', - headerTitle: 'Running Tasks', - contentPath: 'runningTasks', - },{ - id: 'pendingTasks', - headerTitle: 'Pending Tasks', - contentPath: 'pendingTasks', - },{ - id: 'processorClassName', - headerTitle: 'Processor Class', - contentPath: 'processorClassName', - }]), - - processes: Ember.computed("model", function () { - var processes = [], - processHash = {}, - - dagPlanEdges = this.get("model.firstObject.dag.edges"), - - that = this, - getVisibleProps = function () { - return that.get("visibleColumns"); - }; - - // Create process instances for each vertices - this.get("model").forEach(function (vertex) { - var process = VertexProcess.create({ - vertex: vertex, - getVisibleProps: getVisibleProps, - blockers: Ember.A() - }); - processHash[vertex.get("name")] = process; - processes.push(process); - }); - - // Add process(vertex) dependencies based on dagPlan - if(dagPlanEdges) { - dagPlanEdges.forEach(function (edge) { - var process = processHash[edge.outputVertexName]; - if(process && processHash[edge.inputVertexName]) { - process.blockers.push(processHash[edge.inputVertexName]); - process.edgeHash.set(edge.inputVertexName, edge); - } - }); - } - - return Ember.A(processes); - }), - - actions: { - toggleFullscreen: function () { - var swimlaneElement = Ember.$(".swimlane-page").get(0); - if(swimlaneElement){ - fullscreen.toggle(swimlaneElement); - } - }, - click: function (type, process) { - this.transitionToRoute('vertex.index', process.get('vertex.entityID')); - } - } -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/tasks.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/tasks.js b/tez-ui2/src/main/webapp/app/controllers/dag/tasks.js deleted file mode 100644 index 113d37e..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/tasks.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * 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. - */ - -import MultiTableController from '../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -export default MultiTableController.extend({ - breadcrumbs: [{ - text: "All Tasks", - routeName: "dag.tasks", - }], - - columns: ColumnDefinition.make([{ - id: 'index', - headerTitle: 'Task Index', - contentPath: 'index', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "task", - model: row.get("entityID"), - text: row.get("index") - }; - } - },{ - id: 'vertexName', - headerTitle: 'Vertex Name', - contentPath: 'vertexName', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "vertex", - model: row.get("vertexID"), - text: row.get("vertexName") - }; - } - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'status', - cellComponentName: 'em-table-status-cell', - observePath: true - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellComponentName: 'em-table-progress-cell', - observePath: true - },{ - id: 'startTime', - headerTitle: 'Start Time', - contentPath: 'startTime', - cellComponentName: 'date-formatter', - },{ - id: 'endTime', - headerTitle: 'End Time', - contentPath: 'endTime', - cellComponentName: 'date-formatter', - },{ - id: 'duration', - headerTitle: 'Duration', - contentPath: 'duration', - cellDefinition: { - type: 'duration' - } - }]) -}); http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui2/src/main/webapp/app/controllers/dag/vertices.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/controllers/dag/vertices.js b/tez-ui2/src/main/webapp/app/controllers/dag/vertices.js deleted file mode 100644 index 283f2d1..0000000 --- a/tez-ui2/src/main/webapp/app/controllers/dag/vertices.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * 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. - */ - -import MultiTableController from '../multi-table'; -import ColumnDefinition from 'em-table/utils/column-definition'; - -export default MultiTableController.extend({ - breadcrumbs: [{ - text: "All Vertices", - routeName: "dag.vertices", - }], - - columns: ColumnDefinition.make([{ - id: 'name', - headerTitle: 'Vertex Name', - contentPath: 'name', - cellComponentName: 'em-table-linked-cell', - getCellContent: function (row) { - return { - routeName: "vertex", - model: row.get("entityID"), - text: row.get("name") - }; - } - },{ - id: 'entityID', - headerTitle: 'Vertex Id', - contentPath: 'entityID' - },{ - id: 'status', - headerTitle: 'Status', - contentPath: 'finalStatus', - cellComponentName: 'em-table-status-cell', - observePath: true - },{ - id: 'progress', - headerTitle: 'Progress', - contentPath: 'progress', - cellComponentName: 'em-table-progress-cell', - observePath: true - },{ - id: 'startTime', - headerTitle: 'Start Time', - contentPath: 'startTime', - cellComponentName: 'date-formatter', - },{ - id: 'endTime', - headerTitle: 'End Time', - contentPath: 'endTime', - cellComponentName: 'date-formatter', - },{ - id: 'duration', - headerTitle: 'Duration', - contentPath: 'duration', - cellDefinition: { - type: 'duration' - } - },{ - id: 'firstTaskStartTime', - headerTitle: 'First Task Start Time', - contentPath: 'firstTaskStartTime', - cellComponentName: 'date-formatter', - },{ - id: 'totalTasks', - headerTitle: 'Tasks', - contentPath: 'totalTasks', - },{ - id: 'succeededTasks', - headerTitle: 'Succeeded Tasks', - contentPath: 'succeededTasks', - observePath: true - },{ - id: 'runningTasks', - headerTitle: 'Running Tasks', - contentPath: 'runningTasks', - observePath: true - },{ - id: 'pendingTasks', - headerTitle: 'Pending Tasks', - contentPath: 'pendingTasks', - observePath: true - },{ - id: 'processorClassName', - headerTitle: 'Processor Class', - contentPath: 'processorClassName', - }]), - - beforeSort: function (columnDefinition) { - if(this._super(columnDefinition)) { - if(this.get("polling.isReady")) { - let columnName = columnDefinition.get("headerTitle"); - switch(columnDefinition.get("contentPath")) { - case "succeededTasks": - case "runningTasks": - case "pendingTasks": - this.send("openModal", { - title: "Cannot sort!", - content: `Sorting on ${columnName} is disabled for running DAGs!` - }); - return false; - } - } - } - return true; - } - -});
