Return-Path: X-Original-To: apmail-ambari-commits-archive@www.apache.org Delivered-To: apmail-ambari-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 98FC4111C8 for ; Fri, 18 Jul 2014 14:21:30 +0000 (UTC) Received: (qmail 78229 invoked by uid 500); 18 Jul 2014 14:21:30 -0000 Delivered-To: apmail-ambari-commits-archive@ambari.apache.org Received: (qmail 78192 invoked by uid 500); 18 Jul 2014 14:21:30 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 78183 invoked by uid 99); 18 Jul 2014 14:21:30 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Jul 2014 14:21:30 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 2D3F194E83A; Fri, 18 Jul 2014 14:21:30 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: onechiporenko@apache.org To: commits@ambari.apache.org Date: Fri, 18 Jul 2014 14:21:30 -0000 Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: [1/3] AMBARI-6539. Create main page with table of jobs. (onechiporenko) Repository: ambari Updated Branches: refs/heads/trunk 39a92eb49 -> 366bcbb69 http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/scripts/views/table_view.js ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/scripts/views/table_view.js b/contrib/views/jobs/src/main/resources/ui/app/scripts/views/table_view.js new file mode 100644 index 0000000..a404a49 --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/scripts/views/table_view.js @@ -0,0 +1,362 @@ +/** + * 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. + */ + +App.TableView = Em.View.extend({ + + /** + * Defines to show pagination or show all records + * @type {Boolean} + */ + pagination: true, + + /** + * Shows if all data is loaded and filtered + * @type {Boolean} + */ + filteringComplete: false, + + /** + * intermediary for filteringComplete + * @type {Boolean} + */ + tableFilteringComplete: false, + + /** + * The number of rows to show on every page + * The value should be a number converted into string type in order to support select element API + * Example: "10", "25" + * @type {String} + */ + displayLength: '10', + + /** + * default value of display length + * The value should be a number converted into string type in order to support select element API + * Example: "10", "25" + */ + defaultDisplayLength: "10", + + /** + * number of hosts in table after applying filters + */ + filteredCount: function () { + return this.get('filteredContent.length'); + }.property('filteredContent.length'), + + /** + * Do filtering, using saved in the local storage filter conditions + */ + willInsertElement:function () { + this.initFilters(); + }, + + /** + * initialize filters + * restore values from local DB + * or clear filters in case there is no filters to restore + */ + initFilters: function () { + this.clearFilters(); + this.set('tableFilteringComplete', true); + }, + + /** + * Return pagination information displayed on the page + * @type {String} + */ + paginationInfo: function () { + return this.t('tableView.filters.paginationInfo').format(this.get('startIndex'), this.get('endIndex'), this.get('filteredCount')); + }.property('filteredCount', 'endIndex'), + + paginationLeft: Ember.View.extend({ + tagName: 'a', + templateName: 'table/navigation/pagination_left', + classNameBindings: ['class'], + class: function () { + if (this.get("parentView.startIndex") > 1) { + return "paginate_previous"; + } + return "paginate_disabled_previous"; + }.property("parentView.startIndex", 'parentView.filteredCount'), + + click: function () { + if (this.get('class') === "paginate_previous") { + this.get('parentView').previousPage(); + } + } + }), + + paginationRight: Ember.View.extend({ + tagName: 'a', + templateName: 'table/navigation/pagination_right', + classNameBindings: ['class'], + class: function () { + if ((this.get("parentView.endIndex")) < this.get("parentView.filteredCount")) { + return "paginate_next"; + } + return "paginate_disabled_next"; + }.property("parentView.endIndex", 'parentView.filteredCount'), + + click: function () { + if (this.get('class') === "paginate_next") { + this.get('parentView').nextPage(); + } + } + }), + + paginationFirst: Ember.View.extend({ + tagName: 'a', + templateName: 'table/navigation/pagination_first', + classNameBindings: ['class'], + class: function () { + if ((this.get("parentView.endIndex")) > parseInt(this.get("parentView.displayLength"))) { + return "paginate_previous"; + } + return "paginate_disabled_previous"; + }.property("parentView.endIndex", 'parentView.filteredCount'), + + click: function () { + if (this.get('class') === "paginate_previous") { + this.get('parentView').firstPage(); + } + } + }), + + paginationLast: Ember.View.extend({ + tagName: 'a', + templateName: 'table/navigation/pagination_last', + classNameBindings: ['class'], + class: function () { + if (this.get("parentView.endIndex") !== this.get("parentView.filteredCount")) { + return "paginate_next"; + } + return "paginate_disabled_next"; + }.property("parentView.endIndex", 'parentView.filteredCount'), + + click: function () { + if (this.get('class') === "paginate_next") { + this.get('parentView').lastPage(); + } + } + }), + + /** + * Select View with list of "rows-per-page" options + * @type {Ember.View} + */ + rowsPerPageSelectView: Em.Select.extend({ + content: ['10', '25', '50', '100'], + change: function () { + this.get('parentView').saveDisplayLength(); + } + }), + + /** + * Start index for displayed content on the page + */ + startIndex: 1, + + /** + * Calculate end index for displayed content on the page + */ + endIndex: function () { + if (this.get('pagination') && this.get('displayLength')) { + return Math.min(this.get('filteredCount'), this.get('startIndex') + parseInt(this.get('displayLength')) - 1); + } else { + return this.get('filteredCount') || 0; + } + }.property('startIndex', 'displayLength', 'filteredCount'), + + /** + * Onclick handler for previous page button on the page + */ + previousPage: function () { + var result = this.get('startIndex') - parseInt(this.get('displayLength')); + this.set('startIndex', (result < 2) ? 1 : result); + }, + + /** + * Onclick handler for next page button on the page + */ + nextPage: function () { + var result = this.get('startIndex') + parseInt(this.get('displayLength')); + if (result - 1 < this.get('filteredCount')) { + this.set('startIndex', result); + } + }, + /** + * Onclick handler for first page button on the page + */ + firstPage: function () { + this.set('startIndex', 1); + }, + /** + * Onclick handler for last page button on the page + */ + lastPage: function () { + var pagesCount = this.get('filteredCount') / parseInt(this.get('displayLength')); + var startIndex = (this.get('filteredCount') % parseInt(this.get('displayLength')) === 0) ? + (pagesCount - 1) * parseInt(this.get('displayLength')) : + Math.floor(pagesCount) * parseInt(this.get('displayLength')); + this.set('startIndex', ++startIndex); + }, + + /** + * Calculates default value for startIndex property after applying filter or changing displayLength + */ + updatePaging: function (controller, property) { + var displayLength = this.get('displayLength'); + var filteredContentLength = this.get('filteredCount'); + if (property == 'displayLength') { + this.set('startIndex', Math.min(1, filteredContentLength)); + } + else + if (!filteredContentLength) { + this.set('startIndex', 0); + } + else + if (this.get('startIndex') > filteredContentLength) { + this.set('startIndex', Math.floor((filteredContentLength - 1) / displayLength) * displayLength + 1); + } + else + if (!this.get('startIndex')) { + this.set('startIndex', 1); + } + }.observes('displayLength', 'filteredCount'), + + /** + * Apply each filter to each row + * + * @param {Number} iColumn number of column by which filter + * @param {Object} value + * @param {String} type + */ + updateFilter: function (iColumn, value, type) { + var filterCondition = this.get('filterConditions').findProperty('iColumn', iColumn); + if (filterCondition) { + filterCondition.value = value; + } + else { + filterCondition = { + iColumn: iColumn, + value: value, + type: type + }; + this.get('filterConditions').push(filterCondition); + } + this.filtersUsedCalc(); + this.filter(); + }, + + /** + * Contain filter conditions for each column + * @type {Array} + */ + filterConditions: [], + + /** + * Contains content after implementing filters + * @type {Array} + */ + filteredContent: [], + + /** + * Determine if filteredContent is empty or not + * @type {Boolean} + */ + hasFilteredItems: function() { + return !!this.get('filteredCount'); + }.property('filteredCount'), + + /** + * Contains content to show on the current page of data page view + * @type {Array} + */ + pageContent: function () { + return this.get('filteredContent').slice(this.get('startIndex') - 1, this.get('endIndex')); + }.property('filteredCount', 'startIndex', 'endIndex'), + + /** + * Filter table by filterConditions + */ + filter: function () { + var content = this.get('content'); + var filterConditions = this.get('filterConditions').filterProperty('value'); + var result; + var assoc = this.get('colPropAssoc'); + if (filterConditions.length) { + result = content.filter(function (item) { + var match = true; + filterConditions.forEach(function (condition) { + var filterFunc = App.Filters.getFilterByType(condition.type, false); + if (match) { + match = filterFunc(item.get(assoc[condition.iColumn]), condition.value); + } + }); + return match; + }); + this.set('filteredContent', result); + } else { + this.set('filteredContent', content.toArray()); + } + }.observes('content.length'), + + /** + * Does any filter is used on the page + * @type {Boolean} + */ + filtersUsed: false, + + /** + * Determine if some filters are used on the page + * Set filtersUsed value + */ + filtersUsedCalc: function() { + var filterConditions = this.get('filterConditions'); + if (!filterConditions.length) { + this.set('filtersUsed', false); + return; + } + var filtersUsed = false; + filterConditions.forEach(function(filterCondition) { + if (filterCondition.value.toString() !== '') { + filtersUsed = true; + } + }); + this.set('filtersUsed', filtersUsed); + }, + + /** + * Run clearFilter in the each child filterView + */ + clearFilters: function() { + this.set('filterConditions', []); + this.get('_childViews').forEach(function(childView) { + if (childView['clearFilter']) { + childView.clearFilter(); + } + }); + }, + + actions: { + actionClearFilters: function() { + this.clearFilters(); + } + } + +}); http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/styles/main.less ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/styles/main.less b/contrib/views/jobs/src/main/resources/ui/app/styles/main.less index c1997c2..8cd95dc 100644 --- a/contrib/views/jobs/src/main/resources/ui/app/styles/main.less +++ b/contrib/views/jobs/src/main/resources/ui/app/styles/main.less @@ -16,4 +16,303 @@ * limitations under the License. */ -@import '../../app/bower_components/bootstrap/less/bootstrap'; \ No newline at end of file +@import '../../app/bower_components/bootstrap/less/bootstrap'; + +#jobs { + + .jobs-type { + float: right; + margin-top: -24px; + } + + .new-jobs-link { + float: left; + margin-left: 496px; + margin-top: -20px; + } + + #filtered-jobs{ + float: left; + margin-top: 8px; + } + + .jobs_head{ + height: 30px; + } + + .page-bar { + border: 1px solid #E4E4E4; + color: #7B7B7B; + text-align: right; + font-size: 12px; + label { + font-size: 12px; + } + div { + display: inline-block; + margin:0 10px; + } + .items-on-page { + label { + display:inline; + } + select { + margin-bottom: 4px; + margin-top: 4px; + width:70px; + font-size: 12px; + height: 27px; + } + } + + .paging_two_button { + a { + padding:0 5px; + } + a.paginate_disabled_next, a.paginate_disabled_previous { + color: gray; + &:hover i{ + color: gray; + text-decoration: none; + cursor: default; + } + } + + a.paginate_next, a.paginate_previous { + &:hover { + text-decoration: none; + cursor: pointer; + } + } + } + } + + #jobs-table { + + .is-not-link{ + cursor: default; + color: #000000; + text-decoration: none; + } + + .apply-btn { + font-size: 12px; + padding: 0px 8px; + margin-left: 6px; + margin-top: -8px; + line-height: 22px; + } + + .input-120{ + width: 120px; + } + + .label-row { + font-size: 0.9em; + th { + padding: 4px 4px 4px 8px; + } + .active-sort { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100); + -moz-box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100); + box-shadow: inset 0 5px 8px rgba(0, 0, 0, 0.100); + } + } + thead { + background: none repeat scroll 0 0 #F8F8F8; + } + #filter-row { + th { + padding: 0px; + padding-left: 8px; + } + .active-filter { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 -5px 8px rgba(0, 0, 0, 0.05); + } + input { + font-size: 12px; + height: 14px; + } + select { + height: 27px; + font-size: 12px; + } + .start-time a.ui-icon-circle-close { + margin-top: 7px; + } + .filter-btn { + color: #999999; + font-size: 12px; + line-height: 14px; + padding-left: 6px; + text-align: left; + width: 100px; + .icon-filter { + color: #999999; + } + } + } + th { + border-top: none; + } + th, td { + border-left-width: 0; + } + .no-data{ + text-align: center; + } + a.job-link { + width: 100%; + overflow: auto; + word-wrap: break-word; + display: inline-block; + } + .tooltip-inner { + text-align: left; + max-width: 400px !important; + } + td:first-child, + th:first-child { + border-left-width: 1px; + width: 14px; + } + td:first-child + td, + th:first-child + th { + width: 36%; + } + td:first-child + td + td, + th:first-child + th + th{ + width: 20%; + } + td:first-child + td + td + td, + th:first-child + th + th + th, + td:first-child + td + td + td + td, + th:first-child + th + th + th + th{ + width: 16%; + } + td:first-child + td + td + td + td + td, + th:first-child + th + th + th + th + th{ + width: 12%; + } + } + .table { + table-layout: fixed; + th { + border-top: none; + } + ul.filter-components { + padding: 5px 0; + background: #777777; + color: #ffffff; + font-weight: normal; + font-size: 12px; + label { + font-size: 12px; + } + li { + display: block; + padding: 3px 0 3px 5px; + line-height: 20px; + label.checkbox { + padding-left: 3px; + } + input[type="checkbox"] { + margin: 4px 4px 2px 2px; + } + } + li#title-bar { + text-align: left; + border-bottom: 1px solid #e4e4e4; + a.close { + background: #777777; + display: inline; + color: #ffffff; + padding-left: 35px; + padding-right: 12px; + text-shadow: 0 1px 0 #ffffff; + float: none; + font-size: 10px; + opacity: 0.6; + } + a.close:hover { + background: #777777; + opacity: 1.0; + } + } + li#selector-bar { + text-align: left; + border-bottom: 1px solid #e4e4e4; + font-size: 6px; + } + li#list-area { + font-weight: normal; + text-align: left; + } + li#button-bar { + text-align: center; + button { + font-size: 12px; + } + } + ul { + margin-left: 10px; + } + &>li { + &>ul { + height: 150px; + margin-left: 0; + overflow-y: scroll; + } + } + } + + .sorting_asc { + background: + url(data:image/png;base64,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) no-repeat right 50%; + } + .sorting_desc { + background: url(data:image/png;base64,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) no-repeat right 50%; + } + .sorting { + background: url( data:image/png;base64,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) no-repeat right 50%; + } + div.view-wrapper { + input[type="checkbox"], .btn-group { + margin-bottom: 9px; + } + } + + a.ui-icon-circle-close { + float: right; + opacity: 0.2; + padding: 1px 0; + position: relative; + right: 0px; + margin-top: 3px; + z-index: 10; + &:hover { + opacity: 0.7; + } + } + .notActive { + a.ui-icon-circle-close { + visibility: hidden; + } + } + } +} + +.sort-wrapper { + .column-name { + cursor: pointer; + padding-right: 18px; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/jobs.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/jobs.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/jobs.hbs new file mode 100644 index 0000000..d43f5f0 --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/jobs.hbs @@ -0,0 +1,90 @@ +{{! +* 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. +}} + + +
+
+ {{#if controller.hasNewJobs}} + + {{/if}} +
+ {{t jobs.type}} : {{t jobs.type.hive}} +
+
+ + + {{#view view.sortView classNames="label-row" contentBinding="view.content"}} + + {{view view.parentView.idSort}} + {{view view.parentView.userSort}} + {{view view.parentView.startTimeSort}} + {{view view.parentView.endTimeSort}} + {{view view.parentView.durationSort}} + {{/view}} + + + + + + + + + + + + {{#if view.noDataToShow}} + + + + {{else}} + {{#each job in controller.sortedContent}} + + + + + + + + + {{/each}} + {{/if}} + +
{{view view.jobsIdFilterView}}{{view view.userFilterView}}{{view view.startTimeFilterView}}
+ {{controller.jobsMessage}} +
+ {{#if job.failed}} + + {{/if}} + {{view view.jobNameView jobBinding="job"}}{{job.user}}{{job.startTimeDisplay}}{{job.endTimeDisplay}}{{job.durationDisplay}}
+ +
+
+ {{view.filteredJobs}} - {{t jobs.filtered.clear}} +
+
+ +
+
+ {{view view.jobsPaginationLeft}} + {{view view.jobsPaginationRight}} +
+
+
+ http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/jobs/jobs_name.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/jobs/jobs_name.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/jobs/jobs_name.hbs new file mode 100644 index 0000000..37690ef --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/jobs/jobs_name.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + +{{job.name}} http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/sort_field_template.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/sort_field_template.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/sort_field_template.hbs new file mode 100644 index 0000000..6fc49fe --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/sort_field_template.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + +{{view.displayName}} http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_first.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_first.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_first.hbs new file mode 100644 index 0000000..d538654 --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_first.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + + http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_last.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_last.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_last.hbs new file mode 100644 index 0000000..99dbd68 --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_last.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + + http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_left.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_left.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_left.hbs new file mode 100644 index 0000000..683a180 --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_left.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + + http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_right.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_right.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_right.hbs new file mode 100644 index 0000000..a6b67cd --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/table/navigation/pagination_right.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + + http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_layout.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_layout.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_layout.hbs new file mode 100644 index 0000000..c2904de --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_layout.hbs @@ -0,0 +1,19 @@ +{{! +* 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. +}} + + {{yield}} http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_template.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_template.hbs b/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_template.hbs new file mode 100644 index 0000000..0529100 --- /dev/null +++ b/contrib/views/jobs/src/main/resources/ui/app/templates/wrapper_template.hbs @@ -0,0 +1,25 @@ +{{! +* 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. +}} + +{{#if view.fieldId}} + +{{/if}} +{{view view.filterView}} +{{#if view.showApply}} + +{{/if}} http://git-wip-us.apache.org/repos/asf/ambari/blob/5659f0a2/contrib/views/jobs/src/main/resources/ui/bower.json ---------------------------------------------------------------------- diff --git a/contrib/views/jobs/src/main/resources/ui/bower.json b/contrib/views/jobs/src/main/resources/ui/bower.json index 0619e51..9b123b2 100644 --- a/contrib/views/jobs/src/main/resources/ui/bower.json +++ b/contrib/views/jobs/src/main/resources/ui/bower.json @@ -3,9 +3,11 @@ "version": "0.0.1", "dependencies": { "ember": "1.5.0", + "moment": ">=2.7.0", "handlebars": "1.2.1", "ember-data": "1.0.0-beta.7", - "bootstrap": ">3.0", + "ember-i18n": "1.6.*", + "bootstrap": "2.3.*", "ember-addons.bs_for_ember": ">=0.7", "ember-json-mapper": "master" },