From cf15229e7c173131f32cdd8782c16556d82e85dc Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 13 Nov 2014 19:37:37 -0800 Subject: [PATCH] Admin-UI inline editing now works with type=boolean --- e107_admin/plugin.php | 14 +++++++++++- e107_handlers/form_handler.php | 37 +++++++++++++++++++++++++++----- e107_handlers/language_class.php | 9 ++++++++ 3 files changed, 54 insertions(+), 6 deletions(-) diff --git a/e107_admin/plugin.php b/e107_admin/plugin.php index 7399cbf8d..10012009f 100644 --- a/e107_admin/plugin.php +++ b/e107_admin/plugin.php @@ -2318,9 +2318,17 @@ TEMPLATE; switch ($type) { + case 'date': + case 'datetime': + $array = array( + 'text' => "Text Box", + "hidden" => "Hidden" + ); + break; case 'int': case 'tinyint': + case 'bigint': case 'smallint': $array = array( "boolean" => "True/False", @@ -2399,10 +2407,14 @@ TEMPLATE; { $name = $tmp[2]; } - else // Link_description + elseif(count($tmp) == 2) // Link_description { $name = $tmp[1]; } + elseif(count($tmp) === 1) + { + $name = $data; + } $ret['title'] = ucfirst($name); $ret['width'] = 'auto'; diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 98c6dec58..0d250e61f 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -3290,6 +3290,15 @@ class e_form case 'bool': case 'boolean': $false = vartrue($parms['trueonly']) ? "" : ADMIN_FALSE_ICON; + + if(!vartrue($attributes['noedit']) && vartrue($parms['editable']) && !vartrue($parms['link'])) // avoid bad markup, better solution coming up + { + $false = vartrue($parms['trueonly']) ? "-" : "False"; + $wparms = (vartrue($parms['reverse'])) ? array(0=>'True', 1=>$false) : array(0=>$false, 1=>'True'); //TODO LAN + $dispValue = $wparms[$value]; + + return $this->renderInline($field, $id, $attributes['title'], $value, $dispValue, 'select', $wparms); + } if(vartrue($parms['reverse'])) { @@ -3298,7 +3307,8 @@ class e_form else { $value = $value ? ADMIN_TRUE_ICON : $false; - } + } + break; case 'url': @@ -3377,8 +3387,24 @@ class e_form case 'hidden': return (vartrue($parms['show']) ? ($value ? $value : vartrue($parms['empty'])) : ''); break; + + case 'language': // All Known Languages. + + if(!empty($value)) + { + if(strlen($value) === 2) + { + return e107::getLanguage()->convert($value); + } + else + { + return $value; + } + } + + break; - case 'lanlist': + case 'lanlist': // installed languages. $options = e107::getLanguage()->getLanSelectArray(); if($options) // FIXME - add support for multi-level arrays (option groups) @@ -3773,9 +3799,10 @@ class e_form $ret = $ret.$this->hidden($key, $value); break; - case 'lanlist': - case 'language': - $options = e107::getLanguage()->getLanSelectArray(); + case 'lanlist': // installed languages + case 'language': // all languages + + $options = ($attributes['type'] === 'language') ? e107::getLanguage()->getList() : e107::getLanguage()->getLanSelectArray(); $eloptions = vartrue($parms['__options'], array()); if(!is_array($eloptions)) parse_str($eloptions, $eloptions); diff --git a/e107_handlers/language_class.php b/e107_handlers/language_class.php index 87f915919..7c74d4e1c 100644 --- a/e107_handlers/language_class.php +++ b/e107_handlers/language_class.php @@ -616,4 +616,13 @@ class language{ } return $this->_select_array; } + + /** + * Return an array of all language types. + */ + public function getList() + { + return $this->list; + } + }