📄 clidb.cpp
字号:
return true;}bool editClientForm(WWWconnection& con){ if (con.get("new")) { return addClientForm(con); } ThreadContext& the = ThreadContext::of(con); char* client = con.get("client"); if (client == NULL) { return error(con, "No client was selected"); } the.clientId = atoi(client); if (the.clients.select(the.qClient) == 0) { return error(con, "No such client"); } the.name = con.get("manager"); if (the.managers.select(the.qManager) == 0) { return error(con, "No such manager"); } con << TAG << HTML_HEAD "<TITLE>Edit client form</TITLE></HEAD>" BODY "<H2>Update client</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editClient\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << the.name << "\">" "<INPUT TYPE=hidden NAME=\"client\" VALUE=" << client << "\">" "<TABLE>" "<TR><TH ALIGN=LEFT>Organization</TH>" "<TD><INPUT TYPE=text NAME=\"organization\" SIZE=40 VALUE=\"" << the.clients->organization << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Phone</TH>" "<TD><INPUT TYPE=text NAME=\"phone\" SIZE=20 VALUE=\"" << the.clients->phone << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Phone2</TH>" "<TD><INPUT TYPE=text NAME=\"phone2\" SIZE=20 VALUE=\"" << the.clients->phone2 << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Fax</TH>" "<TD><INPUT TYPE=text NAME=\"fax\" SIZE=20 VALUE=\"" << the.clients->fax << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>E-Mail</TH>" "<TD><INPUT TYPE=text NAME=\"email\" SIZE=30 VALUE=\"" << the.clients->email << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>WWW address</TH>" "<TD><INPUT TYPE=text NAME=\"www\" SIZE=30 VALUE=\"" << the.clients->www << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Person</TH>" "<TD><INPUT TYPE=text NAME=\"person\" SIZE=40 VALUE=\"" << the.clients->person << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Person2</TH>" "<TD><INPUT TYPE=text NAME=\"person2\" SIZE=40 VALUE=\"" << the.clients->person2 << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>CEO</TH>" "<TD><INPUT TYPE=text NAME=\"lpr\" SIZE=40 VALUE=\"" << the.clients->lpr << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Address</TH>" "<TD><INPUT TYPE=text NAME=\"addr\" SIZE=40 VALUE=\"" << the.clients->addr << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Information</TH>" "<TD><INPUT TYPE=text NAME=\"info\" SIZE=40 VALUE=\"" << the.clients->info << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Status</TH>" "<TD><INPUT TYPE=text NAME=\"status\" SIZE=40 VALUE=\"" << the.clients->status << "\"></TD></TR></TABLE><P>"; if (the.managers->flags & (Manager::isAdministrator|Manager::isMinAdmin)) { con << TAG << "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Update\"> "; } if (the.managers->flags & Manager::isAdministrator) { con << TAG << "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Remove\">"; } con << TAG << "</FORM><P>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editHistoryForm\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << the.name << "\">" "<INPUT TYPE=hidden NAME=\"client\" VALUE=" << client << "\">" "<SELECT SIZE=10 NAME=\"messageId\">"; the.managerForm = false; the.messagesArray = &the.clients->history; if (the.messages.select(the.qMessages) != 0) { print(con, the.messages); con << TAG << "</SELECT><BR><INPUT TYPE=submit VALUE=\"Select\"> "; } else { con << TAG << EMPTY_LIST; } con << TAG << "<INPUT TYPE=submit NAME=\"new\" VALUE=\"New message\"></FORM>"; mainMenuReference(con); return true;}bool editSegmentForm(WWWconnection& con){ if (con.get("new")) { return addSegmentForm(con); } ThreadContext& the = ThreadContext::of(con); the.name = con.get("name"); if (the.name == NULL) { return error(con, "No segment was selected"); } if (the.segments.select(the.qSegment) == 0) { return error(con, "No such segment"); } char* manager = con.get("manager"); con << TAG << HTML_HEAD "<TITLE>Edit segment</TITLE></HEAD>" BODY "<H2>Update segment</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editSegment\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << manager << "\">" "<INPUT TYPE=hidden NAME=\"oldName\" VALUE=\"" << the.name << "\">" "<TABLE><TR><TH ALIGN=LEFT>Segment name </TH>" "<TD><INPUT TYPE=text NAME=\"name\" SIZE=30 VALUE=\"" << the.segments->name << "\"></TD></TR>" "</TD></TR></TABLE><P>" "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Update\"> " "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Remove\"></FORM><P>" "<H2>Select manager</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editManagerForm\">" "<INPUT TYPE=hidden NAME=\"segment\" VALUE=\"" << the.name << "\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << manager << "\">" "<SELECT NAME=\"name\" SIZE=10>"; the.managersArray = &the.segments->managers; if (the.managers.select(the.qManagers) != 0) { print(con, the.managers); con << TAG << "</SELECT><BR><INPUT TYPE=submit VALUE=\"Select\"> "; } else { con << TAG << EMPTY_LIST; } con << TAG << "<INPUT TYPE=submit NAME=\"new\" VALUE=\"New\"></FORM><P>" "<H2>Select client</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editClientForm\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << manager << "\">" "<INPUT TYPE=hidden NAME=\"segment\" VALUE=\"" << the.name << "\">" "<SELECT NAME=\"client\" SIZE=10>"; the.clientsArray = &the.segments->clients; if (the.clients.select(the.qClients) != 0) { print(con, the.clients); con << TAG << "</SELECT><BR><INPUT TYPE=submit VALUE=\"Select\"> "; } else { con << TAG << EMPTY_LIST; } con << TAG << "<INPUT TYPE=submit NAME=\"new\" VALUE=\"New\"></FORM>"; mainMenuReference(con); return true;}bool editHistoryForm(WWWconnection& con){ if (con.get("new")) { return addHistoryForm(con); } ThreadContext& the = ThreadContext::of(con); char buf[64]; char* messageId = con.get("messageId"); if (messageId == NULL) { return error(con, "No message was selected"); } the.messageId = atoi(messageId); if (the.messages.select(the.qMessage) == 0) { return error(con, "No such message"); } the.name = con.get("manager"); the.clients.at(the.messages->client); if (the.messages->manager != null) { the.managers.at(the.messages->manager); } con << TAG << HTML_HEAD "<TITLE>Edit message</TITLE></HEAD>" BODY "<H2>Edit message</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editHistory\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << the.name << "\">" "<INPUT TYPE=hidden NAME=\"messageId\" VALUE=" << messageId << "\">" "<TABLE><TR><TH ALIGN=LEFT>Client</TH>" "<TD><A HREF=\"" << con.getStub() << "?socket=" << con.getAddress() << "&page=editClientForm&manager=" << URL << the.name << "&client=" << the.clients->clientId << "\">" << the.clients->organization << "</A></TD></TR>"; if (the.messages->manager != null) { con << TAG << "<TR><TH ALIGN=LEFT>Manager</TH><TD><A HREF=\"" << con.getStub() << "?socket=" << con.getAddress() << "&page=editManagerForm&manager=" << URL << the.name << "&name=" << URL << the.managers->name << "\">" << the.managers->name << "</A></TD></TR>"; } con << TAG << "<TR><TH ALIGN=LEFT>Date</TH>" "<TD><INPUT TYPE=text SIZE=30 VALUE=\"" << the.messages->date.asString(buf, sizeof buf) << "\"></TD></TR>" "</TABLE><P>" "<TEXTAREA NAME=\"message\" ROWS=10 COLS=60>" << the.messages->message << "</TEXTAREA><P>"; if (the.managers.select(the.qManager) == 0) { return error(con, "No such manager"); } if ((the.managers->flags & (Manager::isAdministrator|Manager::isMinAdmin)) || the.managers.currentId() == the.messages->manager) { con << TAG << "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Update\"> " "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Remove\">"; } con << TAG << "</FORM>"; mainMenuReference(con); return true;}bool managerForm(WWWconnection& con){ ThreadContext& the = ThreadContext::of(con); the.name = con.get("manager"); if (the.managers.select(the.qManager) == 0) { return error(con, "No such manager"); } if (the.managers->flags & Manager::isAdministrator) { con << TAG << HTML_HEAD "<TITLE>Administrator menu</TITLE></HEAD>" BODY "<H2>Administrator menu</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\""<< con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editManager\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << the.name << "\">" "<INPUT TYPE=hidden NAME=\"oldName\" VALUE=\"" << the.name << "\">" "<TABLE><TR><TH ALIGN=LEFT>Manager name</TH>" "<TD><INPUT TYPE=text NAME=\"name\" SIZE=30 VALUE=\"" << the.managers->name << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Manager host IP address</TH>" "<TD><INPUT TYPE=text NAME=\"ipaddr\" SIZE=16 VALUE=\"" << the.managers->IPaddr << "\"</TD></TR></TABLE>" "<INPUT TYPE=submit NAME=\"action\" VALUE=\"Change\"></FORM><P>" "<H2>Select segment</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\""<< con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editSegmentForm\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << the.name << "\">" "<SELECT SIZE=15 NAME=\"name\">"; if (the.segments.select() != 0) { print(con, the.segments); con << TAG << "</SELECT><BR><INPUT TYPE=submit VALUE=\"Select\"> "; } else { con << TAG << EMPTY_LIST; } con << TAG << "<INPUT TYPE=submit NAME=\"new\" VALUE=\"New segment\"></FORM>" "<P><HR>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\""<< con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"shutdown\">" "<CENTER><INPUT TYPE=submit VALUE=\"Shutdown server\"></CENTER>" "</FORM>"; } else { con << TAG << HTML_HEAD "<TITLE>Manager menu</TITLE></HEAD>" BODY "<H2>Manager menu</H2>" "<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">" "<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\""<< con.getAddress() << "\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"editManager\">" "<INPUT TYPE=hidden NAME=\"manager\" VALUE=\"" << the.name << "\">" "<INPUT TYPE=hidden NAME=\"oldName\" VALUE=\"" << the.name << "\">"; if (the.managers->flags & Manager::isMinAdmin) { con << TAG <<"<INPUT TYPE=hidden NAME=\"miniadmin\" VALUE=\"on\">"; } the.segments.at(the.managers->segment); con << TAG << "<TABLE><TR><TH ALIGN=LEFT>Manager name</TH>" "<TD><INPUT TYPE=text NAME=\"name\" SIZE=30 VALUE=\"" << the.managers->name << "\"></TD></TR>" "<TR><TH ALIGN=LEFT>Manager host IP address</TH>" "<TD><INPUT TYPE=text NAME=\"ipaddr\" SIZE=16 VALUE=\"" << the.managers->IPaddr << "\"</TD></TR></TABLE>"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -