|  | @@ 531-564 (lines=34) @@ | 
                                                            
                                    | 528 |  |      * | 
                                                            
                                    | 529 |  |      * @return void | 
                                                            
                                    | 530 |  |      */ | 
                                                            
                                    | 531 |  |     protected function setupScriptForDefaultView($templateScript) | 
                                                            
                                    | 532 |  |     { | 
                                                            
                                    | 533 |  |         $removeClass = NestedForm::REMOVE_FLAG_CLASS; | 
                                                            
                                    | 534 |  |         $defaultKey = NestedForm::DEFAULT_KEY_NAME; | 
                                                            
                                    | 535 |  |  | 
                                                            
                                    | 536 |  |         /** | 
                                                            
                                    | 537 |  |          * When add a new sub form, replace all element key in new sub form. | 
                                                            
                                    | 538 |  |          * | 
                                                            
                                    | 539 |  |          * @example comments[new___key__][title]  => comments[new_{index}][title] | 
                                                            
                                    | 540 |  |          * | 
                                                            
                                    | 541 |  |          * {count} is increment number of current sub form count. | 
                                                            
                                    | 542 |  |          */ | 
                                                            
                                    | 543 |  |         $script = <<<EOT | 
                                                            
                                    | 544 |  | var index = 0; | 
                                                            
                                    | 545 |  | $('#has-many-{$this->column}').on('click', '.add', function () { | 
                                                            
                                    | 546 |  |  | 
                                                            
                                    | 547 |  |     var tpl = $('template.{$this->column}-tpl'); | 
                                                            
                                    | 548 |  |  | 
                                                            
                                    | 549 |  |     index++; | 
                                                            
                                    | 550 |  |  | 
                                                            
                                    | 551 |  |     var template = tpl.html().replace(/{$defaultKey}/g, index); | 
                                                            
                                    | 552 |  |     $('.has-many-{$this->column}-forms').append(template); | 
                                                            
                                    | 553 |  |     {$templateScript} | 
                                                            
                                    | 554 |  | }); | 
                                                            
                                    | 555 |  |  | 
                                                            
                                    | 556 |  | $('#has-many-{$this->column}').on('click', '.remove', function () { | 
                                                            
                                    | 557 |  |     $(this).closest('.has-many-{$this->column}-form').hide(); | 
                                                            
                                    | 558 |  |     $(this).closest('.has-many-{$this->column}-form').find('.$removeClass').val(1); | 
                                                            
                                    | 559 |  | }); | 
                                                            
                                    | 560 |  |  | 
                                                            
                                    | 561 |  | EOT; | 
                                                            
                                    | 562 |  |  | 
                                                            
                                    | 563 |  |         Admin::script($script); | 
                                                            
                                    | 564 |  |     } | 
                                                            
                                    | 565 |  |  | 
                                                            
                                    | 566 |  |     /** | 
                                                            
                                    | 567 |  |      * Setup tab template script. | 
                                                                                
                                |  | @@ 573-619 (lines=47) @@ | 
                                                            
                                    | 570 |  |      * | 
                                                            
                                    | 571 |  |      * @return void | 
                                                            
                                    | 572 |  |      */ | 
                                                            
                                    | 573 |  |     protected function setupScriptForTabView($templateScript) | 
                                                            
                                    | 574 |  |     { | 
                                                            
                                    | 575 |  |         $removeClass = NestedForm::REMOVE_FLAG_CLASS; | 
                                                            
                                    | 576 |  |         $defaultKey = NestedForm::DEFAULT_KEY_NAME; | 
                                                            
                                    | 577 |  |  | 
                                                            
                                    | 578 |  |         $script = <<<EOT | 
                                                            
                                    | 579 |  |  | 
                                                            
                                    | 580 |  | $('#has-many-{$this->column} > .nav').off('click', 'i.close-tab').on('click', 'i.close-tab', function(){ | 
                                                            
                                    | 581 |  |     var \$navTab = $(this).siblings('a'); | 
                                                            
                                    | 582 |  |     var \$pane = $(\$navTab.attr('href')); | 
                                                            
                                    | 583 |  |     if( \$pane.hasClass('new') ){ | 
                                                            
                                    | 584 |  |         \$pane.remove(); | 
                                                            
                                    | 585 |  |     }else{ | 
                                                            
                                    | 586 |  |         \$pane.removeClass('active').find('.$removeClass').val(1); | 
                                                            
                                    | 587 |  |     } | 
                                                            
                                    | 588 |  |     if(\$navTab.closest('li').hasClass('active')){ | 
                                                            
                                    | 589 |  |         \$navTab.closest('li').remove(); | 
                                                            
                                    | 590 |  |         $('#has-many-{$this->column} > .nav > li:nth-child(1) > a').tab('show'); | 
                                                            
                                    | 591 |  |     }else{ | 
                                                            
                                    | 592 |  |         \$navTab.closest('li').remove(); | 
                                                            
                                    | 593 |  |     } | 
                                                            
                                    | 594 |  | }); | 
                                                            
                                    | 595 |  |  | 
                                                            
                                    | 596 |  | var index = 0; | 
                                                            
                                    | 597 |  | $('#has-many-{$this->column} > .header').off('click', '.add').on('click', '.add', function(){ | 
                                                            
                                    | 598 |  |     index++; | 
                                                            
                                    | 599 |  |     var navTabHtml = $('#has-many-{$this->column} > template.nav-tab-tpl').html().replace(/{$defaultKey}/g, index); | 
                                                            
                                    | 600 |  |     var paneHtml = $('#has-many-{$this->column} > template.pane-tpl').html().replace(/{$defaultKey}/g, index); | 
                                                            
                                    | 601 |  |     $('#has-many-{$this->column} > .nav').append(navTabHtml); | 
                                                            
                                    | 602 |  |     $('#has-many-{$this->column} > .tab-content').append(paneHtml); | 
                                                            
                                    | 603 |  |     $('#has-many-{$this->column} > .nav > li:last-child a').tab('show'); | 
                                                            
                                    | 604 |  |     {$templateScript} | 
                                                            
                                    | 605 |  | }); | 
                                                            
                                    | 606 |  |  | 
                                                            
                                    | 607 |  | if ($('.has-error').length) { | 
                                                            
                                    | 608 |  |     $('.has-error').parent('.tab-pane').each(function () { | 
                                                            
                                    | 609 |  |         var tabId = '#'+$(this).attr('id'); | 
                                                            
                                    | 610 |  |         $('li a[href="'+tabId+'"] i').removeClass('hide'); | 
                                                            
                                    | 611 |  |     }); | 
                                                            
                                    | 612 |  |      | 
                                                            
                                    | 613 |  |     var first = $('.has-error:first').parent().attr('id'); | 
                                                            
                                    | 614 |  |     $('li a[href="#'+first+'"]').tab('show'); | 
                                                            
                                    | 615 |  | } | 
                                                            
                                    | 616 |  | EOT; | 
                                                            
                                    | 617 |  |  | 
                                                            
                                    | 618 |  |         Admin::script($script); | 
                                                            
                                    | 619 |  |     } | 
                                                            
                                    | 620 |  |  | 
                                                            
                                    | 621 |  |     /** | 
                                                            
                                    | 622 |  |      * Disable create button. |