Skip to content

Instantly share code, notes, and snippets.

@jmazzi
Created June 2, 2011 16:45
Show Gist options
  • Save jmazzi/1004779 to your computer and use it in GitHub Desktop.
Save jmazzi/1004779 to your computer and use it in GitHub Desktop.
var SALister;
SALister = (function() {
function SALister() {}
SALister.prototype.loadList = function(what, o) {
var callParams, success, _o;
what = what.toLowerCase();
_o = {
regex: null,
container: what + 'List',
pagStart: null,
pagSize: null,
confirmDelete: true,
deleteOptions: {},
editCallback: null
};
Object.extend(_o, o || {});
Object.extend(_o.deleteOptions, {
onComplete: this.delListItem.bind(this)
});
callParams = {
module: null,
func: null,
version: 2,
parameters: {
regex: _o.regex || null,
api2_paginate: _o.pagStart || (_o.pagStart === 0 ? 1 : 0),
api2_paginate_start: _o.pagStart || (_o.pagStart === 0 ? _o.pagStart : null),
api2_paginate_size: _o.pagSize || null
}
};
switch (what) {
case 'addondomain':
callParams.module = 'AddonDomain';
callParams.func = 'listaddondomains';
break;
}
Object.extend(callParams, success = {
onSuccess: function(t) {
var list, returned;
returned = t.responseText.evalJSON().cpanelresult;
this.listData = {};
switch (what) {
case 'addondomain':
this.listData[what] = returned.data;
}
list = this.listData[what].each(function(data) {
_o.deleteOptions = this.getDeleteParams(what, data);
data.element(this.buildAddonDomainItem(data, _o));
return this.insertListItem(_o.container, data.element);
});
return list.bind(this);
}
}, success.bind(this));
this.callCpanel(callParams);
return this;
};
return SALister;
})();
class SALister
loadList: (what, o) ->
what = what.toLowerCase()
_o =
regex: null # regex filter
container: what + 'List' # id of list container
pagStart: null
pagSize: null
confirmDelete: true # Display delete confirmation?
deleteOptions: {} # Options for SA#callCpanel
editCallback: null
Object.extend _o, o || {}
# Remove the list item onComplete
Object.extend _o.deleteOptions,
onComplete: @delListItem.bind this
callParams =
module: null, func: null, version: 2
parameters:
regex: _o.regex || null
api2_paginate: _o.pagStart || if _o.pagStart is 0 then 1 else 0
api2_paginate_start: _o.pagStart || if _o.pagStart is 0 then _o.pagStart else null
api2_paginate_size: _o.pagSize || null
switch what
when 'addondomain'
callParams.module = 'AddonDomain'
callParams.func = 'listaddondomains'
break
Object.extend callParams,
success = onSuccess: (t) ->
returned = t.responseText.evalJSON().cpanelresult
@listData = {}
# Set up in a switch() because adjustments may be necessary
# depending on the list retrieved
switch(what)
when 'addondomain'
@listData[what] = returned.data
list = @listData[what].each (data) ->
# Get Delete params
_o.deleteOptions = @getDeleteParams what, data
# Pass _o for deleteOptions/editCallback
data.element @buildAddonDomainItem data, _o
@insertListItem _o.container, data.element
list.bind this
success.bind this
@callCpanel callParams
return this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment