示例#1
0
 public function displaysnippetsAction()
 {
     if (!$this->strategy->canUseSnippets()) {
         throw new Am_Exception_AccessDenied();
     }
     $ticket = $this->getDi()->helpdeskTicketTable->load($this->getParam('ticket'), false);
     $tpl = null;
     if ($ticket) {
         $tpl = new Am_SimpleTemplate();
         $tpl->assign('user', $ticket->getUser());
     }
     $ds = new Am_Query($this->getDi()->helpdeskSnippetTable);
     $grid = new Am_Grid_Editable('_snippet', ___('Snippets'), $ds, $this->getRequest(), $this->view, $this->getDi());
     $grid->addField('title', ___('Title'))->setRenderFunction(function ($record, $fieldName, $grid) use($tpl) {
         $c = $record->content;
         if ($tpl) {
             $c = $tpl->render($c);
         }
         return sprintf('<td><a href="javascript:;" class="local am-helpdesk-insert-snippet" data-snippet-content="%s">%s</a></td>', Am_Controller::escape($c), Am_Controller::escape($record->title));
     });
     $grid->setForm(array($this, 'createForm'));
     $grid->actionGet('insert')->setTarget(null);
     $grid->setPermissionId(Bootstrap_Helpdesk::ADMIN_PERM_ID);
     $grid->isAjax($this->isAjax() && $this->isGridRequest('_snippet'));
     echo $grid->run();
 }
    public function detailAction()
    {
        $id = (int) $this->getParam('id');
        if (!$id) {
            throw new Am_Exception_InputError('Empty id passed to ' . __METHOD__);
        }
        $ds = new Am_Query($this->getDi()->couponTable);
        $ds->leftJoin('?_user', 'u', 't.user_id=u.user_id');
        $ds->addField('u.login', 'u_login');
        $ds->addWhere('batch_id=?d', $id);
        $grid = new Am_Grid_Editable('_detail', ___('Coupons'), $ds, $this->_request, $this->view);
        $grid->setPermissionId('grid_coupon');
        $grid->setEventId('gridCoupon');
        $grid->actionsClear();
        $grid->addField('code', ___('Code'), true, null);
        $grid->addField(new Am_Grid_Field_Expandable('used_count', ___('Used For'), false))->setGetFunction(array($this, 'getUsedCount'))->setPlaceholder(array($this, 'getPlaceholder'))->setEscape(false);
        $grid->addField('user_id', ___('User'))->setGetFunction(array($this, 'getUser'));
        $grid->setFilter(new Am_Grid_Filter_Text(___('Filter by Code'), array('code' => 'LIKE')));
        $grid->actionAdd(new Am_Grid_Action_LiveEdit('code'));
        $grid->actionAdd(new Am_Grid_Action_LiveEdit('user_id', ___('Click to Assign')))->setInitCallback('l = function(){this.autocomplete({
    minLength: 2,
    source: window.rootUrl + "/admin-users/autocomplete"
});}')->getDecorator()->setInputTemplate(sprintf('<input type="text" placeholder="%s" />', ___('Type Username or E-Mail')));
        $grid->isAjax(false);
        $grid->addCallback(Am_Grid_ReadOnly::CB_RENDER_CONTENT, array($this, 'couponRenderContent'));
        $response = $grid->run();
        $response->sendHeaders();
        $response->sendResponse();
    }
示例#3
0
 function historyRowsAction()
 {
     $q = new Am_Query($this->getDi()->emailSentTable);
     $q->leftJoin('?_admin', 'a', 't.admin_id=a.admin_id');
     $q->addField('a.login', 'admin_login');
     $q->setOrder('email_sent_id', 'DESC');
     // dirty hack
     $withWrap = (bool) $this->_request->get('_h_wrap');
     unset($_GET['_h_wrap']);
     $grid = new Am_Grid_Editable('_h', ___('E-Mails History'), $q, $this->_request, $this->view);
     $grid->setPermissionId(Am_Auth_Admin::PERM_EMAIL);
     if ($withWrap) {
         $grid->isAjax(false);
     }
     $grid->setCountPerPage(5);
     $grid->addField(new Am_Grid_Field_Date('tm_added', ___('Started')));
     $grid->addField('subject', ___('Subject'));
     $grid->addField('admin_login', ___('Sender'));
     $grid->addField('count_users', ___('Total'));
     $grid->addField('sent_users', ___('Sent'));
     $grid->addField('desc_users', ___('To'))->setAttrs(array('class' => 'break'));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_Url('resend', ___('Resend'), REL_ROOT_URL . "/admin-email?resend_id=__ID__"))->setTarget('_top');
     $grid->actionAdd(new Am_Grid_Action_Url('continue', ___('Continue'), REL_ROOT_URL . "/admin-email/send?queue_id=__ID__"))->setTarget('_top')->setIsAvailableCallback(array($this, 'needContinueLink'));
     if ($this->getDi()->authAdmin->getUser()->isSuper()) {
         $grid->actionAdd(new Am_Grid_Action_Delete());
     }
     $grid->run($this->getResponse());
 }
 public function detailAction()
 {
     $id = (int) $this->getParam('id');
     if (!$id) {
         throw new Am_Exception_InputError("Empty id passed to " . __METHOD__);
     }
     $ds = new Am_Query($this->getDi()->couponTable);
     $ds->addWhere('batch_id=?d', $id);
     $grid = new Am_Grid_Editable('_detail', ___("Coupons"), $ds, $this->_request, $this->view);
     $grid->setPermissionId('grid_coupon');
     $grid->actionsClear();
     $grid->addField('code', ___('Code'), true, null);
     $grid->addField('used_count', ___('Used Count'), true, null);
     //$this->addGridField(new Am_Grid_Field_Invoices('used_count', 'Used For', false, null));
     $grid->setFilter(new Am_Grid_Filter_Text(___("Filter by Code"), array('code' => 'LIKE')));
     $grid->setForm('Am_Form_Admin_Coupon');
     $grid->actionAdd(new Am_Grid_Action_LiveEdit('code'));
     $grid->isAjax(false);
     $response = $grid->run();
     $response->sendHeaders();
     $response->sendResponse();
 }