Browse Source
outsource the channel viewer class into its own file
Natenom/support-murmur-13-1446181288462
outsource the channel viewer class into its own file
Natenom/support-murmur-13-1446181288462
Michael Ziegler
15 years ago
4 changed files with 93 additions and 91 deletions
-
76htdocs/js/channelviewer.js
-
83htdocs/js/mumble.js
-
17htdocs/js/usereditor.js
-
6pyweb/mumble/templates/mumble/mumble.html
@ -0,0 +1,76 @@ |
|||||
|
// kate: space-indent on; indent-width 4; replace-tabs on;
|
||||
|
|
||||
|
Ext.namespace('Ext.ux'); |
||||
|
|
||||
|
Ext.ux.MumbleChannelViewer = function( config ){ |
||||
|
Ext.apply( this, config ); |
||||
|
|
||||
|
Ext.applyIf( this, { |
||||
|
title: gettext("Channel Viewer"), |
||||
|
root: { |
||||
|
text: gettext("Loading..."), |
||||
|
leaf: true |
||||
|
}, |
||||
|
buttons: [{ |
||||
|
text: gettext("Refresh"), |
||||
|
handler: this.refresh, |
||||
|
scope: this |
||||
|
}], |
||||
|
} ); |
||||
|
|
||||
|
Ext.ux.MumbleChannelViewer.superclass.constructor.call( this ); |
||||
|
this.refresh(); |
||||
|
} |
||||
|
|
||||
|
Ext.extend( Ext.ux.MumbleChannelViewer, Ext.tree.TreePanel, { |
||||
|
refresh: function(){ |
||||
|
var conn = new Ext.data.Connection(); |
||||
|
conn.request({ |
||||
|
url: this.source_url, |
||||
|
scope: this, |
||||
|
success: function( resp, opt ){ |
||||
|
respdata = Ext.decode( resp.responseText ); |
||||
|
root = { |
||||
|
text: respdata.name, |
||||
|
id: "mumbroot", |
||||
|
leaf: false, |
||||
|
icon: '/static/mumble/mumble.16x16.png', |
||||
|
children: [], |
||||
|
}; |
||||
|
function populateNode( node, json ){ |
||||
|
subchan_users = 0; |
||||
|
for( var i = 0; i < json.channels.length; i++ ){ |
||||
|
child = { |
||||
|
text: json.channels[i].name, |
||||
|
id: ("channel_" + json.channels[i].id), |
||||
|
leaf: false, |
||||
|
icon: '/static/mumble/channel.png', |
||||
|
children: [], |
||||
|
}; |
||||
|
node.children.push( child ); |
||||
|
subchan_users += populateNode( child, json.channels[i] ); |
||||
|
} |
||||
|
for( var i = 0; i < json.users.length; i++ ){ |
||||
|
child = { |
||||
|
text: json.users[i].name, |
||||
|
id: ("user_" + json.users[i].id), |
||||
|
leaf: true, |
||||
|
icon: '/static/mumble/talking_off.png', |
||||
|
}; |
||||
|
node.children.push( child ); |
||||
|
} |
||||
|
if( json.id == 0 || json.users.length > 0 || subchan_users ) |
||||
|
node.expanded = true; |
||||
|
return subchan_users + json.users.length; |
||||
|
} |
||||
|
populateNode( root, respdata.root ); |
||||
|
this.setRootNode( root ); |
||||
|
}, |
||||
|
failure: function( resp, opt ){ |
||||
|
alert("fail"); |
||||
|
}, |
||||
|
}); |
||||
|
}, |
||||
|
} ); |
||||
|
|
||||
|
Ext.reg( 'mumblechannelviewer', Ext.ux.MumbleChannelViewer ); |
Write
Preview
Loading…
Cancel
Save
Reference in new issue