/**
  * Add an quick add button & modal
  *
  * @return mixed
  */
 public function quickadd()
 {
     // Prepare Element
     $readonly = $this->getElement('readonly', false);
     $disabled = $this->getElement('disabled', false);
     if ($readonly || $disabled) {
         return;
     }
     $task = $this->getElement('task', $this->view_item . '.ajax.quickadd');
     $quickadd = $this->getElement('quickadd', false);
     $table_name = $this->getElement('table', '#__' . $this->component . '_' . $this->view_list);
     $key_field = $this->getElement('key_field', 'id');
     $value_field = $this->getElement('value_field', 'title');
     $formpath = $this->getElement('quickadd_formpath', "administrator/components/{$this->extension}/model/form/{$this->view_item}.xml");
     $quickadd_handler = $this->getElement('quickadd_handler', $this->extension);
     $title = $this->getElement('quickadd_label', 'LIB_WINDWALKER_QUICKADD_TITLE');
     $qid = $this->id . '_quickadd';
     if (!$quickadd) {
         return '';
     }
     // Set AKQuickAddOption
     $config['task'] = $task;
     $config['quickadd_handler'] = $quickadd_handler;
     $config['extension'] = $this->extension;
     $config['component'] = $this->component;
     $config['table'] = $table_name;
     $config['model_name'] = $this->view_item;
     $config['key_field'] = $key_field;
     $config['value_field'] = $value_field;
     $config['joomla3'] = JVERSION >= 3;
     WindwalkerScript::quickadd('#' . $qid, $config);
     // Load Language & Form
     LanguageHelper::loadLanguage('com_' . $this->component, null);
     $formpath = str_replace(JPATH_ROOT, '', $formpath);
     $content = ModalHelper::getQuickaddForm($qid, $formpath, (string) $this->element['extension']);
     // Prepare HTML
     $html = '';
     $button_title = $title;
     $modal_title = $button_title;
     $button_class = 'btn btn-small btn-success quickadd_buttons';
     $footer = "<button class=\"btn\" type=\"button\" data-dismiss=\"modal\">" . JText::_('JCANCEL') . "</button>";
     $footer .= "<button class=\"btn btn-primary\" type=\"submit\">" . JText::_('JSUBMIT') . "</button>";
     $html .= ModalHelper::modalLink(JText::_($button_title), $qid, array('class' => $button_class, 'icon' => 'icon-new icon-white'));
     $html .= ModalHelper::renderModal($qid, $content, array('title' => JText::_($modal_title), 'footer' => $footer));
     return $html;
 }
Exemple #2
0
    /**
     * Add an quick add button & modal
     *
     * @return string
     */
    public function quickadd()
    {
        // Prepare Element
        $readonly = $this->getElement('readonly', false);
        $disabled = $this->getElement('disabled', false);
        if ($readonly || $disabled) {
            return false;
        }
        $task = $this->getElement('task', $this->view_item . '.ajax.quickadd');
        $quickadd = $this->getElement('quickadd', false);
        $table_name = $this->getElement('table', '#__' . $this->component . '_' . $this->view_list);
        $key_field = $this->getElement('key_field', 'id');
        $value_field = $this->getElement('value_field', 'title');
        $formpath = $this->getElement('quickadd_formpath', "administrator/components/{$this->extension}/model/form/{$this->view_item}.xml");
        $quickadd_handler = $this->getElement('quickadd_handler', $this->extension);
        $title = $this->getElement('quickadd_label', 'LIB_WINDWALKER_QUICKADD_TITLE');
        $qid = $this->id . '_quickadd';
        if (!$quickadd) {
            return '';
        }
        // Prepare Script & Styles
        /** @var Windwalker\Helper\AssetHelper $asset */
        $asset = Container::getInstance($quickadd_handler)->get('helper.asset');
        $asset->addJs('js/quickadd.js');
        // Set AKQuickAddOption
        $config['task'] = $task;
        $config['quickadd_handler'] = $quickadd_handler;
        $config['extension'] = $this->extension;
        $config['component'] = $this->component;
        $config['table'] = $table_name;
        $config['model_name'] = $this->view_item;
        $config['key_field'] = $key_field;
        $config['value_field'] = $value_field;
        $config['joomla3'] = JVERSION >= 3;
        $config = HtmlHelper::getJSObject($config);
        $script = <<<QA
        window.addEvent('domready', function(){
            var AKQuickAddOption = {$config} ;
            AKQuickAdd.init('{$qid}', AKQuickAddOption);
        });
QA;
        $asset->internalJS($script);
        // Load Language & Form
        LanguageHelper::loadLanguage('com_' . $this->component, null);
        $formpath = str_replace(JPATH_ROOT, '', $formpath);
        $content = ModalHelper::getQuickaddForm($qid, $formpath, (string) $this->element['extension']);
        // Prepare HTML
        $html = '';
        $button_title = $title;
        $modal_title = $button_title;
        $button_class = 'btn btn-small btn-success delicious green light fltlft quickadd_button';
        $footer = "<button class=\"btn delicious\" type=\"button\" onclick=\"\$\$('#{$qid} input', '#{$qid} select').set('value', '');AKQuickAdd.closeModal('{$qid}');\" data-dismiss=\"modal\">" . JText::_('JCANCEL') . "</button>";
        $footer .= "<button class=\"btn btn-primary delicious blue\" type=\"submit\" onclick=\"AKQuickAdd.submit('{$qid}', event);\">" . JText::_('JSUBMIT') . "</button>";
        $html .= ModalHelper::modalLink(JText::_($button_title), $qid, array('class' => $button_class, 'icon' => 'icon-new icon-white'));
        $html .= ModalHelper::renderModal($qid, $content, array('title' => JText::_($modal_title), 'footer' => $footer));
        return $html;
    }
Exemple #3
0
 /**
  * Configure the toolbar button set.
  *
  * @param   array   $buttonSet Customize button set.
  * @param   object  $canDo     Access object.
  *
  * @return  array
  */
 protected function configureToolbar($buttonSet = array(), $canDo = null)
 {
     $buttonSet = array();
     $buttonSet['import_per_item'] = array('handler' => function () {
         JToolBarHelper::custom('item.saveall', 'new', 'new', 'COM_FBIMPORTER_IMPORT', true);
     }, 'access' => 'core.create', 'priority' => 1000);
     $buttonSet['import_as_one_article'] = array('handler' => function () {
         \Windwalker\Helper\ModalHelper::modal('saveAsCombinedModal');
         $bar = JToolbar::getInstance('toolbar');
         $option = array('class' => 'btn btn-small btn-success toolbar', 'icon' => 'icon-new icon-white');
         $title = JText::_('COM_FBIMPORTER_IMPORT_AS_COMBINED');
         $dhtml = \Windwalker\Helper\ModalHelper::modalLink($title, 'saveAsCombinedModal', $option);
         $bar->appendButton('Custom', $dhtml, 'new');
     }, 'access' => 'core.create', 'priority' => 800);
     $buttonSet['refresh'] = array('handler' => function () {
         JToolBarHelper::custom('items.refresh', 'refresh', 'refresh', 'COM_FBIMPORTER_REFRESH', false);
     }, 'priority' => 600);
     $buttonSet['option'] = array('handler' => 'preferences', 'access' => 'core.edit', 'priority' => 100);
     return $buttonSet;
 }
    /**
     * Method to test modalLink().
     *
     * @return void
     *
     * @covers Windwalker\Helper\ModalHelper::modalLink
     */
    public function testModalLink()
    {
        $title = 'test-modal-title';
        $selector = 'test-selector';
        $tag = 'test';
        $id = 'test-link';
        $class = 'test-class';
        $onclick = 'testClick()';
        $icon = 'test-icon';
        // Test without $option
        $expected = <<<HTML
<a data-toggle="modal" data-target="#{$selector}" id="{$selector}_link" class="cursor-pointer">
\t<i class="" title="{$title}"></i>
\t{$title}
</a>
HTML;
        $this->assertEquals($expected, ModalHelper::modalLink($title, $selector));
        // Test with $option
        $option = array('tag' => $tag, 'id' => $id, 'class' => $class, 'onclick' => $onclick, 'icon' => $icon);
        $expected = <<<HTML
<{$tag} data-toggle="modal" data-target="#{$selector}" id="{$id}" class="{$class} cursor-pointer" onclick="{$onclick}">
\t<i class="{$icon}" title="{$title}"></i>
\t{$title}
</{$tag}>
HTML;
        $this->assertEquals($expected, ModalHelper::modalLink($title, $selector, $option));
    }