void HtmlLinkButton::renderAttributes(HtmlWriter &writer) { ControlBase::renderAttributes(writer); if(hasID()) writer.writeAttribute(_S("href"), getEventCommand(EVENT_ONCLICK)); }
void IHtmlSelect::renderAttributes(HtmlWriter &writer) { ControlBase::renderAttributes(writer); if(hasID()) { writer.writeAttribute(_S("id"), getTarget()); writer.writeAttribute(_S("name"), getTarget()); } if(getEventChange()->empty() == false) writer.writeAttribute(_S("onchange"), getEventCommand(EVENT_ONCHANGE)); else if(getAutoPostBack()) writer.writeAttribute(_S("onchange"), _S("javascript:return osAutoPostBack(this);")); }
void Jobs::onPreRender() { PageBase::onPreRender(); shared_ptr<XMLExporter> exporter(OS_NEW XMLExporter(m_pageTemplate->getDocument()->create(_S("jobs")))); exporter->createAction(_S("clearCompletedJobs"), getEventCommand(OS_JOBSPAGE_EVENT_ONCLEARCOMPLETEDJOBS)); // Highlight job if(getRequest()->hasUrlParam(_W("job"))) exporter->setAttributeString(_S("highlight"), getRequest()->getUrlParam(_W("job"))); shared_ptr<Engine::BackgroundJobs> jobs = Engine::instance()->getBackgroundJobs(); if(jobs != nullptr) exportJobs(exporter, *jobs, false); jobs = Engine::instance()->getLastCompletedBackgroundJobs(); if(jobs != nullptr) exportJobs(exporter, *jobs, true); }
void Maintenance::onLoad() { PageBase::onLoad(); /* shared_ptr<Portal> portal = getPortalFromUrl(); if(portal == nullptr) { showError(_S("Invalid portal")); return; } */ if(getRequest()->hasUrlParam(_W("crash"))) // TEMP, x test crash report { int32 *pI=nullptr; *pI = 5; } /* for(int i=0;i<100;i++) { shared_ptr<HtmlDiv> div(OS_NEW HtmlDiv()); getArea(pageAreaContent)->getControls()->add(div); } */ shared_ptr<XMLDocument> document(OS_NEW XMLDocument()); shared_ptr<XMLNode> root = document->create(_S("maintenance")); String path = getSkin()->getTemplatePath(_S("maintenance.xsl")); shared_ptr<HtmlXSLControl> pageTemplate(OS_NEW HtmlXSLControl(loadStylesheet(path), document)); getArea(pageAreaContent)->getControls()->add(pageTemplate); root->setAttributeString(_S("stability_restart_href"), getEventCommand(EVENT_ONSTABILITYRESTART)); root->setAttributeString(_S("stability_rebuild_href"), getEventCommand(EVENT_ONSTABILITYREBUILD)); root->setAttributeString(_S("lucene_rebuild_href"), getEventCommand(EVENT_ONLUCENEREBUILD)); root->setAttributeString(_S("lucene_optimize_href"), getEventCommand(EVENT_ONLUCENEOPTIMIZE)); root->setAttributeString(_S("database_vacuum_href"), getEventCommand(EVENT_ONDATABASEVACUUM)); root->setAttributeString(_S("database_rebuild_indexes_href"), getEventCommand(EVENT_ONDATABASEREBUILDINDEXES)); root->setAttributeString(_S("database_analyze_href"), getEventCommand(EVENT_ONDATABASEANALYZE)); }
void IdeMailBox::renderFolder(MessageFolder folder, shared_ptr<XMLNode> node) { getPortal()->getMessenger()->markNewMessagesAsUnread(getPage()->getDatabase(), getSessionAccount()); node->setAttributeString(_S("name"), DataLocalMessage::toString(folder)); // Calcola il numero totale di messaggi nel folder uint32 total_messages = getPortal()->getMessenger()->getMessagesCount(getPage()->getDatabase(), getSessionAccount(), folder); // Calcola il numero di messaggi da mostrare uint32 messages_to_show = getSkin()->getPagerItems(); // Crea il pager dei messaggi se necessario createPager(getSkin(), node, total_messages, messages_to_show, getOffset()); shared_ptr<XMLNode> node_messages; DataLocalMessage::DataLocalMessageList messages; RangeUint32 range(m_offset, messages_to_show); // Estrae i messaggi nel folder corrente if(getPortal()->getMessenger()->getMessages(getPage()->getDatabase(), getSessionAccount(), messages, folder, range)) { for(DataLocalMessage::DataLocalMessageList::const_iterator i = messages.begin(); i != messages.end(); ++i) { shared_ptr<DataLocalMessage> local_message = *i; shared_ptr<ObjectsMessage> message = local_message->decode(getSessionAccount()->getPrivateKey()); if(message != nullptr) { if(node_messages == nullptr) node_messages = node->addChild(_S("messages")); shared_ptr<XMLPortalExporter> messageExporter(OS_NEW XMLPortalExporter(node_messages->addChild(_S("message")), getPage(), XMLPortalExporter::emLite)); local_message->exportXML(messageExporter, message->subject, String::EMPTY, false); } } } shared_ptr<XMLNode> node_actions = node->addChild(_S("actions")); switch(folder) { case messageFolderInbox: { shared_ptr<XMLNode> actionReadAll = node_actions->addChild(_S("action")); actionReadAll->setAttributeString(_S("name"), _S("readAllMessages")); actionReadAll->setAttributeString(_S("href"), getEventCommand(EVENT_ONREADALLMESSAGES, conversions::to_utf16(folder))); } break; case messageFolderTrash: { shared_ptr<XMLNode> actionDeleteAll = node_actions->addChild(_S("action")); actionDeleteAll->setAttributeString(_S("name"), _S("deleteAllMessages")); actionDeleteAll->setAttributeString(_S("href"), getEventCommand(EVENT_ONDELETEALLMESSAGES, conversions::to_utf16(folder))); } break; case messageFolderSentItems: break; default: OS_ASSERTFALSE(); break; } }
String IdeMailBox::getPageHref(uint32 offset) const { return getEventCommand(EVENT_ONCHANGEOFFSET, conversions::to_utf16(offset)); }
void IdeMailBox::renderMessage(const ObjectID &id, shared_ptr<XMLNode> node) { shared_ptr<ObjectsMessage> message; shared_ptr<DataLocalMessage> local_message = getPortal()->getMessenger()->getMessage(getPage()->getDatabase(), getSessionAccount(), id, true); if(local_message != nullptr) { // Decodifica il messaggio message = local_message->decode(getSessionAccount()->getPrivateKey()); } if(message == nullptr) return; shared_ptr<OMLContext> messageContext = getPage()->parseOmlEx(message->body, false, true, getSecure(), false, omlRenderModeOsiris, String::EMPTY, String::EMPTY); if(messageContext == nullptr) return; shared_ptr<XMLPortalExporter> messageExporter(OS_NEW XMLPortalExporter(node, getPage(), XMLPortalExporter::emFull)); local_message->exportXML(messageExporter, message->subject, messageContext->getOutput(), messageContext->getSecureCheck()); shared_ptr<XMLNode> node_actions = node->addChild(_S("actions")); shared_ptr<ObjectsUser> author = objects_user_cast(getPage()->getObject(local_message->author)); if(author != nullptr) { shared_ptr<XMLNode> action_reply = node_actions->addChild(_S("action")); action_reply->setAttributeString(_S("name"), _S("reply")); ordered_map<std::wstring, std::wstring> params; params.set(OS_URL_PARAM_QUOTE, (_W("re: ") + message->subject).to_wide()); action_reply->setAttributeString(_S("href"), getPortal()->getSendMessageLink(author->id, params)); } if(local_message->folder == static_cast<uint32>(messageFolderTrash)) { shared_ptr<XMLNode> action_delete = node_actions->addChild(_S("action")); action_delete->setAttributeString(_S("name"), _S("restore")); action_delete->setAttributeString(_S("href"), getEventCommand(EVENT_ONRESTOREMESSAGE, id.toUTF16())); } else { shared_ptr<XMLNode> action_delete = node_actions->addChild(_S("action")); action_delete->setAttributeString(_S("name"), _S("delete")); action_delete->setAttributeString(_S("href"), getEventCommand(EVENT_ONDELETEMESSAGE, id.toUTF16())); } if(getSecure()) { bool unsafe = messageContext->getSecureCheck() == false; if(unsafe == false) { shared_ptr<ObjectsUser> messageAuthor = objects_user_cast(getPage()->getObject(local_message->author)); if(messageAuthor != nullptr) { shared_ptr<OMLContext> markContext = getPage()->parseOmlEx(messageAuthor->mark, false, true, getSecure(), false, omlRenderModeOsiris, String::EMPTY, String::EMPTY); if(markContext != nullptr) unsafe = markContext->getSecureCheck() == false; } } if(unsafe) { shared_ptr<XMLNode> action_delete = node_actions->addChild(_S("action")); action_delete->setAttributeString(_S("name"), _S("show")); action_delete->setAttributeString(_S("href"), getPortal()->getPrivateMessageLink(id, false)); } } }