```javascript
/ requires generic_view */ (function () { YAHOO.G4.ActivitiesView = function (cont, opts) { YAHOO.G4.ActivitiesView.superclass.constructor.call (this, cont, opts); };
var Dom = YAHOO.util.Dom, Config = YAHOO.util.Config, ActivitiesView = YAHOO.G4.ActivitiesView, Lang = YAHOO.lang, GenericView = YAHOO.G4.GenericView;
ActivitiesView.API_DO_URL = ‘/api/activity/do/’;
ActivitiesView.label_formatter = function (elCell, oRecord, oColumn, oData) { var color = oRecord.getData(‘color’), title = oRecord.getData(‘title’);
elCell.innerHTML = '<span class=\"t-label-dt\">'+title+'</span>';}
ActivitiesView.icon_formatter = function (elCell, oRecord, oColumn, oData) { var icon_url = oRecord.getData (‘icon_url’); if (icon_url) elCell.innerHTML = ‘’; else elCell.innerHTML = gettext(‘-’); }
var DEFAULT_CONFIG = { ‘TITLE’: { key: ‘title’, value: gettext (‘Activities’) },
'COLUMN_DEFS': {
key: 'column_defs',
value: [
{ key: 'id', hidden: true },
{ key: 'icon', label: gettext('Icon'), className: 'activity-icon-button', formatter: ActivitiesView.icon_formatter },
{ key: 'title', label: gettext('Title'), sortable: true, resizeable: false, formatter: ActivitiesView.label_formatter, editor: GenericView.textbox_cell_editor_factory__get_editor (ActivitiesView.API_DO_URL) },
{ key: 'description', label: gettext('Description'), sortable: false, resizeable: false, editor: GenericView.textbox_cell_editor_factory__get_editor (ActivitiesView.API_DO_URL) },
{ key: 'items', label: gettext('Items'), sortable: true, resizeable: false },
{ key: 'owner', label: gettext('Owner'), sortable: true, formatter: GenericView.user_formatter }</code></pre>
] },
'DT_ACTIVE_COLUMNS': {
key: 'dt_active_columns',
value: {
icon: function (target, column) {
var record = this.getRecord(target),
self = this,
cb = function (o) { self.reload() };
YAHOO.G4.util.load_dialog_new ('/api/activity/edit/' + record.getData ('id') + '/', gettext('Edit Activity'), {
upload_handler: cb,
submit_success: cb
});
}
}
},
'DATAURL': {
key: 'dataurl',
value: '/api/activity/~/owned/?'
},
'DATASOURCE': {
key: 'datasource',
value: {
responseType: YAHOO.util.DataSource.TYPE_JSON,
responseSchema: {
resultsList: "rows",
fields: ['id', 'title', 'description', 'items', 'owner', 'icon_url'],
metaFields: { totalRecords: 'total_records', totalPages: 'total_pages', currentPage: 'current_page' }
}
}
},
'DT_DEFAULT_BUTTONS': {
key: 'dt_default_buttons',
value: [
{
type: 'button',
label: '<div class="refresh_btn"> </div>',
title: gettext('Reload'),
onclick: { fn: function () { this.data_table.reload (); } }
},
{
type: 'button',
label: '<div id="columnHideShowBtn"> </div>',
title: gettext('Choose columns to view'),
onclick: { fn: function () { this.data_table.choose_columns () } }
},
{
type: 'button',
label: '<div class="select_all_btn"> </div>',
title: gettext('Select all'),
onclick: { fn: function (e) {
var rs = this.data_table.getRecordSet ();
var records = rs.getRecords ();
for (var i=0; i<records.length; i++) {
this.data_table.selectRow (records[i]);
}
}}
},
{
type: 'button',
label: '<div class="select_none_btn"> </div>',
title: gettext('Unselect all'),
onclick: { fn: function (e) { this.data_table.unselectAllRows (); }}
}
] },
'DT_BUTTONS': {
key: 'dt_buttons',
value: [
{
type: 'button',
title: gettext('Add new item'),
label: '<div class=\"add-item-btn\"> </div>',
onclick: { fn: function (e) {
var self = this,
label_str = prompt (gettext('Enter activity title'));
if (!label_str) {
alert (gettext('You must specify activity title'));
return false;
}
YAHOO.G4.util.xhr_post ('/api/activity/add/', 'title='+label_str, {
success: function (o) {
YAHOO.G4.global_events.update_activities.fire();
}
});
}}
},
{
type: 'button',
title: gettext('Apply selected to tracks in tray'),
label: '<div class=\"select-apply\">&nbsp;</div>',
onclick: { fn: function (e) {
var ids = this.data_table.get_selected_row_record_ids (),
self = this,
l = ids.length;
if (l == 1) {
var activity_id = ids[0],
tray_tracks_ids = [],
tray_tracks = g4_tray.get_tracks (),
i;
for (i in tray_tracks) tray_tracks_ids.push (i)
if (!tray_tracks_ids.length) {
alert (gettext('Put some tracks to tray first'));
return false;
}
YAHOO.G4.util.xhr_post ('/api/activity/do/', 'oper=apply&activity=' + activity_id + '&tracks='+tray_tracks_ids.join(','), {
'success': function (o) {
if (o.responseText == 'OK') {
YAHOO.G4.global_events.activities_applyed.fire (tray_tracks_ids);
} else { alert (o.responseText); }
}
});
} else alert (gettext('Select exactly one activity'));
}}
},
{
type: 'button',
title: gettext('Drop selected'),
label: '<div class=\"select_drop\">&nbsp;</div>',
onclick: { fn: function (e) {
if (confirm(gettext('Are you sure?'))) {
var ids = this.data_table.get_selected_row_record_ids (),
self = this,
l = ids.length;
if (l) {
YAHOO.G4.util.xhr_post ('/api/activity/do/', 'oper=del&id=' + ids.join(','), {
'success': function (o) {
if (o.responseText == 'OK') { self.data_table.reload () }
else { alert (o.responseText); }
}
})
} else {
alert (gettext('Select some rows first'));
}
}
}}
},
{
type: 'button',
label: '<div class=\"chmod-btn\">&nbsp;</div>',
title: gettext('Sharing settings'),
onclick: { fn: function (e) {
var ids = this.data_table.get_selected_row_record_ids (),
l = ids.length;
if (l) {
YAHOO.G4.util.load_acl_dialod ('activity', ids);
} else {
alert (gettext('Select some rows first'));
}
}}
}</code></pre>
] } };
YAHOO.extend (ActivitiesView, YAHOO.G4.GenericView, { initDefaultConfig: function() { ActivitiesView.superclass.initDefaultConfig.call(this);
var k;
for (k in DEFAULT_CONFIG) {
this.cfg.setProperty (DEFAULT_CONFIG[k].key, DEFAULT_CONFIG[k].value);
}
},
init: function (el, userConfig) {
ActivitiesView.superclass.init.call(this, el);
if (userConfig) {
this.cfg.applyConfig (userConfig, true);
}
},
render: function () {
var self = this;
ActivitiesView.superclass.render.call(this);
this.data_table.subscribe('postRenderEvent', function () {
if (self.total_records) self.container.count_el.innerHTML = ' ('+self.total_records+')';
});
YAHOO.G4.global_events.update_activities.subscribe (function() {
self.data_table.reload ()
})
}
}); }());
YAHOO.register("g4activities", YAHOO.G4.ActivitiesView, {version: "0.1", build: "1"});
```"