Merge pull request #1101 from stasvovk/admin_console_urls
#962: change url when a user navigates between tabs in admin console
Этот коммит содержится в:
@@ -40,9 +40,13 @@ export default class AdminController extends React.Component {
|
||||
config: AdminStore.getConfig(),
|
||||
teams: AdminStore.getAllTeams(),
|
||||
selectedTeams,
|
||||
selected: 'service_settings',
|
||||
selectedTeam: null
|
||||
selected: props.tab || 'service_settings',
|
||||
selectedTeam: props.teamId || null
|
||||
};
|
||||
|
||||
if (!props.tab) {
|
||||
history.replaceState(null, null, `/admin_console/${this.state.selected}`);
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
@@ -142,7 +146,9 @@ export default class AdminController extends React.Component {
|
||||
} else if (this.state.selected === 'service_settings') {
|
||||
tab = <ServiceSettingsTab config={this.state.config} />;
|
||||
} else if (this.state.selected === 'team_users') {
|
||||
tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]} />;
|
||||
if (this.state.teams) {
|
||||
tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]} />;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ export default class AdminSidebar extends React.Component {
|
||||
handleClick(name, teamId, e) {
|
||||
e.preventDefault();
|
||||
this.props.selectTab(name, teamId);
|
||||
history.pushState({name: name, teamId: teamId}, null, `/admin_console/${name}/${teamId || ''}`);
|
||||
}
|
||||
|
||||
isSelected(name, teamId) {
|
||||
|
||||
@@ -5,9 +5,12 @@ var ErrorBar = require('../components/error_bar.jsx');
|
||||
var SelectTeamModal = require('../components/admin_console/select_team_modal.jsx');
|
||||
var AdminController = require('../components/admin_console/admin_controller.jsx');
|
||||
|
||||
export function setupAdminConsolePage() {
|
||||
export function setupAdminConsolePage(props) {
|
||||
ReactDOM.render(
|
||||
<AdminController />,
|
||||
<AdminController
|
||||
tab={props.ActiveTab}
|
||||
teamId={props.TeamId}
|
||||
/>,
|
||||
document.getElementById('admin_controller')
|
||||
);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div id='select_team_modal'></div>
|
||||
|
||||
<script>
|
||||
window.setup_admin_console_page();
|
||||
window.setup_admin_console_page({{ .Props }});
|
||||
|
||||
$(document).ready(function(){
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
|
||||
10
web/web.go
10
web/web.go
@@ -64,6 +64,9 @@ func InitWeb() {
|
||||
mainrouter.Handle("/signup/{service:[A-Za-z]+}/complete", api.AppHandlerIndependent(signupCompleteOAuth)).Methods("GET")
|
||||
|
||||
mainrouter.Handle("/admin_console", api.UserRequired(adminConsole)).Methods("GET")
|
||||
mainrouter.Handle("/admin_console/", api.UserRequired(adminConsole)).Methods("GET")
|
||||
mainrouter.Handle("/admin_console/{tab:[A-Za-z0-9-_]+}", api.UserRequired(adminConsole)).Methods("GET")
|
||||
mainrouter.Handle("/admin_console/{tab:[A-Za-z0-9-_]+}/{team:[A-Za-z0-9-]*}", api.UserRequired(adminConsole)).Methods("GET")
|
||||
|
||||
mainrouter.Handle("/hooks/{id:[A-Za-z0-9]+}", api.ApiAppHandler(incomingWebhook)).Methods("POST")
|
||||
|
||||
@@ -699,7 +702,14 @@ func adminConsole(c *api.Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
params := mux.Vars(r)
|
||||
activeTab := params["tab"]
|
||||
teamId := params["team"]
|
||||
|
||||
page := NewHtmlTemplatePage("admin_console", "Admin Console")
|
||||
|
||||
page.Props["ActiveTab"] = activeTab
|
||||
page.Props["TeamId"] = teamId
|
||||
page.Render(c, w)
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user