00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <string>
00015
00016 #include "openLogger.h"
00017 using namespace std;
00018 #include "ls_users.hpp"
00019
00020
00021 string baseUrl;
00022
00023 #include "w3intranet.h"
00024
00025 class users_List: public list_base
00026 {
00027 public:
00028
00029 users_List(cgiScript&sc,Session_Obj & session):list_base(sc,session){;}
00030 ~users_List(){;}
00031
00032 bool list_display( void )
00033 {
00034 bool breturn = true;
00035
00036 hotCol=-2;
00037 editLink = listTemplate.getParagraph("hotcolumn");
00038 editLink = editLink.replace("$prog$","ls_usersUI.meta");
00039 emitFilter( "ls_usersUI.meta",
00040 " <B>Search (by Last Name)</B>" );
00041 string heading =
00042 "<a class='sortcol' href='ls_usersUI.meta?sort=id'>id</a>|"
00043 "<a class='sortcol' href='ls_usersUI.meta?sort=first'>first</a>|"
00044 "<a class='sortcol' href='ls_usersUI.meta?sort=last'>last</a>|"
00045 "<a class='sortcol' href='ls_usersUI.meta?sort=login'>login</a>|"
00046 "<a class='sortcol' href='ls_usersUI.meta?sort=password'>password</a>|"
00047 "<a class='sortcol' href='ls_usersUI.meta?sort=phone_number'>phone number</a>|"
00048 "<a class='sortcol' href='ls_usersUI.meta?sort=email'>email</a>"
00049 ;
00050 emitHeadings(heading);
00051 getFilteredData(
00052 "id, "
00053 "first, "
00054 "last, "
00055 "login, "
00056 "password, "
00057 "phone, "
00058 "email "
00059 ,"users",
00060 "last like '$filter$%'" );
00061 emitData();
00062 emitNavigation("ls_usersUI.meta");
00063 emitEnd();
00064 return breturn;
00065 }
00066 };
00067
00068 class users_form: public users_Obj, public forms_base
00069 {
00070 public:
00071 users_form(cgiScript & script):users_Obj(),forms_base(script){setKey(*this);}
00072 virtual ~users_form(){;}
00073
00074 void form_id_transfer( void )
00075 {
00076 llongFXfer( "id", id );
00077 }
00078 void form_data_transfer( void )
00079 {
00080 stringFXfer( "first", first);
00081 stringFXfer( "last", last);
00082 stringFXfer( "login", login);
00083 stringFXfer( "password", password);
00084 stringFXfer( "phone", phone);
00085 stringFXfer( "email", email);
00086 stringFXfer( "mobile", mobile);
00087 stringFXfer( "fax", fax);
00088
00089 stringFXfer( "role_id", user_roles);
00090 }
00091 bool isupplemental( void )
00092 {
00093 return setRoles();
00094 }
00095
00096
00097 bool usupplemental( changeMap & changes )
00098 {
00099 bool bRet = deleteRoles();
00100 if(bRet) bRet = setRoles();
00101 return bRet;
00102 }
00103
00104
00105 bool dsupplemental( void )
00106 {
00107 return deleteRoles();
00108 }
00109
00110 bool ssupplemental( void )
00111 {
00112 return retrieveRoles();
00113 }
00114
00115 bool dbf_action( string mode, changeMap & changes )
00116 {
00117 return db_action( mode, changes );
00118 }
00119
00120
00121 bool form_display( void )
00122 {
00123 bool breturn = true;
00124 ocString sql;
00125
00126 script << makeTop("ls_usersUI.meta", "users")
00127 << makeHiddenBox("group_id", 0 )
00128 << formTemplate.getParagraph("advanced_begin");
00129 script << makeStaticBox("id", "id", id ,"8");
00130 script << "<br class='clearall'>" << endl;
00131 script << formTemplate.getParagraph("advanced_end");
00132
00133 script << makeTextBox("first", "first", first ,"125","25");
00134 script << "<br class='clearall'>" << endl;
00135 script << makeTextBox("last", "last", last ,"125","25");
00136 script << "<br class='clearall'>" << endl;
00137 script << makeTextBox("login", "login", login ,"12");
00138 script << "<br class='clearall'>" << endl;
00139 script << makeTextBox("password", "password", password ,"12");
00140 script << "<br class='clearall'>" << endl;
00141 script << makeTextBox("email", "email", email ,"125","25");
00142 script << "<br class='clearall'>" << endl;
00143 script << makeTextBox("phone", "phone", phone ,"125","25");
00144 script << "<br class='clearall'>" << endl;
00145 script << makeTextBox("mobile", "mobile", mobile ,"125","25");
00146 script << "<br class='clearall'>" << endl;
00147 script << makeTextBox("fax", "cax", fax ,"125","25");
00148 script << "<br class='clearall'>" << endl;
00149
00150 ocString select = "select r.id, r.name from roles r ";
00151
00152 script << makeComboBox("Roles","role_id",user_roles,
00153 select.c_str(),
00154 "", " multiple='multiple' size='6'" );
00155 script << "<br class='clearall'>" << endl;
00156
00157 script << makeButtons( key() );
00158 script << makeBottom( m_result ) << endl;
00159 return breturn;
00160 }
00161 };
00162
00163 bool intraMain(page & pg ,cgiScript & script)
00164 {
00165
00166 users_form myFrm(script);
00167 users_List mylist(script,oLogin.Session());
00168
00169 script.closeHeader();
00170
00171 myFrm.loadControlTemplates("Templates/divform.htmp");
00172 myFrm.form_action();
00173 myFrm.form_display();
00174
00175 mylist.loadListTemplates("Templates/navlist.htmp");
00176 mylist.list_display();
00177
00178 return true;
00179 }
00180
00181
00182 int main(int argc, char ** argv)
00183 {
00184 baseUrl = "ls_usersUI.meta";
00185
00186 cgiScript script("text/html",false);
00187 bool isSignedOn = check(script);
00188 script.closeHeader();
00189
00190
00191
00192 script.ScriptName() =
00193 ocString( script.ScriptName().c_str()).replace("ls_usersUI.meta","services").c_str();
00194
00195 page pg(script);
00196
00197 writelog( "load page" );
00198 if( pg.load() )
00199 {
00200 writelog( "instance of page control" );
00201 page_control ctrl(pg);
00202 ctrl.addOp ( "servicelist", new servicelist_functor(pg,script,isSignedOn) );
00203 ctrl.addOp ( "userinterface", new form_functor(pg,script,isSignedOn) );
00204 writelog( "page control emit" );
00205 ctrl.emit();
00206 }
00207 else
00208 {
00209 script << "<html><head><title>Page Unavailable</title></head>" << endl
00210 << "<body><h1>Sorry</h1>" << endl
00211 << "<p>The page you requested is not available</p></body></html>";
00212 }
00213 return 0;
00214 }
00215
00216
00217 #include "read_write_base.cpp"
00218 #include "forms_base.cpp"
00219