Example #1
0
        }
        if ($fb->type == USER) {
            $from = User::get($fb->from);
            echo '<h2>User feedback from ' . $fb->name . '</h2>';
        }
        echo 'Subject: ' . $fb->subject . '<br/>';
        if ($fb->body) {
            echo 'Message: ' . nl2br($fb->body);
        }
        echo '<br/>';
        if ($fb->type == USER) {
            $msg = "In response to your feedback:\n\n" . $fb->body;
            $frm = new XhtmlForm();
            $frm->addHidden('owner', $this->child);
            $frm->addHidden('to', $fb->from);
            $frm->addTextarea('msg', 'Reply', $msg);
            $frm->addSubmit('Send');
            $frm->setHandler('fbHandle');
            echo $frm->render();
        }
        echo '<br/>';
        echo ahref('a/feedback/markhandled/' . $this->child, 'Mark as handled');
        break;
    case 'markhandled':
        // child = tblFeedback.id
        Feedback::markHandled($this->child);
        js_redirect('a/feedback/default');
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}
Example #2
0
    case 'new':
        $session->requireLoggedIn();
        // create new photo album
        echo '<h1>Create a new photo album</h1>';
        function handleNew($p)
        {
            $session = SessionHandler::getInstance();
            $o = new PhotoAlbum();
            $o->owner = $session->id;
            $o->name = $p['name'];
            $o->time_created = sql_datetime(time());
            if ($session->isSuperAdmin && $p['system']) {
                $o->owner = 0;
            }
            // create a system wide album
            $o->id = $o->store();
            js_redirect('u/album/show/' . $session->id . '/' . $o->id);
        }
        $form = new XhtmlForm();
        $form->addInput('name', 'Name');
        $form->setFocus('name');
        if ($session->isSuperAdmin) {
            $form->addCheckbox('system', 'System wide album? (SUPERADMIN)');
        }
        $form->addSubmit('Save');
        $form->setHandler('handleNew');
        echo $form->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #3
0
{
    $grp = new UserGroup();
    $grp->setName($p['name']);
    $grp->setInfo($p['info']);
    $grp->setLevel($p['level']);
    $grp->save();
    redir('a/usergroups');
}
$header->setTitle('Admin: Manage user groups');
echo '<h1>Manage user groups</h1>';
echo '<h2>Add new group</h2>';
$form = new XhtmlForm('adm_usergroup');
$form->addInput('name', 'Group name');
$form->addTextarea('info', 'Info');
$form->addDropdown('level', 'Level', getUserLevels());
$form->addSubmit('Add');
$form->setHandler('addUserGroupSubmit');
echo $form->render();
echo '<br/>';
echo '<h2>Existing groups</h2>';
echo '<table>';
echo '<tr><th>Name</th><th>Level</th><th>Info</th><th>Created</th></tr>';
foreach (UserGroup::getAll() as $grp) {
    echo '<tr>';
    echo '<td>' . ahref('a/usergroup/' . $grp->getId(), $grp->getName()) . '</td>';
    echo '<td>' . $grp->getLevelDesc() . '</td>';
    echo '<td>' . $grp->getInfo() . '</td>';
    echo '<td>' . sql_datetime($grp->getTimeCreated()) . '</td>';
    echo '</tr>';
}
echo '</table>';
Example #4
0
<?php

namespace cd;

switch ($this->owner) {
    case 'user':
        function handleSearch($p)
        {
            $list = UserList::getUsers($p['q']);
            echo '<h2>Showing users matching <u>' . $p['q'] . '</u>';
            echo ' (' . count($list) . ' hits)</h2>';
            $dt = new YuiDatatable();
            $dt->addColumn('id', 'Username', 'link', 'u/profile/', 'name');
            $dt->addColumn('time_last_active', 'Last active');
            $dt->setDataSource($list);
            echo $dt->render();
        }
        $form = new XhtmlForm();
        $form->addInput('q', 'Username search');
        $form->setFocus('q');
        $form->addSubmit('Search');
        $form->setHandler('handleSearch');
        echo $form->render();
        echo '<br/>';
        echo '&raquo; ' . ahref('u/users/online', 'Show users online') . '<br/>';
        echo '&raquo; ' . ahref('u/users/newest', 'Show new members') . '<br/>';
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #5
0
                $item->title = $p['poll_a' . $i];
                $item->store();
            }
            js_redirect('a/polls/list');
        }
        echo '<h2>Add new poll</h2>';
        $frm = new XhtmlForm();
        $frm->addInput('poll_q', 'Question');
        //    echo '<div id="poll_period_selector">';
        $dur = array('1d' => '1 day', '1w' => '1 week', '1m' => '1 month');
        $frm->addDropdown('poll_dur', 'Duration', $dur, '1w');
        $start = array('thismonday' => 'monday this week', 'nextmonday' => 'monday next week', 'nextfree' => 'next free time');
        $frm->addDropdown('poll_start', 'Starting', $start, 'nextmonday');
        //    echo '<a href="#" onclick="hide_el(\'poll_period_selector\');show_el(\'poll_period_manual\')">Enter dates manually</a>';
        //    echo '</div>';
        //    echo '<div id="poll_period_manual" style="display: none;">';
        //        echo 'Start time: '.xhtmlInput('poll_start_man').' (format YYYY-MM-DD HH:MM)<br/>';
        //        echo 'End time: '.xhtmlInput('poll_end_man').'<br/>';
        //        echo '<a href="#" onclick="hide_el(\'poll_period_manual\');show_el(\'poll_period_selector\')">Use dropdown menus instead</a>';
        //    echo '</div>';
        echo '<br/><br/>';
        for ($i = 1; $i <= 8; $i++) {
            $frm->addInput('poll_a' . $i, 'Answer ' . $i);
        }
        $frm->addSubmit('Create');
        $frm->setHandler('addPoll');
        echo $frm->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #6
0
        break;
    case 'remove':
        if (confirmed('Are you sure you want to remove this chatroom?')) {
            ChatRoom::remove($this->child);
            js_redirect('a/chatroom/list');
        }
        break;
    case 'empty':
        if (confirmed('Are you sure you want to remove all messages from this chatroom?')) {
            ChatMessage::deleteByRoom($this->child);
            js_redirect('a/chatroom/list');
        }
        break;
    case 'new':
        function createHandler($p)
        {
            $o = new ChatRoom();
            $o->name = trim($p['name']);
            $o->id = $o->store();
            js_redirect('a/chatroom/list');
        }
        echo '<h2>Create new chatroom</h2>';
        $x = new XhtmlForm();
        $x->addInput('name', 'Name');
        $x->addSubmit('Create');
        $x->setHandler('createHandler');
        echo $x->render();
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}
Example #7
0
<?php

namespace cd;

function fbHandler($p)
{
    $session = SessionHandler::getInstance();
    $o = new Feedback();
    $o->type = USER;
    $o->subject = $p['subj'];
    $o->body = $p['body'];
    $o->from = $session->id;
    $o->time_created = sql_datetime(time());
    $o->store();
    js_redirect('');
    // jump to start page
}
echo '<h2>Send us feedback</h2>';
$x = new XhtmlForm();
$x->addInput('subj', 'Subject');
$x->addTextarea('body', 'Body');
$x->addSubmit('Send');
$x->setHandler('fbHandler');
echo $x->render();
Example #8
0
            $session = SessionHandler::getInstance();
            $o = FaqItem::get($p['id']);
            $o->question = $p['q'];
            $o->answer = $p['a'];
            $o->creator = $session->id;
            $o->time_created = sql_datetime(time());
            $o->store();
            js_redirect('a/faq');
        }
        echo '<h2>Edit FAQ</h2>';
        $faq = FaqItem::get($this->child);
        $x = new XhtmlForm();
        $x->addHidden('id', $this->child);
        $x->addInput('q', 'Question', $faq->question);
        $x->addTextarea('a', 'Answer', $faq->answer);
        $x->addSubmit('Save');
        $x->setHandler(__NAMESPACE__ . '\\editHandler');
        echo $x->render();
        echo '<br/>';
        echo '&raquo; ' . ahref('a/faq/delete/' . $this->child, 'Delete FAQ entry');
        break;
    case 'delete':
        // child = tblFAQ.id
        if (confirmed('Are you sure you want to delete this FAQ entry?')) {
            FaqItem::remove($this->child);
            js_redirect('a/faq');
        }
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}
Example #9
0
/**
 * Utility to decode base64 strings
 */
namespace cd;

$session->requireSuperAdmin();
if (!$this->owner) {
    $this->owner = 'default';
}
switch ($this->owner) {
    case 'default':
        function onSubmit($p)
        {
            $error = ErrorHandler::getInstance();
            $res = base64_decode($p['data'], true);
            if ($res === false) {
                $error->add('Input is not base64 encoded');
                return false;
            }
            echo dh($res);
        }
        $form = new XhtmlForm();
        $form->addTextarea('data');
        $form->setFocus('data');
        $form->addSubmit('Analyze');
        $form->setHandler('onSubmit');
        echo $form->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #10
0
    }
    return true;
}
$form = new XhtmlForm('login');
$form->cssTable('');
$u_img = new XhtmlComponentImage();
$u_img->src = $page->getRelativeCoreDevUrl() . 'gfx/icon_user.png';
$i = new XhtmlComponentInput();
$i->name = 'usr';
$form->add($i, t('Username'), $u_img);
$p_img = new XhtmlComponentImage();
$p_img->src = $page->getRelativeCoreDevUrl() . 'gfx/icon_keys.png';
$i = new XhtmlComponentPassword();
$i->name = 'pwd';
$form->add($i, t('Password'), $p_img);
$form->addSubmit('Log in', 'font-weight:bold');
$form->setFocus('usr');
$form->onSubmit('return check_login(this);');
$form->setHandler(__NAMESPACE__ . '\\loginHandler');
echo $form->render();
$header->registerJsFunction('function show_login_form()' . '{' . ($show_reg_div ? 'hide_el("' . $reg_div . '");' : '') . ($show_recover_div ? 'hide_el("' . $recover_div . '");' : '') . 'show_el("' . $login_div . '");' . '}');
if ($show_reg_div) {
    $header->registerJsFunction('function show_reg_form()' . '{' . 'hide_el("' . $login_div . '");' . 'show_el("' . $reg_div . '");' . '}');
    $x = new XhtmlComponentButton();
    $x->onClick('return show_reg_form();');
    $x->text = t('Register');
    $x->style = 'font-weight:bold';
    echo $x->render();
}
if ($show_recover_div) {
    $header->registerJsFunction('function show_recover_form()' . '{' . 'hide_el("' . $login_div . '");' . 'show_el("' . $recover_div . '");' . '}');
Example #11
0
    echo '<a href="' . relurl_add(array('rm_grp' => $g->getId())) . '">' . coreButton('Delete') . '</a> ';
    echo ahref('a/usergroup/' . $g->getId(), $g->getName()) . '<br/>';
}
echo '<br/>';
echo xhtmlForm('grp');
$x = new XhtmlComponentDropdown();
$x->name = 'grp_id';
$x->setOptions(UserGroup::getIndexedList());
echo $x->render() . ' ';
echo xhtmlSubmit('Add');
echo xhtmlFormClose() . '<br/><br/>';
echo '<h2>Password</h2>';
$form = new XhtmlForm('pwd');
$form->disableAutocomplete();
$form->addPassword('change_pwd', 'Change password');
$form->addSubmit('Change');
echo $form->render() . '<br/><br/>';
echo '<h2>User settings</h2>';
$settings = UserSetting::getAll($user->id);
echo xhtmlForm('edit_setting');
echo '<table>';
echo '<tr><th>Name</th><th>Value</th><th>Delete</th></tr>';
//XXX use editable YuiDataTable
foreach ($settings as $set) {
    echo '<tr>';
    echo '<td>' . xhtmlInput('setting_name_' . $set['id'], $set['name']) . '</td>';
    echo '<td>' . xhtmlInput('setting_val_' . $set['id'], $set['value']) . '</td>';
    echo '<td><a href="' . relurl_add(array('remove_setting' => $set['name'])) . '">Remove</a></td>';
    echo '</tr>';
}
echo '</table>';
Example #12
0
        foreach ($list as $row) {
            echo ahref('queue/status/' . $row['fileId'], 'Details');
            $uploader = new User($row['uploaderId']);
            echo ', mime=' . $row['fileMime'] . ' created ' . $row['timeUploaded'] . ' by ' . $uploader->render() . '<br/>';
        }
        break;
    case 'new':
        function uploadSubmit($p)
        {
            // XhtmlForm:s upload handler har redan processat filen här
            $eventId = TaskQueue::addTask(TASK_UPLOAD, $p['f1']);
            if (!$eventId) {
                echo 'file upload handling failed';
                return false;
            }
            echo '<div class="okay">Your file has been uploaded successfully!</div><br/>';
            echo ahref('queue/show/' . $eventId, 'Click here') . ' to perform further actions on this file.';
            return true;
        }
        echo 'Max allowed upload size is ' . ini_get('upload_max_filesize') . '<br/>';
        echo 'Max allowed POST size is ' . ini_get('post_max_size') . '<br/>';
        echo '<br/>';
        $form = new XhtmlForm('ul_pdf');
        $form->addFile('f1', 'Fil', USER);
        $form->addSubmit('Upload');
        $form->setHandler('uploadSubmit');
        echo $form->render();
        break;
    default:
        echo 'No handler for view ' . $this->view;
}
Example #13
0
namespace cd;

$session->requireSuperAdmin();
switch ($this->owner) {
    case 'version':
        echo "<h1>GeoIP database versions</h1>";
        foreach (GeoIp::getDatabaseVersions() as $d) {
            echo '<h2>' . $d['name'] . ' ' . $d['version'] . '</h2>';
            echo 'Date: ' . $d['date'] . ' (' . ago($d['date']) . ')<br/>';
            echo $d['file'] . '<br/>';
            echo '<br/>';
        }
        echo '&raquo; ' . ahref('a/geoip/query', 'Query GeoIP database');
        break;
    case 'query':
        function queryHandler($p)
        {
            echo '<h2>Result for ' . $p['ip'] . '</h2>';
            d(GeoIP::getRecord($p['ip']));
            echo 'Time zone: ' . GeoIP::getTimezone($p['ip']) . '<br/>';
        }
        echo '<h1>Query GeoIP database</h1>';
        $x = new XhtmlForm();
        $x->addInput('ip', 'IP');
        $x->addSubmit('Lookup');
        $x->setHandler('queryHandler');
        echo $x->render();
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}