mirror of
https://github.com/fspc/BikeShed-1.git
synced 2025-02-28 08:43:23 -05:00
Merge pull request #97 from spacemunkay/denney-user-profiles-lower-tabs
Add lower tabs pane instead of splitting
This commit is contained in:
commit
592049b0e6
13
app/components/user_and_profiles_lower_tabs.rb
Normal file
13
app/components/user_and_profiles_lower_tabs.rb
Normal file
@ -0,0 +1,13 @@
|
||||
class UserAndProfilesLowerTabs < Netzke::Basepack::TabPanel
|
||||
component :user_profiles
|
||||
component :user_logs
|
||||
component :user_stats
|
||||
|
||||
def configure(c)
|
||||
c.prevent_header = true
|
||||
c.items = [ :user_logs,
|
||||
{ netzke_component: :user_profiles, title: "User Profiles" },
|
||||
{ netzke_component: :user_stats, title: "User Stats" }]
|
||||
super
|
||||
end
|
||||
end
|
@ -40,7 +40,7 @@ class UserStats < Netzke::Base
|
||||
|
||||
private
|
||||
def user
|
||||
controller.current_user
|
||||
User.find_by_id(session[:selected_user_id]) || controller.current_user
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -2,16 +2,14 @@ class UsersAndProfilesBorder < Netzke::Base
|
||||
# Remember regions collapse state and size
|
||||
include Netzke::Basepack::ItemPersistence
|
||||
component :users
|
||||
component :user_profiles
|
||||
component :user_logs
|
||||
component :user_and_profiles_lower_tabs
|
||||
|
||||
def configure(c)
|
||||
super
|
||||
c.header = false
|
||||
c.items = [
|
||||
{ netzke_component: :users, header: "Users", region: :center, width: 350, split: true },
|
||||
{ netzke_component: :user_profiles, region: :south, height: 150, split: true},
|
||||
{ netzke_component: :user_logs, region: :east, split: true}
|
||||
{ netzke_component: :user_and_profiles_lower_tabs, region: :south, height: 300, split: true}
|
||||
]
|
||||
end
|
||||
|
||||
|
@ -2,30 +2,48 @@
|
||||
initComponent: function(){
|
||||
// calling superclass's initComponent
|
||||
this.callParent();
|
||||
var stats = this.getComponent('user_stats');
|
||||
var stats = this.queryById('user_stats');
|
||||
if (stats != undefined){
|
||||
stats.updateStats();
|
||||
}
|
||||
|
||||
if( this.queryById('user_profiles')){
|
||||
this.queryById('user_profiles').disable();
|
||||
}
|
||||
|
||||
if( this.queryById('user_logs')){
|
||||
this.queryById('user_logs').disable();
|
||||
//update user stats
|
||||
var store = this.queryById('user_logs').getStore()
|
||||
store.on('load', function (store, records, operation, success){
|
||||
if( this.queryById('user_stats') ){
|
||||
this.queryById('user_stats').updateStats();
|
||||
}
|
||||
}, this);
|
||||
|
||||
}
|
||||
if( this.queryById('user_stats') ){
|
||||
this.queryById('user_stats').disable();
|
||||
}
|
||||
|
||||
// setting the 'rowclick' event
|
||||
var view = this.getComponent('users').getView();
|
||||
view.on('itemclick', function(view, record){
|
||||
// The beauty of using Ext.Direct: calling 3 endpoints in a row, which results in a single call to the server!
|
||||
this.selectUser({user_id: record.get('id')});
|
||||
this.getComponent('user_profiles').getStore().load();
|
||||
this.getComponent('user_logs').getStore().load();
|
||||
|
||||
if( this.queryById('user_profiles')){
|
||||
this.queryById('user_profiles').getStore().load();
|
||||
this.queryById('user_profiles').enable();
|
||||
}
|
||||
if( this.queryById('user_logs')){
|
||||
this.queryById('user_logs').getStore().load();
|
||||
this.queryById('user_logs').enable();
|
||||
}
|
||||
if( this.queryById('user_stats') ){
|
||||
this.queryById('user_stats').updateStats();
|
||||
this.queryById('user_stats').enable();
|
||||
}
|
||||
}, this);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user