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