From 966247783b4e6a62d2035a92d9c7b2a29b26b04a Mon Sep 17 00:00:00 2001 From: nbm Date: Mon, 12 Dec 2005 15:21:24 +0000 Subject: [PATCH] Add document addition observers that control the UI component of document addition. --- lib/documentmanagement/observers.inc.php | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+), 0 deletions(-) create mode 100644 lib/documentmanagement/observers.inc.php diff --git a/lib/documentmanagement/observers.inc.php b/lib/documentmanagement/observers.inc.php new file mode 100644 index 0000000..ef6b0ff --- /dev/null +++ b/lib/documentmanagement/observers.inc.php @@ -0,0 +1,114 @@ +boundary = md5(time()); + } + + function start() { + ob_implicit_flush(); + header(sprintf("Content-type: multipart/mixed; boundary=%s", $this->boundary)); + } + + function receiveMessage(&$msg) { + printf("\n--%s\n", $this->boundary); + echo "Content-Type: text/html\n\n"; + + print $msg->getString(); + print "\n"; + } + + function redirect($location) { + printf("\n--%s\n", $this->boundary); + echo "Content-Type: text/html\n\n"; + printf("Location: %s\n", $location); + } + + function end() { + printf("\n--%s--\n", $this->boundary); + } +} + +class JavascriptObserver { + function JavascriptObserver(&$context) { + $this->context = $context; + } + + function start() { + $this->context->oPage->requireJSResource('thirdpartyjs/MochiKit/Base.js'); + $this->context->oPage->requireJSResource('thirdpartyjs/MochiKit/Iter.js'); + $this->context->oPage->requireJSResource('thirdpartyjs/MochiKit/DOM.js'); + $this->context->oPage->requireJSResource('resources/js/add_document.js'); + $this->context->oRedirector =& $this; + $this->context->handleOutput('
 
'); + } + + function receiveMessage(&$msg) { + if (is_a($msg, 'KTUploadNewFile')) { + printf('', $msg->getString()); + return; + } + printf('', $msg->getString()); + } + + function redirectToDocument($id) { + printf('', $id); + } + + function redirectToFolder($id) { + printf('', $id); + } + + function redirect($url) { + printf('', $url); + } + + + function end() { + printf("\n--%s--\n", $this->boundary); + } +} + +class KTSinglePageObserver { + function KTSinglePageObserver(&$context) { + $this->context =& $context; + } + + function start() { + $this->context->oPage->template = 'kt3/minimal_page'; + $this->context->oRedirector =& $this; + $this->context->handleOutput(""); + } + + function receiveMessage(&$msg) { + if (is_a($msg, 'KTUploadNewFile')) { + print "

" . $msg->getString() . "

"; + return; + } + print "
" . $msg->getString() . "
\n"; + } + + function redirectToDocument($id) { + $url = generateControllerUrl("viewDocument", sprintf("fDocumentId=%d", $id)); + printf('Go here to continue', $url); + printf("\n"); + } + + function redirectToFolder($id) { + $url = generateControllerUrl("browse", sprintf("fFolderId=%d", $id)); + printf('Go here to continue', $url); + printf("\n"); + } + + function redirect($url) { + foreach ($_SESSION['KTErrorMessage'] as $sErrorMessage) { + print '
' . $sErrorMessage . '
' . "\n"; + } + printf('Go here to continue', $url); + printf("\n"); + } + + function end() { + printf("\n--%s--\n", $this->boundary); + } +} -- libgit2 0.21.4