Commit c6344781 authored by Chenu Denis's avatar Chenu Denis
Browse files

[feature] optionnal language logo

[feature] optionnal alt text for logo
parent 7f8c6e42
......@@ -16,7 +16,7 @@
<supportUrl>https://extensions.sondages.pro/themes-and-templates/skelvanilla-a11y-and-usuability/</supportUrl>
<copyright>Copyright (C) 2018-2020 Denis Chenu / Sondages Pro</copyright>
<license>GNU General Public License version 3 or later</license>
<version>10.8.3</version>
<version>10.9.0</version>
<apiVersion>3</apiVersion>
<description><![CDATA[<strong>LimeSurvey Bootstrap Vanilla Survey Theme with Accessibility and Options</strong><br>Base on vanilla theme, usage of more aria, fix some role and aria from core.<br>Allow usage of variations, only two variation in this lignt version.]]></description>
<extends>vanilla</extends>
......@@ -56,6 +56,8 @@
<questionhtag>off</questionhtag>
<brandlogo>off</brandlogo>
<brandlogofile>./files/logo.png</brandlogofile>
<brandlogobylang>off</brandlogobylang>
<brandlogoalt>""</brandlogoalt>
<brandlogoasbanner>off</brandlogoasbanner>
<surveylistlogo>on</surveylistlogo>
<surveylistlogofile>./files/survey_list_header.png</surveylistlogofile>
......
{#
LimeSurvey
Copyright (C) 2017-2022 The LimeSurvey Project Team / Denis Chenu
All rights reserved.
License: GNU/GPL License v2 or later, see LICENSE.php
LimeSurvey is free software. This version may have been modified pursuant
to the GNU General Public License, and as distributed it includes or
is derivative of works licensed under the GNU General Public License or
other free or open source software licenses.
See COPYRIGHT.php for copyright notices and details.
(¯`·._.·(¯`·._.· SkelVanilla survey template options ._.·´¯)·._.·´¯)
SkelVanilla survey template options
@version 10.9.0
#}
<div class="container-fluid" style="position:relative">
<div class="row">
......@@ -76,7 +67,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Hide the [This survey is anonymous] notice on the Welcome page.") }}</p>
<p class="help-block col-xs-12">{{ gT("Hide the [This survey is anonymous] notice on the Welcome page.") }}</p>
</div>
</div>
{# Clear all #}
......@@ -101,7 +92,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Hide the [Clear All/Delete my Response] from the top nav") }}</p>
<p class="help-block col-xs-12">{{ gT("Hide the [Clear All/Delete my Response] from the top nav") }}</p>
</div>
</div>
{# Show popups #}
......@@ -118,7 +109,7 @@
<option value="-1">{{ gT("Off") }}</option>
</select>
</div>
<p class="help-block col-xs-12">{{ gT("Setting to Popup will display error messages in a modal popup. If set to On Page or Off, then errors displayed on-screen after page refresh. Note setting Dynamic Validity to Yes will override these settings") }}</p>
<p class="help-block col-xs-12">{{ gT("Setting to Popup will display error messages in a modal popup. If set to On Page or Off, then errors displayed on-screen after page refresh. Note setting Dynamic Validity to Yes will override these settings") }}</p>
</div>
</div>
</div>
......@@ -194,7 +185,7 @@
</div>
</div>
<p class="help-block">{{ gT("If Show Popups is set to [On page], then display the list of errors in the error alert.") }}</p>
<p class="help-block">{{ gT("If Show Popups is set to [On page], then display the list of errors in the error alert.") }}</p>
</div>
</div>
</div>
......@@ -215,7 +206,7 @@
<option value="partial">{{ gT("For expression") }}</option>
<option value="disable">{{ gT("No") }}</option>
</select>
<p class="help-block">{{ gT("If set to [Yes], numeric fields with alpha input will have the alpha portion removed (eg ABC22 becomes 22)") }}</p>
<p class="help-block">{{ gT("If set to [Yes], numeric fields with alpha input will have the alpha portion removed (eg ABC22 becomes 22)") }}</p>
</div>
</div>
</div>
......@@ -244,7 +235,7 @@
</label>
{% endif %}
</div>
<p class="help-block">{{ gT("If set to [Yes], questions will be wrapped in H2 or H3 tags. For maximum compliance, use plain text for your questions") }}</p>
<p class="help-block">{{ gT("If set to [Yes], questions will be wrapped in H2 or H3 tags. For maximum compliance, use plain text for your questions") }}</p>
</div>
</div>
</div>
......@@ -299,7 +290,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Enable CSS to always show Table Header at top of table") }}</p>
<p class="help-block col-xs-12">{{ gT("Enable CSS to always show Table Header at top of table") }}</p>
</div>
</div>
</div>
......@@ -329,7 +320,7 @@
</div>
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Show Save My Response button in header.") }}</p>
<p class="help-block col-xs-12">{{ gT("Show Save My Response button in header.") }}</p>
</div>
<div class='col-sm-12 col-md-6 col-lg-4'>
<div class='form-group row'>
......@@ -353,7 +344,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Hide the Clear All/Delete my Response button in nav bar.") }}</p>
<p class="help-block col-xs-12">{{ gT("Hide the Clear All/Delete my Response button in nav bar.") }}</p>
</div>
</div>
<div class='col-sm-12 col-md-6 col-lg-4'>
......@@ -378,7 +369,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Show the survey question index (allows users to jump to specific part of a survey") }}</p>
<p class="help-block col-xs-12">{{ gT("Show the survey question index (allows users to jump to specific part of a survey") }}</p>
</div>
</div>
<div class='col-sm-12 col-md-6 col-lg-4'>
......@@ -403,7 +394,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Show the Language Changer in the top nav bar.") }}</p>
<p class="help-block col-xs-12">{{ gT("Show the Language Changer in the top nav bar.") }}</p>
</div>
</div>
<div class='col-sm-12 col-md-6 col-lg-4'>
......@@ -428,7 +419,7 @@
{% endif %}
</div>
</div>
<p class="col-xs-12 help-block">{{ gT("Show the Previous button in the top nav bar.") }}</p>
<p class="col-xs-12 help-block">{{ gT("Show the Previous button in the top nav bar.") }}</p>
</div>
</div>
<div class='col-sm-12 col-md-6 col-lg-4'>
......@@ -453,7 +444,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Show Next and Submit buttons in the top nav bar") }}</p>
<p class="help-block col-xs-12">{{ gT("Show Next and Submit buttons in the top nav bar") }}</p>
</div>
</div>
</div>
......@@ -534,7 +525,7 @@
{% endif %}
</div>
</div>
<p class="col-xs-12 help-block">{{ gT("Add left and right margins to the survey so that it isn't rendered full browser width.") }}</p>
<p class="col-xs-12 help-block">{{ gT("Add left and right margins to the survey so that it isn't rendered full browser width.") }}</p>
</div>
</div>
<div class='col-sm-12 col-md-6 col-lg-3'>
......@@ -559,7 +550,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Force nav bar to be same width as survey container (if Survey container set to [Yes], then margins are applied to top nav bar, else nav bar will be full width.") }}</p>
<p class="help-block col-xs-12">{{ gT("Force nav bar to be same width as survey container (if Survey container set to [Yes], then margins are applied to top nav bar, else nav bar will be full width.") }}</p>
</div>
</div>
</div>
......@@ -655,7 +646,7 @@
<option value="text-warning">{{ gT("Text warning") }}</option>
</select>
</div>
<p class="help-block col-xs-12">{{ gT("Colour to use to display question help messages") }}</p>
<p class="help-block col-xs-12">{{ gT("Colour to use to display question help messages") }}</p>
</div>
</div>
{# Help color #}
......@@ -675,7 +666,7 @@
<option value="text-warning">{{ gT("Text warning") }}</option>
</select>
</div>
<p class="help-block col-xs-12">{{ gT("Style to use to dynamic JavaScript validity/error messages.") }}</p>
<p class="help-block col-xs-12">{{ gT("Style to use to dynamic JavaScript validity/error messages.") }}</p>
</div>
</div>
</div>
......@@ -704,7 +695,7 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Make the top nav bar sticky, so it always remains on screen.") }}</p>
<p class="help-block col-xs-12">{{ gT("Make the top nav bar sticky, so it always remains on screen.") }}</p>
</div>
</div>
</div>
......@@ -758,7 +749,7 @@
<option value="all">{{ gT("All page") }}</option>
</select>
</div>
<p class="help-block col-xs-12">{{ gT("By default, Survey Description text is shown on all pages. Use this to restrict it to only the welcome page.") }}</p>
<p class="help-block col-xs-12">{{ gT("By default, Survey Description text is shown on all pages. Use this to restrict it to only the welcome page.") }}</p>
</div>
</div>
{# Title location #}
......@@ -775,7 +766,7 @@
<option value="hidden">{{ gT("Hidden (in header for accessibility)") }}</option>
</select>
</div>
<p class="help-block col-xs-12">{{ gT("Specify how to display the Survey Title. By default, it is displayed at top left of nav bar ") }}</p>
<p class="help-block col-xs-12">{{ gT("Specify how to display the Survey Title. By default, it is displayed at top left of nav bar ") }}</p>
</div>
</div>
</div>
......@@ -839,8 +830,36 @@
<br/>
<button class="btn btn-default selector__open_lightbox" data-target="#simple_edit_options_brandlogofile"> {{ gT('Preview image')}}</button>
</div>
<div class='col-sm-12 col-md-4'>
{# Brandlogo ad banner #}
</div>
<div class="row action_hide_on_inherit">
<div class='col-sm-12 col-md-6'>
{# Brandlogo by language #}
<div class='form-group row'>
<label for='simple_edit_options_brandlogobylang' class='control-label'>{{ gT("Search language logo") }}</label>
<div class='col-sm-12'>
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default">
<input type='radio' name='brandlogobylang' value='on' class='selector_option_radio_field ' data-id='simple_edit_options_brandlogobylang'/>
{{gT("Yes" )}}
</label>
<label class="btn btn-default">
<input type='radio' name='brandlogobylang' value='off' class='selector_option_radio_field ' data-id='simple_edit_options_brandlogobylang'/>
{{ gT("No") }}
</label>
{# If this is a root template setting, don't show the inherit button #}
{% if templateConfiguration.sid is not empty or templateConfiguration.gsid is not empty %}
<label class="btn btn-default">
<input type='radio' name='brandlogobylang' value='inherit' class='selector_option_radio_field ' data-id='simple_edit_options_brandlogobylang'/>
{{ gT("Inherit") }}
</label>
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Image by language with the name of selected image and language code separated with dash (logo-en.png).") }}</p>
</div>
</div>
<div class='col-sm-12 col-md-6'>
{# Brandlogo as banner #}
<div class='form-group row'>
<label for='simple_edit_options_brandlogoasbanner' class='control-label'>{{ gT("Use logo as banner") }}</label>
<div class='col-sm-12'>
......@@ -862,6 +881,20 @@
{% endif %}
</div>
</div>
<p class="help-block col-xs-12">{{ gT("Logo is centered on page, menu and title are shown after the logo.") }}</p>
</div>
</div>
<div class='col-xs-12 col-sm-12'>
<div class='form-group row'>
<label for='simple_edit_options_brandlogalt' class='control-label col-xs-4'>Alt text for logo</label>
<div class='col-xs-8'>
<input type='text' id="simple_edit_options_brandlogalt" class="form-control text_option_string_field" name="brandlogalt"
{% if (templateConfiguration.sid is not empty or templateConfiguration.gsid is not empty) %}
placeholder="{{ gT('Inherit') }}"
{% endif %}
>
</div>
<p class="help-block col-xs-12">{{ gT("Use this for alternative text for logo if not as banner, else an empty alt is added (image as decoration).") }}</p>
</div>
</div>
</div>
......@@ -989,8 +1022,8 @@
<div class="row action_hide_on_inherit">
<div class='col-xs-12 col-sm-6'>
<div class='form-group row'>
<label for='simple_edit_options_poweredlink' class='control-label col-xs-6'>Powered link</label>
<div class='col-xs-6'>
<label for='simple_edit_options_poweredlink' class='control-label col-xs-4'>Powered link</label>
<div class='col-xs-8'>
<input type='text' id="simple_edit_options_poweredlink" class="form-control text_option_string_field" name="poweredlink"
{% if (templateConfiguration.sid is not empty or templateConfiguration.gsid is not empty) %}
placeholder="{{ gT('Inherit') }}"
......@@ -1001,8 +1034,8 @@
</div>
<div class='col-xs-12 col-sm-6'>
<div class='form-group row'>
<label for='simple_edit_options_poweredtext' class='control-label col-xs-6'>Powered text</label>
<div class='col-xs-6'>
<label for='simple_edit_options_poweredtext' class='control-label col-xs-4'>Powered text</label>
<div class='col-xs-8'>
<input type='text' id="simple_edit_options_poweredtext" class="form-control text_option_string_field" name="poweredtext"
{% if (templateConfiguration.sid is not empty or templateConfiguration.gsid is not empty) %}
placeholder="{{ gT('Inherit') }}"
......
{#
LimeSurvey
Copyright (C) 2007-2017 The LimeSurvey Project Team / Louis Gac
All rights reserved.
License: GNU/GPL License v2 or later, see LICENSE.php
LimeSurvey is free software. This version may have been modified pursuant
to the GNU General Public License, and as distributed it includes or
is derivative of works licensed under the GNU General Public License or
other free or open source software licenses.
See COPYRIGHT.php for copyright notices and details.
(¯`·._.·(¯`·._.· Bootstrap Navigation Bar ·._.·´¯)·._.·´¯)
Bootstrap Navigation Bar
This file renders a typical bootstrap navigation bar.
See: https://getbootstrap.com/components/#navbar
For the survey navigator ("Next", "Back", etc.), see: navigation/navigator.twig
@version 10.9.0
#}
{% set havepreviouslink = (aSurveyInfo.options.previouslink == 'on' and aSurveyInfo.aNavigator.aMovePrev.show) %}
{% set havenextsubmitlink = (aSurveyInfo.options.nextsubmitlink == 'on' and aSurveyInfo.aNavigator.aMoveNext.show) %}
......@@ -28,17 +16,34 @@
{% if (aSurveyInfo.options.brandlogo == "off" or not imageSrc(aSurveyInfo.options.brandlogofile)) %}
{% set brandlogo = "off" %}
{% else %}
{% set brandlogofile = aSurveyInfo.options.brandlogofile %}
{% set brandlogalt = "" %}
{% if aSurveyInfo.options.brandlogobylang == "on" %}
{% if(processString("strpos('"~brandlogofile~"','.')")) %}
{% set brandlogoExt = processString("{substr('"~brandlogofile~"',strpos('"~brandlogofile~"','.'))}") %}
{% set brandlogoName = processString("{substr('"~brandlogofile~"',0,strpos('"~brandlogofile~"','.'))}") %}
{% set brandlogolang = imageSrc(brandlogoName ~ "-" ~ aSurveyInfo.languagecode ~ brandlogoExt, false) %}
{% if brandlogolang %}
{% set brandlogofile = brandlogoName ~ "-" ~ aSurveyInfo.languagecode ~ brandlogoExt %}
{% endif %}
{% endif %}
{% endif %}
{% if(aSurveyInfo.options.brandlogalt and aSurveyInfo.options.brandlogalt != 'false') %}
{% set brandlogalt = aSurveyInfo.options.brandlogalt %}
{% endif %}
{%if aSurveyInfo.options.brandlogoasbanner == "on" %}
{% set brandlogo = "banner" %}
{% endif %}
{% endif %}
<!-- Bootstrap Navigation Bar -->
{% if(aSurveyInfo.class.navbar) %}
{% if(aSurveyInfo.options.fixedheader == 'on') %}
<div class="invisible navbar navbar-inverse navbar-static-top" aria-hidden="true">
<div class="{{ containerclass }}">
{% if brandlogo == "banner" %}
{{ image(aSurveyInfo.options.brandlogofile, "", {"class": "logo-as-banner banner img-responsive"}) }}
{{ image(brandlogofile, "", {"class": "logo-as-banner banner img-responsive"}) }}
{% endif %}
<div class="{{ aSurveyInfo.class.navbarheader }}">
{% if(hasMenu) %}
......@@ -52,7 +57,7 @@
<div class="h1 {{ aSurveyInfo.class.navbarbrand }} {% if( brandlogo == "on") %}with-logo{% endif %}" {{ aSurveyInfo.attr.navbarbrand }} >
{% if( brandlogo == "on") %}
<span class="logo-container">
{{ image(aSurveyInfo.options.brandlogofile, "", {"class": "logo img-responsive"}) }}
{{ image(brandlogofile, "", {"class": "logo img-responsive"}) }}
</span>
{% endif %}
{% if(aSurveyInfo.options.titlelocation == 'hidden') %}<div class="sr-only">{% endif %}
......@@ -63,7 +68,7 @@
{% if( brandlogo == "on") %}
<div class="h1 {{ aSurveyInfo.class.navbarbrand }} {% if( brandlogo == "on") %}with-logo{% endif %}" {{ aSurveyInfo.attr.navbarbrand }} aria-hidden="true" >
<span class="logo-container">
{{ image(aSurveyInfo.options.brandlogofile, "", {"class": "logo img-responsive"}) }}
{{ image(brandlogofile, "", {"class": "logo img-responsive"}) }}
</span>
</div>
{% endif %}
......@@ -75,7 +80,7 @@
<header class="{{ aSurveyInfo.class.navbar }} {{ (aSurveyInfo.options.fixedheader == 'on') ? 'navbar-fixed-top' : 'navbar-static-top' }} hidden-print" {{ aSurveyInfo.attr.navbar }}>
<div class="{{ containerclass }}" role="navigation">
{% if brandlogo == "banner" %}
{{ image(aSurveyInfo.options.brandlogofile, "", {"class": "logo-as-banner banner img-responsive"}) }}
{{ image(brandlogofile, brandlogalt, {"class": "logo-as-banner banner img-responsive"}) }}
{% endif %}
<div class="{{ aSurveyInfo.class.navbarheader }}" {{ aSurveyInfo.attr.navbarheader }} >
{{ include('./subviews/navigation/shortcuts_links.twig') }}
......@@ -90,7 +95,7 @@
<h1 class="{{ aSurveyInfo.class.navbarbrand }} {% if( brandlogo == "on") %}with-logo{% endif %}" {{ aSurveyInfo.attr.navbarbrand }} >
{% if( brandlogo == "on") %}
<span class="logo-container">
{{ image(aSurveyInfo.options.brandlogofile, "", {"class": "logo img-responsive"}) }}
{{ image(brandlogofile, brandlogalt, {"class": "logo img-responsive"}) }}
</span>
{% endif %}
{% if(aSurveyInfo.options.titlelocation == 'hidden') %}<div class="sr-only">{% endif %}
......@@ -101,7 +106,7 @@
{% if( brandlogo == "on") %}
<div class="h1 {{ aSurveyInfo.class.navbarbrand }} {% if( brandlogo == "on") %}with-logo{% endif %}" {{ aSurveyInfo.attr.navbarbrand }} aria-hidden="true" >
<span class="logo-container">
{{ image(aSurveyInfo.options.brandlogofile, "", {"class": "logo img-responsive"}) }}
{{ image(brandlogofile, brandlogalt, {"class": "logo img-responsive"}) }}
</span>
</div>
{% endif %}
......
{#
/**
* @see application/views/survey/questions/answer/arrays/texts/answer.twig
* Replaced in skelvanilla for LimeSurvey version 3.X
* See https://bugs.limesurvey.org/view.php?id=15911
*/
#}
<!-- Multi Text -->
<!-- answer -->
<table {{ q_table_id_HTML }} class="{{ coreClass }} {{ extraclass }} table table-bordered table-hover {{ totals_class }}" role="group" aria-labelledby="ls-question-text-{{ basename }}">
<colgroup class="col-responses">
<!-- Column for answer label -->
<col class="answertext" style='width: {{ answerwidth }}%;'/>
<!-- columns for answers -->
{% for i, ld in labelans %}
<col class="{# {# TODO: array2 alternation #} {# classes #}" style='width: {{ cellwidth }}%;' />
{% endfor %}
<!-- columns for right -->
{% if right_exists %}
<col class="answertextright {# TODO: array2 alternation #}" style='width: {{ cellwidth }}%;' />
{% endif %}
<!-- columns for Grand Total -->
{% if showGrandTotal %}
<col class="grandtotal {# TODO: array2 alternation #}" style='width: {{ cellwidth }}%;' />
{% endif %}
</colgroup>
<thead aria-hidden="true">
<tr class="ls-heading">
<td>
&nbsp;
</td>
{% for i, ld in labelans %}
<th>
{{ ld }}
</th>
{% endfor %}
{% if right_exists %}
<td>&nbsp;</td>
{% endif %}
{{ col_head }}
</tr>
</thead>
<tbody>
{# Defined in answer_row view #}
{{ sRows }}
{% if showtotals %}
<tr class="total">
{{ row_head }}
{{ total }}
</tr>
{% endif %}
</tbody>
</table>
<!-- end of answer -->
{% if (showGrandTotal == true) or (showtotals == true) %}
{{ registerPackage('question-array-numeric') }}
{% endif %}
{#
/**
* List with comment, dropdown layout, Html
*
* @var $sOptions : the select options, generated with the view rows/option.php
*
* @var $name
* @var $id
* @var $checkconditionFunction
* @var $show_noanswer
* @var $label_text
* @var $kpclass
* @var $tarows
* @var $maxoptionsize
* @var $has_comment_saved
* @var $comment_saved htmlspecialchars( $_SESSION['survey_'.Yii::app()->getConfig('surveyID')][$fname2])
* @var $value $_SESSION['survey_'.Yii::app()->getConfig('surveyID')][$ia[1]] /// SHOULD BE CALL VALUE
* @var sgq : basename for input
* @todo : control if dropdown need labelledby or if labelledby in group is OK. Think automatic system return needed ...
*/
#}
<div class="ls-answers row" role="group" aria-labelledby="ls-question-text-{{ basename }}">
<div class="answer-item dropdown-item col-sm-6 col-xs-12">
<!-- This need a label :/ -->
<select
class="select form-control"
name="{{ name }}"
id="{{ id }}"
>
{% if show_noanswer %}
<option class="noanswer-item" value="">
{{ gT('Please choose...') }}
</option>
{% endif %}
{# rows/option.php #}
{{ sOptions }}
</select>
<!-- Input copy for EM : default is radio and EM use id -->
<input type="hidden" name="java{{ name }}" id="java{{ name }}" value="{{ value }}" disabled />
</div>
<div class="answer-item text-item comment-item col-sm-6 col-xs-12">
<label for="answer{{ name }}comment">
{{ processString(label_text) }}:
</label>
<textarea
class="form-control textarea {{ kpclass }}"
name="{{ name }}comment"
id="answer{{ name }}comment"
rows="{{ tarows }}"
cols="{{ maxoptionsize }}"
>{{ comment_saved }}</textarea>
</div>
</div>
{#
/**
* List with comment, list style, Html
*
* @var $sRows : the list of radio, generated with the view answer_row.php
*
* @var $id
* @var $hint_comment
* @var $kpclass
* @var $name
* @var $tarows
* @var $has_comment_saved
* @var $comment_saved
* @var $java_name
* @var $java_id
* @var $java_value
*/
#}
<!-- List with comment, list style, -->
<!-- answer -->
<div class="{{ coreClass }} row" role="group" aria-labelledby="ls-question-text-{{ basename }}">
<div class="answers-list radio-list col-sm-6 col-xs-12">
<ul class="list-unstyled" role="radiogroup">
{# rows/row.php #}
{{ sRows }}
</ul>
{# Value for expression manager javascript (use id) ; no need to submit #}
{{ C.Html.hiddenField(java_name,java_value,({
'id' : java_id,
'disabled' : true,
}))
}}
</div>
<div class="form-group answer-item text-item comment-item col-sm-6 col-xs-12">
<label class="control-label" for="{{ id }}">
{{ processString(hint_comment) }}:
</label>
{{ C.Html.textArea(name,comment_saved,({
'id' : id,
'class' : "form-control"~kpclass,
'rows' : tarows
}))
}}
</div>
</div>
<!-- end of answer -->
<div class='ls-question-mandatory ls-question-mandatory-{{ part ?: 'nosubmit'}} {% if part %} text-danger {% endif %}'>
<span class='fa fa-exclamation-circle' aria-hidden="true"></span>
{{ sMandatoryText ?: gT("This question is mandatory")}}
</div>
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment