BxDolLabel.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /**
  2. * Copyright (c) UNA, Inc - https://una.io
  3. * MIT License - https://opensource.org/licenses/MIT
  4. *
  5. * @defgroup UnaCore UNA Core
  6. * @{
  7. */
  8. function BxDolLabel(oOptions) {
  9. this._sObjName = oOptions.sObjName == undefined ? 'oBxDolLabel' : oOptions.sObjName;
  10. this._sRootUrl = oOptions.sRootUrl == undefined ? sUrlRoot : oOptions.sRootUrl;
  11. this._sActionsUrl = this._sRootUrl + 'label.php'; // actions url address
  12. this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
  13. this._iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
  14. this._aHtmlIds = oOptions.aHtmlIds == undefined ? {} : oOptions.aHtmlIds;
  15. this._sClassItem = 'sys-labels-list-item';
  16. this._sClassSublist = 'sys-labels-li-sublist';
  17. }
  18. BxDolLabel.prototype.selectLabels = function(oElement, sName, aParams)
  19. {
  20. var $this = this;
  21. var aValue = new Array();
  22. $(oElement).find('input:hidden').each(function() {
  23. aValue.push($(this).val());
  24. });
  25. var oData = $.extend({}, $this._getDefaultParams(), {action: 'select_labels', name: sName, value: aValue}, (aParams || {}));
  26. this._loadingInFormElement(oElement, true);
  27. $.get(
  28. this._sActionsUrl,
  29. oData,
  30. function(oData) {
  31. $this._loadingInFormElement(oElement, false);
  32. processJsonData(oData);
  33. },
  34. 'json'
  35. );
  36. };
  37. BxDolLabel.prototype.onSelectLabels = function(oData)
  38. {
  39. if(oData.name == undefined || oData.content == undefined)
  40. return;
  41. var oElement = $('#' + this._aHtmlIds['labels_element'] + oData.name + ' .bx-form-input-labels');
  42. if(!oElement.length)
  43. return;
  44. oElement.find('b.val:not(.val-placeholder)').remove();
  45. if(oData.content.length > 0)
  46. oElement.prepend(oData.content);
  47. };
  48. BxDolLabel.prototype.showSublist = function(oLink)
  49. {
  50. $(oLink).find('.sys-icon').toggleClass('chevron-down').toggleClass('chevron-up').parents('.' + this._sClassItem + ':first').find('.' + this._sClassSublist + ':first').bx_anim('toggle', this._sAnimationEffect, this._iAnimationSpeed);
  51. };
  52. BxDolLabel.prototype._loading = function(e, bShow)
  53. {
  54. var oParent = $(e).length ? $(e) : $('body');
  55. bx_loading(oParent, bShow);
  56. };
  57. BxDolLabel.prototype._loadingInBlock = function(e, bShow)
  58. {
  59. var oParent = $(e).length ? $(e).parents('.bx-db-content:first') : $('body');
  60. bx_loading(oParent, bShow);
  61. };
  62. BxDolLabel.prototype._loadingInFormElement = function(e, bShow)
  63. {
  64. var oParent = $(e).length ? $(e).parents('.bx-form-element:first') : $('body');
  65. bx_loading(oParent, bShow);
  66. };
  67. BxDolLabel.prototype._getSelectLabelsElement = function()
  68. {
  69. return $('#' + this._aHtmlIds['form'] + ' #' + this._aHtmlIds['labels_element'] + ' input');
  70. };
  71. BxDolLabel.prototype._getDefaultParams = function()
  72. {
  73. var oDate = new Date();
  74. return {
  75. _t: oDate.getTime()
  76. };
  77. };
  78. /** @} */