js you have the javascript code
* - SELECT the options are passed via this->value, this array is
* build thanks the make_array function, each array (of the
* array) aka row must contains a field value and a field label
* - PASSWORD
* - CHECKBOX
* - RADIO
* - TEXTAREA
* - RICHTEXT
* - FILE
* - SPAN
*/
class HtmlInput
{
var $type; /*!< $type type of the widget */
var $name; /*!< $name field NAME of the INPUT */
var $value; /*!< $value what the INPUT contains */
var $readOnly; /*!< $readonly true : we cannot change value */
var $size; /*!< $size size of the input */
var $selected; /*!< $selected for SELECT RADIO and CHECKBOX the selected value */
var $table; /*!< $table =1 add the table tag */
var $label; /*!< $label the question before the input */
var $disabled; /*!< $disabled poss. value == true or nothing, to disable INPUT*/
var $extra; /*!< $extra different usage, it depends of the $type */
var $extra2; /*!< $extra2 different usage,
it depends of the $type */
var $javascript; /*!< $javascript is the javascript to add to the widget */
var $ctrl; /*!<$ctrl is the control to update (see js_search_card_control) */
var $tabindex;
function __construct($p_name="",$p_value="",$p_id="")
{
$this->name=$p_name;
$this->readOnly=false;
$this->size=20;
$this->width=50;
$this->heigh=20;
$this->value=$p_value;
$this->selected="";
$this->table=0;
$this->disabled=false;
$this->javascript="";
$this->extra2="all";
$this->attribute=array();
$this->id=$p_id;
}
function setReadOnly($p_read)
{
$this->readOnly=$p_read;
}
/*!\brief set the extra javascript property for the INPUT field
*\param $p_name name of the parameter
*\param $p_value default value of this parameter
*/
public function set_attribute($p_name,$p_value)
{
$this->attribute[]=array($p_name,$p_value);
$this->$p_name=$p_value;
}
/**
*@brief you can add attribute to this in javascript
* this function is a wrapper and create a script (in js) to modify
* "this" (in javascript) with the value of obj->attribute from PHP
*@return return string with the javascript code
*/
public function get_js_attr()
{
require_once NOALYSS_INCLUDE.'/function_javascript.php';
$attr="";
if ( count($this->attribute) == 0) return "";
/* Add properties at the widget */
for ($i=0;$i< count($this->attribute);$i++)
{
list($name,$value)=$this->attribute[$i];
$tmp1=sprintf("$('%s').%s='%s';",
$this->name,
$name,
$value);
$attr.=$tmp1;
}
$attr=create_script($attr);
return $attr;
}
/**
* Make a JSON object, this method create a javascript object
* with the attribute set, it returns a javascript string with the object
* @param $p_name : name of the object, can be null. If the name is not null, return
* $p_name={} otherwise only the object {}
* @return javascript string with the object
* @note: there is not check on the key->value, so you could need to escape
* special char as quote, single-quote...
* @code
$a=new IButton()
$a->set_attribute('prop','1');
$a->set_attribute('prop','2');
$a->set_attribute('prop','3');
$string = $a->make_object('property');
echo $string => property={'prop':'1','prop2':'2','prop3':'3'};
$string = $a->make_object(null);
echo $string => {'prop':'1','prop2':'2','prop3':'3'};
@endcode
*/
public function make_object($p_name=null)
{
$name=($p_name != null)?$p_name.'=':'';
if ( count($this->attribute) == 0) return $name."{}";
$ret=$name."{";
$and='';
for ($i=0;$i< count($this->attribute);$i++)
{
list($name,$value)=$this->attribute[$i];
$tmp1=sprintf($and."'%s':'%s'",
$name,
$value);
$ret.=$tmp1;
$and=',';
}
$ret.='}';
return $ret;
}
//#####################################################################
/* Debug
*/
function debug()
{
echo "Type ".$this->type."
";
echo "name ".$this->name."
";
echo "value". $this->value."
";
$readonly=($this->readonly==false)?"false":"true";
echo "read only".$readonly."
";
}
static function submit ($p_name,$p_value,$p_javascript="",$p_class="smallbutton")
{
return '';
}
static function button ($p_name,$p_value,$p_javascript="",$p_class="smallbutton")
{
return '';
}
static function reset ($p_value)
{
return '';
}
static function hidden($p_name,$p_value,$p_id="")
{
if ($p_id=="") $p_id=$p_name;
return '';
}
static function extension()
{
return self::hidden('plugin_code',$_REQUEST['plugin_code']);
}
/*!\brief create a button with a ref
*\param $p_label the text
*\param $p_value the location of the window,
*\param $p_name the id of the span
*\param $p_javascript javascript for this button
*\return string with htmlcode
*/
static function button_anchor($p_label,$p_value,$p_name="",$p_javascript="",$p_class="button")
{
$r=sprintf(' %s',
$p_name,
$p_value,
$p_javascript,
$p_label);
return $r;
}
static function infobulle($p_comment)
{
$r='?';
return $r;
}
static function warnbulle($p_comment)
{
$r='Δ';
return $r;
}
/**
* return a string containing the html code for calling the modifyOperation
*/
static function detail_op($p_jr_id,$p_mesg)
{
return sprintf('%s',
$p_jr_id,dossier::id(),$p_mesg);
}
/**
* @brief return an anchor to view the detail of an action
* @param $ag_id
* @param $p_mesg
* @param $p_modify let you modify an operation
*
*/
static function detail_action($ag_id,$p_mesg,$p_modify=1)
{
return sprintf('%s',
$ag_id,dossier::id(),$p_modify,$p_mesg);
}
/**
* return a string containing the html code for calling the modifyModeleDocument
*/
static function detail_modele_document($p_id,$p_mesg)
{
return sprintf('%s',
$p_id,dossier::id(),$p_mesg);
}
/**
* return a string containing the html code for calling the removeStock
*/
static function remove_stock($p_id,$p_mesg)
{
return sprintf('%s',
$p_id,dossier::id(),$p_mesg);
}
/**
* display a div with the history of the card
*/
static function history_card($f_id,$p_mesg,$p_style="")
{
$view_history= sprintf('%s',
$p_style,$f_id, dossier::id(), $p_mesg);
return $view_history;
}
/**
* display a div with the history of the card
*/
static function history_card_button($f_id,$p_mesg)
{
static $e=0;
$e++;
$js= sprintf('onclick="view_history_card(\'%s\',\'%s\')"',
$f_id, dossier::id());
$view_history=HtmlInput::button("hcb"+$e,$p_mesg,$js);
return $view_history;
}
/**
* display a div with the history of the account
*/
static function history_account($p_account,$p_mesg,$p_style="")
{
$view_history= sprintf('%s',
$p_style,$p_account, dossier::id(), $p_mesg);
return $view_history;
}
/**
* return the html code to create an hidden div and a button
* to show this DIV. This contains all the available ledgers
* for the user in READ or RW
*@param $selected is an array of checkbox
*@param $div div suffix
*@note the choosen ledger are stored in the array r_jrn (_GET)
*/
static function select_ledger($p_type,$p_selected,$div='')
{
global $g_user;
$r = '';
/* security : filter ledger on user */
$p_array = $g_user->get_ledger($p_type, 3);
ob_start();
/* create a hidden div for the ledger */
echo '