2017 © Pedro Peláez
 

yii2-extension umenu

Universal menu for Yii2

image

uhi67/umenu

Universal menu for Yii2

  • Monday, March 5, 2018
  • by uhi67
  • Repository
  • 0 Watchers
  • 0 Stars
  • 18 Installations
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 14 Versions
  • 0 % Grown

The README.md

UMenu

Universal menu for Yii2 With footer form support in gridview, (*1)

Installation

The preferred way to install this extension is through composer., (*2)

To install, either run, (*3)

composer require uhi67/umenu "1.0.*" 

or add, (*4)

"uhi67/umenu" : "1.0.*"

or clone form github, (*5)

git clone https://github.com/uhi67/umenu

Usage

Title menu

In controller action, use, (*6)

return [
    'model' => $this->findModel($id),
    'mode' => $editmode ? 'edit' : 'view',
    'titleMenuItems' => [
        [
            'visible' => $editmode, 
            'enabled' => Yii::$app->user->can('/contract/update'), 
            'title' => Yii::t('app', 'Save details data'), 
            'icon' => 'glyphicon-ok', 
            'action' => "javascript:$(this).closest('div.block').find('form').get(0).submit();",
        ],
        [
            'enabled' => Yii::$app->user->can('/contract/update'), 
            //'caption'=>'Edit', 
            'title' => Yii::t('app', 'Edit contract details'), 
            'icon' => $editmode ? 'glyphicon-remove' : 'glyphicon-pencil', 
            'action' => $editmode ? '/contract/view/'.$id : '/contract/edit/'.$id,
        ],
        [
            'enabled' => Yii::$app->user->can('/contract/delete'), 
            //'caption'=>'Delete', 
            'title' => Yii::t('app', 'Delete contract'), 
            'icon'=>'glyphicon-trash', 
            'action'=>'/contract/delete/'.$id, 
            'confirm' => Yii::t('app', 'This will delete the contract. Ary you sure?')
        ],
        [
            'title' => 'Lista',
            'icon' => 'glyphicon-list',
            'action' => '/contract',
        ],
    ],
];

In your view use, (*7)

uhi67\umenu\UMenuAsset::register($this); // or put this into the global layout 
UMenu::showMenu($titleMenuItems, 'title-menu');

See UMenu::showMenu for detailed menu properties., (*8)

Context menu is a menu associated to a gridview or any similar list object. Context menu may cointain group items, which are visible only if one or more ites are selected in the associated gridview. GridView association is automatic if you put the menu in the same form with gridView., (*9)

Footer form is a hidden form in the footer row of a gridView object. A context menu button shows the form. The form contains a close button which hides it again. Actions with hidden footer-form do not send footer-form fields (and nor validation is performed as well)., (*10)

In your controller class use, (*11)

    // action on selection
    $selection = Yii::$app->request->post('selection');     

    // list action
    return [
        ...
        '$contextMenuItems' => [
            [
                'enabled' => $can_grant, 
                'caption' => Yii::t('app', 'Add'),
                'icon' => 'glyphicon-plus', 
                'class' => 'footer-form-show',      // no action needed: button will show the footer form
                'title' => '...',
            ],
            [
                'enabled'=>$can_grant, 
                'caption' => Yii::t('app', 'Delete'), 
                'icon'=>'glyphicon-trash',
                'data' => ['action'=>'...'], // Action will get keys of the selected rows (see above)
                'group'=>1,     // Indicates this button is visible only and operates on selected rows. Uses data-action to send the form to
                'title' => '...',
            ],
        ],
        'footerForm' => new RoleForm(['userid'=>$this->itemid]),    // Model of footer form data
    ];

In your view use, (*12)

// Wrap into form (even if footer form is not used: use for row selection)
$form = ActiveForm::begin([
    ...
    'layout' => 'inline',
    ...
]);

// Indicate using of context-menu and/or footer-form in class 
 <?= GridView::widget([ 
    'options' => ['class'=>'grid context-menu footer-form'],
    'showFooter' => true,
    'footerRowOptions' => ['class'=>'footer-form'], // must be hidden first
    ...
    'columns' => [
        // First column
        [
            'class' => 'yii\grid\CheckboxColumn',
            'footer' => Html::button(Html::tag('span', '', ['class' => 'glyphicon glyphicon-remove footer-form-close'])),
            'visible'=>..., // If user has permission on any group action
        ],
        // Other columns
        [
            ...
            'footer'=>$form->field($roleForm, ...) ... 

        ]
        // Last column
        [
            ...
            'footer' => Html::submitButton(Yii::t('app', 'Create'), ['class' => 'btn btn-primary']),
        ],
    ],
    'showOnEmpty' => true,
    'emptyText' => '...',
]);
?>
<?= Html::activeHiddenInput($roleForm, 'userid') ?>
<?= \uhi67\umenu\UMenu::showMenu($contextMenuItems, 'context-menu'); ?>
<?php ActiveForm::end() ?>

License

Copyright (c) 2017, Uherkovich Péter
uhisoft.hu
All rights reserved., (*13)

"uhi67/umenu" is licensed under GNU General Public License v3 https://www.gnu.org/licenses/gpl-3.0.txt, (*14)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version., (*15)

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details., (*16)

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. See the bundled LICENSE.md for details., (*17)

The Versions

05/03 2018

dev-master

9999999-dev https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU GPL-3.0-or-later

The Requires

 

by Avatar uhi67

16/05 2017

1.0.2.4

1.0.2.4 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

16/05 2017

1.0.2.3

1.0.2.3 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

11/05 2017

1.0.2.2

1.0.2.2 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

10/05 2017

1.0.2.1

1.0.2.1 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

10/05 2017

1.0.2

1.0.2.0 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

09/05 2017

1.0.1.3

1.0.1.3 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

09/05 2017

1.0.1.2

1.0.1.2 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

09/05 2017

1.0.1.1

1.0.1.1 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

09/05 2017

1.0.1

1.0.1.0 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

08/05 2017

1.0.0.3

1.0.0.3 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

03/05 2017

1.0.0.2

1.0.0.2 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

03/05 2017

1.0.0.1

1.0.0.1 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67

03/05 2017

1.0

1.0.0.0 https://bitbucket.org/uhi67/umenu

Universal menu for Yii2

  Sources   Download

GNU

The Requires

 

by Avatar uhi67