CheckboxEntryFactory.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. 'use strict';
  2. var getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject,
  3. cmdHelper = require('../helper/CmdHelper'),
  4. escapeHTML = require('../Utils').escapeHTML;
  5. var entryFieldDescription = require('./EntryFieldDescription');
  6. var checkbox = function(options, defaultParameters) {
  7. var resource = defaultParameters,
  8. id = resource.id,
  9. label = options.label || id,
  10. canBeDisabled = !!options.disabled && typeof options.disabled === 'function',
  11. canBeHidden = !!options.hidden && typeof options.hidden === 'function',
  12. description = options.description;
  13. resource.html =
  14. '<input id="activiti-' + escapeHTML(id) + '" ' +
  15. 'type="checkbox" ' +
  16. 'name="' + escapeHTML(options.modelProperty) + '" ' +
  17. (canBeDisabled ? 'data-disable="isDisabled"' : '') +
  18. (canBeHidden ? 'data-show="isHidden"' : '') +
  19. ' />' +
  20. '<label for="activiti-' + escapeHTML(id) + '" ' +
  21. (canBeDisabled ? 'data-disable="isDisabled"' : '') +
  22. (canBeHidden ? 'data-show="isHidden"' : '') +
  23. '>' + escapeHTML(label) + '</label>';
  24. // add description below checkbox entry field
  25. if (description) {
  26. resource.html += entryFieldDescription(description);
  27. }
  28. resource.get = function(element) {
  29. var bo = getBusinessObject(element),
  30. res = {};
  31. res[options.modelProperty] = bo.get(options.modelProperty);
  32. return res;
  33. };
  34. resource.set = function(element, values) {
  35. var res = {};
  36. res[options.modelProperty] = !!values[options.modelProperty];
  37. return cmdHelper.updateProperties(element, res);
  38. };
  39. if (typeof options.set === 'function') {
  40. resource.set = options.set;
  41. }
  42. if (typeof options.get === 'function') {
  43. resource.get = options.get;
  44. }
  45. if (canBeDisabled) {
  46. resource.isDisabled = function() {
  47. return options.disabled.apply(resource, arguments);
  48. };
  49. }
  50. if (canBeHidden) {
  51. resource.isHidden = function() {
  52. return !options.hidden.apply(resource, arguments);
  53. };
  54. }
  55. resource.cssClasses = ['bpp-checkbox'];
  56. return resource;
  57. };
  58. module.exports = checkbox;