Пример #1
0
void HtmlLinkButton::renderAttributes(HtmlWriter &writer)
{
	ControlBase::renderAttributes(writer);

	if(hasID())
		writer.writeAttribute(_S("href"), getEventCommand(EVENT_ONCLICK));
}
Пример #2
0
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);"));	
}
Пример #3
0
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);	
}
Пример #4
0
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));
}
Пример #5
0
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;
	}
}
Пример #6
0
String IdeMailBox::getPageHref(uint32 offset) const
{
	return getEventCommand(EVENT_ONCHANGEOFFSET, conversions::to_utf16(offset));
}
Пример #7
0
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));
		}
	}
}