示例#1
0
    public function make(array $data)
    {
        $otherSetting = $data['others'];
        $name = $data['name'];
        $value = $data['value'];
        $select_image = pick_trans('buttons.select_file');
        $change = pick_trans('buttons.change');
        $remove = pick_trans('buttons.remove');
        $form = <<<EOE
            <div class="fileinput fileinput-new file-pick-open-manager">
                <div data-type="file" class="fileinput-new thumbnail" id="file-{$name}" style="width: 100px; height: 100px;">
EOE;
        $form .= '<input type="hidden" name="' . $name . '" value="' . $value . '">';
        $form .= <<<EOE
                    <img src="http://placehold.it/100&text=FILE">
                </div>
                <div>
                    <span class="btn btn-white btn-file">
                        <span class="fileinput-new">{$select_image}</span>
                        <span class="fileinput-exists">{$change}</span>
                    </span>
                </div>
            </div>
            <a href="#" class="btn btn-orange fileinput-remove" style="display: none; width: 60px" data-target="file-{$name}">{$remove}</a>
EOE;
        set_package_asset_to_view('file-picker-reload');
        return $form;
    }
示例#2
0
    public function make(array $data)
    {
        $otherSetting = $data['others'];
        $name = $data['name'];
        $value = $data['value'];
        $size = array_get($otherSetting['setting'], 'size') ?: '/200x150&text=-';
        $img = $value ? asset('uploads/' . $value) : "http://placehold.it/{$size}";
        $select_image = pick_trans('buttons.select_image');
        $change = pick_trans('buttons.change');
        $remove = pick_trans('buttons.remove');
        $form = <<<EOE
            <div class="fileinput fileinput-new file-pick-open-manager">
                <div data-type="image" class="fileinput-new thumbnail" id="image-{$name}" style="width: 200px; height: 150px;">
EOE;
        $form .= '<input type="hidden" name="' . $name . '" value="' . $value . '">';
        $form .= <<<EOE
                    <img src="{$img}">
                </div>
                <div>
                    <span class="btn btn-white btn-file">
                        <span class="fileinput-new">{$select_image}</span>
                        <span class="fileinput-exists">{$change}</span>
                    </span>
                    <a href="#" class="btn btn-orange fileinput-exists" data-dismiss="fileinput">{$remove}</a>
                </div>
            </div>
EOE;
        set_package_asset_to_view('file-picker-reload');
        return $form;
    }
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control wysiwyg-simple';
     $attributes = $this->attributes($data);
     $form = '<textarea' . $attributes . '>' . e($data['value']) . '</textarea>';
     set_package_asset_to_view('ckeditor');
     return $form;
 }
示例#4
0
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control tagsinput';
     $attributes = $this->attributes($data);
     $form = '<input type="text"' . $attributes . '>';
     // To add the asset of package to View
     set_package_asset_to_view('tag');
     return $form;
 }
示例#5
0
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control colorpicker';
     $data['data-format'] = array_get($data, 'others.setting.args.data-format') ?: 'hex';
     $attributes = $this->attributes($data);
     $form = '<div class="input-group"><div class="input-group-addon"><i class="color-preview"></i></div>';
     $form .= '<input type="text"' . $attributes . '>';
     $form .= '</div>';
     set_package_asset_to_view('colorpicker');
     return $form;
 }
示例#6
0
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control daterange daterange-inline add-ranges';
     $data['data-format'] = array_get($data, 'others.setting.args.data-format') ?: 'YYYY-MM-DD';
     $data['data-start-date'] = array_get($data, 'others.setting.args.data-start-date') ?: date('Y-m-d', time() - 86400);
     $data['data-end-date'] = array_get($data, 'others.setting.args.data-end-date') ?: date('Y-m-d', time());
     $data['data-separator'] = array_get($data, 'others.setting.args.data-separator') ?: ' ~ ';
     $attributes = $this->attributes($data);
     $form = '<div class="input-group"><div class="input-group-addon"><i class="entypo-calendar"></i></div>';
     $form .= '<input type="text"' . $attributes . '>';
     $form .= '</div>';
     set_package_asset_to_view('daterange');
     return $form;
 }
示例#7
0
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control datepicker';
     // 'data-format'        => 'yyyy-mm-dd',
     // 'data-start-date'    => '-2d',
     // 'data-end-date'      => '+1w',
     // 'data-disabled-days' => '1,3',
     // 'data-start-view'    => '2',
     $data['data-format'] = array_get($data, 'others.setting.args.data-format') ?: 'yyyy-mm-dd';
     $attributes = $this->attributes($data);
     $form = '<div class="input-group"><div class="input-group-addon"><i class="entypo-calendar"></i></div>';
     $form .= '<input type="text"' . $attributes . '>';
     $form .= '</div>';
     set_package_asset_to_view('datepicker');
     return $form;
 }
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'select2';
     $otherSetting = $data['others'];
     $attributes = $this->attributes($data);
     $form = '<select' . $attributes . 'data-allow-clear="true" data-placeholder="' . pick_trans('option.pleaseSelect') . '">';
     $form .= '<option></option>';
     if (count($otherSetting['option'])) {
         foreach ($otherSetting['option'] as $key => $value) {
             $selected = $key == $data['value'] ? ' selected' : null;
             $form .= '<option value="' . e($key) . '"' . $selected . '>' . e($value) . '</option>';
         }
     }
     $form .= '</select>';
     // To add the asset of package to View
     set_package_asset_to_view('multi-select2');
     return $form;
 }
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control multi-select';
     $otherSetting = $data['others'];
     $data['value'] = is_array($data['value']) ? join(',', $data['value']) : $data['value'];
     $attributes = $this->attributes($data);
     $form = '<select multiple="multiple"' . $attributes . '>';
     if (count($otherSetting['option'])) {
         $valueAry = explode(',', $data['value']);
         foreach ($otherSetting['option'] as $key => $value) {
             $selected = in_array($key, $valueAry) ? ' selected' : null;
             $form .= '<option value="' . e($key) . '"' . $selected . '>' . e($value) . '</option>';
         }
     }
     $form .= '</select>';
     // To add the asset of package to View
     set_package_asset_to_view('multi-select-list');
     return $form;
 }
示例#10
0
 public function make(array $data)
 {
     $data['class'] = array_get($data, 'others.setting.args.class') ?: 'select2';
     $data['data-allow-clear'] = "true";
     $data['data-placeholder'] = pick_trans('option.pleaseSelect');
     $attributes = $this->attributes($data);
     $options = Department::with('employees')->orderBy('sort')->get()->toArray();
     $form = '<select ' . $attributes . '><option></option>';
     if (count($options)) {
         foreach ($options as $department) {
             $form .= '<optgroup label=' . e($department['name']) . '>';
             foreach ($department['employees'] as $employee) {
                 $selected = $employee['id'] == $data['value'] ? ' selected' : null;
                 $form .= '<option value="' . e($employee['id']) . '"' . $selected . '>' . e($employee['name']) . ' ' . e($employee['name_en']) . '</option>';
             }
             $form .= '</optgroup>';
         }
     }
     $form .= '</select>';
     // To add the asset of package to View
     set_package_asset_to_view('multi-select2');
     return $form;
 }
示例#11
0
    public function make(array $data)
    {
        // dd($data);
        if (!isset($data['others']['setting']['columns'])) {
            throw new \InvalidArgumentException("There is no 'columns' argument.");
        }
        $fields = '';
        if (count($data['value'])) {
            foreach ($data['value'] as $key => $value) {
                $fields .= '<div class="toclone"><div class="row">';
                foreach ($data['others']['setting']['columns'] as $columnName => $columnItem) {
                    $columnItem['name'] = $data['name'] . '[' . $columnName . ']';
                    $columnItem['value'] = $value[$columnName];
                    $columnItem['label-class'] = 'col-md-12';
                    $columnItem['inner-div-class'] = 'col-md-12';
                    $columnItem['duplicate-inner-div-class'] = isset($columnItem['duplicate-inner-div-class']) ? $columnItem['duplicate-inner-div-class'] : 'col-md-12';
                    $fields .= '<div class="' . $columnItem['duplicate-inner-div-class'] . '">' . Formaker::$columnName($columnItem) . '</div>';
                }
                $fields .= '</div>';
                $fields .= '<div class="row"><div class="col-md-12">';
                $fields .= '<div class="main-clone-button pull-left">';
                $fields .= Form::button(pick_trans('buttons.clone'), ['class' => 'btn btn-xs btn-blue clone']);
                $fields .= '</div>';
                $fields .= '<div class="main-clone-button pull-left">';
                $fields .= Form::button(pick_trans('buttons.delete'), ['class' => 'btn btn-xs btn-danger delete']);
                $fields .= '</div>';
                $fields .= '</div></div><div class="clearfix visible-xs-block"></div><hr></div>';
            }
        } else {
            $fields .= '<div class="toclone"><div class="row">';
            foreach ($data['others']['setting']['columns'] as $columnName => $columnItem) {
                $columnItem['name'] = $data['name'] . '[' . $columnName . ']';
                $columnItem['label-class'] = 'col-md-12';
                $columnItem['inner-div-class'] = 'col-md-12';
                $columnItem['duplicate-inner-div-class'] = isset($columnItem['duplicate-inner-div-class']) ? $columnItem['duplicate-inner-div-class'] : 'col-md-12';
                $fields .= '<div class="' . $columnItem['duplicate-inner-div-class'] . '">' . Formaker::$columnName($columnItem) . '</div>';
            }
            $fields .= '</div>';
            $fields .= '<div class="row"><div class="col-md-12">';
            $fields .= '<div class="main-clone-button pull-left">';
            $fields .= Form::button(pick_trans('buttons.clone'), ['class' => 'btn btn-xs btn-blue clone']);
            $fields .= '</div>';
            $fields .= '<div class="main-clone-button pull-left">';
            $fields .= Form::button(pick_trans('buttons.delete'), ['class' => 'btn btn-xs btn-danger delete']);
            $fields .= '</div>';
            $fields .= '</div></div><div class="clearfix visible-xs-block"></div><hr></div>';
        }
        // $data['class'] = array_get($data, 'others.setting.args.class') ?:
        //                  'form-control tagsinput';
        // $attributes = $this->attributes($data);
        $form = $fields;
        Formaker::dummy(['label-class' => isset($data['others']['setting']['label-class']) ? $data['others']['setting']['label-class'] : $data['others']['config']['label-class'], 'inner-div-class' => isset($data['others']['setting']['inner-div-class']) ? $data['others']['setting']['inner-div-class'] : $data['others']['config']['inner-div-class']]);
        // To add the asset of package to View
        set_package_asset_to_view('cloneya');
        set_package_asset_to_view('jquery-confirm');
        set_package_asset_to_view('ladda-bootstrap');
        Theme::asset()->writeScript('duplicateform-script', '
            $(function() {

                $("#clone-section")
                  .cloneya()
                  .on("clone_before_clone", function(event, toclone) {
                      // do something
                  })
                  .on("clone_after_clone", function(event, toclone, newclone) {
                      // do something   
                  })
                  .on("clone_before_append", function(event, toclone, newclone) {
                      $(newclone).css("display", "none");
                      $(toclone).fadeOut("fast", function() {
                          $(this).fadeIn("fast");
                      });
                  })
                  .on("clone_after_append", function(event, toclone, newclone) {
                      $(newclone).slideToggle();
                  })
                  // we remove the original binding, the call to remove is also gone
                  .off("clone_before_delete")
                  // we add our own, so make sure to remove the element
                  .on("clone_before_delete", function(event, clone) {
                      $.confirm({
                          // title: "{{pick_trans("warning")}}!!!",
                          text: "確定要刪除嗎?",
                          confirm: function() {

                            $(clone).slideToggle("slow", function() {
                              $(this).remove();
                            });

                            toastr.success(result.message, "成功", opts);

                          },
                          cancel: function() {
                              // nothing to do
                          },
                          confirmButton: "是",
                          cancelButton: "否",
                          confirmButtonClass: "btn-danger",
                          cancelButtonClass: "btn-default"
                      });
                  })
                  .on("clone_after_delete", function(event) {
                      // do something;
                  });

            });
        ');
        return $form;
    }