From 09e8ec3dda29bf9952c3dd2bdeb1399642e0085f Mon Sep 17 00:00:00 2001 From: Matthew Favetti Date: Mon, 26 Sep 2016 14:09:44 -0700 Subject: [PATCH 1/5] Fixed Issue #11710: Add 'search box' on Home page survey list --- application/views/admin/super/welcome.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/admin/super/welcome.php b/application/views/admin/super/welcome.php index 67e2bc4f7a1..ec9238ea537 100644 --- a/application/views/admin/super/welcome.php +++ b/application/views/admin/super/welcome.php @@ -110,7 +110,7 @@ widget('ext.admin.survey.ListSurveysWidget.ListSurveysWidget', array( 'model' => $oSurveySearch, - 'bRenderSearchBox' => false, + 'bRenderSearchBox' => true, )); ?> From 4348c76dcc78f7ccdb629cd6645b9fa5ac010fe3 Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Tue, 27 Sep 2016 15:12:23 +0200 Subject: [PATCH 2/5] Fixed issue #11713: Unclear message when setting an expiration date --- application/controllers/survey/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/survey/index.php b/application/controllers/survey/index.php index 14eab1deddf..2fb2ef6b237 100644 --- a/application/controllers/survey/index.php +++ b/application/controllers/survey/index.php @@ -278,7 +278,7 @@ function action() $redata = compact(array_keys(get_defined_vars())); $asMessage = array( gT("Error"), - gT("This survey is no longer available."), + gT("We are sorry but the survey is expired and no longer available."), sprintf(gT("Please contact %s ( %s ) for further assistance."),$thissurvey['adminname'],$thissurvey['adminemail']) ); @@ -334,7 +334,7 @@ function action() $sLoadSecurity=Yii::app()->request->getPost('loadsecurity'); $captcha = Yii::app()->getController()->createAction('captcha'); $captchaCorrect = $captcha->validate( $sLoadsecurity, false); - + if(empty($sLoadSecurity)) { $errormsg .= gT("You did not answer to the security question.")."
\n"; From 6028f97e086d5b9f701b363affb09738428a4021 Mon Sep 17 00:00:00 2001 From: Denis Chenu Date: Tue, 27 Sep 2016 15:37:33 +0200 Subject: [PATCH 3/5] Fixed issue : Last browser version show ranking rigth to left and not left ro right Dev: rtl , not ltr ... but only only in w3c draft actually Dev: removed the little ie7 hack and fix tab to space --- styles-public/ranking.css | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/styles-public/ranking.css b/styles-public/ranking.css index 92087cd52f7..a914a7dbacf 100644 --- a/styles-public/ranking.css +++ b/styles-public/ranking.css @@ -5,16 +5,14 @@ .ranking-answers{width:100%;} .dragDropTable {width: 100%;} .dragDropTable .SortableTitle{display:block} -.dragDropTable .columns2{width:50%;float:left;margin:0;padding:0; -*width:49%;/* IE7 round up, all other round down */ -} -:dir(ltr) .dragDropTable .columns2{float:right} +.dragDropTable .columns2{width:50%;float:left;margin:0;padding:0;} +:dir(rtl) .dragDropTable .columns2{float:right} .dragDropTable .clear{clear:both} .dragDropTable .dragDropChoices, .dragDropTable .dragDropRanks { - margin: 5px 0 0 0; + margin: 5px 0 0 0; background: transparent none; } @@ -25,7 +23,7 @@ padding-bottom:2em; list-style-type: none; list-style-position:outside; - display: block; /* Force the li to full width */ + display: block; /* Force the li to full width */ } .dragDropTable ul.dragDropChoiceList li, @@ -33,17 +31,17 @@ margin: 3px; margin-top:0; padding: 3px; - min-height: 1.3em; - *height:1.3em; - font-weight: normal; - cursor: move; - clear:both; - background-image: none; + min-height: 1.3em; + font-weight: normal; + cursor: move; + clear:both; + background-image: none; } .dragDropTable ul.dragDropChoiceList li.ui-sortable-placeholder, .dragDropTable ol.dragDropRankList li.ui-sortable-placeholder { - border: 1px dotted #CCC; + border: 1px dotted #CCC; } +/* Must remove it and find a BS class */ .dragDropTable .error { - border-color: fuchsia; + border-color: fuchsia; } From 95afb60609e976cf81c05fe731d4078cdbcab7e9 Mon Sep 17 00:00:00 2001 From: Denis Chenu Date: Tue, 27 Sep 2016 19:38:06 +0200 Subject: [PATCH 4/5] Fixed issue #11712: Bootsrap3 Class for plugin settings Dev: and move boolean to switch Dev: think renderButtons is broken : can fix it but break 'API' --- .../SettingsWidget/SettingsWidget.php | 69 ++++++++++++------- .../SettingsWidget/assets/settingswidget.css | 68 ------------------ .../views/admin/pluginmanager/configure.php | 10 ++- 3 files changed, 50 insertions(+), 97 deletions(-) diff --git a/application/extensions/SettingsWidget/SettingsWidget.php b/application/extensions/SettingsWidget/SettingsWidget.php index 12caf5d5839..72836c63259 100644 --- a/application/extensions/SettingsWidget/SettingsWidget.php +++ b/application/extensions/SettingsWidget/SettingsWidget.php @@ -24,8 +24,8 @@ class SettingsWidget extends CWidget public $settings = array(); public $title; - public $inlist=true;// Leave before removing - + public $labelWidth=6; + public $controlWidth=6; /** @var string - Raw HTML to output last */ public $additionalHtml = ""; @@ -98,11 +98,6 @@ protected function renderButton($label, $metaData) $metaData['class'][]='btn'; - if (isset($metaData['type']) && $metaData['type'] == 'link') - { - $metaData['class'][]='btn-link'; - $metaData['class'][]='button'; - } $htmlOptions = $this->htmlOptions($metaData); if (isset($metaData['type']) && $metaData['type'] == 'link') @@ -142,7 +137,7 @@ protected function renderButtons() } $aHtmlButtons[]= $this->renderButton($label, $htmlOptions); } - echo CHtml::tag('div', array('class' => 'buttons control-group'),implode($aHtmlButtons)); + echo CHtml::tag('div', array('class' => "clearfix col-md-offset-{$this->labelWidth}"),implode(" ",$aHtmlButtons)); } } @@ -183,7 +178,7 @@ protected function renderSetting($name, $metaData, $form = null, $return = false $content .= $this->renderHelp($name, $metaData); $content .= CHtml::closeTag('div'); - $result=CHtml::tag($wrapper,array('class'=>"setting control-group setting-{$metaData['type']}", 'data-name' => $name),$content); + $result=CHtml::tag($wrapper,array('class'=>"form-group setting setting-{$metaData['type']}", 'data-name' => $name),$content); if($return) { @@ -197,12 +192,10 @@ protected function renderSetting($name, $metaData, $form = null, $return = false protected function renderSettings() { - echo CHtml::openTag('ul',array('class'=>"settings-list")); foreach($this->settings as $name => $metaData) { - $this->renderSetting($name, $metaData, null, false, 'li'); + $this->renderSetting($name, $metaData, null, false, 'div'); } - echo CHtml::closeTag('ul'); } public function run() { @@ -252,13 +245,15 @@ public function fixMetaData($name,$metaData){ ); $metaData = array_merge($defaults, $metaData); - // col-sm-X is here for bootsrap 3 when ready - $metaData['labelOptions']['class'].=" control-label col-sm-5"; + // col-sm-6/col-sm-6 used in survey settings, sm-4/sm-6 in global : use sm-4/sm-6 for plugins ? + $metaData['labelOptions']['class'].=" control-label col-sm-{$this->labelWidth}"; // Set the witdth of control-option according to existence of label - if(!isset($metaData['label'])) + if(!isset($metaData['label'])){ $metaData['controlOptions']['class'].=" col-sm-12"; - else - $metaData['controlOptions']['class'].=" col-sm-7"; + } + else{ + $metaData['controlOptions']['class'].=" col-sm-{$this->controlWidth}"; + } $metaData['controlOptions']['class'].=" controls"; if (is_string($metaData['class'])) @@ -324,12 +319,21 @@ public function renderHelp($name,$metaData){ public function renderBoolean($name, array $metaData, $form = null) { - $htmlOptions = $this->htmlOptions($metaData,$form,array('container'=> false, 'separator' => '')); + $htmlOptions = $this->htmlOptions($metaData,$form); $value = isset($metaData['current']) ? $metaData['current'] : ''; - return CHtml::radioButtonList($name, $value, array( - 0 => 'False', - 1 => 'True' - ), $htmlOptions); + //~ return CHtml::radioButtonList($name, $value, array( + //~ 0 => 'False', + //~ 1 => 'True' + //~ ), $htmlOptions); + return Chtml::tag('div', $htmlOptions, + $this->widget('yiiwheels.widgets.switch.WhSwitch', array( + 'name' => $name, + 'value' => $value, + 'onLabel'=>gT('On'), + 'offLabel' => gT('Off'), + 'htmlOptions' => $htmlOptions, + ), true) + ); } public function renderCheckbox($name, array $metaData, $form = null) @@ -341,6 +345,7 @@ public function renderCheckbox($name, array $metaData, $form = null) public function renderFloat($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $htmlOptions = $this->htmlOptions($metaData,$form,array('step'=>'any'));// step can be replaced by plugin developer $value = isset($metaData['current']) ? $metaData['current'] : ''; return CHtml::numberField($name, $value, $htmlOptions); @@ -348,6 +353,7 @@ public function renderFloat($name, array $metaData, $form = null) public function renderHtml($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : ''; $metaData['class'][] = 'htmleditor'; $htmlOptions = $this->htmlOptions($metaData,$form); @@ -376,6 +382,7 @@ public function renderInfo($name, array $metaData, $form = null) public function renderInt($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : ''; if (is_array($value)) { throw new CException('wrong type' . $name); } $htmlOptions = $this->htmlOptions($metaData,$form,array('step'=> 1,'pattern' => '\d+')); @@ -384,6 +391,7 @@ public function renderInt($name, array $metaData, $form = null) public function renderJson($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; // Needed ? $value = isset($metaData['current']) ? $metaData['current'] : ''; $metaData['class'][] = 'jsoneditor-wrapper'; $htmlOptions = array_merge($metaData['htmlOptions'],array('class'=>implode(' ',$metaData['class']))); @@ -416,6 +424,7 @@ public function renderRadio($name, array $metaData, $form = null) public function renderRelevance($name, array $metaData, $form = null) { $metaData['class'][] = 'relevance'; + $metaData['class'][] = 'form-control'; $htmlOptions = $this->htmlOptions($metaData,$form); $value = isset($metaData['current']) ? $metaData['current'] : ''; return CHtml::textArea($name, $value, $htmlOptions); @@ -423,6 +432,7 @@ public function renderRelevance($name, array $metaData, $form = null) public function renderSelect($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : (isset($metaData['default']) ? $metaData['default'] : null); $htmlOptions = $this->htmlOptions($metaData,$form); $select2Options=array_merge( @@ -455,6 +465,7 @@ public function renderSelect($name, array $metaData, $form = null) public function renderString($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : ''; $htmlOptions = $this->htmlOptions($metaData,$form,array('size'=>50)); return CHtml::textField($name, $value, $htmlOptions); @@ -462,6 +473,7 @@ public function renderString($name, array $metaData, $form = null) public function renderEmail($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : ''; $htmlOptions = $this->htmlOptions($metaData,$form,array('size'=>50)); return CHtml::emailField($name, $value, $htmlOptions); @@ -469,6 +481,7 @@ public function renderEmail($name, array $metaData, $form = null) public function renderText($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : ''; $htmlOptions = $this->htmlOptions($metaData,$form); return CHtml::textArea($name, $value, $htmlOptions); @@ -476,6 +489,7 @@ public function renderText($name, array $metaData, $form = null) public function renderPassword($name, array $metaData, $form = null) { + $metaData['class'][] = 'form-control'; $value = isset($metaData['current']) ? $metaData['current'] : ''; $htmlOptions = $this->htmlOptions($metaData,$form,array('autocomplete'=>'off','size'=>50)); return CHtml::passwordField($name,$value,$htmlOptions); @@ -586,14 +600,17 @@ public function htmlOptions(array $metaData, $form = null,array $aDefault = arra { $htmlOptions=array(); } - // If metadata have a class, replace actual class - if(!empty($metaData['class']) && is_array($metaData['class'])) + // If metadata have a class, replace (?) to actual class + if(!empty($metaData['class']) && is_array($metaData['class'])){ $htmlOptions['class']=implode(' ',$metaData['class']); + } // If metadata have style, replace actual style - if(!empty($metaData['style']) && is_string($metaData['style'])) + if(!empty($metaData['style']) && is_string($metaData['style'])){ $htmlOptions['style']=$metaData['style']; - if (isset($metaData['readOnly'])) + } + if (isset($metaData['readOnly'])){ $metaData['htmlOptions']["readonly"]= $metaData['readOnly']; + } return array_merge(array('form'=>$form),$aDefault,$htmlOptions,$aForced); } diff --git a/application/extensions/SettingsWidget/assets/settingswidget.css b/application/extensions/SettingsWidget/assets/settingswidget.css index 7f128dc77a5..b61e286c176 100644 --- a/application/extensions/SettingsWidget/assets/settingswidget.css +++ b/application/extensions/SettingsWidget/assets/settingswidget.css @@ -1,71 +1,3 @@ -.settingswidget input[type^='button'], .settingswidget label{ - margin-top: 0px; -} - -.settingswidget .boolean label{ - margin-right: 10px; -} - -.settingswidget { - margin: 0 1em; -} -ul.settings-list{ - margin:0;padding:0; -} -ul.settings-list > li -{ -list-style: none; -} -fieldset.settingswidget, form.settingswidget > fieldset { -border:0; -padding:0; -margin:0; -} -.form-horizontal .control-label,.form-horizontal .controls{ - -moz-box-sizing: border-box; - box-sizing: border-box; -} -form li.control-group{ -overflow:visible; -} -.form-core .control-group{ -margin-bottom: 5px; -} -.form-horizontal .col-sm-1,.form-horizontal .col-sm-2,.form-horizontal .col-sm-3,.form-horizontal .col-sm-4,.form-horizontal .col-sm-5,.form-horizontal .col-sm-6,.form-horizontal .col-sm-7,.form-horizontal .col-sm-8,.form-horizontal .col-sm-9,.form-horizontal .col-sm-10,.form-horizontal .col-sm-11,.form-horizontal .col-sm-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; - margin-left:0;/* Fix default margin left for boostrap 2.1 */ -} -.form-horizontal.col-sm-1,.form-horizontal .col-sm-2,.form-horizontal .col-sm-3,.form-horizontal .col-sm-4,.form-horizontal .col-sm-5,.form-horizontal .col-sm-6,.form-horizontal .col-sm-7,.form-horizontal .col-sm-8,.form-horizontal .col-sm-9,.form-horizontal .col-sm-10,.form-horizontal .col-sm-11,.form-horizontal .col-sm-12 { - float: left; -} -.settingswidget .setting > .control-label { - text-align: right; - vertical-align: top; -} -.form-horizontal textarea { - height:auto; -} -.form-horizontal .default textarea, -.form-horizontal .default .htmleditor, -.form-horizontal .default .jsoneditor-wrapper -{ - width: 100%; -} -.form-horizontal .default textarea { - min-height:10em; -} -.form-horizontal .control-label:after{ -} - -.form-horizontal input + .help-block, .form-horizontal select + .help-block, .form-horizontal textarea + .help-block { - /* Set to 10px in 2.1, Removed in bootstrap 2.3 */ - margin-top: 0; -} -.form-horizontal .buttons{text-align:center} - .form-horizontal ul.wysihtml5-toolbar li { overflow:visible; } diff --git a/application/views/admin/pluginmanager/configure.php b/application/views/admin/pluginmanager/configure.php index b40eaaee5cf..f770b385ada 100644 --- a/application/views/admin/pluginmanager/configure.php +++ b/application/views/admin/pluginmanager/configure.php @@ -1,5 +1,6 @@

+
array( 'id' => "pluginsettings-{$plugin['name']}", ), + 'labelWidth'=>4, + 'controlWidth'=>6, 'method' => 'post', 'additionalHtml' => " -
 
-
-
+
+
". (Permission::model()->hasGlobalPermission('settings','update')?" ":'')." ".gT('Close')." +
" )); ?> +
From ccdb61933cd64d59f0a7884bd473dfdf903a6578 Mon Sep 17 00:00:00 2001 From: Matthew Favetti Date: Tue, 27 Sep 2016 12:25:07 -0700 Subject: [PATCH 5/5] Updated feature: added setting to toggle search box on home page survey listing (#11710) --- application/config/config-defaults.php | 1 + .../controllers/admin/homepagesettings.php | 50 +++++++++++++------ application/controllers/admin/index.php | 1 + .../views/admin/homepagesettings/index.php | 10 ++++ application/views/admin/super/welcome.php | 2 +- scripts/admin/homepagesettings.js | 20 ++++++++ 6 files changed, 68 insertions(+), 16 deletions(-) mode change 100755 => 100644 application/config/config-defaults.php diff --git a/application/config/config-defaults.php b/application/config/config-defaults.php old mode 100755 new mode 100644 index 651454bf11a..12250e0241c --- a/application/config/config-defaults.php +++ b/application/config/config-defaults.php @@ -661,6 +661,7 @@ // Home page default Settings $config['show_logo'] = 'show'; $config['show_last_survey_and_question'] = 'show'; +$config['show_survey_list_search'] = 'show'; $config['boxes_by_row'] = '3'; $config['boxes_offset'] = '3'; diff --git a/application/controllers/admin/homepagesettings.php b/application/controllers/admin/homepagesettings.php index 20f652be51b..427e287701f 100644 --- a/application/controllers/admin/homepagesettings.php +++ b/application/controllers/admin/homepagesettings.php @@ -174,6 +174,7 @@ public function index() 'bShowLogo'=>(getGlobalSetting('show_logo')=="show"), 'bShowLastSurveyAndQuestion'=>(getGlobalSetting('show_last_survey_and_question')=="show"), 'bShowSurveyList'=>(getGlobalSetting('show_survey_list')=="show"), + 'bShowSurveyListSearch'=>(getGlobalSetting('show_survey_list_search')=="show"), 'iBoxesByRow'=>(int) getGlobalSetting('boxes_by_row'), 'iBoxesOffset'=>(int) getGlobalSetting('boxes_offset'), ); @@ -247,25 +248,44 @@ public function toggleShowLastSurveyAndQuestion() } - /** - * Performs the AJAX toggle of sshow_survey_list - */ - public function toggleShowSurveyList() + /** + * Performs the AJAX toggle of show_survey_list + */ + public function toggleShowSurveyList() + { + if (Yii::app()->getConfig('demoMode')) { - if (Yii::app()->getConfig('demoMode')) - { - Yii::app()->setFlashMessage(gT('This setting cannot be changed because demo mode is active.'),'error'); - $this->getController()->redirect(Yii::app()->getController()->createUrl("/admin/homepagesettings")); - } + Yii::app()->setFlashMessage(gT('This setting cannot be changed because demo mode is active.'),'error'); + $this->getController()->redirect(Yii::app()->getController()->createUrl("/admin/homepagesettings")); + } - if ( Permission::model()->hasGlobalPermission('settings', 'update') ) - { - $bShowSurveyList = (getGlobalSetting('show_survey_list')=="show")?"hide":"show"; - setGlobalSetting('show_survey_list', $bShowSurveyList); - echo $bShowSurveyList; - } + if ( Permission::model()->hasGlobalPermission('settings', 'update') ) + { + $bShowSurveyList = (getGlobalSetting('show_survey_list')=="show")?"hide":"show"; + setGlobalSetting('show_survey_list', $bShowSurveyList); + echo $bShowSurveyList; + } + } + + /** + * Performs the AJAX toggle of show_survey_list_search + */ + public function toggleShowSurveyListSearch() + { + if (Yii::app()->getConfig('demoMode')) + { + Yii::app()->setFlashMessage(gT('This setting cannot be changed because demo mode is active.'),'error'); + $this->getController()->redirect(Yii::app()->getController()->createUrl("/admin/homepagesettings")); } + if ( Permission::model()->hasGlobalPermission('settings', 'update') ) + { + $bShowSurveyListSearch = (getGlobalSetting('show_survey_list_search')=="show")?"hide":"show"; + setGlobalSetting('show_survey_list_search', $bShowSurveyListSearch); + echo $bShowSurveyListSearch; + } + } + /** * Performs the AJAX update of box setting */ diff --git a/application/controllers/admin/index.php b/application/controllers/admin/index.php index 126ec957fdb..c2c274d1d04 100644 --- a/application/controllers/admin/index.php +++ b/application/controllers/admin/index.php @@ -84,6 +84,7 @@ public function run() // We get the home page display setting $aData['bShowSurveyList'] = (getGlobalSetting('show_survey_list')=="show"); + $aData['bShowSurveyListSearch'] = (getGlobalSetting('show_survey_list_search')=="show"); $aData['bShowLogo'] = (getGlobalSetting('show_logo')=="show"); $aData['oSurveySearch'] = new Survey('search'); $aData['bShowLastSurveyAndQuestion'] = (getGlobalSetting('show_last_survey_and_question')=="show"); diff --git a/application/views/admin/homepagesettings/index.php b/application/views/admin/homepagesettings/index.php index 38610c026f3..ec189e91074 100644 --- a/application/views/admin/homepagesettings/index.php +++ b/application/views/admin/homepagesettings/index.php @@ -37,12 +37,22 @@
+

+ + +
widget('yiiwheels.widgets.switch.WhSwitch', array('name' => 'show_survey_list', 'id'=>'show_survey_list', 'value'=>$bShowSurveyList, 'onLabel'=>gT('On'),'offLabel'=>gT('Off')));?>
+ +
+ widget('yiiwheels.widgets.switch.WhSwitch', array('name' => 'show_survey_list_search', 'id'=>'show_survey_list_search', 'value'=>$bShowSurveyListSearch, 'onLabel'=>gT('On'),'offLabel'=>gT('Off')));?> + +
+

diff --git a/application/views/admin/super/welcome.php b/application/views/admin/super/welcome.php index ec9238ea537..6602272b016 100644 --- a/application/views/admin/super/welcome.php +++ b/application/views/admin/super/welcome.php @@ -110,7 +110,7 @@ widget('ext.admin.survey.ListSurveysWidget.ListSurveysWidget', array( 'model' => $oSurveySearch, - 'bRenderSearchBox' => true, + 'bRenderSearchBox' => $bShowSurveyListSearch, )); ?> diff --git a/scripts/admin/homepagesettings.js b/scripts/admin/homepagesettings.js index a1824a760df..bbdcb91b8d4 100644 --- a/scripts/admin/homepagesettings.js +++ b/scripts/admin/homepagesettings.js @@ -61,6 +61,26 @@ $(document).ready(function(){ }); }); + /** + * Toggle show survey list search value + */ + $('#show_survey_list_search').on('switchChange.bootstrapSwitch', function(event, state) { + $url = $('#show_survey_list_search-url').attr('data-url'); + console.log($url); + $.ajax({ + url : $url, + type : 'GET', + dataType : 'html', + + // html contains the buttons + success : function(html, statut){ + }, + error : function(html, statut){ + alert('error'); + } + }); + }); + /** * Save box settings */