|
1 | | -<form method="POST" |
2 | | - {% if context.id %} |
3 | | - action='issue{{ context.id }}' |
4 | | - {% else %} |
5 | | - action='issue' |
6 | | - {% endif %} |
7 | | - name="itemSynopsis" |
8 | | - enctype="multipart/form-data" |
9 | | - > |
10 | | - <fieldset> |
11 | | - <!-- title --> |
12 | | - <div class='row-fluid'> |
13 | | - <div class='control-group'> |
14 | | - <label class='control-label' for='title'>{{ i18n.gettext('Title')|u }}</label> |
15 | | - <div class='controls'> |
16 | | - <input name='title' id='title' type='text' class='input-xxlarge' value='{{ context.title.plain()|u|e }}' required> |
| 1 | +<form class="col-xl-6" method="POST" {% if context.id %} action='issue{{ context.id }}' {% else %} action='issue' {% endif %} name="itemSynopsis" enctype="multipart/form-data"> |
| 2 | + <fieldset> |
| 3 | + <!-- title --> |
| 4 | + <div class='form-group row'> |
| 5 | + <label class='col-3 col-form-label' for='title'>{{ i18n.gettext('Title')|u }}</label> |
| 6 | + <div class='col-9'> |
| 7 | + <input class="form-control" name='title' id='title' type='text' class='input-lg' value='{{ context.title.plain()|u|e }}' required> |
| 8 | + </div> |
17 | 9 | </div> |
18 | | - </div> |
19 | | - </div> <!-- row-fluid --> |
20 | 10 |
|
21 | | - <!-- priority & Status --> |
22 | | - <div class='row-fluid'> |
23 | | - <div class='control-group span6'> |
24 | | - <label class='control-label' for='priority'>{{ i18n.gettext('Priority')|u }}</label> |
25 | | - <div class='controls'> |
26 | | - {{ context.priority.menu()|u }} |
| 11 | + <div class='form-group row'> |
| 12 | + <label class='col-3 col-form-label' for='priority'>{{ i18n.gettext('Priority')|u }}</label> |
| 13 | + <div class='col-3'> |
| 14 | + {{ context.priority.menu(html_kwargs={"class": "custom-select"})|u }} |
| 15 | + </div> |
| 16 | + <label class='col-3 col-form-label' for='status'>{{ i18n.gettext('Status')|u }}</label> |
| 17 | + <div class='col-3'> |
| 18 | + {{ context.status.menu(html_kwargs={"class": "custom-select"})|u }} |
| 19 | + </div> |
27 | 20 | </div> |
28 | | - </div> |
29 | | - <div class='control-group span6'> |
30 | | - <label class='control-label' for='status'>{{ i18n.gettext('Status')|u }}</label> |
31 | | - <div class='controls'> |
32 | | - {{ context.status.menu()|u }} |
33 | | - </div> |
34 | | - </div> |
35 | | - </div> <!-- row-fluid --> |
36 | 21 |
|
37 | | - <!-- Superseder & nosy list --> |
38 | | - <div class='row-fluid'> |
39 | | - <div class='control-group span6'> |
40 | | - <label class='control-label' for='superseder'>{{ i18n.gettext('Superseder')|u }}</label> |
41 | | - <div class='controls'> |
42 | | - <input type='text' name='superseder' id='superseder' value='{{ context.superseder.plain()|u|e }}'> |
43 | | - </div> |
44 | | - </div> |
45 | | - <div class='control-group span6'> |
46 | | - <label class='control-label' for='nosylist'>{{ i18n.gettext('Nosy list')|u }}</label> |
47 | | - <div class='controls'> |
48 | | - <input type='text' name='nosy' id='nosylist' value='{{ context.nosy.plain()|u|e }}'> |
| 22 | + <!-- Superseder & nosy list --> |
| 23 | + <div class='form-group row'> |
| 24 | + <label class='col-3 col-form-label' for='superseder'>{{ i18n.gettext('Superseder')|u }}</label> |
| 25 | + <div class='col-3'> |
| 26 | + <input class="form-control" type='text' name='superseder' id='superseder' value='{{ context.superseder.plain()|u|e }}'> |
| 27 | + </div> |
| 28 | + <label class='col-3 col-form-label' for='nosylist'>{{ i18n.gettext('Nosy list')|u }}</label> |
| 29 | + <div class='col-3'> |
| 30 | + <input class="form-control" type='text' name='nosy' id='nosylist' value='{{ context.nosy.plain()|u|e }}'> |
| 31 | + </div> |
49 | 32 | </div> |
50 | | - </div> |
51 | | - </div> <!-- row-fluid --> |
52 | 33 |
|
53 | | - <!-- Assigned to & keywords --> |
54 | | - <div class='row-fluid'> |
55 | | - <div class='control-group span6'> |
56 | | - <label class='control-label' for='assignedto'>{{ i18n.gettext('Assigned to')|u }}</label> |
57 | | - <div class='controls'> |
58 | | - {{ context.assignedto.menu()|u }} |
59 | | - </div> |
60 | | - </div> |
61 | | - <div class='control-group span6'> |
62 | | - <label class='control-label' for='keyword'>{{ i18n.gettext('Keywords')|u }}</label> |
63 | | - <div class='controls'> |
64 | | - <input type='text' name='keyword' id='keyword' value='{{ context.keyword.plain()|u|e }}'> |
65 | | - </div> |
66 | | - </div> |
67 | | - </div> <!-- row-fluid --> |
| 34 | + <!-- Assigned to & keywords --> |
| 35 | + <div class='form-group row'> |
| 36 | + <label class='col-3 col-form-label' for='assignedto'>{{ i18n.gettext('Assigned to')|u }}</label> |
| 37 | + <div class='col-3'> |
| 38 | + {{ context.assignedto.menu(html_kwargs={"class": "custom-select"})|u }} |
| 39 | + </div> |
| 40 | + <label class='col-3 col-form-label' for='keyword'>{{ i18n.gettext('Keywords')|u }}</label> |
| 41 | + <div class='col-3'> |
| 42 | + <input class="form-control" type='text' name='keyword' id='keyword' value='{{ context.keyword.plain()|u|e }}'> |
| 43 | + </div> |
| 44 | + </div> <!-- form-group row --> |
68 | 45 |
|
69 | | - <!-- Note --> |
70 | | - <div class='row-fluid'> |
71 | | - <div class='control-group'> |
72 | | - <label class='control-label' for='change_note'>{{ i18n.gettext('Change note')|u }}</label> |
73 | | - <div class='controls'> |
74 | | - <textarea name="@note" rows="5" class='input-xxlarge' id='change_note'></textarea> |
75 | | - </div> |
76 | | - </div> |
77 | | - </div> <!-- row-fluid --> |
| 46 | + <!-- Note --> |
| 47 | + <div class='form-group row'> |
| 48 | + <label class='col-3 col-form-label' for='change_note'>{{ i18n.gettext('Change note')|u }}</label> |
| 49 | + <div class='col-9'> |
| 50 | + <textarea class="form-control" name="@note" rows="5" class='input-lg' id='change_note'></textarea> |
| 51 | + </div> |
| 52 | + </div> <!-- form-group row --> |
78 | 53 |
|
79 | | - <!-- File upload --> |
80 | | - <div class='row-fluid'> |
81 | | - <div class='control-group'> |
82 | | - <label class='control-label' for='file_upload'>{{ i18n.gettext('File')|u }}</label> |
83 | | - <div class='controls'> |
84 | | - <input type="file" name="@file" id='file_upload'> |
85 | | - </div> |
86 | | - </div> |
87 | | - </div> <!-- row-fluid --> |
88 | | - </fieldset> |
89 | | - <div class='form-actions'> |
90 | | - {{ context.submit() }} |
91 | | - {% if context.id %} |
92 | | - <a href='{{ context.copy_url() }}'>{{ i18n.gettext('Make a copy')|u }}</a> |
93 | | - {% endif %} |
94 | | - </div> |
95 | | - <input type="hidden" name="@template" value="item"> |
96 | | - <input type="hidden" name="@required" value="title,priority"> |
| 54 | + <!-- File upload --> |
| 55 | + <div class='form-group row'> |
| 56 | + <label class='col-3 col-form-label' for='file_upload'>{{ i18n.gettext('File')|u }}</label> |
| 57 | + <div class='col-3'> |
| 58 | + <input class="form-control-file" type="file" name="@file" id='file_upload'> |
| 59 | + </div> |
| 60 | + </div> <!-- form-group row --> |
| 61 | + </fieldset> |
| 62 | + <div class='form-actions'> |
| 63 | + {{ context.submit(html_kwargs={"class": "btn btn-primary"}) }} |
| 64 | + {% if context.id %} |
| 65 | + <a href='{{ context.copy_url() }}'>{{ i18n.gettext('Make a copy')|u }}</a> |
| 66 | + {% endif %} |
| 67 | + </div> |
| 68 | + <input type="hidden" name="@template" value="item"> |
| 69 | + <input type="hidden" name="@required" value="title,priority"> |
97 | 70 | </form> |
0 commit comments