diff --git a/web-app/js/components/appcomponents/AppComponent.js b/web-app/js/components/appcomponents/AppComponent.js index 01bdada6..936ef600 100644 --- a/web-app/js/components/appcomponents/AppComponent.js +++ b/web-app/js/components/appcomponents/AppComponent.js @@ -29,7 +29,11 @@ '' + '
<%- name %>
'+ '<% if (details) { %>' + - '' + + '<% if (style) { %>'+ + '' + + '<% } else { %>'+ + '' + + '<% } %>'+ '<% } %>', // boolean flag indicating whether or not to show details link @@ -42,9 +46,14 @@ }; }, + isMobile: function () { + return /Mobi/.test(navigator.userAgent); + }, + render: function () { var tpl = _.template(this.tpl, _.extend({ - details: this.details + details: this.details, + style: this.isMobile() }, this.model.attributes)); this.$el.append(tpl); diff --git a/web-app/js/components/appcomponents/AppComponentsList.js b/web-app/js/components/appcomponents/AppComponentsList.js index ae1902d1..993a60e1 100644 --- a/web-app/js/components/appcomponents/AppComponentsList.js +++ b/web-app/js/components/appcomponents/AppComponentsList.js @@ -38,6 +38,7 @@ events: { 'click .widget': '_onClick', 'click .widget-details': '_showDetailsTip', + 'touchend .widget': '_onTouch', 'mouseenter .widget': '_showDetailsTipOption', 'mouseleave .widget': '_hideDetailsOption' }, @@ -152,6 +153,18 @@ return SuperClass.prototype.remove.call(this); }, + _onTouch: function (evt) { + if(this.selectable && this._isMobile()) { + var view = $(evt.currentTarget).data('view'); + + if(this.selected) { + this.selected.$el.removeClass(this.selectClass); + } + this.selected = view; + this.selected.$el.addClass(this.selectClass); + } + }, + _onClick: function (evt) { if(this.selectable) { var view = $(evt.currentTarget).data('view'); @@ -216,13 +229,21 @@ tip.shown(); }, + _isMobile: function () { + return /Mobi/.test(navigator.userAgent); + }, + _showDetailsTipOption: function (evt) { - this.$el.find('.widget-details').css('visibility', 'hidden'); - $(evt.currentTarget).children('.widget-details').css('visibility', ''); + if(!this._isMobile()) { + this.$el.find('.widget-details').css('visibility', 'hidden'); + $(evt.currentTarget).children('.widget-details').css('visibility', ''); + } }, _hideDetailsOption: function (evt) { - $(evt.currentTarget).children('.widget-details').css('visibility', 'hidden'); + if(!this._isMobile()) { + $(evt.currentTarget).children('.widget-details').css('visibility', 'hidden'); + } } }); diff --git a/web-app/js/components/window/MyAppsWindow.js b/web-app/js/components/window/MyAppsWindow.js old mode 100644 new mode 100755 index bab2c19e..05b824e7 --- a/web-app/js/components/window/MyAppsWindow.js +++ b/web-app/js/components/window/MyAppsWindow.js @@ -56,7 +56,7 @@ Ext.define('Ozone.components.window.MyAppsWindow', { _dragging: false, initComponent: function() { - + var me = this, stackOrDashboards = [], stacks = {}, dashboards = {}, @@ -143,7 +143,11 @@ Ext.define('Ozone.components.window.MyAppsWindow', { }, getActions: function (values) { - return '
'; + if (/Mobi/.test(navigator.userAgent)) { + return '
'; + } else { + return '
'; + } } }); @@ -218,7 +222,8 @@ Ext.define('Ozone.components.window.MyAppsWindow', { .on('mouseover', '.stack, .dashboard', $.proxy(me.onMouseOver, me)) .on('mouseout', '.stack, .dashboard', $.proxy(me.onMouseLeave, me)) .on('focus', '.stack, .dashboard', $.proxy(me.onMouseOver, me)) - .on('blur', '.stack, .dashboard', $.proxy(me.onMouseLeave, me)); + .on('blur', '.stack, .dashboard', $.proxy(me.onMouseLeave, me)) + .on('touchend', '.dashboard', $.proxy(me.onDashboardTouch, me)); me.initKeyboardNav(); @@ -807,6 +812,15 @@ Ext.define('Ozone.components.window.MyAppsWindow', { return $dashboard.hasClass('cls') ? $dashboard : $dashboard.parents('.' + cls); }, + onDashboardTouch: function (evt) { + if (evt.type !== 'touchend' && evt.which !== Ext.EventObject.ENTER) + return; + + var $clickedDashboard = $(evt.currentTarget), + dashboard = this.getDashboard( $clickedDashboard ); + this.launchDashboard(evt, dashboard); + }, + onDashboardClick: function (evt) { if (evt.type !== 'click' && evt.which !== Ext.EventObject.ENTER) return; @@ -1099,15 +1113,17 @@ Ext.define('Ozone.components.window.MyAppsWindow', { }, onMouseOver: function (evt) { - var el = $(evt.currentTarget); + if (!/Mobi/.test(navigator.userAgent)) { + var el = $(evt.currentTarget); - if (this._previouslyHoveredStackOrDashboard != null) { - $('.details-btn', this._previouslyHoveredStackOrDashboard).addClass('hide'); - } + if (this._previouslyHoveredStackOrDashboard != null) { + $('.details-btn', this._previouslyHoveredStackOrDashboard).addClass('hide'); + } - $('.details-btn', el).removeClass('hide'); + $('.details-btn', el).removeClass('hide'); - this._previouslyHoveredStackOrDashboard = el; + this._previouslyHoveredStackOrDashboard = el; + } }, onMouseLeave: function(evt) {