BxDolCreatePost.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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 BxDolCreatePost(oOptions) {
  9. this._sObjName = oOptions.sObjName == undefined ? 'oBxDolCreatePost' : oOptions.sObjName;
  10. this._sRootUrl = oOptions.sRootUrl == undefined ? sUrlRoot : oOptions.sRootUrl;
  11. this._sDefault = oOptions.sDefault == undefined ? '' : oOptions.sDefault;
  12. this._iContextId = oOptions.iContextId == undefined ? 0 : oOptions.iContextId;
  13. this._oCustom = oOptions.oCustom == undefined ? {} : oOptions.oCustom;
  14. this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
  15. this._iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
  16. this._aHtmlIds = oOptions.aHtmlIds == undefined ? {} : oOptions.aHtmlIds;
  17. }
  18. BxDolCreatePost.prototype.getForm = function (sModuleName, sModuleUri, oElement) {
  19. var $this = this;
  20. var oDate = new Date();
  21. var oTab = $(oElement);
  22. var sTabActive = 'bx-menu-tab-active';
  23. oTab.parents('.bx-db-menu:first').find('li.' + sTabActive).removeClass(sTabActive);
  24. oTab.parents('li:first').addClass(sTabActive);
  25. oTab.parents('.bx-popup-applied:visible').dolPopupHide();
  26. if($('.sys-cpf-form.sys-cpf-' + sModuleName + ' form').length > 0) {
  27. $('.sys-cpf-form:visible').bx_anim('hide', this._sAnimationEffect, this._iAnimationSpeed, function() {
  28. $('.sys-cpf-form.sys-cpf-' + sModuleName).show().siblings('.sys-cpf-close:hidden').show();
  29. });
  30. return false;
  31. }
  32. this._loadingInBlock(oElement, true);
  33. $.get(
  34. this._sRootUrl + 'modules/?r=' + sModuleUri + '/get_create_post_form/', {
  35. ajax_mode: true,
  36. dynamic_mode: true,
  37. absolute_action_url: true,
  38. context_id: this._iContextId,
  39. custom: this._oCustom,
  40. _t:oDate.getTime()
  41. },
  42. function(oData) {
  43. $this._loadingInBlock(oElement, false);
  44. if(!oData || !oData.content)
  45. return;
  46. $('.sys-cpf-form:visible').bx_anim('hide', this._sAnimationEffect, this._iAnimationSpeed, function() {
  47. $this._loadingInBlock(oElement, true);
  48. $('.sys-cpf-close:visible').hide();
  49. var sForm = '.sys-cpf-form.sys-cpf-' + oData.module;
  50. if($(sForm).length == 0)
  51. $('.sys-cpf-close').before($('<div class="sys-cpf-form sys-cpf-' + oData.module + '"></div>').hide());
  52. $(sForm).html(oData.content).show().siblings('.sys-cpf-close:hidden').show();
  53. $this._loadingInBlock(oElement, false);
  54. });
  55. },
  56. 'json'
  57. );
  58. return false;
  59. };
  60. BxDolCreatePost.prototype.hideForm = function(oElement) {
  61. $(oElement).parents('.sys-cpf-close:first').bx_anim('hide', this._sAnimationEffect, this._iAnimationSpeed);
  62. var sTabActive = 'bx-menu-tab-active';
  63. var sTabDefault = 'bx-menu-item-' + this._sDefault;
  64. var oMiActive = $('.sys-cpf-submenu li.' + sTabActive);
  65. var bMiChange = oMiActive.not('.' + sTabDefault);
  66. if(bMiChange)
  67. oMiActive.removeClass(sTabActive);
  68. $('.sys-cpf-form:visible').bx_anim('hide', this._sAnimationEffect, this._iAnimationSpeed, function() {
  69. $('.sys-cpf-form.sys-cpf-default').show();
  70. if(bMiChange)
  71. $('.' + sTabDefault).addClass(sTabActive);
  72. });
  73. };
  74. BxDolCreatePost.prototype._loading = function(e, bShow) {
  75. var oParent = $(e).length ? $(e) : $('body');
  76. bx_loading(oParent, bShow);
  77. };
  78. BxDolCreatePost.prototype._loadingInBlock = function(e, bShow) {
  79. var oParent = $(e).length ? $(e).parents('.bx-db-content:first') : $('body');
  80. bx_loading(oParent, bShow);
  81. };
  82. /** @} */