custom checkbox in options
This commit is contained in:
@@ -129,6 +129,7 @@ class Databap extends PhpObject
|
||||
const OPT_TEXT = 'T';
|
||||
const OPT_PASS = 'P';
|
||||
const OPT_SELECT = 'S';
|
||||
const OPT_CHECKBOX = 'C';
|
||||
const OPT_NICKNAME = 1;
|
||||
const OPT_BG = 2;
|
||||
const OPT_BG_2 = 11;
|
||||
@@ -140,10 +141,6 @@ class Databap extends PhpObject
|
||||
const OPT_EMAIL = 9;
|
||||
const OPT_CHAT_HISTO = 10;
|
||||
|
||||
//Options Values Constants
|
||||
const OPT_VAL_YES = 'oui';
|
||||
const OPT_VAL_NO = 'non';
|
||||
|
||||
//Search Constants
|
||||
const CODE_TYPE = 'c';
|
||||
const PROC_TYPE = 'p';
|
||||
@@ -363,12 +360,12 @@ class Databap extends PhpObject
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_HOVER, $sOptionNameCol=>'couleur de survol', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_IMAGE_CHAT, $sOptionNameCol=>'image du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_STATUS, $sOptionNameCol=>'mission en cours', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CONSOLE, $sOptionNameCol=>'afficher la console du chat', 'type'=>self::OPT_SELECT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CONSOLE, $sOptionNameCol=>'afficher la console du chat', 'type'=>self::OPT_CHECKBOX, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_EMAIL, $sOptionNameCol=>'email', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CHAT_HISTO, $sOptionNameCol=>'nombre de jours d\'historique dans le chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CHAT_HISTO, $sOptionNameCol=>'historique du chat (jours)', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
|
||||
//Select and Default Option values
|
||||
$asDefaultValues = array( self::OPT_CONSOLE=>array(self::OPT_VAL_YES=>false, self::OPT_VAL_NO=>true),
|
||||
$asDefaultValues = array( self::OPT_CONSOLE=>array(true=>false, false=>true),
|
||||
self::OPT_NICKNAME=>array('Utilisateur inconnu'=>true),
|
||||
self::OPT_BG=>array('#04357B'=>true),
|
||||
self::OPT_BG_2=>array('#88B2F0'=>true),
|
||||
@@ -439,6 +436,7 @@ class Databap extends PhpObject
|
||||
'opt_type_text'=>self::OPT_TEXT,
|
||||
'opt_type_pass'=>self::OPT_PASS,
|
||||
'opt_type_select'=>self::OPT_SELECT,
|
||||
'opt_type_checkbox'=>self::OPT_CHECKBOX,
|
||||
'max_size'=>self::getMaxSize(),
|
||||
'authorized_img_exts'=>self::$UPLOAD_IMG_EXTS,
|
||||
'authorized_file_exts'=>self::$UPLOAD_DOC_EXTS,
|
||||
@@ -463,7 +461,7 @@ class Databap extends PhpObject
|
||||
$asVars['user_id'] = $this->getUserId();
|
||||
$asVars['hash_to_page'] = $this->getPagesFromHash();
|
||||
$asVars['page_to_hash'] = array_flip($asVars['hash_to_page']);
|
||||
$asVars['opt_console'] = ($this->getUserOptionValue(self::OPT_CONSOLE)==self::OPT_VAL_YES);
|
||||
$asVars['opt_console'] = ($this->getUserOptionValue(self::OPT_CONSOLE)==true);
|
||||
$oPage->setTag('variables', $this->jsonConvert($asVars));
|
||||
|
||||
return $oPage->getMask();
|
||||
@@ -1395,13 +1393,15 @@ class Databap extends PhpObject
|
||||
$asSelectedOptions[$sOptionName]['user_value_id'] = $asUserOptions[$sOptNameId][$sOptValueIdCol];
|
||||
$asSelectedOptions[$sOptionName]['user_value'] = $asUserOptions[$sOptNameId][$sOptValueTextCol];
|
||||
$asSelectedOptions[$sOptionName]['type'] = $asOption['type'];
|
||||
if($asOption['type']==self::OPT_SELECT)
|
||||
if($asOption['type']==self::OPT_SELECT || $asOption['type']==self::OPT_CHECKBOX)
|
||||
{
|
||||
$asOptionValuesInfo = array('select'=>array($sOptValueIdCol, $sOptValueTextCol),
|
||||
'from'=>self::OPTVAL_TABLE,
|
||||
'constraint'=>array('language'=>$this->sLanguage, MySqlManager::getId(self::OPTNAME_TABLE)=>$sOptNameId),
|
||||
'orderBy'=>array('led'=>'ASC'));
|
||||
$asSelectedOptions[$sOptionName]['select'] = $this->oMySql->selectRows($asOptionValuesInfo, true, $sOptValueIdCol);
|
||||
$asOptionValues = $this->oMySql->selectRows($asOptionValuesInfo, true, $sOptValueIdCol);
|
||||
$asSelectedOptions[$sOptionName]['select'] = $asOptionValues;
|
||||
$asSelectedOptions[$sOptionName]['select_inv'] = array_flip($asOptionValues);
|
||||
}
|
||||
}
|
||||
ksort($asSelectedOptions);
|
||||
@@ -1433,6 +1433,7 @@ class Databap extends PhpObject
|
||||
switch($asOption['type'])
|
||||
{
|
||||
case self::OPT_SELECT:
|
||||
case self::OPT_CHECKBOX:
|
||||
$sNewValueId = $asNewOptions[$sOptNameId];
|
||||
$sNewValue = $this->oMySql->selectValue(self::OPTVAL_TABLE, $sOptValueTextCol, $sNewValueId);
|
||||
break;
|
||||
|
||||
@@ -72,6 +72,37 @@ function addOption(iArrayId, optInfo, $Box)
|
||||
case databap.consts.opt_type_pass:
|
||||
$Option.append($('<input>', {type:'password', id:optNameId, name:optNameId, value:optInfo.user_value, 'class':'round'}));
|
||||
break;
|
||||
case databap.consts.opt_type_checkbox:
|
||||
var $Select = $('<select>', {id:optNameId, name:optNameId, 'class':'hide'}).appendTo($Option);
|
||||
$.each
|
||||
(
|
||||
optInfo.select,
|
||||
function(selectId, selectName)
|
||||
{
|
||||
$Select
|
||||
.append($('<option>', {value:selectId})
|
||||
.prop('selected', (selectId==optInfo.user_value_id))
|
||||
.text(selectName));
|
||||
}
|
||||
);
|
||||
$Option.append(
|
||||
$('<span>', {'class':'checkbox clickable'})
|
||||
.data('option_id', optNameId)
|
||||
.data('on', optInfo.user_value)
|
||||
.data('options', optInfo.select_inv)
|
||||
.append($('<i>', {'class':'fa fa-c-'+(optInfo.user_value=="1"?'on':'off')}))
|
||||
.click(function()
|
||||
{
|
||||
$This = $(this);
|
||||
var sNewValue = !$This.data('on');
|
||||
$This.data('on', sNewValue);
|
||||
$('#'+$This.data('option_id')).val($This.data('options')[sNewValue?1:0]);
|
||||
$This.find('.fa')
|
||||
.removeClass('fa-c-on fa-c-off')
|
||||
.addClass('fa-c-'+(sNewValue?'on':'off'));
|
||||
})
|
||||
);
|
||||
break;
|
||||
case databap.consts.opt_type_select:
|
||||
var $Select = $('<select>', {id:optNameId, name:optNameId, 'class':'round'}).appendTo($Option);
|
||||
$.each
|
||||
@@ -98,7 +129,7 @@ function validate_options()
|
||||
databap.getMainElem('#options_form'),
|
||||
function(result)
|
||||
{
|
||||
databap.addSuccessIcon();
|
||||
self.addBufferIcon();
|
||||
location.reload();
|
||||
},
|
||||
true
|
||||
|
||||
@@ -310,4 +310,11 @@ vertical-align 0% -5% -10% -15% -20% -25% -30%
|
||||
|
||||
.fa-c-image:before {
|
||||
content: "\f03e";
|
||||
}
|
||||
|
||||
.fa-c-on:before {
|
||||
content: "\f205";
|
||||
}
|
||||
.fa-c-off:before {
|
||||
content: "\f204";
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1077,16 +1077,19 @@
|
||||
}
|
||||
|
||||
#options .options_box .option_line {
|
||||
margin:10px 0;
|
||||
margin:5px 0;
|
||||
float:left;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
#options .options_box input[type=text], #options .options_box input[type=password], #options .options_box select {
|
||||
font-size:$size_big;
|
||||
#options .options_box input[type=text],
|
||||
#options .options_box input[type=password],
|
||||
#options .options_box select,
|
||||
#options .options_box .checkbox {
|
||||
background:$col_none;
|
||||
border-width:1px;
|
||||
font-size:$size_vbig;
|
||||
font-size:14px;
|
||||
padding:5px;
|
||||
margin-top:6px;
|
||||
float:right;
|
||||
}
|
||||
|
||||
@@ -1099,11 +1102,21 @@
|
||||
color:$col_main_1;
|
||||
}
|
||||
|
||||
#options .options_box .checkbox {
|
||||
padding:0;
|
||||
background:none;
|
||||
font-size:1.7em;
|
||||
}
|
||||
|
||||
#options .options_box .option_line p {
|
||||
float:left;
|
||||
width:250px;
|
||||
padding:5px 0;
|
||||
margin:5px 0;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#options .options_box .button {
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
/* Procedure */
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
todo
1
todo
@@ -25,7 +25,6 @@ New features:
|
||||
- [1.2.0] Chat: New "Connected Users" Panel: On click, opening a sub panel with icons: profil link, status, PM.
|
||||
- [1.2.0] Unread messages par user (dedicated table).
|
||||
- [1.2.0] Refiltre par type dans le search
|
||||
- [1.2.0] Remplacer dans les options : oui / non par [-0] (f205) [O-] (f204)
|
||||
- [1.2.0] Son pour les nouveaux messages
|
||||
- [1.2.0] Chat : compatibilité mobile (utiliser la fonctionnalité ff)
|
||||
- [1.2.0] search : add tagname, like code:blabla to search blabla in codes only
|
||||
|
||||
Reference in New Issue
Block a user