2 define(
"NOCSRFCHECK", 1);
9 require
'../../main.inc.php';
10 include_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
13 if ($dolibarr_main_prod) {
14 accessforbidden(
'Access forbidden when $dolibarr_main_prod is set to 1');
27 This page is a sample of page
using Dolibarr HTML widget methods. It is designed to make test with<br>
28 - css (add parameter &theme=newtheme to test another theme or edit css of current theme)<br>
29 - jmobile (add parameter <a
class=
"wordbreak" href=
"<?php echo $_SERVER["PHP_SELF
"].'?dol_use_jmobile=1&dol_optimize_smallscreen=1'; ?>">dol_use_jmobile=1&dol_optimize_smallscreen=1</a> and
switch to small screen < 570 to enable with emulated jmobile)<br>
30 - no javascript /
usage for bind people (add parameter <a
class=
"wordbreak" href=
"<?php echo $_SERVER["PHP_SELF
"].'?nojs=1'; ?>">nojs=1</a> to force disable javascript)<br>
31 - use with a text browser (add parameter <a
class=
"wordbreak" href=
"<?php echo $_SERVER["PHP_SELF
"].'?textbrowser=1'; ?>">textbrowser=1</a> to force detection of a text browser)<br>
35 <!-- Output to test html.form.class.php -->
39 print
'<div class="div-table-responsive">';
42 print
"Test 1a: We must have here current date and hour for user (must match hour on browser). Note: Check your are logged so user TZ and DST are known.";
43 $offsettz = (empty($_SESSION[
'dol_tz']) ? 0 : $_SESSION[
'dol_tz']) * 60 * 60;
44 $offsetdst = (empty($_SESSION[
'dol_dst']) ? 0 : $_SESSION[
'dol_dst']) * 60 * 60;
45 print
" (dol_tz=".$offsettz.
" dol_dst=".$offsetdst.
")<br>\n";
48 print
'<br><br>'.
"\n";
50 print
"Test 1b: We must have here current date with hours to 00:00.<br>";
51 print
$form->selectDate(
'',
'test1b', 1, 1, 0);
53 print
'<br><br>'.
"\n";
56 print
"Test 2: We must have here 1970-01-01 00:00:00 selected (fields can be empty)<br>\n";
59 print
'<br><br>'.
"\n";
62 print
"Test 3: We must have here 1970-01-01 00:00:00 selected (fields are mandatory)<br>\n";
65 print
'<br><br>'.
"\n";
68 print
"Test 4a: a select<br>\n";
69 $array = array(1=>
'Value 1', 2=>
'Value 2', 3=>
'Value 3 ith a very long text. aze eazeae e ae aeae a e a ea ea ea e a e aea e ae aeaeaeaze.');
71 print
$form->selectarray(
'testselecta', $array, $selected, 1, 0, 0,
'', 0, 0, 0,
'',
'minwidth100', 1);
73 print
"Test 4b: a select<br>\n";
74 $array = array(1=>
'Value 1', 2=>
'Value 2', 3=>
'Value 3');
76 print
$form->selectarray(
'testselectb', $array, $selected, 1, 0, 0,
'', 0, 0, 0,
'',
'minwidth100', 1);
77 print
'<br><br>'.
"\n";
78 print
"Test 4c: Select array with addjscombo not forced<br>\n";
79 $array = array(1=>
'Value 1', 2=>
'Value 2', 3=>
'Value 3');
80 print
$form->selectarray(
'selectarray', $array, $selected, 1, 0, 0,
'', 0, 0, 0,
'',
'minwidth100', 0);
82 print
'<br><br>'.
"\n";
84 print
"Test 4d: a select with ajax refresh and with onchange call of url<br>\n";
86 print
$form->selectArrayAjax(
'testselectc', DOL_URL_ROOT.
'/core/ajax/selectsearchbox.php', $selected,
'',
'', 0, 1,
'minwidth100', 1);
88 print
'<br><br>'.
"\n";
91 print
"Test 5a: Select thirdparty<br>\n";
92 print
$form->select_company(0,
'thirdpartytest',
'',
'', 0, 0,
null, 0,
'minwidth100');
94 print
'<br><br>'.
"\n";
97 print
"Test 5b: Select product (using ajax)<br>\n";
98 $form->select_produits(0,
'producttest',
'', 20, 0, 1, 2,
'', 0,
null, 0,
'1', 0,
'minwidth100');
100 print
'<br><br>'.
"\n";
103 print
"Test 5c: a multiselect<br>\n";
104 $array = array(1=>
'Value 1', 2=>
'Value 2', 3=>
'Value 3');
105 $arrayselected = array(1, 3);
106 print
$form->multiselectarray(
'testmulti', $array, $arrayselected,
'', 0,
'minwidth100');
108 print
'<br><br>'.
"\n";
111 print
"Test 6a: Upload of big files<br>\n";
112 print
"The file will be uploaded in the directory: documents/test/temp/<br>\n";
114 if (is_file(DOL_DOCUMENT_ROOT.
'/includes/flowjs/flow.js')) {
115 print
'<button id="buttonbigupload" type="button">Browse...</button>';
116 print
' <span id="filespan">No file selected.</span>';
117 print
'<br><div class="progress-bar filepgbar taligncenter" role="progressbar" style="width:1%;display:none"><span class="small valigntop">0%</span></div>';
118 print
'<br><button type="button" style="display:none;" data-fileidentifier="" class="btn green-haze btn-circle cancelfileinput" id="filecancel">Cancel</button>';
119 print
'<script src="'.DOL_URL_ROOT.
'/includes/flowjs/flow.js"></script>';
121 jQuery(document).ready(function() {
122 var flow = new Flow({
123 target:"'.DOL_URL_ROOT.
'/core/ajax/flowjs-server.php",
124 query:{module:"test", token:"'.
newToken().
'"},
128 print
'if(flow.support){
129 flow.assignBrowse(document.getElementById("buttonbigupload"));
130 flow.on("fileAdded", function(file, event){
131 console.log("Trigger event file added", file, event);
132 $("#filespan").text(file.name);
133 $("#filecancel").data("fileidentifier", file.uniqueIdentifier)
134 $("#filecancel").show()
135 $(".filepgbar").show();
136 $(".filepgbar").attr("id",file.uniqueIdentifier+"pgbar")
138 flow.on("filesSubmitted", function(array,message){
139 console.log("Trigger event file submitted");
142 flow.on("progress", function(){
143 console.log("progress",flow.files);
144 flow.files.forEach(function(element){
145 console.log(element.progress());
146 width = Math.round(element.progress()*100)
147 width = width.toString()
148 $("#"+element.uniqueIdentifier+"pgbar").width(width+"%")
149 $("#"+element.uniqueIdentifier+"pgbar").children("span").text(width+"%")
152 flow.on("fileSuccess", function(file,message){
153 console.log("The file has been uploaded successfully",file,message);
155 $(".cancelfileinput").on("click", function(){
156 filename = $(this).data("fileidentifier");
157 file = flow.getFromUniqueIdentifier(filename);
159 $("#"+file.uniqueIdentifier+"pgbar").hide();
160 console.log("We remove file "+filename);
161 $("#filespan").text("No file selected.");
164 flow.on("fileError", function(file, message){
165 console.log("Error on file upload",file, message);
166 $("#"+file.uniqueIdentifier+"pgbar").width(20+"%");
167 $("#"+file.uniqueIdentifier+"pgbar").children("span").text("ERROR UPLOAD");
174 print
"If this message displays, please add flow.js and flow.min.js files which can be found here: https://github.com/flowjs/flow.js and place the js lib in htdocs/includes/flowjs/<br>\n";
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
dol_get_first_day($year, $month=1, $gm=false)
Return GMT time for first day of a month or year.
dol_now($mode='auto')
Return date for now.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
usage($program, $header)
Print the usage when executing scripts from install/.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.