From bd748e5da7b5150e002890499e9e31e4466120ba Mon Sep 17 00:00:00 2001
From: Thomas Citharel <tcit@tcit.fr>
Date: Fri, 25 May 2018 17:37:48 +0200
Subject: [PATCH] Split the create poll (step 1) template into parts

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
---
 js/app/create_poll.js                         |   4 +-
 tpl/create_poll.tpl                           | 353 +-----------------
 tpl/part/create_poll/customized_url.tpl       |  43 +++
 tpl/part/create_poll/email_collection.tpl     |  44 +++
 tpl/part/create_poll/password.tpl             |  60 +++
 tpl/part/create_poll/permissions.tpl          |  45 +++
 .../create_poll/receive_notifications.tpl     |  24 ++
 tpl/part/create_poll/value_max.tpl            |  38 ++
 tpl/part/create_poll_collapsed.tpl            |  18 +
 tpl/part/create_poll_principal.tpl            | 109 ++++++
 10 files changed, 385 insertions(+), 353 deletions(-)
 create mode 100644 tpl/part/create_poll/customized_url.tpl
 create mode 100644 tpl/part/create_poll/email_collection.tpl
 create mode 100644 tpl/part/create_poll/password.tpl
 create mode 100644 tpl/part/create_poll/permissions.tpl
 create mode 100644 tpl/part/create_poll/receive_notifications.tpl
 create mode 100644 tpl/part/create_poll/value_max.tpl
 create mode 100644 tpl/part/create_poll_collapsed.tpl
 create mode 100644 tpl/part/create_poll_principal.tpl

diff --git a/js/app/create_poll.js b/js/app/create_poll.js
index 295ab476..73681121 100644
--- a/js/app/create_poll.js
+++ b/js/app/create_poll.js
@@ -60,9 +60,9 @@ $(document).ready(function () {
      */
     $("#use_ValueMax").change(function () {
         if ($(this).prop("checked")) {
-            $("#ValueMax").removeClass("hidden");
+            $("#valueMaxWrapper").removeClass("hidden");
         } else {
-            $("#ValueMax").addClass("hidden");
+            $("#valueMaxWrapper").addClass("hidden");
         }
     });
 
diff --git a/tpl/create_poll.tpl b/tpl/create_poll.tpl
index 05efe44d..0ff6990b 100644
--- a/tpl/create_poll.tpl
+++ b/tpl/create_poll.tpl
@@ -6,7 +6,6 @@
     <script src="{"js/app/create_poll.js"|resource}" type="text/javascript"></script>
     <link rel="stylesheet" href="{"css/app/create_poll.css"|resource}">
     <link rel="stylesheet" href="{"css/simplemde.min.css"|resource}">
-
 {/block}
 
 {block name=main}
@@ -14,357 +13,9 @@
         <div class="col-md-8 col-md-offset-2">
             <form name="formulaire" id="formulaire" action="" method="POST" class="form-horizontal" role="form">
 
-                <div class="alert alert-info">
-                    <p>
-                        {__('Step 1', 'You are in the poll creation section.')}<br/>
-                        {__('Step 1', 'Required fields cannot be left blank.')}
-                    </p>
-                </div>
-
-                <div class="form-group {$errors['name']['class']}">
-                    <label for="yourname" class="col-sm-4 control-label">{__('Generic', 'Your name')} *</label>
-
-                    <div class="col-sm-8">
-                        {if $useRemoteUser}
-                            <input type="hidden" name="name" value="{$form->admin_name}" />{$form->admin_name}
-                        {else}
-                            <input id="yourname" type="text" required name="name" class="form-control" {$errors['name']['aria']} value="{$poll_name|html}" />
-                        {/if}
-                    </div>
-                </div>
-                {if !empty($errors['name']['msg'])}
-                    <div class="alert alert-danger">
-                        <p id="poll_title_error">
-                            {$errors['name']['msg']}
-                        </p>
-                    </div>
-                {/if}
-
-                {if $use_smtp}
-                <div class="form-group {$errors['email']['class']}">
-                    <label for="email" class="col-sm-4 control-label">
-                        {__('Generic', 'Your email address')} *<br/>
-                        <span class="small">{__('Generic', '(in the format name@mail.com)')}</span>
-                    </label>
-
-                    <div class="col-sm-8">
-                        {if $useRemoteUser}
-                            <input type="hidden" name="mail" value="{$form->admin_mail}">{$form->admin_mail}
-                        {else}
-                            <input id="email" required type="email" name="mail" class="form-control" {$errors['email']['aria']} value="{$poll_mail|html}" />
-                        {/if}
-                    </div>
-                </div>
-                {if !empty($errors['email']['msg'])}
-                <div class="alert alert-danger">
-                    <p id="poll_title_error">
-                        {$errors['email']['msg']}
-                    </p>
-                </div>
-                {/if}
-
-                {/if}
-
-                <div class="form-group {$errors['title']['class']}">
-                    <label for="poll_title" class="col-sm-4 control-label">{__('Step 1', 'Poll title')} *</label>
-
-                    <div class="col-sm-8">
-                        <input id="poll_title" type="text" name="title" class="form-control" required {$errors['title']['aria']}
-                               value="{$poll_title|html}"/>
-                    </div>
-                </div>
-                {if !empty($errors['title']['msg'])}
-                    <div class="alert alert-danger">
-                        <p id="poll_title_error">
-                            {$errors['title']['msg']}
-                        </p>
-                    </div>
-                {/if}
-
-                <div class="form-group {$errors['description']['class']}">
-                    <label for="poll_comments" class="col-sm-4 control-label">{__('Generic', 'Description')}</label>
-
-                    <div class="col-sm-8">
-                        {include 'part/description_markdown.tpl'}
-                        <div>
-                            <textarea id="poll_comments" name="description"
-                                      class="form-control" {$errors['description']['aria']}
-                                      rows="5">{$poll_description|escape}</textarea>
-                        </div>
-                    </div>
-                </div>
-                {if !empty($errors['description']['msg'])}
-                    <div class="alert alert-danger">
-                        <p id="poll_title_error">
-                            {$errors['description']['msg']}
-                        </p>
-                    </div>
-                {/if}
-
-                {* Optionnal parameters *}
-                <div class="col-sm-offset-3 col-sm-1 hidden-xs">
-                    <p class="lead">
-                        <i class="glyphicon glyphicon-cog" aria-hidden="true"></i>
-                    </p>
-                </div>
-                <div class="col-sm-8 col-xs-12">
-                    <span class="lead visible-xs-inline">
-                        <i class="glyphicon glyphicon-cog" aria-hidden="true"></i>
-                    </span>
-                    <a class="optionnal-parameters {if !$advanced_errors}collapsed{/if} lead" role="button" data-toggle="collapse" href="#optionnal" aria-expanded="{if $advanced_errors}false{else}true{/if}" aria-controls="optionnal">
-                        {__('Step 1', "Optional parameters")}
-                        <i class="caret" aria-hidden="true"></i>
-                        <i class="caret caret-up" aria-hidden="true"></i>
-                    </a>
-
-                </div>
-                <div class="clearfix"></div>
-
-
-                <div class="collapse{if $advanced_errors} in{/if}" id="optionnal" {if $advanced_errors}aria-expanded="true"{/if}>
-                {* Poll identifier *}
-
-                    <div class="form-group {$errors['customized_url']['class']}">
-
-                        {* Value MAX *}
-                        <div class="form-group {$errors['ValueMax']['class']}">
-                                    <label for="use_valueMax" class="col-sm-4 control-label">
-                        {__('Step 1', 'Value Max')}<br/>
-                                    </label>
-                                    <div class="col-sm-8">
-                                        <div class="checkbox">
-                                            <label>
-                                                <input id="use_ValueMax" name="use_ValueMax" type="checkbox" {if $use_ValueMax}checked{/if}>
-                                    {__('Step 1', "Limit the amount of voters per option")}
-                                </label>
-                                        </div>
-                                    </div>
-                        </div>
-
-                        <div class="form-group {$errors['ValueMax']['class']}">
-                            <div id="ValueMax" {if !$use_ValueMax}class="hidden"{/if}>
-
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <label>
-                                            <input id="ValueMax" type="number" min="0" name="ValueMax" value="{$ValueMax|html}" {$errors['ValueMax']['aria']}>
-
-                                            {__('Step 1', "ValueMax instructions")}
-                                    </label>
-
-                                </div>
-                            </div>
-                       </div>
-
-                        {if !empty($errors['ValueMax']['msg'])}
-                            <div class="alert alert-danger">
-                                <p id="poll_customized_url_error">
-                                    {$errors['ValueMax']['msg']}
-                                </p>
-                            </div>
-                        {/if}
-
-
-                        {* Poll identifier *}
-                        <div class="form-group {$errors['customized_url']['class']}">
-                            <label for="poll_id" class="col-sm-4 control-label">
-                                {__('Step 1', 'Poll id')}<br/>
-                            </label>
-
-                            <div class="col-sm-8">
-                                <div class="checkbox">
-                                    <label>
-                                        <input id="use_customized_url" name="use_customized_url" type="checkbox" {if $use_customized_url}checked{/if}/>
-                                        {__('Step 1', 'Customize the URL')}
-                                    </label>
-                                </div>
-                            </div>
-                        </div>
-                        <div id="customized_url_options" {if !$use_customized_url}class="hidden"{/if}>
-                            <div class="form-group {$errors['customized_url']['class']}">
-                                <label for="customized_url" class="col-sm-4 control-label">
-                                    <span id="pollUrlDesc" class="small">{__('Step 1', 'Poll id rules')}</span>
-                                </label>
-                                <div class="col-sm-8">
-                                    <div class="input-group">
-                                        <span class="input-group-addon">
-                                            {$SERVER_URL}
-                                        </span>
-                                        <input id="customized_url" type="text" name="customized_url" class="form-control" {$errors['customized_url']['aria']}
-                                               value="{$customized_url|html}" aria-describedBy="pollUrlDesc" maxlength="64"
-                                               pattern="[A-Za-z0-9-]+"/>
-                                    </div>
-                                    <span class="help-block text-warning">{__('Step 1', 'Poll id warning')}</span>
-                                </div>
-                            </div>
-                            {if !empty($errors['customized_url']['msg'])}
-                                <div class="alert alert-danger">
-                                    <p id="poll_customized_url_error">
-                                        {$errors['customized_url']['msg']}
-                                    </p>
-                                </div>
-                            {/if}
-                        </div>
-
-                        {* Password *}
-
-                        <div class="form-group">
-                            <label for="poll_id" class="col-sm-4 control-label">
-                                {__('Step 1', 'Poll password')}
-                            </label>
-
-                            <div class="col-sm-8">
-                                <div class="checkbox">
-                                    <label>
-                                        <input type="checkbox" name="use_password" {if $poll_use_password}checked{/if}
-                                               id="use_password">
-                                        {__('Step 1', "Use a password to restrict access")}
-                                    </label>
-                                </div>
-                            </div>
-
-                            <div id="password_options"{if !$poll_use_password} class="hidden"{/if}>
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <div class="input-group">
-                                        <input id="poll_password" type="password" name="password" class="form-control" {$errors['password']['aria']}/>
-                                        <label for="poll_password" class="input-group-addon">{__('Step 1', 'Password choice')}</label>
-                                    </div>
-                                </div>
-                                {if !empty($errors['password']['msg'])}
-                                    <div class="alert alert-danger">
-                                        <p id="poll_password_error">
-                                            {$errors['password']['msg']}
-                                        </p>
-                                    </div>
-                                {/if}
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <div class="input-group">
-                                        <input id="poll_password_repeat" type="password" name="password_repeat" class="form-control" {$errors['password_repeat']['aria']}/>
-                                        <label for="poll_password_repeat" class="input-group-addon">{__('Step 1', 'Password confirmation')}</label>
-                                    </div>
-                                </div>
-                                {if !empty($errors['password_repeat']['msg'])}
-                                    <div class="alert alert-danger">
-                                        <p id="poll_password_repeat_error">
-                                            {$errors['password_repeat']['msg']}
-                                        </p>
-                                    </div>
-                                {/if}
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <div class="checkbox">
-                                        <label>
-                                            <input type="checkbox" name="results_publicly_visible"
-                                                   {if $poll_results_publicly_visible}checked{/if} id="results_publicly_visible"/>
-                                            {__('Step 1', "The results are publicly visible")}
-                                        </label>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="form-group">
-                            <label for="poll_id" class="col-sm-4 control-label">
-                                {__('Step 1', 'Permissions')}
-                            </label>
-                            <div class="col-sm-8">
-                                <div class="radio">
-                                    <label>
-                                        <input type="radio" name="editable" id="editableByAll" {if $poll_editable==constant("Framadate\Editable::EDITABLE_BY_ALL")}checked{/if} value="{constant("Framadate\Editable::EDITABLE_BY_ALL")}">
-                                        {__('Step 1', 'All voters can modify any vote')}
-                                    </label>
-                                    <label>
-                                        <input type="radio" name="editable" {if $poll_editable==constant("Framadate\Editable::EDITABLE_BY_OWN")}checked{/if} value="{constant("Framadate\Editable::EDITABLE_BY_OWN")}">
-                                        {__('Step 1', 'Voters can modify their vote themselves')}
-                                    </label>
-                                    <label>
-                                        <input type="radio" name="editable" {if empty($poll_editable) or $poll_editable==constant("Framadate\Editable::NOT_EDITABLE")}checked{/if} value="{constant("Framadate\Editable::NOT_EDITABLE")}">
-                                        {__('Step 1', 'Votes cannot be modified')}
-                                    </label>
-                                </div>
-                            </div>
-                        </div>
-
-
-                        {if $use_smtp}
-                            <div class="form-group">
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <div class="checkbox">
-                                        <label>
-                                            <input type="checkbox" name="receiveNewVotes" {if $poll_receiveNewVotes}checked{/if}
-                                            id="receiveNewVotes">
-                                            {__('Step 1', 'To receive an email for each new vote')}
-                                        </label>
-                                    </div>
-                                </div>
-                            </div>
-                            <div class="form-group">
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <div class="checkbox">
-                                        <label>
-                                            <input type="checkbox" name="receiveNewComments" {if $poll_receiveNewComments}checked{/if}
-                                            id="receiveNewComments">
-                                            {__('Step 1', 'To receive an email for each new comment')}
-                                        </label>
-                                    </div>
-                                </div>
-                            </div>
-                        {/if}
-
-                        <div class="form-group">
-                            <div class="col-sm-offset-4 col-sm-8">
-                                <div class="checkbox">
-                                    <label>
-                                        <input type="checkbox" name="hidden" {if $poll_hidden}checked{/if}
-                                        id="hidden">
-                                        {__('Step 1', "Only the poll maker can see the poll's results")}
-                                    </label>
-                                </div>
-                                <div id="hiddenWithBadEditionModeError" class="alert alert-danger hidden">
-                                    <p>
-                                        {__('Error', "You can't create a poll with hidden results with the following edition option:")}"{__('Step 1', 'All voters can modify any vote')}"
-                                    </p>
-                                </div>
-                            </div>
-                        </div>
-
-                        {* Collect users email *}
-
-			<div class="form-group">
-                            <label for="poll_id" class="col-sm-4 control-label">
-                                {__('Step 1', 'Collect voters email')}
-                            </label>
-                            <div class="col-sm-8">
-                                <div class="radio">
-                                    <label>
-                                        <input type="radio" name="collect_users_mail" id="no_collect" {if $collect_users_mail==constant("Framadate\CollectMail::NO_COLLECT")}checked{/if} value="{constant("Framadate\CollectMail::NO_COLLECT")}">
-                                        {__('Step 1', 'Email addresses are not collected')}
-                                    </label>
-                                    <label>
-                                        <input type="radio" name="collect_users_mail" {if $collect_users_mail==constant("Framadate\CollectMail::COLLECT")}checked{/if} value="{constant("Framadate\CollectMail::COLLECT")}">
-                                        {__('Step 1', 'Email addresses are collected but not required')}
-                                    </label>
-                                    <label>
-                                        <input type="radio" name="collect_users_mail" {if $collect_users_mail==constant("Framadate\CollectMail::COLLECT_REQUIRED")}checked{/if} value="{constant("Framadate\CollectMail::COLLECT_REQUIRED")}">
-                                        {__('Step 1', 'Email addresses are required')}
-                                    </label>
-				    <label>
-                                        <input type="radio" disabled name="collect_users_mail" {if $collect_users_mail==constant("Framadate\CollectMail::COLLECT_REQUIRED_VERIFIED")}checked{/if} value="{constant("Framadate\CollectMail::COLLECT_REQUIRED_VERIFIED")}">
-                                        {__('Step 1', 'Email addresses are required and verified')}
-                                    </label>
-                                </div>
-                            </div>
-                        </div>
-
-                            <div id="collect_warning" class="hidden">
-                                <div class="col-sm-offset-4 col-sm-8">
-                                    <label class="bg-danger"><i class="glyphicon glyphicon-alert"> </i> {__('Step 1', 'Warning: anyone can access the polled users email addresses since all voters can modify any vote. You should restrict permission rules.')} </label>
-                                </div>
-                            </div>
-                        </div>
-
-                    </div> {* END div.form-group *}
-
-                </div> {* END div.collapse *}
 
+                {include 'part/create_poll_principal.tpl'}
+                {include 'part/create_poll_collapsed.tpl'}
 
                 <p class="text-right">
                     <button name="{$goToStep2}" value="{$poll_type}" type="submit"
diff --git a/tpl/part/create_poll/customized_url.tpl b/tpl/part/create_poll/customized_url.tpl
new file mode 100644
index 00000000..40f6a75d
--- /dev/null
+++ b/tpl/part/create_poll/customized_url.tpl
@@ -0,0 +1,43 @@
+{* Poll identifier *}
+<div class="form-group {$errors['customized_url']['class']}">
+    <label for="customized_url_options" class="col-sm-4 control-label">
+        {__('Step 1', 'Poll id')}<br/>
+    </label>
+
+    <div class="col-sm-8">
+        <div class="checkbox">
+            <label>
+                <input id="use_customized_url" name="use_customized_url" type="checkbox"
+                       {if $use_customized_url}checked{/if}/>
+                {__('Step 1', 'Customize the URL')}
+            </label>
+        </div>
+    </div>
+</div>
+<div id="customized_url_options" {if !$use_customized_url}class="hidden"{/if}>
+    <div class="form-group {$errors['customized_url']['class']}">
+        <label for="customized_url" class="col-sm-4 control-label">
+            <span id="pollUrlDesc" class="small">{__('Step 1', 'Poll id rules')}</span>
+        </label>
+        <div class="col-sm-8">
+            <div class="input-group">
+                                    <span class="input-group-addon">
+                                        {$SERVER_URL}
+                                    </span>
+                <input id="customized_url" type="text" name="customized_url"
+                       class="form-control" {$errors['customized_url']['aria']}
+                       value="{$customized_url|html}" aria-describedBy="pollUrlDesc"
+                       maxlength="64"
+                       pattern="[A-Za-z0-9-]+"/>
+            </div>
+            <span class="help-block text-warning">{__('Step 1', 'Poll id warning')}</span>
+        </div>
+    </div>
+    {if !empty($errors['customized_url']['msg'])}
+        <div class="alert alert-danger">
+            <p id="poll_customized_url_error">
+                {$errors['customized_url']['msg']}
+            </p>
+        </div>
+    {/if}
+</div>
diff --git a/tpl/part/create_poll/email_collection.tpl b/tpl/part/create_poll/email_collection.tpl
new file mode 100644
index 00000000..eba80a95
--- /dev/null
+++ b/tpl/part/create_poll/email_collection.tpl
@@ -0,0 +1,44 @@
+{* Collect users email *}
+
+<div class="form-group">
+    <label for="collect_voters_email" class="col-sm-4 control-label">
+        {__('Step 1', 'Collect voters email')}
+    </label>
+    <div class="col-sm-8" id="collect_voters_email">
+        <div class="radio">
+            <label>
+                <input type="radio" name="collect_users_mail" id="no_collect"
+                       {if $collect_users_mail==constant("Framadate\CollectMail::NO_COLLECT")}checked{/if}
+                       value="{constant("Framadate\CollectMail::NO_COLLECT")}">
+                {__('Step 1', 'Email addresses are not collected')}
+            </label>
+            <label>
+                <input type="radio" name="collect_users_mail"
+                       {if $collect_users_mail==constant("Framadate\CollectMail::COLLECT")}checked{/if}
+                       value="{constant("Framadate\CollectMail::COLLECT")}">
+                {__('Step 1', 'Email addresses are collected but not required')}
+            </label>
+            <label>
+                <input type="radio" name="collect_users_mail"
+                       {if $collect_users_mail==constant("Framadate\CollectMail::COLLECT_REQUIRED")}checked{/if}
+                       value="{constant("Framadate\CollectMail::COLLECT_REQUIRED")}">
+                {__('Step 1', 'Email addresses are required')}
+            </label>
+            <label>
+                <input type="radio" disabled name="collect_users_mail"
+                       {if $collect_users_mail==constant("Framadate\CollectMail::COLLECT_REQUIRED_VERIFIED")}checked{/if}
+                       value="{constant("Framadate\CollectMail::COLLECT_REQUIRED_VERIFIED")}">
+                {__('Step 1', 'Email addresses are required and verified')}
+            </label>
+        </div>
+    </div>
+</div>
+
+<div id="collect_warning" class="hidden">
+    <div class="col-sm-offset-4 col-sm-8">
+        <label class="bg-danger">
+            <i class="glyphicon glyphicon-alert"></i>
+            {__('Step 1', 'Warning: anyone can access the polled users email addresses since all voters can modify any vote. You should restrict permission rules.')}
+        </label>
+    </div>
+</div> {* END div.form-group *}
diff --git a/tpl/part/create_poll/password.tpl b/tpl/part/create_poll/password.tpl
new file mode 100644
index 00000000..9d6fb1d3
--- /dev/null
+++ b/tpl/part/create_poll/password.tpl
@@ -0,0 +1,60 @@
+{* Password *}
+
+<div class="form-group">
+    <label for="poll_id" class="col-sm-4 control-label">
+        {__('Step 1', 'Poll password')}
+    </label>
+
+    <div class="col-sm-8">
+        <div class="checkbox">
+            <label>
+                <input type="checkbox" name="use_password" {if $poll_use_password}checked{/if}
+                       id="use_password">
+                {__('Step 1', "Use a password to restrict access")}
+            </label>
+        </div>
+    </div>
+
+    <div id="password_options"{if !$poll_use_password} class="hidden"{/if}>
+        <div class="col-sm-offset-4 col-sm-8">
+            <div class="input-group">
+                <input id="poll_password" type="password" name="password"
+                       class="form-control" {$errors['password']['aria']}/>
+                <label for="poll_password"
+                       class="input-group-addon">{__('Step 1', 'Password choice')}</label>
+            </div>
+        </div>
+        {if !empty($errors['password']['msg'])}
+            <div class="alert alert-danger">
+                <p id="poll_password_error">
+                    {$errors['password']['msg']}
+                </p>
+            </div>
+        {/if}
+        <div class="col-sm-offset-4 col-sm-8">
+            <div class="input-group">
+                <input id="poll_password_repeat" type="password" name="password_repeat"
+                       class="form-control" {$errors['password_repeat']['aria']}/>
+                <label for="poll_password_repeat"
+                       class="input-group-addon">{__('Step 1', 'Password confirmation')}</label>
+            </div>
+        </div>
+        {if !empty($errors['password_repeat']['msg'])}
+            <div class="alert alert-danger">
+                <p id="poll_password_repeat_error">
+                    {$errors['password_repeat']['msg']}
+                </p>
+            </div>
+        {/if}
+        <div class="col-sm-offset-4 col-sm-8">
+            <div class="checkbox">
+                <label>
+                    <input type="checkbox" name="results_publicly_visible"
+                           {if $poll_results_publicly_visible}checked{/if}
+                           id="results_publicly_visible"/>
+                    {__('Step 1', "The results are publicly visible")}
+                </label>
+            </div>
+        </div>
+    </div>
+</div>
diff --git a/tpl/part/create_poll/permissions.tpl b/tpl/part/create_poll/permissions.tpl
new file mode 100644
index 00000000..3aa88a64
--- /dev/null
+++ b/tpl/part/create_poll/permissions.tpl
@@ -0,0 +1,45 @@
+<div class="form-group">
+    <label for="poll_id" class="col-sm-4 control-label">
+        {__('Step 1', 'Permissions')}
+    </label>
+    <div class="col-sm-8">
+        <div class="radio">
+            <label>
+                <input type="radio" name="editable" id="editableByAll"
+                       {if $poll_editable==constant("Framadate\Editable::EDITABLE_BY_ALL")}checked{/if}
+                       value="{constant("Framadate\Editable::EDITABLE_BY_ALL")}">
+                {__('Step 1', 'All voters can modify any vote')}
+            </label>
+            <label>
+                <input type="radio" name="editable"
+                       {if $poll_editable==constant("Framadate\Editable::EDITABLE_BY_OWN")}checked{/if}
+                       value="{constant("Framadate\Editable::EDITABLE_BY_OWN")}">
+                {__('Step 1', 'Voters can modify their vote themselves')}
+            </label>
+            <label>
+                <input type="radio" name="editable"
+                       {if empty($poll_editable) or $poll_editable==constant("Framadate\Editable::NOT_EDITABLE")}checked{/if}
+                       value="{constant("Framadate\Editable::NOT_EDITABLE")}">
+                {__('Step 1', 'Votes cannot be modified')}
+            </label>
+        </div>
+    </div>
+</div>
+
+<div class="form-group">
+    <div class="col-sm-offset-4 col-sm-8">
+        <div class="checkbox">
+            <label>
+                <input type="checkbox" name="hidden" {if $poll_hidden}checked{/if}
+                       id="hidden">
+                {__('Step 1', "Only the poll maker can see the poll's results")}
+            </label>
+        </div>
+        <div id="hiddenWithBadEditionModeError" class="alert alert-danger hidden">
+            <p>
+                {__('Error', "You can't create a poll with hidden results with the following edition option:")}
+                "{__('Step 1', 'All voters can modify any vote')}"
+            </p>
+        </div>
+    </div>
+</div>
diff --git a/tpl/part/create_poll/receive_notifications.tpl b/tpl/part/create_poll/receive_notifications.tpl
new file mode 100644
index 00000000..adbb7d0d
--- /dev/null
+++ b/tpl/part/create_poll/receive_notifications.tpl
@@ -0,0 +1,24 @@
+<div class="form-group">
+    <div class="col-sm-offset-4 col-sm-8">
+        <div class="checkbox">
+            <label>
+                <input type="checkbox" name="receiveNewVotes"
+                       {if $poll_receiveNewVotes}checked{/if}
+                       id="receiveNewVotes">
+                {__('Step 1', 'To receive an email for each new vote')}
+            </label>
+        </div>
+    </div>
+</div>
+<div class="form-group">
+    <div class="col-sm-offset-4 col-sm-8">
+        <div class="checkbox">
+            <label>
+                <input type="checkbox" name="receiveNewComments"
+                       {if $poll_receiveNewComments}checked{/if}
+                       id="receiveNewComments">
+                {__('Step 1', 'To receive an email for each new comment')}
+            </label>
+        </div>
+    </div>
+</div>
diff --git a/tpl/part/create_poll/value_max.tpl b/tpl/part/create_poll/value_max.tpl
new file mode 100644
index 00000000..dc9e60f2
--- /dev/null
+++ b/tpl/part/create_poll/value_max.tpl
@@ -0,0 +1,38 @@
+{* Value MAX *}
+<div class="form-group {$errors['ValueMax']['class']}">
+    <label for="use_valueMax" class="col-sm-4 control-label">
+        {__('Step 1', 'Value Max')}<br/>
+    </label>
+    <div class="col-sm-8">
+        <div class="checkbox">
+            <label>
+                <input id="use_ValueMax" name="use_ValueMax" type="checkbox"
+                       {if $use_ValueMax}checked{/if}>
+                {__('Step 1', "Limit the amount of voters per option")}
+            </label>
+        </div>
+    </div>
+</div>
+
+<div class="form-group {$errors['ValueMax']['class']}">
+    <div {if !$use_ValueMax}class="hidden"{/if} id="valueMaxWrapper">
+
+        <div class="col-sm-offset-4 col-sm-8">
+            <label>
+                <input id="ValueMax" type="number" min="1" name="ValueMax"
+                       value="{$ValueMax|html}" {$errors['ValueMax']['aria']}>
+
+                {__('Step 1', "ValueMax instructions")}
+            </label>
+
+        </div>
+    </div>
+</div>
+
+{if !empty($errors['ValueMax']['msg'])}
+    <div class="alert alert-danger">
+        <p id="poll_customized_url_error">
+            {$errors['ValueMax']['msg']}
+        </p>
+    </div>
+{/if}
diff --git a/tpl/part/create_poll_collapsed.tpl b/tpl/part/create_poll_collapsed.tpl
new file mode 100644
index 00000000..ebad06c3
--- /dev/null
+++ b/tpl/part/create_poll_collapsed.tpl
@@ -0,0 +1,18 @@
+<div class="collapse{if $advanced_errors} in{/if}" id="optionnal" {if $advanced_errors}aria-expanded="true"{/if}>
+
+    {include 'part/create_poll/value_max.tpl'}
+
+    {include 'part/create_poll/customized_url.tpl'}
+
+    {include 'part/create_poll/password.tpl'}
+
+    {include 'part/create_poll/permissions.tpl'}
+
+
+    {if $use_smtp}
+        {include 'part/create_poll/receive_notifications.tpl'}
+    {/if}
+
+    {include 'part/create_poll/email_collection.tpl'}
+
+</div> {* END div.collapse *}
diff --git a/tpl/part/create_poll_principal.tpl b/tpl/part/create_poll_principal.tpl
new file mode 100644
index 00000000..e0247dd4
--- /dev/null
+++ b/tpl/part/create_poll_principal.tpl
@@ -0,0 +1,109 @@
+<div class="alert alert-info">
+    <p>
+        {__('Step 1', 'You are in the poll creation section.')}<br/>
+        {__('Step 1', 'Required fields cannot be left blank.')}
+    </p>
+</div>
+
+<div class="form-group {$errors['name']['class']}">
+    <label for="yourname" class="col-sm-4 control-label">{__('Generic', 'Your name')} *</label>
+
+    <div class="col-sm-8">
+        {if $useRemoteUser}
+            <input type="hidden" name="name" value="{$form->admin_name}" />
+            {$form->admin_name}
+        {else}
+            <input id="yourname" type="text" required name="name"
+                   class="form-control" {$errors['name']['aria']} value="{$poll_name|html}"/>
+        {/if}
+    </div>
+</div>
+{if !empty($errors['name']['msg'])}
+    <div class="alert alert-danger">
+        <p id="poll_title_error">
+            {$errors['name']['msg']}
+        </p>
+    </div>
+{/if}
+
+{if $use_smtp}
+    <div class="form-group {$errors['email']['class']}">
+        <label for="email" class="col-sm-4 control-label">
+            {__('Generic', 'Your email address')} *<br/>
+            <span class="small">{__('Generic', '(in the format name@mail.com)')}</span>
+        </label>
+
+        <div class="col-sm-8">
+            {if $useRemoteUser}
+                <input type="hidden" name="mail" value="{$form->admin_mail}">{$form->admin_mail}
+            {else}
+                <input id="email" required type="email" name="mail"
+                       class="form-control" {$errors['email']['aria']} value="{$poll_mail|html}"/>
+            {/if}
+        </div>
+    </div>
+    {if !empty($errors['email']['msg'])}
+        <div class="alert alert-danger">
+            <p id="poll_title_error">
+                {$errors['email']['msg']}
+            </p>
+        </div>
+    {/if}
+
+{/if}
+
+<div class="form-group {$errors['title']['class']}">
+    <label for="poll_title" class="col-sm-4 control-label">{__('Step 1', 'Poll title')} *</label>
+
+    <div class="col-sm-8">
+        <input id="poll_title" type="text" name="title" class="form-control"
+               required {$errors['title']['aria']}
+               value="{$poll_title|html}"/>
+    </div>
+</div>
+{if !empty($errors['title']['msg'])}
+    <div class="alert alert-danger">
+        <p id="poll_title_error">
+            {$errors['title']['msg']}
+        </p>
+    </div>
+{/if}
+
+<div class="form-group {$errors['description']['class']}">
+    <label for="poll_comments" class="col-sm-4 control-label">{__('Generic', 'Description')}</label>
+
+    <div class="col-sm-8">
+        {include 'part/description_markdown.tpl'}
+        <div>
+            <textarea id="poll_comments" name="description" class="form-control" {$errors['description']['aria']} rows="5">{$poll_description|escape}</textarea>
+        </div>
+    </div>
+</div>
+{if !empty($errors['description']['msg'])}
+    <div class="alert alert-danger">
+        <p id="poll_title_error">
+            {$errors['description']['msg']}
+        </p>
+    </div>
+{/if}
+
+{* Optionnal parameters *}
+<div class="col-sm-offset-3 col-sm-1 hidden-xs">
+    <p class="lead">
+        <i class="glyphicon glyphicon-cog" aria-hidden="true"></i>
+    </p>
+</div>
+<div class="col-sm-8 col-xs-12">
+    <span class="lead visible-xs-inline">
+        <i class="glyphicon glyphicon-cog" aria-hidden="true"></i>
+    </span>
+    <a class="optionnal-parameters {if !$advanced_errors}collapsed{/if} lead" role="button"
+       data-toggle="collapse" href="#optionnal"
+       aria-expanded="{if $advanced_errors}false{else}true{/if}" aria-controls="optionnal">
+        {__('Step 1', "Optional parameters")}
+        <i class="caret" aria-hidden="true"></i>
+        <i class="caret caret-up" aria-hidden="true"></i>
+    </a>
+
+</div>
+<div class="clearfix"></div>
-- 
GitLab