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

📄 clidb.cpp

📁 最新版本!fastdb是高效的内存数据库系统
💻 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 + -