Giter VIP home page Giter VIP logo

buttflattery / yii2-formwizard Goto Github PK

View Code? Open in Web Editor NEW
96.0 9.0 13.0 454 KB

A Yii2 plugin used for creating stepped form or form wizard using yii\widgets\ActiveForm and \yii\db\ActiveRecord

Home Page: https://yii2plugins.omaraslam.com/formwizard

License: Other

PHP 61.33% CSS 22.31% JavaScript 16.36%
form-wizard yii2-widget yii2-plugins javascript php yii2-extension tabular-steps yii2-formwizard smartwizard plugin-smartwizard

yii2-formwizard's Introduction

Yii2-FormWizard (v1.7.9)

What is this repository for?

A Yii2 plugin used for creating stepped form or form wizard using yii\widgets\ActiveForm and \yii\db\ActiveRecord, it uses smart wizard library for creating the form interface that uses 3 builtin and 3 extra themes, moreover you can also create your own customized theme too.

Note : It uses limited features of the jquery plugin SmartWizard that suite the needs of the ActiveForm validation so not all options in the javascript plugin library are allowed to be changed or customized from within this plugin.

preview

External Libraries Used


New Features Added

19th Jan, 2020 : Enable Edit Mode

11th Jan, 2020 : Skip Step Validation

24th April, 2019 : Group Step Fields

2nd April, 2019 : Enable Persistence

25th March, 2019 : Preview Step, Tabular Step


About Bootstrap Version Usage

The extension detects if you are using the yiisoft/yii2-bootstrap or yiisoft/yii2-bootstrap4 and loads the appropriate assets for the extension. It will check first the "yiisoft/yii2-bootstrap4" if it exists then it will load bootstrap4 resources otherwise it will fall back to use bootstrap3. So make sure you are following the correct guide to use the yiisoft/yii2-bootstrap4" and remove the "yiisoft/yii2-bootstrap": "~2.0.0", from you composer.json and change the minimum-stability:"dev" here is the complete guide.

How do I get set up

use composer to install the extension

php composer.phar require  buttflattery/yii2-formwizard "@dev"

or add into the composer.json file under require section

"buttflattery/yii2-formwizard":"@dev"

Demos for all the Features & Themes

Docs

Available Options

Widget options

wizardContainerId (string)

Id of the main container for the wizard.

forceBsVersion (int) (since V1.5.0)

Force use of the bootstrap version in case you have some extension having dependencies on yiisoft\yii2-bootstrap4 even though you are using yiisoft\yii2-bootstrap on the site overall, since the extension checks for yii2-bootstrap4 first and if it finds it will load the yii2-bootstrap4 assets and having both of the extensions installed the widget will always go for the bootstrap4. although we dont recommend doing that but still there are scenarios wher people are using in this manner and fce layout problems. default value for this option is false which means widget will detect automatically, you can use the provided constants FormWizard::BS_3 or FormWizard::BS_4.

editMode (boolean) (since V1.6.4)

if form wizard should be loaded in edit mode. Default value is false. see wiki for details.

formOptions (array)

Specify the ActiveForm properties.

labelNext (string)

Next button label, default value Next.

labelPrev (string)

Previous button label, default value Previous.

labelFinish (string)

Finish button label, default value Finish.

labelAddRow (string)

Add button label for tabular step, default value Add.

classNext (string)

Css classes for the button Next, default btn btn-info.

iconNext (string)

The html string for the Next button, defaults to <i class="formwizard-arrow-right-alt1-ico"></i>.

classPrev (string)

Css classes for the button Previous, default btn btn-info.

iconPrev (string)

The html string for the prev icon, defaults to <i class="formwizard-arrow-left-alt1-ico"></i>.

classFinish (string)

Css classes for the button Finish, default btn btn-success.

iconFinish (string)

The Html string for the icon, defaults to <i class="formwizard-check-alt-ico"></i>.

classAdd (string)

Css class for Add Row Button default to btn btn-info

iconAdd (string)

The html string for the button default to <i class="formwizard-plus-ico"></i>

enablePreview (boolean) (since V1.2.0)

Adds a Preview Step as the last step in the form wizard where you can preview all the entered inputs grouped by steps, clicking on any step will navigate to that step for quick edit, it defaults to false. See Wiki For Code Samples

When using 'enablePreview'=>true you can customize the classes using the below options.

  • previewTitle (string) : Preview step Title, default is Final Preview.
  • previewDescription (string) : Description for the preview step, default is Final Preview of all Steps.
  • previewFormInfoText (string) : Preview step form description, default is Review information below and click to change.
  • previewEmptyText (string) : Text used for showing the value for the empty inputs, default is NA.
  • classListGroup (string) : Css class for the list group defaults to 'list-group'.
  • classListGroupHeading (string) : Css class for the list group heading element, defaults to 'list-group-heading'.
  • classListGroupItem (string) : Css class for the list group item, defaults to 'list-group-item-success'.
  • classListGroupBadge (string) : Css class for the list group badge that displays the input label, defaults to 'success'.

enablePersistence (boolean) (since V1.3.0)

Enables to save and restore an un-saved form to the local storage for later use, defaults to false.

steps (array)

An array of the steps(array), the steps can have models dedicated to each step, or a single model for all steps. Following options are recognized when specifying a step.

  • type (string) : The type of the step, defaults to default. This option is used if you need to have tabular inputs for the step by specifying the type as tabular, you can use the provided constants like FormWizard::STEP_TYPE_TABULAR or FormWizard::STEP_TYPE_DEFAULT.

  • isSkipable (boolean) : If current step can be skipped or not, see wiki for details.

  • limitRows (int) : The number of rows to limit the tabular step Add Rows functionality in combination with the FormWizard::STEP_TYPE_TABULAR, default is unlimited -1. See Wiki.

  • model (object | array of models) : The \yii\model\ActiveRecord model object or array of models to create step fields.

    Note: After the addition of the feature Tabular Steps when using 'type'=>'tabular' you must remember that you cannot provide different models, although you can provide multiple instances when in edit mode but for the same model only.

    While adding a new record you can have like below

    $addressModel = new Address();
    
    "steps"=>[
      [
        'title'=>'Step Title',
        'type' => FormWizard::STEP_TYPE_TABULAR,
        'model'=> $addressModel
      ]
    ]

    When in Edit Mode you can provide the multiple instances of Address

    //either using model directly
      $addressModel = Address::find()
          ->where(
            ['=','user_id',Yii::$app->user->id]
          )->all();
    
      //or using the model relation if you have `getAddress()` defined inside
      //the `User` model. `$user` has the selected user in code below
      $addressModel = $user->address;
    
    "steps"=>[
      [
          'title'=>'Step Title',
          'type' => FormWizard::STEP_TYPE_TABULAR,
          'model'=> $addressModel
      ]
    ]

    See wiki For Tabular Step Code Sample

  • title (string) : The title of the step to be displayed inside the step Tab.

  • previewHeading : The heading for the preview step, if enabled the text will show up as the heading for the step fields in the preview step.

  • description (string) : The short description for the step.

  • formInfoText (text) : The text to be displayed on the top of the form fields inside the step.

  • fieldOrder (array) : The default order of the fields in the steps, if specified then the fields will be populated according to the order of the fields in the array, if not then the fields will be ordered according to the order in the fieldConfig option, and if fieldConfig option is not specified then the default order in which the attributes are returned from the model will be used.

  • stepHeadings (array) : takes a collection of arrays to group step fields under the headings, it accepts arrays with the following keys. Wiki Code Sample

    • text (string) the text to be displayed as the heading.
    • before (string) the field before which you want the heading to appear.
    • icon (string) the markup for the icon like <i class="fa-user"></i>or the image tag with url you want to display, it defaults to <i class="formwizard-quill-ico"></i>. If you dont wish to use an icon you can pass false.
  • fieldConfig (array) : This option is used mainly to customize the form fields for the step. 3 options are recognized inside the fieldConfig, 2 of them are except and only. See below for the details

  • except (array) : List of fields that should not be populated in the step or should be ignored, for example

      'fieldConfig'=>[
          'except'=>[
              'created_on','updated_on'
          ]
      ]

    By default all the attributes that are safe to load value are populated, and the id or primary_key is ignored by default.

  • only (array) : list of the fields that should be populated for the step, only the fields specified in the list will be available and all other fields will be ignored.

  • Apart from the above options the fieldConfig recognizes some special options specific to every field separately when customizing a field, for example

    'fieldConfig'=>[
        'username'=>[
            'options'=>[
                'class'=>'my-class'
            ]
        ]
    ]

    Since V1.6.8

    when using multi model step you may encounter the situation where you have similar column/field names in both the models and specifying the field name only wont help, you can prefix the field names with the model name, the widget uses $model->formName() method so be careful if you have overridden the formName() function in your model then use the relevant name.

    See an example below where you need to use the book and user model both in one step and you have the name field in both the tables

    'fieldConfig'=>[
        'user.name'=>[
            'options'=>[
                'class'=>'my-class'
            ]
        ],
        'book.name'=>[
            'options'=>[
                'class'=>'my-class'
            ]
        ],
     ]

    you should specify the field name of the model and its customization settings in form of name=>value pairs. The following special options can be used when specifying the form/model field_name.

    • options

    • containerOptions

    • inputOptions

    • template

    • labelOptions

    • widget

    • multifield (boolean)

    • hint

    • tabularEvents (used with the tabular steps)

    • persistenceEvents (effective with enablePersistence) See Wiki See Wiki For Customizing Fields using options above Details

    • depends (array) Since V 1.7.2 (used with tabular step) .

    • options (array) : You can specify the HTML attributes (name-value pairs) for the field

      'field_name'=>['options'=>['class'=>'my-class']]`

      All those special options that are recognized by the

      • checkbox(), radio() : uncheck, label, labelOptions
      • checkboxList(), radioList() : tag, unselect, encode, separator, itemOptions, item.

      can be used with-in the options option. The following 2 options are specially recognized by this widget when used with-in the options.

      • type (string): The type of the form field to be created, this can be text, dropdown,checkbox, radio, textarea, file, password, hidden. Default value for this option is text.

      • itemsList (string/array) : This option can be used with a dropdown, checkboxList or radioList. It is used in combination of the the option type. If you provide the itemsList an array and use the 'type'=>'checkbox' , it will call checkboxList(), and a checkbox() if you provide string, same goes for the radioList and radio.

    • lableOptions (array): The HTML and special options for customizing the field label, you can use the following settings

      • label (string): The label text.
      • options (array) : The HTML attributes (name-value pairs) for the label.
    • template (string) : The template used for the field the default value used is {label}\n{input}\n{hint}\n{error}.

    • containerOptions (array) : HTML atrtibutes for the cotnainer tag used as name=>value pairs.

    • widget : This option can be used if you want to use a widget instead of the the default fields, you can specify the widget class name 'widget'=>widget::class, and the options for the widget will be provided in the options option. -inputOptions (array) : this is same as the inputOptions used by the ActiveForm field() method.

    • multifield (boolean) : a boolean which decides if the field name should consist of an array or not, for example using multi file upload widgets require the name attribute for the field to be declared as an array like filed_name[] instead of field_name. you can pass this option as true by default it is false.

    • hint (string) : it is used to provide a hint text for the field if you dont provide a custom hint text for any field it will attempt to show the custom hints that are provided inside the model by overriding the attributeHints(), otherwise it wont show any hint.

    • tabularEvents (array): it takes an array as an argument with the following values beforeClone, afterClone and afterInsert in the form "eventName"=>"function(event){}", see for details

      • beforeClone : Takes a callback function(event){} used for the PRE processing of the source element before it is cloned, using $(this) inside the function callback referes to the element in the first rows always.
      • afterClone : Takes a callback function(event){} used for the POST processing of the source element before it is cloned, using\$(this) inside the function callback referes to the element in the first rows always.
      • afterInsert: Takes a callback function(event, params){console.log(params)} used for the POST processing of the newly added element after it is cloned, using $(this) inside the function callback referes to the newly added row.the params is json object which holds the rowIndex.
    • persistenceEvents (array) : it accepts an array of events with the following name. (currently only afterRestore is supported).

      • afteRestore : take a callback as string "function(event,params){}" to be called for post-restore operations, it provides 2 parameters event and params where params is a JSON {fieldId: "field_name",fieldValue: "field_value"}.
    • depends (array) : used with tabular step when you have dependent inputs and you want to show or hide them based on the value in the input it depends on when form is loaded to edit the values, see WIKI for code samples. It takes the following special parameters

      • attribute (string) : the name of the attribute/fields the current field depends on, this parameter is required.
      • when (string) : the value to check, or the value which is compared with the on which you need to show the current input, this parameter is required.
      • condition (string) : the condition to evaluate the value of the dependent input with the given value in when. default condition used is ==.
      • then (callback) : takes a new JsExpression() encoded callback function function(id){}, it takes one parameter id that holds the id of the current input. If not provided it will call jQuery.show() on the id of input it is applied on if the value matches in the when option.
      • else (callback) : takes a new JsExpression() encoded callback function function(id){}, it takes one parameter id that holds the id of the current input. If not provided it will call jQuery.show() on the id of input it is applied on if the value matches in the when option.

Widget Plugin (SmartWizard) Options

Only the following options of the plugin SmartWizard are allowed to be customized

theme

Name of the theme to be used, there are mainly 6 themes supported by the plugin

  • default : const THEME_DEFAULT
  • dots : const THEME_DOTS
  • arrows : const THEME_ARROWS
  • circles : const THEME_CIRCLES
  • material : const THEME_MATERIAL
  • material-v : const THEME_MATERIAL_V

transitionEffect (string)

The effect used when sliding the step it can be one of the

  • none
  • slide
  • fade

showStepURLhash (boolean)

Show url hash based on step, default false.

useURLHash (boolean)

Enable selection of the step based on url hash, default value is false.

toolbarPosition

Position of the toolbar (none, top, bottom, both), default value top.

toolbarButtonPosition

Position of the toolbar buttons (left, right), default value is left.

toolbarExtraButtons

Specify the extra buttons and its events to show on toolbar.

markDoneSteps (boolean)

Make already visited steps as done, default value is true.

markAllPreviousStepsAsDone (boolean)

When a step selected by url hash, all previous steps are marked done, default value is true.

removeDoneStepOnNavigateBack (boolean)

While navigate back done step after active step will be cleared, default value is false.

enableAnchorOnDoneStep (boolean)

Enable/Disable the done steps navigation, default value is true.

Widget Constants

Icons

  • FormWizard::ICON_NEXT defaults to '<i class="formwizard-arrow-right-alt1-ico"></i>'.
  • FormWizard::ICON_PREV defaults to '<i class="formwizard-arrow-left-alt1-ico"></i>'.
  • FormWizard::ICON_FINISH defaults to '<i class="formwizard-check-alt-ico"></i>'.
  • FormWizard::ICON_ADD defaults to '<i class="formwizard-plus-ico"></i>'.
  • FormWizard::ICON_RESTORE defaults to '<i class="formwizard-restore-ico"></i>'.

Boostrap Versions

  • FormWizard::BS_3 defaults to 3.
  • FormWizard::BS_4 defaults to 4.

Step Types

  • FormWizard::STEP_TYPE_DEFAULT defaults to 'default'.
  • FormWizard::STEP_TYPE_TABULAR default to 'tabular'.
  • FormWizard::STEP_TYPE_PREVIEW default to 'preview'.

Themes

  • FormWizard::THEME_DEFAULT defaults to 'default'.
  • FormWizard::THEME_DOTS defaults to 'dots'.
  • FormWizard::THEME_ARROWS defaults to 'arrows'.
  • FormWizard::THEME_CIRCLES defaults to 'circles'.
  • FormWizard::THEME_MATERIAL defaults to 'material'.
  • FormWizard::THEME_MATERIAL_V defaults to 'material-v'.
  • FormWizard::THEME_TAGS defaults to 'tags'.

Who do I talk to?

yii2-formwizard's People

Contributors

buttflattery avatar sircovsw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yii2-formwizard's Issues

Add Row makes input widgets unresponsive

Javascript based input Widgets not working in tabular steps after adding a new row. like, for example, select2, datepicker does not open the dropdown when clicked.

Jump to any step

Hello,

Is this possible to jump to any step from the FORM wizard, actually i want to activate all the steps when i am going to update my records? It is ok for the creation of the new record but it should be active all the steps when i update my records.

Can you please help me on this.

Thank you,
Girish

redirect finish button

when we klik at finish button show blank add form, can we redirect to index form not to blank add form
thanks alot for this on widget

Ability to group fields under a heading in a step.

Capable to insert a heading after a field inside the step at any desired position between fields The divider should be capable to add a heading along with the divider.

When we are using a step for combined inputs/models like we have user and profile models and we have assigned the user and profile section in a single step and we want the fields the be grouped with a different heading which acts as a divider, see the image below to have an idea.

image

Repeat Steps

Hi
I'm trying to make a step repeat several times and I can not find a way to do it in this repository ...
Could you tell me if there is a possibility that it could be done through an option for example repeat step (boolean) and in the sumit would pass to the model an array of that model... I'ts just an idea...

thanks...

How to get data from previous step?

Is it possible to know what the user was entered on first step to use it for some dependance on 2nd step? Maybe you can add something to fill model via ajax after clicking "next" and use this filled data to build next step.

Custom items in single Wizard-step

Hi

I would like to know if it is possible to add custom items to a specific Step.

for example:

  1. step1: car_model: with basic information about the car.

  2. step2:

  • type => tabular

  • model => car_brands_model: with select2 for select brand.

No Tabular items:

  • If the brand does not exist, there is a button to open a modal with Form in popup to add the brand.
  • A button to keep the information incomplete and complete it later.
  1. step3: car_owner_model.

  2. step4

  • Detailview with summary informacion. Save or delete data

Summary: Step2 has custom elements that I would like to know how you can add

Tknx

Separator and custom label

In the preview step when a field has no value selected or filled, it’s show “NA”.

  • Is it possible to choose another text to display instead of “NA”?
  • For a tabular step, also, is it possible to insert a separator line between tabular models?

Request: Field Order

The order of fields are hard to control as the order is taken from the model attributes. I suggest an extra option called 'order' this would be an integer order.

Multiple models attributes with similar names

I would like to utilize the multiple models feature, but my models has attributes with similar names ( model_one.name and model_two.name) , how can I reference them.
I tried hiding one of them by using the code below but it is not working.
'model_two.name' => false,

here is the full code:
[
'model' => [$model_one,$model_two],
'title' => 'Project Details',
'description' => 'Enter Project Details',
'formInfoText' => '',
'fieldConfig' => [
'created_at' => false,
'updated_at' => false,
'budget' => false,
'currency' => false,
'model_two.name' => false,
'name' => [
'widget' => Select2::classname(),
'options' => [
'data' => ArrayHelper::map(Partner::find()->all(), 'id', 'name'),
'language' => 'sw',
'options' => ['placeholder' => 'Select Partner...'],
'pluginOptions' => [
'allowClear' => true
],
]
],
],
],

Upload multiple images with kartik-v file input extension

Hi, your extension works fine. I am so glad you saved me a lot of hustle when creating my app. However, I encountered a problem whereby I am unable to upload multiple images by making the form field accept an array; i.e. an image field with the field name of will have to be <image[]> so as to accept multiple uploads which does not work in this case. This is part of my code for the _form.php view:

[
    'model'=>$imageModel,
    'title'=>'Images',
    'description'=>'Give us the details of the list',
    'formInfoText'=>'Fill all required fields',
    'fieldConfig' => [
        'only' => ['image[]'],
        'image[]' => [
            'widget' => FileInput::classname(),
            'options' =>[
                'options' => [
                    'multiple' => true,
                    'accept' => 'image/*',
                    'pluginOptions' => [
                        'showCaption' => false,
                        'showRemove' => false,
                        'showUpload' => false,
                        'browseClass' => 'btn btn-primary btn-block',
                        'browseIcon' => '<i class="glyphicon glyphicon-camera"></i> ',
                        'browseLabel' =>  'Attach Listing Images',
                        'allowedFileExtensions' => ['jpg','gif','png'],
                        'overwriteInitial' => false
                    ],
                ],
            ],
        ]
    ]
],

Kindly assist where possible;

Tabular Input

Tabular data can not be collected from the backed(controller) using the way specified by Yii2 tabular data collection. to achieve this in yii2 I need to use "Model::loadMultiple" in my controller for that I need to declare my model as array and initialize it.then the beauty of fronted is lost (front end is not dynamic).and if I pass a array with single object I can catch only one object from controller. how can I solve this.can you share your sample controller which relevant to given example in tabular form

Final Preview Feature

  • After adding all the steps there should be the last step which should preview all the inputs entered for the steps.
  • The user should be able to navigate to the step by clicking on the preview window.
  • this option should be turned off by default, and users will need to specify the enablePreview in the main options.

It should be something near like below
image

Default form action on update

The default ActiveForm action is overwitten in setDefaults()

$this->formOptions['action'] = ArrayHelper::getValue($this->formOptions, 'action', Url::to(['/' . Yii::$app->controller->id . '/' . Yii::$app->controller->action->id]));

This causes problems when the form is used to update an existing model, action should only be changed if it has been specified it in widget options.

"kartik/DepDrop" across "WizardSteps"

Hi

Basically I have a step where I select from a select2 an item and in the next step (STEP_TYPE_TABULAR) I need to load a dropdownlist, data from a relationship in the database.

table1: id, name(select2 on step1)
table2: id, name, id_table1(DepDrop as select2 on step2 where id_table1 comes from field on step1)

but I don't know how to access the value stored in the select2 of step1, to give it a parameter in step2.

plugins used: select2, preferably DepDrop; both of de kartik

I would greatly appreciate if you can help me solve my problem.

Hidden fields

We could do with hidden fields on the form

 \buttflattery\formwizard\FormWizard ->createCustomizedField

'hidden' => function ($field, $options, $labelOptions, $label){
                return $field->hiddenInput($options)->label(false);
            }

Need help on FORM widget Yii2

I am using your plugin Yii2 form widget and its really cool but i want to implement more functionality on this widget like based on the selection of fields (select2) from 1st step then the other steps will be visible. Is it possible?

How can set bootstrap version ?

Hi, thanks for this amazing extension,
I load bootstrap 3.0 from composer.json but this widget add a bootstrap.css file that corrupts my css.

I can't personalize my fields

Hi, I am using the buttflattery \ formwizard \ FormWizard plugin to design my form and I notice that the fields that I customize are not displayed. Here is my code :

<?= FormWizard::widget([ 'formOptions' => [ 'id' => 'my_form_ajax', 'enableClientValidation' => true, 'enableAjaxValidation' => false, ], 'theme' => FormWizard::THEME_DOTS, 'enablePreview' => true, 'classListGroup' => 'list-group', 'classListGroupHeading' => 'list-group-heading', 'classListGroupItem' => 'list-group-item-info', 'classListGroupBadge' => 'danger', 'steps' => [ // [ 'model' => $model, 'title' => 'Identité', 'description' => 'identité du membre', 'formInfoText' => 'Renseignez l\'identité du membre', 'fieldConfig' => [ 'only' => [ 'BASE_ID', 'MEMBRE_NOM', 'MEMBRE_PRENOM', 'MEMBRE_SEXE' => [ 'options' => [ 'type' => 'dropdown', 'itemsList' => ['M' => 'Masculin', 'F' => 'Féminin'], 'prompt' => 'Sélectionnez le sexe', ], ], 'MEMBRE_DATE_DE_NAISSANCE' => [ 'widget' => DatePicker::class, 'options' => [ 'language' => 'es', 'readonly' => true, 'pluginOptions' => [ 'autoclose' => true, 'format' => 'dd/mm/yyyy', 'todayHighlight' => true, ] ] ], 'MEMBRE_LIEU_DE_NAISSANCE', 'MEMBRE_PROFESSION', 'MEMBRE_CONTACT', ], // only these field will be added in the step, rest all will be hidden/ignored. ] ], [ 'model' => $model, 'title' => 'Sacrements', 'description' => 'Sacrements reçus par le membre', 'formInfoText' => 'Renseignez les sacrements reçus par le membre', 'fieldConfig' => [ 'only' => [ 'MEMBRE_DATE_DE_BAPTEME', 'MEMBRE_LIEU_DE_BAPTEME', 'MEMBRE_DATE_DE_COMMUNION', 'MEMBRE_LIEU_DE_COMMUNION', 'MEMBRE_DATE_DE_CONFIRMATION', 'MEMBRE_LIEU_DE_CONFIRMATION', 'MEMBRE_DATE_DE_MARIAGE', 'MEMBRE_LIEU_DE_MARIAGE', ], // only these field will be added in the step, rest all will be hidden/ignored. ] ], [ 'model' => $model, 'title' => 'A propos du Sacré-Coeur', 'description' => 'Cérémonies reçus par le membre', 'formInfoText' => 'Renseignez les cérémonies reçus par le membre', 'fieldConfig' => [ 'only' => [ 'MEMBRE_DATE_INTRONISATION', 'MEMBRE_DATE_ADMISSION_SOLLENELLE', ], // only these field will be added in the step, rest all will be hidden/ignored. ] ], [ 'model' => $model, 'title' => 'Associations', 'description' => 'Autres associations', 'formInfoText' => 'Renseignez les autres associations dans lesquelles le membre est actif', 'fieldConfig' => [ 'only' => [ 'MEMBRE_ASSOCIATION1', 'MEMBRE_ROLE_ASSOCIATION1', 'MEMBRE_ASSOCIATION2', 'MEMBRE_ROLE_ASSOCIATION2', ], // only these field will be added in the step, rest all will be hidden/ignored. ] ], [ 'model' => $model, 'title' => 'Divers', 'description' => 'Autres informations', 'formInfoText' => 'Renseignez les autres informations', 'fieldConfig' => [ 'only' => [ 'MEMBRE_MOTIF_ADHESION', 'MEMBRE_OBJECTIFS_A_COURS_TERME', 'MEMBRE_OBJECTIFS_A_LONG_TERME', 'MEMBRE_ROLE_ASSOCIATION2', 'MEMBRE_DATE_ADHESION', 'MEMBRE_DUREE_ADHESION' ], // only these field will be added in the step, rest all will be hidden/ignored. ] ], ] ]); ?>

All the fields appear in my form except the 'MEMBRE_SEXE and 'MEMBRE_DATE_DE_NAISSANCE fields that I tried to customize. Can you help me please? Thank you in advance.

Request: Visability flag

Can we please have a visibility variable in the field config?

isset($fieldConfig[$attribute]['visible'])&& $fieldConfig[$attribute]['visible'] == false

Tabular step row remove icon

The tabular step's remove row icon is appearing in a normal step which uses multiple models. as array

 [
            'model' => [$user, $profile],
            'title' => 'User Account',
            'description' => 'Add Your Info',
            'formInfoText' => 'Add all fields'
        ]

Input type file not working

When I try create a Form Wizard using custom field options and I setting a input type "file" the widget not create the input correctly.

In my view I have the follow code:

...
<?php
    echo FormWizard::widget([
        'steps'=>[
            [
                'model'=> $loadFile,
                'title'=>'Basic Information,
                'formInfoText'=> false,
                'fieldConfig' => [
                    'start' => [
                        'widget' => DatePicker::class,
                        'options' => [
                            'language' => 'es',
                            'readonly' => true,
                            'pluginOptions' => [
                                'autoclose'=> true,
                                'format' => 'dd/mm/yyyy',
                                'todayHighlight' => true,
                            ]
                        ]
                    'filename' => [
                        'type' => 'file',
                        'multifield' => true,
                    ],
               ]
           ],
        ]
    ]);
?>
...

But in the the browser side I have the follow HTML: <input type="text" id="loadfiles-filename" class="form-control" name="LoadFiles[filename][]">

How to include the softark\duallistbox\DualListbox widget in formwizard Step

Hello, I really liked your wrapper of smart wizard, however, I can't put object variables into 'options' when I use another widget inside of your one. I think it's important, cuz many other widgets require setting object variables into options array. Thanks beforehand.

[
    'model' => $hiringTeam,
    'title' => 'HIRING TEAM',
    'description' => 'Choose members of the selection committee',
    'formInfoText' => '',
    'fieldConfig' => [
        'only' => ['employee_ids'],
        'employee_ids' => [
            'widget' => \softark\duallistbox\DualListbox::className(),
            'options' => [
                'model' => $hiringTeam,
                'attribute' => $hiringTeam->employee_ids,
                'items' => $employees,
                'clientOptions' => [
                    'moveOnSelect' => true,
                    'selectedListLabel' => 'General Hiring Team',
                    'nonSelectedListLabel' => 'Hiring Team for this job',
                ],
            ],
        ],
    ],
],

Form layout

Hi, after updating I noticed that there's a bug in the output of the form. Below is a screenshot of the problem.
bug

how to set hint?

Thank you for great extension, can u explain pls, how to set hint() for input group?

Issue using kartik\widget\DepDrop in FormWizard

Using the Dependent dropdown widget by kartik acts strange as the dropdown always shows the default one without css even if i specify the "type"=>DepDrop::TYPE_SELECT2 in the DepDrop options. although it is working ok and populates the options on runtime if the parent dropdown changes

Enable Data Persistence for unsaved form

  • Add New option named enablePersistence.
  • When enabled the unsaved form data will be stored inside the local storage and if the page closes or navigates away the user would still be able to restore the data using the Restore button.
  • The local storage would be cleared as soon as you submit the form or click the finish button. In this case, you would still see the Restore button but it will be disabled.
  • persistenceEvents option should be added for the attributes, which takes the array of events where a user can bind the afterRestore event callback. The callback has 2 params e event and params a JSON which has {fieldId:'field_id',fieldValue:'restored value'}.This option is very similar to the tabularEvents, the only difference is that it would be applicable to any type of step field. the configuration should look like below.
'fieldConfig' => [
    'username' => [
        "persistenceEvents"=>[
              "afterRestore"=>"function(e,params){
               }"
         ]
    ]
 ]
  • The restore functionality should be able to restore the dynamically created rows for the Tabular steps and the values for their fields too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.