Overview
SHA1 Hash: | da106eb09c0706c25486be85884e1b8cc4078008 |
---|---|
Date: | 2008-02-08 19:57:14 |
User: | stephan |
Comment: | refactored to add a shared submenu. |
Timelines: | ancestors | descendants | both | trunk |
Other Links: | files | ZIP archive | manifest |
Tags And Properties
- branch=trunk inherited from [a28c83647d]
- sym-trunk inherited from [a28c83647d]
Changes
[hide diffs]Modified src/admin.c from [83d1c6c6c3] to [3d7573884c].
@@ -51,10 +51,19 @@ } return rc; } +void admin_prepare_submenu(){ + if( g.okAdmin ){ + style_submenu_element("Main", "Main admin page", "%s/admin", g.zTop ); + style_submenu_element("SQL", "SQL page", "%s/admin/sql", g.zTop ); + style_submenu_element("Setup", "Setup page", "%s/setup", g.zTop ); + } +} + + /* ** WEBPAGE: /admin/sql */ void admin_sql_page(void){ const char *zSql = PD("sql",""); @@ -61,12 +70,13 @@ login_check_credentials(); if( !g.okAdmin ){ login_needed(); return; } + admin_prepare_submenu(); style_header("Admin SQL"); - @ <hr/><h2>SQL:</h2> + @ <h2>SQL:</h2> @ You can enter only SELECT statements here, and some SQL-side functions @ are also restricted.<br/> @ <form action='' method='post'> @ <textarea style='border:2px solid black' name='sql' @ cols='80' rows='5'>%h(zSql)</textarea> @@ -75,7 +85,33 @@ if( zSql[0] ){ sqlite3_set_authorizer(g.db, selectOnly, 0); db_generic_query_view(zSql, 0); sqlite3_set_authorizer(g.db, 0, 0); } + style_footer(); +} + +/* +** WEBPAGE: /admin +*/ +void admin_page(void){ + login_check_credentials(); + if( !g.okAdmin ){ + login_needed(); + return; + } + if( g.zExtra && g.zExtra[0] ){ + if(g.zExtra == strstr(g.zExtra,"sql")) admin_sql_page(); + /* FIXME: ^^^ this ^^^ is an awful lot of work, especially once + ** the paths deepen. Figure out a way to simplify dispatching. + */ + return; + } + admin_prepare_submenu(); + style_header("Admin"); + @ <h2>Links:</h2> + @ <ul> + @ <li><a href='%s(g.zBaseURL)/admin/setup'>Fossil WWW Setup</a></li> + @ <li><a href='%s(g.zBaseURL)/admin/sql'>Run SQL queries</a></li> + @ </ul> style_footer(); }