Revize 440deee5
Přidáno uživatelem Filip Jani před téměř 6 roky(ů)
app/AdminModule/component/Transliteration/TransliterationDataEditForm.latte | ||
---|---|---|
1 | 1 |
{ifset $containers} |
2 |
{form form class => 'form'} |
|
3 |
{foreach $containers as $containerName => $container} |
|
2 |
{snippet dataSnippet} |
|
3 |
{form form class => 'form'} |
|
4 |
{foreach $containers as $containerName => $container} |
|
4 | 5 |
|
5 |
{if isset($defaults[$containerName])} |
|
6 |
{var show = ' show'} |
|
7 |
{var expanded = 'true'} |
|
8 |
{else} |
|
9 |
{var show = ''} |
|
10 |
{var expanded = 'false'} |
|
11 |
{/if} |
|
6 |
{if isset($defaults[$containerName])}
|
|
7 |
{var show = ' show'}
|
|
8 |
{var expanded = 'true'}
|
|
9 |
{else}
|
|
10 |
{var show = ''}
|
|
11 |
{var expanded = 'false'}
|
|
12 |
{/if}
|
|
12 | 13 |
|
13 |
<div class="card mb-1"> |
|
14 |
<div class="card mb-1">
|
|
14 | 15 |
|
15 |
<h5 class="mb-0"> |
|
16 |
<a class="btn btn-link" data-toggle="collapse" data-target="#{$containerName}" |
|
17 |
aria-expanded="{$expanded}"> |
|
18 |
<small> |
|
19 |
<span class="fa fa-fw fa-plus"></span> |
|
20 |
<span class="fa fa-fw fa-minus"></span> |
|
21 |
</small> {$container['title']} |
|
22 |
</a> |
|
23 |
</h5> |
|
16 |
<h5 class="mb-0">
|
|
17 |
<a class="btn btn-link" data-toggle="collapse" data-target="#{$containerName}"
|
|
18 |
aria-expanded="{$expanded}">
|
|
19 |
<small>
|
|
20 |
<span class="fa fa-fw fa-plus"></span>
|
|
21 |
<span class="fa fa-fw fa-minus"></span>
|
|
22 |
</small> {$container['title']}
|
|
23 |
</a>
|
|
24 |
</h5>
|
|
24 | 25 |
|
25 |
<div id="{$containerName}" class="collapse{$show}"> |
|
26 |
<div class="card-body"> |
|
26 |
<div id="{$containerName}" class="collapse{$show}">
|
|
27 |
<div class="card-body">
|
|
27 | 28 |
|
28 |
{foreach $container as $multiplierName => $multiplier} |
|
29 |
{foreach $container as $multiplierName => $multiplier}
|
|
29 | 30 |
|
30 |
{if $multiplierName !== 'title'} |
|
31 |
{var name = $containerName . '-' . $multiplierName} |
|
31 |
{if $multiplierName !== 'title'}
|
|
32 |
{var name = $containerName . '-' . $multiplierName}
|
|
32 | 33 |
|
33 |
{if isset($defaults[$containerName][$multiplierName])} |
|
34 |
{var show = ' show'} |
|
35 |
{var expanded = 'true'} |
|
36 |
{else} |
|
37 |
{var show = ''} |
|
38 |
{var expanded = 'false'} |
|
39 |
{/if} |
|
34 |
{if isset($defaults[$containerName][$multiplierName])}
|
|
35 |
{var show = ' show'}
|
|
36 |
{var expanded = 'true'}
|
|
37 |
{else}
|
|
38 |
{var show = ''}
|
|
39 |
{var expanded = 'false'}
|
|
40 |
{/if}
|
|
40 | 41 |
|
41 |
<div class="card mb-1"> |
|
42 |
<h5 class="mb-0"> |
|
43 |
<a class="btn btn-link" data-toggle="collapse" data-target="#{$name}" |
|
44 |
aria-expanded="{$expanded}" onclick="return false;"> |
|
45 |
<small> |
|
46 |
<span class="fa fa-fw fa-plus"></span> |
|
47 |
<span class="fa fa-fw fa-minus"></span> |
|
48 |
</small> {$multiplier} |
|
49 |
</a> |
|
50 |
</h5> |
|
42 |
<div class="card mb-1">
|
|
43 |
<h5 class="mb-0">
|
|
44 |
<a class="btn btn-link" data-toggle="collapse" data-target="#{$name}"
|
|
45 |
aria-expanded="{$expanded}" onclick="return false;">
|
|
46 |
<small>
|
|
47 |
<span class="fa fa-fw fa-plus"></span>
|
|
48 |
<span class="fa fa-fw fa-minus"></span>
|
|
49 |
</small> {$multiplier}
|
|
50 |
</a>
|
|
51 |
</h5>
|
|
51 | 52 |
|
52 |
<div id="{$name}" class="collapse{$show}"> |
|
53 |
<div class="card-body"> |
|
54 |
<div n:multiplier="$name" n:class="row, mb-2"> |
|
55 |
<div class="col-5"> |
|
56 |
<input n:name="\App\Model\Repository\LineRepository::COLUMN_LINE_NUMBER" n:class="form-control, form-control-sm"> |
|
57 |
</div> |
|
58 |
<div class="col-5"> |
|
59 |
<input n:name="\App\Model\Repository\LineRepository::COLUMN_TRANSLITERATION" n:class="form-control, form-control-sm"> |
|
60 |
</div> |
|
61 |
<div class="col-2"> |
|
62 |
{btnRemove 'class' => 'btn btn-danger btn-sm float-right'} |
|
53 |
<div id="{$name}" class="collapse{$show}"> |
|
54 |
<div class="card-body"> |
|
55 |
<div n:multiplier="$name" n:class="row, mb-2"> |
|
56 |
<div class="col-5"> |
|
57 |
<input n:name="\App\Model\Repository\LineRepository::COLUMN_LINE_NUMBER" n:class="form-control, form-control-sm"> |
|
58 |
</div> |
|
59 |
<div class="col-5"> |
|
60 |
<input n:name="\App\Model\Repository\LineRepository::COLUMN_TRANSLITERATION" n:class="form-control, form-control-sm"> |
|
61 |
</div> |
|
62 |
<div class="col-2"> |
|
63 |
{btnRemove 'class' => 'btn btn-danger btn-sm ajax float-right'} |
|
64 |
</div> |
|
63 | 65 |
</div> |
64 |
</div> |
|
65 | 66 |
|
66 |
{btnCreate $name 'class' => 'btn btn-info btn-sm'} |
|
67 |
{btnCreate $name 'class' => 'btn btn-info btn-sm ajax'} |
|
68 |
</div> |
|
67 | 69 |
</div> |
68 |
</div> |
|
69 | 70 |
|
70 |
</div> |
|
71 |
{/if} |
|
71 |
</div>
|
|
72 |
{/if}
|
|
72 | 73 |
|
73 |
{/foreach} |
|
74 |
{/foreach}
|
|
74 | 75 |
|
76 |
</div> |
|
75 | 77 |
</div> |
76 | 78 |
</div> |
77 |
</div> |
|
78 |
{/foreach} |
|
79 |
{/foreach} |
|
79 | 80 |
|
80 |
<div class="row mt-5"> |
|
81 |
<div class="col-4 offset-8 float-right"> |
|
82 |
{input submit} |
|
81 |
<div class="row mt-5"> |
|
82 |
<div class="col-4 offset-8 float-right"> |
|
83 |
{input submit} |
|
84 |
</div> |
|
83 | 85 |
</div> |
84 |
</div>
|
|
85 |
{/form}
|
|
86 |
{/form}
|
|
87 |
{/snippet}
|
|
86 | 88 |
{/ifset} |
app/AdminModule/component/Transliteration/TransliterationDataEditForm.php | ||
---|---|---|
79 | 79 |
{ |
80 | 80 |
$form = new Form; |
81 | 81 |
|
82 |
$redrawCallback = function () |
|
83 |
{ |
|
84 |
$this->redrawControl('dataSnippet'); |
|
85 |
}; |
|
86 |
|
|
82 | 87 |
foreach ($this->containers as $name => $container) |
83 | 88 |
{ |
84 | 89 |
$cont = $form->addContainer($name); |
... | ... | |
97 | 102 |
$container->addText(LineRepository::COLUMN_TRANSLITERATION); |
98 | 103 |
}, 0); |
99 | 104 |
|
100 |
$multiplier->addCreateButton('Add line')->setValidationScope([])->addClass('btn btn-primary');
|
|
101 |
$multiplier->addRemoveButton('Delete')->addClass('btn btn-danger');
|
|
105 |
$multiplier->addCreateButton('Add line', 1, $redrawCallback);
|
|
106 |
$multiplier->addRemoveButton('Delete', $redrawCallback);
|
|
102 | 107 |
} |
103 | 108 |
} |
104 | 109 |
|
105 |
$form->setDefaults($this->defaults); |
|
110 |
$defaults = $this->defaults === NULL ? $this->getDefaults() : $this->defaults; |
|
111 |
$form->setDefaults($defaults); |
|
106 | 112 |
|
107 | 113 |
$form->onSuccess[] = [$this, 'formSuccess']; |
108 | 114 |
$form->addSubmit('submit', 'Save'); |
app/AdminModule/component/Transliteration/TransliterationEditForm.latte | ||
---|---|---|
1 |
{form form} |
|
2 |
<div class="row"> |
|
3 |
<div class="col-12"> |
|
4 |
<div class="row mb-2"> |
|
5 |
<div class="col-4"> |
|
6 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_ID} |
|
7 |
</div> |
|
8 |
<div class="col-8"> |
|
9 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_ID} |
|
1 |
{snippet informationSnippet} |
|
2 |
{form form} |
|
3 |
<div class="row"> |
|
4 |
<div class="col-12"> |
|
5 |
<div class="row mb-2"> |
|
6 |
<div class="col-4"> |
|
7 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_ID} |
|
8 |
</div> |
|
9 |
<div class="col-8"> |
|
10 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_ID} |
|
11 |
</div> |
|
10 | 12 |
</div> |
11 |
</div> |
|
12 | 13 |
|
13 |
<div class="row mb-2"> |
|
14 |
<div class="col-4"> |
|
15 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_CHAPTER} |
|
16 |
</div> |
|
17 |
<div class="col-8"> |
|
18 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_CHAPTER} |
|
14 |
<div class="row mb-2"> |
|
15 |
<div class="col-4"> |
|
16 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_CHAPTER} |
|
17 |
</div> |
|
18 |
<div class="col-8"> |
|
19 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_CHAPTER} |
|
20 |
</div> |
|
19 | 21 |
</div> |
20 |
</div> |
|
21 | 22 |
|
22 |
<div class="row mb-2"> |
|
23 |
<div class="col-4"> |
|
24 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_ID} |
|
25 |
</div> |
|
26 |
<div class="col-8"> |
|
27 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_ID} |
|
23 |
<div class="row mb-2"> |
|
24 |
<div class="col-4"> |
|
25 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_ID} |
|
26 |
</div> |
|
27 |
<div class="col-8"> |
|
28 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_ID} |
|
29 |
</div> |
|
28 | 30 |
</div> |
29 |
</div> |
|
30 | 31 |
|
31 |
<div class="row mb-2"> |
|
32 |
<div class="col-4"> |
|
33 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_NO} |
|
34 |
</div> |
|
35 |
<div class="col-8"> |
|
36 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_NO} |
|
32 |
<div class="row mb-2"> |
|
33 |
<div class="col-4"> |
|
34 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_NO} |
|
35 |
</div> |
|
36 |
<div class="col-8"> |
|
37 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_MUSEUM_NO} |
|
38 |
</div> |
|
37 | 39 |
</div> |
38 |
</div> |
|
39 | 40 |
|
40 |
<div class="row mb-2"> |
|
41 |
<div class="col-4"> |
|
42 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_REG_NO} |
|
43 |
</div> |
|
44 |
<div class="col-8"> |
|
45 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_REG_NO} |
|
41 |
<div class="row mb-2"> |
|
42 |
<div class="col-4"> |
|
43 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_REG_NO} |
|
44 |
</div> |
|
45 |
<div class="col-8"> |
|
46 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_REG_NO} |
|
47 |
</div> |
|
46 | 48 |
</div> |
47 |
</div> |
|
48 | 49 |
|
49 |
<div class="row mb-2"> |
|
50 |
<div class="col-4"> |
|
51 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_ORIGIN_ID} |
|
52 |
</div> |
|
53 |
<div class="col-8"> |
|
54 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_ORIGIN_ID} |
|
50 |
<div class="row mb-2"> |
|
51 |
<div class="col-4"> |
|
52 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_ORIGIN_ID} |
|
53 |
</div> |
|
54 |
<div class="col-8"> |
|
55 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_ORIGIN_ID} |
|
56 |
</div> |
|
55 | 57 |
</div> |
56 |
</div> |
|
57 | 58 |
|
58 |
<div class="row mb-2"> |
|
59 |
<div class="col-4"> |
|
60 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_TYPE_ID} |
|
61 |
</div> |
|
62 |
<div class="col-8"> |
|
63 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_TYPE_ID} |
|
59 |
<div class="row mb-2"> |
|
60 |
<div class="col-4"> |
|
61 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_TYPE_ID} |
|
62 |
</div> |
|
63 |
<div class="col-8"> |
|
64 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_BOOK_TYPE_ID} |
|
65 |
</div> |
|
64 | 66 |
</div> |
65 |
</div> |
|
66 | 67 |
|
67 |
<div class="row mb-2"> |
|
68 |
<div class="col-4"> |
|
69 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_DATE} |
|
70 |
</div> |
|
71 |
<div class="col-8"> |
|
72 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_DATE} |
|
68 |
<div class="row mb-2"> |
|
69 |
<div class="col-4"> |
|
70 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_DATE} |
|
71 |
</div> |
|
72 |
<div class="col-8"> |
|
73 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_DATE} |
|
74 |
</div> |
|
73 | 75 |
</div> |
74 |
</div> |
|
75 | 76 |
|
76 |
<div class="row mb-2"> |
|
77 |
<div class="col-4"> |
|
78 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_NOTE} |
|
79 |
</div> |
|
80 |
<div class="col-8"> |
|
81 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_NOTE} |
|
77 |
<div class="row mb-2"> |
|
78 |
<div class="col-4"> |
|
79 |
{label \App\Model\Repository\TransliterationRepository::COLUMN_NOTE} |
|
80 |
</div> |
|
81 |
<div class="col-8"> |
|
82 |
{input \App\Model\Repository\TransliterationRepository::COLUMN_NOTE} |
|
83 |
</div> |
|
82 | 84 |
</div> |
83 | 85 |
</div> |
84 | 86 |
</div> |
85 |
</div> |
|
86 |
|
|
87 |
<div class="row"> |
|
88 |
<div class="col-12"> |
|
89 |
<h5>References</h5> |
|
90 |
<p>(series, number, page)</p> |
|
91 |
<div n:multiplier="references"> |
|
92 |
<div class="row mb-2"> |
|
93 |
|
|
94 |
<div class="col-3"> |
|
95 |
<input n:name="\App\Model\Repository\LitReferenceRepository::COLUMN_SERIES" n:class="form-control" |
|
96 |
required></div> |
|
97 | 87 |
|
98 |
<div class="col-3"> |
|
99 |
<input n:name="\App\Model\Repository\LitReferenceRepository::COLUMN_NUMBER" n:class="form-control"> |
|
88 |
<div class="row"> |
|
89 |
<div class="col-12"> |
|
90 |
<h5>References</h5> |
|
91 |
<p>(series, number, page)</p> |
|
92 |
<div n:multiplier="references"> |
|
93 |
<div class="row mb-2"> |
|
94 |
|
|
95 |
<div class="col-3"> |
|
96 |
<input n:name="\App\Model\Repository\LitReferenceRepository::COLUMN_SERIES" n:class="form-control, form-control-sm" |
|
97 |
required></div> |
|
98 |
|
|
99 |
<div class="col-3"> |
|
100 |
<input n:name="\App\Model\Repository\LitReferenceRepository::COLUMN_NUMBER" n:class="form-control, form-control-sm"> |
|
101 |
</div> |
|
102 |
|
|
103 |
<div class="col-3"> |
|
104 |
<input n:name="\App\Model\Repository\LitReferenceRepository::COLUMN_PLATE" n:class="form-control, form-control-sm"> |
|
105 |
</div> |
|
106 |
<div class="col-2">{btnRemove 'class' => 'btn btn-danger btn-sm ajax float-right'}</div> |
|
100 | 107 |
</div> |
101 |
|
|
102 |
<div class="col-3"> |
|
103 |
<input n:name="\App\Model\Repository\LitReferenceRepository::COLUMN_PLATE" n:class="form-control"> |
|
104 |
</div> |
|
105 |
<div class="col-2">{btnRemove 'class' => 'btn btn-danger float-right'}</div> |
|
106 | 108 |
</div> |
107 |
</div> |
|
108 | 109 |
|
109 |
{btnCreate references class => 'btn btn-info'} |
|
110 |
{btnCreate references class => 'btn btn-info btn-sm ajax'} |
|
111 |
</div> |
|
110 | 112 |
</div> |
111 |
</div> |
|
112 | 113 |
|
113 |
<div class="row mt-5"> |
|
114 |
<div class="col-4 offset-8 float-right"> |
|
115 |
{input submit} |
|
114 |
<div class="row mt-5"> |
|
115 |
<div class="col-4 offset-8 float-right"> |
|
116 |
{input submit} |
|
117 |
</div> |
|
116 | 118 |
</div> |
117 |
</div> |
|
118 |
|
|
119 |
{/form} |
|
120 | 119 |
|
120 |
{/form} |
|
121 |
{/snippet} |
app/AdminModule/component/Transliteration/TransliterationEditForm.php | ||
---|---|---|
14 | 14 |
use Nette\Application\UI\Control; |
15 | 15 |
use Nette\Database\Table\ActiveRow; |
16 | 16 |
use Nette\Forms\Container; |
17 |
use Nette\Forms\Controls\SubmitButton; |
|
18 |
use WebChemistry\Forms\Controls\Multiplier; |
|
17 | 19 |
|
18 | 20 |
/** |
19 | 21 |
* Class TransliterationEditForm |
... | ... | |
106 | 108 |
$this->form->addText(TransliterationRepository::COLUMN_DATE, 'Date'); |
107 | 109 |
$this->form->addText(TransliterationRepository::COLUMN_NOTE, 'Note'); |
108 | 110 |
|
111 |
$redrawCallback = function () |
|
112 |
{ |
|
113 |
$this->redrawControl('informationSnippet'); |
|
114 |
}; |
|
115 |
|
|
109 | 116 |
// Definice dynamických prvků |
117 |
/** @var Multiplier $multiplier */ |
|
110 | 118 |
$multiplier = $this->form->addMultiplier('references', function (Container $container) |
111 | 119 |
{ |
112 | 120 |
$container->addHidden(LitReferenceRepository::COLUMN_ID); |
... | ... | |
116 | 124 |
}, 0); |
117 | 125 |
|
118 | 126 |
// Definice tlačítek pro přidání / odebrání řádku |
119 |
$multiplier->addCreateButton('Add')->addClass('btn btn-primary');
|
|
120 |
$multiplier->addRemoveButton('Remove')->addClass('btn btn-danger');
|
|
127 |
$multiplier->addCreateButton('Add', 1, $redrawCallback);
|
|
128 |
$multiplier->addRemoveButton('Remove', $redrawCallback);
|
|
121 | 129 |
|
122 | 130 |
$this->form->setDefaults($this->getDefaults()); |
123 | 131 |
|
www/css/common.css | ||
---|---|---|
2 | 2 |
{ |
3 | 3 |
border: 1px solid #ddd !important; |
4 | 4 |
margin: 0; |
5 |
xmin-width: 0; |
|
6 | 5 |
padding: 10px; |
7 | 6 |
position: relative; |
8 | 7 |
border-radius:4px; |
9 | 8 |
background-color:#f5f5f5; |
10 |
padding-left:10px!important; |
|
11 | 9 |
} |
12 | 10 |
|
13 | 11 |
legend |
Také k dispozici: Unified diff
Re #7505 přidávání inputů pomocí AJAXu