Small alterations to activity-details
* Add makeActivityTable, remove duplication between children and
submitted tables.
* Added updateFields
* Used .empty() in place of .html('')
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/commit/5ea0a44b
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/tree/5ea0a44b
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/diff/5ea0a44b
Branch: refs/heads/0.6.0
Commit: 5ea0a44b1126f178128085ad911da93dc819dc29
Parents: 64058fd
Author: Sam Corbett <[email protected]>
Authored: Fri Aug 30 17:10:46 2013 +0100
Committer: Sam Corbett <[email protected]>
Committed: Wed Sep 11 14:42:21 2013 +0100
----------------------------------------------------------------------
.../main/webapp/assets/js/model/task-summary.js | 2 +-
.../webapp/assets/js/view/activity-details.js | 106 ++++++++-----------
2 files changed, 47 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/5ea0a44b/usage/jsgui/src/main/webapp/assets/js/model/task-summary.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/model/task-summary.js
b/usage/jsgui/src/main/webapp/assets/js/model/task-summary.js
index bab5cf9..7c7b63f 100644
--- a/usage/jsgui/src/main/webapp/assets/js/model/task-summary.js
+++ b/usage/jsgui/src/main/webapp/assets/js/model/task-summary.js
@@ -20,7 +20,7 @@ define([
currentStatus:"",
children:[],
// missing a few -- submittedTask, blockingXxx -- but that
seems okay
- detailedStatus:"",
+ detailedStatus:""
}
},
getTagByName:function (name) {
http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/5ea0a44b/usage/jsgui/src/main/webapp/assets/js/view/activity-details.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/activity-details.js
b/usage/jsgui/src/main/webapp/assets/js/view/activity-details.js
index 5c20a9b..8e768a7 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/activity-details.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/activity-details.js
@@ -2,18 +2,41 @@
* Displays details on an activity/task
*/
define([
- "underscore", "jquery", "backbone", "brooklyn-utils", "view/viewutils",
"formatJson",
+ "underscore", "jquery", "backbone", "brooklyn-utils", "view/viewutils",
"formatJson", "moment",
"model/task-summary",
"text!tpl/apps/activity-details.html",
"text!tpl/apps/activity-table.html",
- "text!tpl/apps/activity-row-details.html",
"text!tpl/apps/activity-row-details-main.html",
- "text!tpl/apps/activity-full-details.html",
- "bootstrap", "formatJson", "jquery-datatables", "datatables-extensions",
"moment"
-], function (_, $, Backbone, Util, ViewUtils, FormatJSON,
+
+ "bootstrap", "jquery-datatables", "datatables-extensions"
+], function (_, $, Backbone, Util, ViewUtils, FormatJSON, moment,
TaskSummary,
- ActivityDetailsHtml, ActivityTableHtml, ActivityRowDetailsHtml,
ActivityRowDetailsMainHtml, ActivityFullDetailsHtml) {
+ ActivityDetailsHtml, ActivityTableHtml) {
+
+ var activityTableTemplate = _.template(ActivityTableHtml),
+ activityDetailsTemplate = _.template(ActivityDetailsHtml);
+
+ function makeActivityTable($el) {
+ $el.html(_.template(ActivityTableHtml));
+ var $subTable = $('.activity-table', $el);
+ $subTable.attr('width', 569-6-6 /* subtract padding */)
+
+ return ViewUtils.myDataTable($subTable, {
+ "fnRowCallback": function( nRow, aData, iDisplayIndex,
iDisplayIndexFull ) {
+ $(nRow).attr('id', aData[0])
+ $(nRow).addClass('activity-row')
+ },
+ "aoColumnDefs": [ {
+ "mRender": function ( data, type, row ) { return
Util.escape(data) },
+ "aTargets": [ 1, 2, 3 ]
+ }, {
+ "bVisible": false,
+ "aTargets": [ 0 ]
+ } ],
+ "aaSorting":[] // default not sorted (server-side order)
+ });
+ }
var ActivityDetailsView = Backbone.View.extend({
- template:_.template(ActivityDetailsHtml),
+ template: activityDetailsTemplate,
taskLink: '',
task: null,
/* children of this task; see HasTaskChildren for difference between
this and sub(mitted)Tasks */
@@ -43,45 +66,10 @@ define([
this.$el.html(this.template({ taskLink: this.taskLink, task:
this.task, breadcrumbs: this.breadcrumbs }))
this.$el.addClass('activity-detail-panel')
-
-
this.$('#activities-children-table').html(_.template(ActivityTableHtml))
- var that = this,
- $childrenTable = this.$('#activities-children-table
.activity-table');
- $childrenTable.attr('width', 569-6-6 /* subtract padding */)
- this.childrenTable = ViewUtils.myDataTable($childrenTable, {
- "fnRowCallback": function( nRow, aData, iDisplayIndex,
iDisplayIndexFull ) {
- $(nRow).attr('id', aData[0])
- $(nRow).addClass('activity-row')
- },
- "aoColumnDefs": [ {
- "mRender": function ( data, type, row ) { return
Util.prep(data) },
- "aTargets": [ 1, 2, 3 ]
- }, {
- "bVisible": false,
- "aTargets": [ 0 ]
- } ],
- "aaSorting":[] // default not sorted (server-side order)
- });
-
this.$('#activities-submitted-table').html(_.template(ActivityTableHtml))
- var that = this,
- $subtasksTable = this.$('#activities-submitted-table
.activity-table');
- $subtasksTable.attr('width', 569-6-6 /* subtract padding */)
- this.subtasksTable = ViewUtils.myDataTable($subtasksTable, {
- "fnRowCallback": function( nRow, aData, iDisplayIndex,
iDisplayIndexFull ) {
- $(nRow).attr('id', aData[0])
- $(nRow).addClass('activity-row')
- },
- "aoColumnDefs": [ {
- "mRender": function ( data, type, row ) { return
Util.prep(data) },
- "aTargets": [ 1, 2, 3 ]
- }, {
- "bVisible": false,
- "aTargets": [ 0 ]
- } ],
- "aaSorting":[] // default not sorted (server-side order)
- });
-
+ this.childrenTable =
makeActivityTable(this.$('#activities-children-table'));
+ this.subtasksTable =
makeActivityTable(this.$('#activities-submitted-table'));
+
ViewUtils.attachToggler(this.$el)
if (this.task) {
@@ -93,7 +81,7 @@ define([
this.renderSubtasks()
this.callPeriodically("refreshNow", function () {
- that.refreshNow()
+ this.refreshNow()
}, 1000);
if (this.collection) {
@@ -114,12 +102,7 @@ define([
// update task fields
var that = this
- this.updateField('displayName')
- this.updateField('entityDisplayName')
- this.updateField('id')
- this.updateField('description')
- this.updateField('currentStatus')
- this.updateField('blockingDetails')
+ this.updateFields('displayName', 'entityDisplayName', 'id',
'description', 'currentStatus', 'blockingDetails');
this.updateFieldWith('blockingTask',
function(v) {
return "<a class='showDrillDownBlockerOfAnchor handy'
link='"+_.escape(v.link)+"'>"+
@@ -142,7 +125,7 @@ define([
this.updateFieldWith('streams',
function(v) {
var result = "";
- for (si in v) {
+ for (var si in v) {
var sv = v[si];
result += "<div class='activity-stream-div'>"+
"<span class='activity-label'>"+
@@ -220,7 +203,7 @@ define([
// find tasks submitted by this one which aren't included as
children
// this uses collections -- which is everything in the current
execution context
var subtasks = []
- for (taskI in this.collection.models) {
+ for (var taskI in this.collection.models) {
var task = this.collection.models[taskI]
var submittedBy = task.get("submittedByTask")
if (submittedBy!=null && submittedBy.metadata!=null &&
submittedBy.metadata["id"] == this.task.id &&
@@ -251,7 +234,10 @@ define([
_.escape(v.link)
},
updateField: function(field) {
- return this.updateFieldWith(field, function(v) { return
_.escape(v) })
+ return this.updateFieldWith(field, _.escape)
+ },
+ updateFields: function() {
+ _.map(arguments, this.updateField, this);
},
updateFieldWith: function(field, f) {
var v = this.task.get(field)
@@ -261,7 +247,7 @@ define([
$('.ifField-'+field, this.$el).show();
} else {
// blank if there is no value
- $('.updateField-'+field, this.$el).html( '' );;
+ $('.updateField-'+field, this.$el).empty();
$('.ifField-'+field, this.$el).hide();
}
return v
@@ -292,11 +278,11 @@ define([
},
showDrillDownTask: function(relation, newTaskLink, newTask) {
log("activities deeper drill down - "+newTaskLink)
- var $t = this.$el.closest('.slide-panel')
- $t2 = $t.after('<div>').next()
+ var $t = this.$el.closest('.slide-panel'),
+ $t2 = $t.after('<div>').next()
$t2.addClass('slide-panel')
- newBreadcrumbs = [ relation + ' ' +
+ var newBreadcrumbs = [ relation + ' ' +
this.task.get('entityDisplayName') + ' ' +
this.task.get('displayName') ].concat(this.breadcrumbs)
var activityDetailsPanel = new ActivityDetailsView({
@@ -331,7 +317,7 @@ define([
$t2.animate({
left: 569 //prevTable.width()
}, 300, function() {
- that.$el.html('')
+ that.$el.empty()
$t2.remove()
that.remove()
});