web console activity view preserves selection on update, offers reload button
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/commit/5550d5a9 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/tree/5550d5a9 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/diff/5550d5a9 Branch: refs/heads/0.4.0 Commit: 5550d5a93ea98ab04bb796f2dbedd841535ecc9a Parents: 573fa75 Author: Alex Heneveld <[email protected]> Authored: Tue Sep 11 20:36:40 2012 -0700 Committer: Alex Heneveld <[email protected]> Committed: Tue Sep 11 20:36:40 2012 -0700 ---------------------------------------------------------------------- .../views/detail/detail-tabs/_activity.gsp | 3 ++ .../views/detail/detail-tabs/_activity.haml | 2 + .../web-app/css/console/brooklyn-console.css | 7 +++ .../console/detail-tab/detail-tabs/activity.js | 51 ++++++++++++++------ 4 files changed, 47 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/5550d5a9/usage/web-console/grails-app/views/detail/detail-tabs/_activity.gsp ---------------------------------------------------------------------- diff --git a/usage/web-console/grails-app/views/detail/detail-tabs/_activity.gsp b/usage/web-console/grails-app/views/detail/detail-tabs/_activity.gsp index 25fc65c..adc6500 100644 --- a/usage/web-console/grails-app/views/detail/detail-tabs/_activity.gsp +++ b/usage/web-console/grails-app/views/detail/detail-tabs/_activity.gsp @@ -12,4 +12,7 @@ </fieldset> </div> </div> +</div> +<div class='activity-bottom-buttons'> + <a href='javascript:Brooklyn.activity.updateTasks();'>RELOAD</a> </div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/5550d5a9/usage/web-console/grails-app/views/detail/detail-tabs/_activity.haml ---------------------------------------------------------------------- diff --git a/usage/web-console/grails-app/views/detail/detail-tabs/_activity.haml b/usage/web-console/grails-app/views/detail/detail-tabs/_activity.haml index d6a3594..fe68620 100644 --- a/usage/web-console/grails-app/views/detail/detail-tabs/_activity.haml +++ b/usage/web-console/grails-app/views/detail/detail-tabs/_activity.haml @@ -7,3 +7,5 @@ %legend Activity Status //just put a large text box in here %textarea{:id=>"logbox",:readonly=>"true",:wrap=>"hard"} +.activity-bottom-buttons + %a{:href=>"javascript:Brooklyn.activity.updateTasks();"}RELOAD http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/5550d5a9/usage/web-console/web-app/css/console/brooklyn-console.css ---------------------------------------------------------------------- diff --git a/usage/web-console/web-app/css/console/brooklyn-console.css b/usage/web-console/web-app/css/console/brooklyn-console.css index a5c4e0b..9d49aa1 100644 --- a/usage/web-console/web-app/css/console/brooklyn-console.css +++ b/usage/web-console/web-app/css/console/brooklyn-console.css @@ -335,6 +335,13 @@ textarea#logbox{ max-height: 200px; overflow-y: auto; } +.activity-bottom-buttons { + float:right; +} +.activity-bottom-buttons a { + margin-left: 8px; + text-decoration: none; +} .sensor-table { min-height: 400px; http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/5550d5a9/usage/web-console/web-app/js/console/detail-tab/detail-tabs/activity.js ---------------------------------------------------------------------- diff --git a/usage/web-console/web-app/js/console/detail-tab/detail-tabs/activity.js b/usage/web-console/web-app/js/console/detail-tab/detail-tabs/activity.js index 6e9c780..1a9d3e1 100644 --- a/usage/web-console/web-app/js/console/detail-tab/detail-tabs/activity.js +++ b/usage/web-console/web-app/js/console/detail-tab/detail-tabs/activity.js @@ -1,7 +1,10 @@ Brooklyn.activity = (function(){ + var parent; + function ActivityTab() { this.id = 'activity'; + parent = this; this.updateTable = function(json){ var aoColumns = [ { "mDataProp": "displayName", "sTitle": "Name", "sWidth":"16%" }, { "mDataProp": "description", "sTitle": "Description", "sWidth":"17%" }, @@ -11,38 +14,53 @@ Brooklyn.activity = (function(){ { "mDataProp": "currentStatus", "sTitle": "Status", "sWidth":"15%" }]; Brooklyn.util.getDataTable('#activity-data', ".", aoColumns, updateLog, json, undefined); + selectTask(selectedTaskId); $(Brooklyn.eventBus).trigger('update_ok'); } - this.update = function() { - if (typeof this.entity_id !== 'undefined') { - $.getJSON("../entity/activity?id=" + this.entity_id, this.updateTable).error( - function() {$(Brooklyn.eventBus).trigger('update_failed', "Could not get activity data.");} - ); - clearLog(); - } - } + this.update = function() { updateTasks(); } this.makeHandlers(); } + function updateTasks() { + if (typeof parent.entity_id !== 'undefined') { + $.getJSON("../entity/activity?id=" + parent.entity_id, parent.updateTable).error( + function() {$(Brooklyn.eventBus).trigger('update_failed', "Could not get activity data.");} + ); + } + } + + var selectedTaskId; + ActivityTab.prototype = new Brooklyn.tabs.Tab(); function updateLog(event){ + selectTask(Brooklyn.util.getDataTableSelectedRowData('#activity-data', event).id); + } + + function selectTask(newSelectedTaskId) { + selectedTaskId = newSelectedTaskId; + var settings = Brooklyn.util.getDataTable('#activity-data').fnSettings().aoData; + var selectedTaskData; for(row in settings) { var currentRow = $(settings[row].nTr) - if(currentRow.hasClass('row_selected')){ + var currentData = settings[row]._aData; + if (currentData.id == selectedTaskId) { + currentRow.addClass('row_selected'); + selectedTaskData = currentData; + } else if(currentRow.hasClass('row_selected')){ currentRow.removeClass('row_selected'); + clearLog(); break; } } - - $(event.target.parentNode).addClass('row_selected'); - - var result = Brooklyn.util.getDataTableSelectedRowData('#activity-data', event); - var logBox=document.getElementById("logbox"); - logBox.value=result.detailedStatus; + + if (selectedTaskData) { + var logBox=document.getElementById("logbox"); + logBox.value = selectedTaskData.detailedStatus; + } } function clearLog(){ @@ -61,7 +79,8 @@ Brooklyn.activity = (function(){ } return { - init: init + init: init, + updateTasks: updateTasks }; })();
