⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clidb.cpp

📁 fastdb-241源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    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\">&nbsp;";
    }
    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\">&nbsp;";
    } 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\">&nbsp;"
	"<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\">&nbsp;";
    } 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\">&nbsp;";
    } 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\">&nbsp;"
	       "<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\">&nbsp;";
	} 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 + -