admin_extrafields_add.tpl.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <?php
  2. /* Copyright (C) 2010-2015 Laurent Destailleur <eldy@users.sourceforge.net>
  3. * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
  4. * Copyright (C) 2016 Charlie Benke <charlie@patas-monkey.com>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. /**
  20. * The following vars must be defined:
  21. * $type2label
  22. * $form
  23. * $conf, $lang,
  24. * The following vars may also be defined:
  25. * $elementtype
  26. */
  27. ?>
  28. <!-- BEGIN PHP TEMPLATE admin_extrafields_add.tpl.php -->
  29. <script type="text/javascript">
  30. jQuery(document).ready(function() {
  31. function init_typeoffields(type)
  32. {
  33. console.log("selected type is "+type);
  34. var size = jQuery("#size");
  35. var computed_value = jQuery("#computed_value");
  36. var default_value = jQuery("#default_value");
  37. var unique = jQuery("#unique");
  38. var required = jQuery("#required");
  39. var alwayseditable = jQuery("#alwayseditable");
  40. var list = jQuery("#list");
  41. <?php
  42. if ((GETPOST('type') != "select") && (GETPOST('type') != "sellist"))
  43. {
  44. print 'jQuery("#value_choice").hide();';
  45. }
  46. if (GETPOST('type') == "separate")
  47. {
  48. print "jQuery('#size, #default_value').val('').prop('disabled', true);";
  49. print 'jQuery("#value_choice").hide();';
  50. }
  51. ?>
  52. // Case of computed field
  53. console.log(type);
  54. if (type == '' || type == 'varchar' || type == 'int' || type == 'double' || type == 'price') {
  55. jQuery("tr.extra_computed_value").show();
  56. } else {
  57. computed_value.val(''); jQuery("tr.extra_computed_value").hide();
  58. }
  59. if (computed_value.val())
  60. {
  61. console.log("We enter a computed formula");
  62. jQuery("#default_value").val('');
  63. /* jQuery("#unique, #required, #alwayseditable, #ishidden, #list").removeAttr('checked'); */
  64. jQuery("#default_value, #unique, #required, #alwayseditable, #ishidden, #list").attr('disabled', true);
  65. jQuery("tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_ishidden, tr.extra_list").hide();
  66. }
  67. else
  68. {
  69. console.log("No computed formula");
  70. jQuery("#default_value, #unique, #required, #alwayseditable, #ishidden, #list").attr('disabled', false);
  71. jQuery("tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_ishidden, tr.extra_list").show();
  72. }
  73. if (type == 'date') { size.val('').prop('disabled', true); unique.removeAttr('disabled'); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide(); }
  74. else if (type == 'datetime') { size.val('').prop('disabled', true); unique.removeAttr('disabled'); jQuery("#value_choice").hide(); jQuery("#helpchkbxlst").hide();}
  75. else if (type == 'double') { size.val('24,8').removeAttr('disabled'); unique.removeAttr('disabled'); jQuery("#value_choice").hide(); jQuery("#helpchkbxlst").hide();}
  76. else if (type == 'int') { size.val('10').removeAttr('disabled'); unique.removeAttr('disabled'); jQuery("#value_choice").hide(); jQuery("#helpchkbxlst").hide();}
  77. else if (type == 'text') { size.val('2000').removeAttr('disabled'); unique.prop('disabled', true).removeAttr('checked'); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide(); }
  78. else if (type == 'varchar') { size.val('255').removeAttr('disabled'); unique.removeAttr('disabled'); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide(); }
  79. else if (type == 'boolean') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide();}
  80. else if (type == 'price') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").hide();jQuery("#helpchkbxlst").hide();}
  81. else if (type == 'select') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show();jQuery("#helpselect").show();jQuery("#helpsellist").hide();jQuery("#helpchkbxlst").hide();jQuery("#helplink").hide();}
  82. else if (type == 'sellist') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show();jQuery("#helpselect").hide();jQuery("#helpsellist").show();jQuery("#helpchkbxlst").hide();jQuery("#helplink").hide();}
  83. else if (type == 'radio') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show();jQuery("#helpselect").show();jQuery("#helpsellist").hide();jQuery("#helpchkbxlst").hide();jQuery("#helplink").hide();}
  84. else if (type == 'checkbox') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show();jQuery("#helpselect").show();jQuery("#helpsellist").hide();jQuery("#helpchkbxlst").hide();jQuery("#helplink").hide();}
  85. else if (type == 'chkbxlst') { size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); jQuery("#value_choice").show();jQuery("#helpselect").hide();jQuery("#helpsellist").hide();jQuery("#helpchkbxlst").show();jQuery("#helplink").hide();}
  86. else if (type == 'link') { size.val('').prop('disabled', true); unique.removeAttr('disabled'); jQuery("#value_choice").show();jQuery("#helpselect").hide();jQuery("#helpsellist").hide();jQuery("#helpchkbxlst").hide();jQuery("#helplink").show();}
  87. else if (type == 'separate') {
  88. size.val('').prop('disabled', true); unique.removeAttr('checked').prop('disabled', true); required.val('').prop('disabled', true);
  89. jQuery("#value_choice").hide();jQuery("#helpselect").hide();jQuery("#helpsellist").hide();jQuery("#helpchkbxlst").hide();jQuery("#helplink").hide();
  90. }
  91. else { // type = string
  92. size.val('').prop('disabled', true);
  93. unique.removeAttr('disabled');
  94. }
  95. if (type == 'separate')
  96. {
  97. required.removeAttr('checked').prop('disabled', true); alwayseditable.removeAttr('checked').prop('disabled', true); list.val('').prop('disabled', true);
  98. jQuery('#size, #default_value').val('').prop('disabled', true);
  99. }
  100. else
  101. {
  102. default_value.removeAttr('disabled');
  103. required.removeAttr('disabled'); alwayseditable.removeAttr('disabled'); list.val('').removeAttr('disabled');
  104. }
  105. }
  106. init_typeoffields('<?php echo GETPOST('type'); ?>');
  107. jQuery("#type").change(function() {
  108. init_typeoffields($(this).val());
  109. });
  110. // If we enter a formula, we disable other fields
  111. jQuery("#computed_value").keyup(function() {
  112. init_typeoffields(jQuery('#type').val());
  113. });
  114. });
  115. </script>
  116. <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
  117. <input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>">
  118. <input type="hidden" name="action" value="add">
  119. <?php dol_fiche_head(); ?>
  120. <table summary="listofattributes" class="border centpercent">
  121. <!-- Label -->
  122. <tr><td class="titlefield fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label'); ?>"></td></tr>
  123. <!-- Code -->
  124. <tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><input type="text" name="attrname" id="attrname" size="10" value="<?php echo GETPOST('attrname'); ?>"> (<?php echo $langs->trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)</td></tr>
  125. <!-- Type -->
  126. <tr><td class="fieldrequired"><?php echo $langs->trans("Type"); ?></td><td class="valeur">
  127. <?php print $form->selectarray('type',$type2label,GETPOST('type')); ?>
  128. </td></tr>
  129. <!-- Size -->
  130. <tr class="extra_size"><td class="fieldrequired"><?php echo $langs->trans("Size"); ?></td><td class="valeur"><input id="size" type="text" name="size" size="5" value="<?php echo (GETPOST('size')?GETPOST('size'):''); ?>"></td></tr>
  131. <!-- Default Value (for select list / radio/ checkbox) -->
  132. <tr id="value_choice">
  133. <td>
  134. <?php echo $langs->trans("Value"); ?>
  135. </td>
  136. <td>
  137. <table class="nobordernopadding">
  138. <tr><td>
  139. <textarea name="param" id="param" cols="80" rows="<?php echo ROWS_4 ?>"><?php echo GETPOST('param'); ?></textarea>
  140. </td><td>
  141. <span id="helpselect"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpselect"),1,0)?></span>
  142. <span id="helpsellist"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpsellist"),1,0)?></span>
  143. <span id="helpchkbxlst"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpchkbxlst"),1,0)?></span>
  144. <span id="helplink"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelplink"),1,0)?></span>
  145. </td></tr>
  146. </table>
  147. </td>
  148. </tr>
  149. <!-- Position -->
  150. <tr><td class="titlefield"><?php echo $langs->trans("Position"); ?></td><td class="valeur"><input type="text" name="pos" size="5" value="<?php echo GETPOST('pos'); ?>"></td></tr>
  151. <!-- Computed Value -->
  152. <tr class="extra_computed_value"><td><?php echo $form->textwithpicto($langs->trans("ComputedFormula"), $langs->trans("ComputedFormulaDesc"), 1, 'help', '', 0, 2, 'tooltipcompute'); ?></td><td class="valeur"><input id="computed_value" type="text" name="computed_value" class="quatrevingtpercent" value="<?php echo (GETPOST('"computed_value"')?GETPOST('"computed_value"'):''); ?>"></td></tr>
  153. <!-- Default Value (at sql setup level) -->
  154. <tr class="extra_default_value"><td><?php echo $langs->trans("DefaultValue").' ('.$langs->trans("Database").')'; ?></td><td class="valeur"><input id="default_value" type="text" name="default_value" size="5" value="<?php echo (GETPOST('"default_value"')?GETPOST('"default_value"'):''); ?>"></td></tr>
  155. <!-- Unique -->
  156. <tr class="extra_unique"><td><?php echo $langs->trans("Unique"); ?></td><td class="valeur"><input id="unique" type="checkbox" name="unique"<?php echo (GETPOST('unique')?' checked':''); ?>></td></tr>
  157. <!-- Required -->
  158. <tr class="extra_required"><td><?php echo $langs->trans("Required"); ?></td><td class="valeur"><input id="required" type="checkbox" name="required"<?php echo (GETPOST('required')?' checked':''); ?>></td></tr>
  159. <!-- Always editable -->
  160. <tr class="extra_alwayseditable"><td><?php echo $langs->trans("AlwaysEditable"); ?></td><td class="valeur"><input id="alwayseditable" type="checkbox" name="alwayseditable"<?php echo ((GETPOST('alwayseditable') || ! GETPOST('button'))?' checked':''); ?>></td></tr>
  161. <!-- Is visible or not -->
  162. <?php if (! empty($conf->global->MAIN_CAN_HIDE_EXTRAFIELDS)) { ?>
  163. <tr class="extra_ishidden"><td><?php echo $langs->trans("Hidden"); ?></td><td class="valeur"><input id="ishidden" type="checkbox" name="ishidden"<?php echo (GETPOST('ishidden') ?' checked' : ''); ?>></td></tr>
  164. <?php } ?>
  165. <?php if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { ?>
  166. <!-- By default visible into list -->
  167. <tr><td><?php echo $langs->trans("ByDefaultInList"); ?>
  168. <?php echo img_info($langs->trans("FeatureNotYetSupported")); ?>
  169. </td><td class="valeur"><input id="list" type="checkbox" name="list" <?php echo (GETPOST('list')?' checked':''); ?>></td></tr>
  170. <?php } ?>
  171. </table>
  172. <?php dol_fiche_end(); ?>
  173. <div align="center"><input type="submit" name="button" class="button" value="<?php echo $langs->trans("Save"); ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  174. <input type="submit" name="button" class="button" value="<?php echo $langs->trans("Cancel"); ?>"></div>
  175. </form>
  176. <!-- END PHP TEMPLATE admin_extrafields_add.tpl.php -->