Просмотр исходного кода

#42
- Rename module "Messages" to "Convos"
- Base text module reorganization

Alex Trofimov 12 лет назад
Родитель
Сommit
ca51d52fd2
80 измененных файлов с 802 добавлено и 1046 удалено
  1. 2 2
      inc/classes/BxDolAlerts.php
  2. 1 1
      modules/base/text/classes/BxBaseModTextFormEntry.php
  3. 1 1
      modules/base/text/classes/BxBaseModTextTemplate.php
  4. 23 0
      modules/base/text/js/forms.js
  5. 2 2
      modules/base/text/template/attachments.html
  6. 1 1
      modules/base/text/template/author.html
  7. 14 0
      modules/base/text/template/css/forms.css
  8. 70 0
      modules/base/text/template/css/main.css
  9. 1 0
      modules/base/text/template/entry-share.html
  10. 6 0
      modules/base/text/template/entry-text.html
  11. 29 0
      modules/base/text/template/form_ghost_template.html
  12. 16 0
      modules/base/text/template/unit.html
  13. 25 0
      modules/base/text/template/unit_gallery.html
  14. 8 0
      modules/base/text/template/unit_private.html
  15. 12 4
      modules/boonex/convos/classes/BxCnvAlertsResponse.php
  16. 3 3
      modules/boonex/convos/classes/BxCnvCmts.php
  17. 24 23
      modules/boonex/convos/classes/BxCnvConfig.php
  18. 7 7
      modules/boonex/convos/classes/BxCnvDb.php
  19. 7 7
      modules/boonex/convos/classes/BxCnvFormEntry.php
  20. 2 2
      modules/boonex/convos/classes/BxCnvFormsEntryHelper.php
  21. 6 6
      modules/boonex/convos/classes/BxCnvGrid.php
  22. 3 3
      modules/boonex/convos/classes/BxCnvMenu.php
  23. 3 3
      modules/boonex/convos/classes/BxCnvMenuView.php
  24. 30 28
      modules/boonex/convos/classes/BxCnvModule.php
  25. 3 3
      modules/boonex/convos/classes/BxCnvPageBrowse.php
  26. 3 3
      modules/boonex/convos/classes/BxCnvPageEntry.php
  27. 8 8
      modules/boonex/convos/classes/BxCnvTemplate.php
  28. 9 9
      modules/boonex/convos/install/config.php
  29. 2 2
      modules/boonex/convos/install/installer.php
  30. 95 0
      modules/boonex/convos/install/langs/en.xml
  31. 46 0
      modules/boonex/convos/install/sql/disable.sql
  32. 194 0
      modules/boonex/convos/install/sql/enable.sql
  33. 40 40
      modules/boonex/convos/install/sql/install.sql
  34. 30 0
      modules/boonex/convos/install/sql/uninstall.sql
  35. 22 0
      modules/boonex/convos/js/main.js
  36. 1 1
      modules/boonex/convos/request.php
  37. 3 0
      modules/boonex/convos/template/attachments.html
  38. 3 0
      modules/boonex/convos/template/author.html
  39. 3 3
      modules/boonex/convos/template/collaborators.html
  40. 3 0
      modules/boonex/convos/template/css/forms.css
  41. 9 0
      modules/boonex/convos/template/css/main.css
  42. 3 0
      modules/boonex/convos/template/entry-share.html
  43. 5 0
      modules/boonex/convos/template/entry-text.html
  44. 3 0
      modules/boonex/convos/template/form_ghost_template.html
  45. BIN
      modules/boonex/convos/template/images/icons/std-mi.png
  46. BIN
      modules/boonex/convos/template/images/icons/std-pi.png
  47. BIN
      modules/boonex/convos/template/images/icons/std-si.png
  48. BIN
      modules/boonex/convos/template/images/icons/std-wi.png
  49. 6 1
      modules/boonex/english/data/langs/system.xml
  50. 0 134
      modules/boonex/messages/classes/BxMsgSearchResult.php
  51. 0 102
      modules/boonex/messages/install/langs/en.xml
  52. 0 46
      modules/boonex/messages/install/sql/disable.sql
  53. 0 194
      modules/boonex/messages/install/sql/enable.sql
  54. 0 30
      modules/boonex/messages/install/sql/uninstall.sql
  55. 0 23
      modules/boonex/messages/js/forms.js
  56. 0 22
      modules/boonex/messages/js/main.js
  57. 0 14
      modules/boonex/messages/template/css/forms.css
  58. 0 74
      modules/boonex/messages/template/css/main.css
  59. 0 1
      modules/boonex/messages/template/entry-share.html
  60. 0 5
      modules/boonex/messages/template/entry-text.html
  61. 0 29
      modules/boonex/messages/template/form_ghost_template.html
  62. BIN
      modules/boonex/messages/template/images/icons/std-mi.png
  63. BIN
      modules/boonex/messages/template/images/icons/std-pi.png
  64. BIN
      modules/boonex/messages/template/images/icons/std-si.png
  65. BIN
      modules/boonex/messages/template/images/icons/std-wi.png
  66. 0 16
      modules/boonex/messages/template/unit.html
  67. 0 25
      modules/boonex/messages/template/unit_gallery.html
  68. 0 8
      modules/boonex/messages/template/unit_private.html
  69. 0 4
      modules/boonex/notes/install/langs/en.xml
  70. 3 0
      modules/boonex/notes/template/attachments.html
  71. 1 3
      modules/boonex/notes/template/author.html
  72. 1 12
      modules/boonex/notes/template/css/forms.css
  73. 1 65
      modules/boonex/notes/template/css/main.css
  74. 3 1
      modules/boonex/notes/template/entry-share.html
  75. 1 4
      modules/boonex/notes/template/entry-text.html
  76. 1 27
      modules/boonex/notes/template/form_ghost_template.html
  77. 1 14
      modules/boonex/notes/template/unit.html
  78. 1 23
      modules/boonex/notes/template/unit_gallery.html
  79. 1 6
      modules/boonex/notes/template/unit_private.html
  80. 1 1
      modules/boonex/timeline/classes/BxTimelineResponse.php

+ 2 - 2
inc/classes/BxDolAlerts.php

@@ -127,8 +127,8 @@ class BxDolAlerts extends BxDol {
 
 class BxDolAlertsResponse extends BxDol
 {
-    public function BxDolAlertsResponse() {
-        parent::BxDol();
+    public function __construct() {
+        parent::__construct();
     }
 
     public function response($oAlert) {

+ 1 - 1
modules/base/text/classes/BxBaseModTextFormEntry.php

@@ -211,7 +211,7 @@ class BxBaseModTextFormEntry extends BxTemplFormView
         if (!isset($this->aParams['view_mode']) || !$this->aParams['view_mode']) {
             if (self::$_isCssJsAdded)
                 return;
-            $this->_oModule->_oTemplate->addJs('forms.js');
+            $this->_oModule->_oTemplate->addJs('modules/base/text/js/|forms.js');
             $this->_oModule->_oTemplate->addCss('forms.css');
         }
 

+ 1 - 1
modules/base/text/classes/BxBaseModTextTemplate.php

@@ -156,7 +156,7 @@ class BxBaseModTextTemplate extends BxDolModuleTemplate
         $oStorage = BxDolStorage::getObjectInstance($CNF['OBJECT_STORAGE']);
         $oTranscoder = BxDolImageTranscoder::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_PREVIEW']);
 
-        $aGhostFiles = $oStorage->getGhosts (bx_get_logged_profile_id(), $aData[$CNF['FIELD_ID']]);
+        $aGhostFiles = $oStorage->getGhosts ($aData[$CNF['FIELD_AUTHOR']], $aData[$CNF['FIELD_ID']]);
         if (!$aGhostFiles)
             return false;
 

+ 23 - 0
modules/base/text/js/forms.js

@@ -0,0 +1,23 @@
+
+function bx_base_text_select_thumb(eCheckbox) {
+    var eCont = $(eCheckbox).parents('.bx-form-input-files-result');
+    if (!eCont.length)
+        return;
+    eCont.find('.bx-base-text-use-as-thumb input:checked').each (function () {        
+        if ($(this).attr('id') != $(eCheckbox).attr('id'))
+            $(this).css('border', '1px solid red').attr('checked', false);
+    });
+}
+
+function bx_base_text_delete_ghost (iFileId, sFileUrl, sFileIcon, sEditorId, sSummaryId, oUploaderInstance) {
+    bx_editor_remove_img (
+        [sEditorId, sSummaryId], 
+        ['img[src="' + sFileIcon + '"]', 'img[src="' + sFileUrl + '"]', '.bx-base-text-img-' + iFileId, '.bx-base-text-icon-' + iFileId]
+    );
+    oUploaderInstance.deleteGhost(iFileId);
+}
+
+function bx_base_text_insert_to_post (iFileId, sFileUrl, sEditorId) {
+    bx_editor_insert_img (sEditorId, 'bx-base-text-img-' + iFileId, sFileUrl, 'bx-base-text-img');
+}
+

+ 2 - 2
modules/boonex/messages/template/attachments.html → modules/base/text/template/attachments.html

@@ -1,7 +1,7 @@
-<div class="bx-msg-attachments bx-clearfix">
+<div class="bx-base-text--attachments bx-clearfix">
 
     <bx_repeat:attachments>
-        <div class="bx-msg-attachment bx-def-color-bg-sec bx-def-gal-img-size bx-def-margin-sec-rightbottomleft" style="float:left;">            
+        <div class="bx-base-text-attachment bx-def-color-bg-sec bx-def-gal-img-size bx-def-margin-sec-rightbottomleft" style="float:left;">            
             <bx_if:image>
                 <a target="_blank" href="javascript:void(0);" title="__attr_file_name__" onclick="$('#__popup_id__').dolPopupImage('__url_original__', $(this).parent())">
                     <img class="bx-def-round-corners bx-def-gal-img-size" src="__url_preview__" />

+ 1 - 1
modules/boonex/messages/template/author.html → modules/base/text/template/author.html

@@ -1,5 +1,5 @@
 
-<div class="bx-msg-author bx-def-unit">
+<div class="bx-base-text-author bx-def-unit">
     <a href="__author_url__"><img class="bx-def-thumb bx-def-thumb-size" src="__author_thumb_url__" /></a><div class="bx-def-unit-info bx-def-thumb-size-max-height bx-def-padding-left"><a href="__author_url__">__author_title__</a><br /><span class="bx-def-font-grayed bx-def-font-small">__author_desc__</span></div>
 </div>
 

+ 14 - 0
modules/base/text/template/css/forms.css

@@ -0,0 +1,14 @@
+
+
+.bx-uploader-ghost .bx-base-text-icon-wrapper {
+    float:left;
+}
+
+.bx-base-text-uploader-ghost input.bx-form-input-text {
+    width:300px;
+}
+
+.bx-base-text-use-as-thumb input,
+.bx-base-text-use-as-thumb label {
+    vertical-align:middle;
+}

+ 70 - 0
modules/base/text/template/css/main.css

@@ -0,0 +1,70 @@
+
+/* unit */
+
+.bx-base-text-unit:first-child h1 {
+    padding-top:0;
+}
+
+.bx-base-text-unit h1 {
+    margin:0;
+}
+
+.bx-base-text-unit .sys-icon {
+    vertical-align:middle;
+}
+
+.bx-base-text-unit-no-thumb,
+.bx-base-text-unit-thumb {
+    display:block;
+    float:right;
+    overflow:hidden;
+}
+
+.bx-base-text-unit-no-thumb {
+    overflow:hidden;
+}
+
+.bx-base-text-unit-summary p {
+    margin:0;
+}
+
+.bx-base-text-unit-info {
+    white-space:nowrap;
+    overflow:hidden;
+    text-overflow:ellipsis;
+}
+
+.bx-base-text-unit-gallery {
+    float:left;
+}
+
+.bx-base-text-unit-gallery .bx-base-text-unit-no-thumb,
+.bx-base-text-unit-gallery .bx-base-text-unit-thumb {
+    float:none;
+    line-height:1.25em;
+}
+
+.bx-base-text-unit-gallery h2 {
+    line-height:1.25em;
+    max-height:3.75em;
+    overflow:hidden; 
+}
+
+.bx-base-text-wrapper {
+    margin-bottom:0;
+}
+
+/* view page */
+
+.bx-base-text-entity-content p:first-child,
+.bx-base-text-entity-content h1:first-child {
+    margin-top:0;
+}
+
+.bx-base-text-entity-share .bx-vote,
+.bx-base-text-entity-share .bx-tl-share,
+.bx-base-text-entity-share .bx-social-sharing {
+	position: relative;
+	float: left;
+}
+

+ 1 - 0
modules/base/text/template/entry-share.html

@@ -0,0 +1 @@
+<div class="bx-base-text-entity-share bx-clearfix">__vote____share____social__</div>

+ 6 - 0
modules/base/text/template/entry-text.html

@@ -0,0 +1,6 @@
+
+<div class="bx-base-text-entity-content bx-def-constraint-list bx-def-constraint-pre bx-def-constraint-object bx-def-constraint-iframe bx-def-constraint-img">
+    <h1>__title__</h1>
+    __text__
+</div>
+

+ 29 - 0
modules/base/text/template/form_ghost_template.html

@@ -0,0 +1,29 @@
+<div id="bx-uploader-file-{file_id}" class="bx-uploader-ghost bx-def-margin-sec-top bx-clearfix">
+    <input type="hidden" name="__name__" value="{file_id}" />
+    <div class="bx-base-text-icon-wrapper bx-def-margin-sec-right">
+        <img src="{file_icon}" class="bx-def-round-corners bx-base-text-icon bx-base-text-icon-{file_id}" />
+    </div>
+    <span class="bx-base-text-uploader-ghost">
+        <b><bx_text:_sys_txt_form_entry_input_picture_pic_url /></b>
+        <br />
+        <input class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" type="text" value="{file_url}" readonly="1" /> <br />
+
+        <span id="bx-base-text-intert-to-post-link-{file_id}" style="display:none;">
+            <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_base_text_insert_to_post('{file_id}', '{file_url}', '__editor_id__');"><bx_text:_sys_txt_form_entry_input_picture_insert /></a>
+        </span>
+        <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_base_text_delete_ghost('{file_id}', '{file_url}', '{file_icon}', '__editor_id__', '__summary_id__', {js_instance_name});"><bx_text:_sys_txt_form_entry_input_picture_delete /></a>
+
+        <bx_if:set_thumb>
+            <span class="bx-base-text-use-as-thumb">
+                <input type="checkbox" name="__name_thumb__[]" value="{file_id}" onclick="bx_base_text_select_thumb(this)" id="__name_thumb__-{file_id}" /> 
+                <label for="__name_thumb__-{file_id}"><bx_text:_sys_txt_form_entry_input_picture_use_as_thumb /></label>
+            </span>
+        </bx_if:set_thumb>
+
+    </span>
+</div>
+<script>
+    if ('object' == typeof(tinymce))
+        $('#bx-base-text-intert-to-post-link-{file_id}').show();
+    $('#bx-uploader-file-{file_id} .bx-base-text-use-as-thumb input[value="__thumb_id__"]').attr('checked', true);
+</script>

+ 16 - 0
modules/base/text/template/unit.html

@@ -0,0 +1,16 @@
+
+<div class="bx-base-text-unit bx-def-margin-bottom">
+    <h1 class="bx-def-padding-sec-top"><a href="__content_url__">__title__</a></h1>
+    <div class="bx-base-text-unit-info bx-def-margin-sec-top">
+        <span class="bx-def-font-grayed">__entry_posting_date__</span>
+        <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+        <a href="__author_url__">__author__</a>
+    </div>
+    <div class="bx-base-text-unit-summary bx-def-margin-sec-top bx-def-margin-sec-bottom bx-clearfix">
+        <bx_if:thumb>
+            <img class="bx-base-text-unit-thumb bx-def-gal-img-size bx-def-round-corners bx-def-margin-sec-left" alt="__title__" src="__thumb_url__" />
+        </bx_if:thumb>
+        __summary__
+    </div> 
+</div>
+

+ 25 - 0
modules/base/text/template/unit_gallery.html

@@ -0,0 +1,25 @@
+
+<div class="bx-base-text-unit bx-base-text-unit-gallery bx-def-gal-unit-size bx-def-margin">
+
+    <bx_if:thumb>
+        <a href="__content_url__"><img class="bx-base-text-unit-thumb bx-def-gal-img-size bx-def-round-corners bx-def-color-bg-sec bx-def-font-middle" alt="__summary_attr__" src="__thumb_url__" /></a>
+    </bx_if:thumb>
+
+    <bx_if:no_thumb>
+        <div class="bx-def-gal-img-column">
+            <div class="bx-base-text-unit-no-thumb bx-def-gal-img-size bx-def-round-corners bx-def-color-bg-sec bx-def-font-middle bx-def-font-grayed bx-def-padding bx-def-box-sizing">__summary_plain__</div>
+        </div>
+    </bx_if:no_thumb>
+
+    <div class="bx-def-gal-unit-column">
+        <h2 class="bx-def-margin-sec-topbottom"><a href="__content_url__">__title__</a></h2>
+    </div>
+
+    <div class="bx-base-text-unit-info">
+        <span class="bx-def-font-grayed">__entry_posting_date__</span>
+        <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+        <a href="__author_url__">__author__</a>
+    </div>
+
+</div>
+

+ 8 - 0
modules/base/text/template/unit_private.html

@@ -0,0 +1,8 @@
+
+<div class="bx-base-text-unit bx-def-margin-bottom">
+    <h2><bx_text:_sys_private /></h2>
+    <div class="bx-base-text-unit-summary">
+        __summary__
+    </div>
+</div>
+

+ 12 - 4
modules/boonex/messages/classes/BxMsgAlertsResponse.php → modules/boonex/convos/classes/BxCnvAlertsResponse.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -12,15 +12,23 @@
 /**
  * alerts handler
  */
-class BxMsgAlertsResponse extends BxDolAlertsResponse 
+class BxCnvAlertsResponse extends BxDolAlertsResponse 
 {
+    protected $MODULE;
+
+    public function __construct() 
+    {
+        parent::__construct();
+        $this->MODULE = 'bx_convos';
+    }
+    
     public function response($oAlert) 
     {
-        if ('bx_messages' == $oAlert->sUnit) {
+        if ($this->MODULE == $oAlert->sUnit) {
 
             switch ($oAlert->sAction) {
                 case 'commentPost':
-                    BxDolService::call('bx_messages', 'trigger_comment_post', array($oAlert->iObject, $oAlert->iSender));
+                    BxDolService::call($this->MODULE, 'trigger_comment_post', array($oAlert->iObject, $oAlert->iSender));
                     break;
             }
 

+ 3 - 3
modules/boonex/messages/classes/BxMsgCmts.php → modules/boonex/convos/classes/BxCnvCmts.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -11,7 +11,7 @@
 
 bx_import('BxTemplCmts');
 
-class BxMsgCmts extends BxTemplCmts
+class BxCnvCmts extends BxTemplCmts
 {
     /**
      * Comments are enabled for collaborators only
@@ -22,7 +22,7 @@ class BxMsgCmts extends BxTemplCmts
             return false;
 
         bx_import('BxDolModule');
-        $oModule = BxDolModule::getInstance('bx_messages');
+        $oModule = BxDolModule::getInstance('bx_convos');
         if (!($aContentInfo = $oModule->_oDb->getContentInfoById((int)$this->getId())))
             return false;
 

+ 24 - 23
modules/boonex/messages/classes/BxMsgConfig.php → modules/boonex/convos/classes/BxCnvConfig.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -11,7 +11,7 @@
 
 bx_import('BxBaseModTextConfig');
 
-class BxMsgConfig extends BxBaseModTextConfig 
+class BxCnvConfig extends BxBaseModTextConfig 
 {
     function __construct($aModule) 
     {
@@ -29,7 +29,7 @@ class BxMsgConfig extends BxBaseModTextConfig
             'FIELD_CHANGED' => 'changed',
             'FIELD_TITLE' => '',
             'FIELD_TEXT' => 'text',
-            'FIELD_TEXT_ID' => 'message-text',
+            'FIELD_TEXT_ID' => 'convo-text',
             'FIELD_SUMMARY' => '',
             'FIELD_SUMMARY_ID' => '',
             'FIELD_ALLOW_VIEW_TO' => '',
@@ -38,11 +38,11 @@ class BxMsgConfig extends BxBaseModTextConfig
             'FIELD_COMMENTS' => 'comments',
 
             // page URIs
-            'URI_VIEW_ENTRY' => 'view-message',
-            'URI_AUTHOR_ENTRIES' => 'messages',
-            'URI_ADD_ENTRY' => 'compose-message',
+            'URI_VIEW_ENTRY' => 'view-convo',
+            'URI_AUTHOR_ENTRIES' => 'convos',
+            'URI_ADD_ENTRY' => 'start-convo',
 
-            'URL_HOME' => 'modules/?r=messages/folder/1',
+            'URL_HOME' => 'modules/?r=convos/folder/1',
 
             // some params
             'PARAM_CHARS_SUMMARY' => '',
@@ -50,34 +50,35 @@ class BxMsgConfig extends BxBaseModTextConfig
             'PARAM_NUM_RSS' => '',
 
             // objects
-            'OBJECT_STORAGE' => 'bx_messages_files',
-            'OBJECT_IMAGES_TRANSCODER_PREVIEW' => 'bx_messages_preview',
-            'OBJECT_VIEWS' => 'bx_messages',
+            'OBJECT_GRID' => 'bx_convos',
+            'OBJECT_STORAGE' => 'bx_convos_files',
+            'OBJECT_IMAGES_TRANSCODER_PREVIEW' => 'bx_convos_preview',
+            'OBJECT_VIEWS' => 'bx_convos',
             'OBJECT_VOTES' => '',
-            'OBJECT_COMMENTS' => 'bx_messages',
+            'OBJECT_COMMENTS' => 'bx_convos',
             'OBJECT_PRIVACY_VIEW' => '',
-            'OBJECT_FORM_ENTRY' => 'bx_messages',
-            'OBJECT_FORM_ENTRY_DISPLAY_VIEW' => 'bx_messages_entry_view',
-            'OBJECT_FORM_ENTRY_DISPLAY_ADD' => 'bx_messages_entry_add',
+            'OBJECT_FORM_ENTRY' => 'bx_convos',
+            'OBJECT_FORM_ENTRY_DISPLAY_VIEW' => 'bx_convos_entry_view',
+            'OBJECT_FORM_ENTRY_DISPLAY_ADD' => 'bx_convos_entry_add',
             'OBJECT_FORM_ENTRY_DISPLAY_EDIT' => '',
-            'OBJECT_FORM_ENTRY_DISPLAY_DELETE' => 'bx_messages_entry_delete',
-            'OBJECT_MENU_ACTIONS_VIEW_ENTRY' => 'bx_messages_view', // actions menu on view entry page
-            'OBJECT_MENU_ACTIONS_MY_ENTRIES' => 'bx_messages_my', // actions menu on my entries page
-            'OBJECT_MENU_SUBMENU' => 'bx_messages_submenu', // main module submenu
+            'OBJECT_FORM_ENTRY_DISPLAY_DELETE' => 'bx_convos_entry_delete',
+            'OBJECT_MENU_ACTIONS_VIEW_ENTRY' => 'bx_convos_view', // actions menu on view entry page
+            'OBJECT_MENU_ACTIONS_MY_ENTRIES' => 'bx_convos_my', // actions menu on my entries page
+            'OBJECT_MENU_SUBMENU' => 'bx_convos_submenu', // main module submenu
             'OBJECT_MENU_SUBMENU_VIEW_ENTRY' => '', // view entry submenu
-            'OBJECT_MENU_SUBMENU_VIEW_ENTRY_MAIN_SELECTION' => 'messages', // first item in view entry submenu from main module submenu
+            'OBJECT_MENU_SUBMENU_VIEW_ENTRY_MAIN_SELECTION' => 'convos', // first item in view entry submenu from main module submenu
 
             // menu items which visibility depends on custom visibility checking
             'MENU_ITEM_TO_METHOD' => array (
-                'bx_messages_view' => array (
-                    'delete-message' => 'checkAllowedDelete',
-                    'mark-unread-message' => 'checkAllowedView',
+                'bx_convos_view' => array (
+                    'delete-convos' => 'checkAllowedDelete',
+                    'mark-unread-convo' => 'checkAllowedView',
                 ),
             ),
 
             // some language keys
             'T' => array (
-                'txt_sample_single' => '_bx_msg_txt_sample_single',
+                'txt_sample_single' => '_bx_cnv_txt_sample_single',
             ),
         );
 

+ 7 - 7
modules/boonex/messages/classes/BxMsgDb.php → modules/boonex/convos/classes/BxCnvDb.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,7 +14,7 @@ bx_import('BxBaseModTextDb');
 /*
  * Module database queries
  */
-class BxMsgDb extends BxBaseModTextDb 
+class BxCnvDb extends BxBaseModTextDb 
 {
     public function __construct(&$oConfig) 
     {
@@ -57,20 +57,20 @@ class BxMsgDb extends BxBaseModTextDb
         return $this->query($sQuery);
     }
 
-    public function moveMessage($iConversationId, $iProfileId, $iFolderId)
+    public function moveConvo($iConversationId, $iProfileId, $iFolderId)
     {
         $sQuery = $this->prepare("SELECT `folder_id` FROM `" . $this->getPrefix() . "conv2folder` WHERE `conv_id` = ? AND `collaborator` = ?", $iConversationId, $iProfileId);
         $iFolderIdOld = $this->getOne($sQuery);
-        if (BX_MSG_FOLDER_TRASH == $iFolderIdOld) // if message is already in trash folder - delete it
-            return $this->deleteMessage($iConversationId, $iProfileId);
+        if (BX_CNV_FOLDER_TRASH == $iFolderIdOld) // if convo is already in trash folder - delete it
+            return $this->deleteConvo($iConversationId, $iProfileId);
 
         $sQuery = $this->prepare("UPDATE `" . $this->getPrefix() . "conv2folder` SET `folder_id` = ? WHERE `conv_id` = ? AND `collaborator` = ?", $iFolderId, $iConversationId, $iProfileId);
         return $this->query($sQuery);
     }
 
-    public function deleteMessage($iConversationId, $iProfileId)
+    public function deleteConvo($iConversationId, $iProfileId)
     {
-        // delete message
+        // delete convo
         $sQuery = $this->prepare("DELETE FROM `" . $this->getPrefix() . "conv2folder` WHERE `conv_id` = ? AND `collaborator` = ?", $iConversationId, $iProfileId);
         if (!$this->query($sQuery))
             return false;

+ 7 - 7
modules/boonex/messages/classes/BxMsgFormEntry.php → modules/boonex/convos/classes/BxCnvFormEntry.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,11 +14,11 @@ bx_import('BxBaseModTextFormEntry');
 /**
  * Create/Edit entry form
  */
-class BxMsgFormEntry extends BxBaseModTextFormEntry 
+class BxCnvFormEntry extends BxBaseModTextFormEntry 
 {
     public function __construct($aInfo, $oTemplate = false) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct($aInfo, $oTemplate);
 
         $aJs = array (
@@ -39,10 +39,10 @@ class BxMsgFormEntry extends BxBaseModTextFormEntry
 
         // check for spam
         $bSpam = false;
-        bx_alert('system', 'check_spam', 0, getLoggedId(), array('is_spam' => &$bSpam, 'content' => $this->getCleanValue('text'), 'where' => 'messages'));
-        $iFolder = $bSpam ? BX_MSG_FOLDER_SPAM : BX_MSG_FOLDER_TALKS;
+        bx_alert('system', 'check_spam', 0, getLoggedId(), array('is_spam' => &$bSpam, 'content' => $this->getCleanValue('text'), 'where' => $this->MODULE));
+        $iFolder = $bSpam ? BX_CNV_FOLDER_SPAM : BX_CNV_FOLDER_INBOX;
 
-        // place conversation to "talks" (or "spam" - in case of spam) folder 
+        // place conversation to "inbox" (or "spam" - in case of spam) folder 
         $aRecipients = array_unique(array_merge($this->getCleanValue('recipients'), array(bx_get_logged_profile_id())), SORT_NUMERIC);
         foreach ($aRecipients as $iProfile) {
             $oProfile = BxDolProfile::getInstance($iProfile);
@@ -63,7 +63,7 @@ class BxMsgFormEntry extends BxBaseModTextFormEntry
         }
         $sId = $aInput['name'] . time();
         $sPlaceholderText = bx_html_attribute("Type name here...", BX_ESCAPE_STR_QUOTE); // TODO: lang key
-        $sUrlGetRecipients = BX_DOL_URL_ROOT . "modules/?r=messages/ajax_get_recipients";
+        $sUrlGetRecipients = BX_DOL_URL_ROOT . "modules/?r=convos/ajax_get_recipients";
         return <<<EOS
 <script>
     $(function() {

+ 2 - 2
modules/boonex/messages/classes/BxMsgFormsEntryHelper.php → modules/boonex/convos/classes/BxCnvFormsEntryHelper.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,7 +14,7 @@ bx_import('BxBaseModTextFormsEntryHelper');
 /**
  * Entry forms helper functions
  */
-class BxMsgFormsEntryHelper extends BxBaseModTextFormsEntryHelper 
+class BxCnvFormsEntryHelper extends BxBaseModTextFormsEntryHelper 
 {
     public function __construct($oModule) 
     {

+ 6 - 6
modules/boonex/messages/classes/BxMsgGrid.php → modules/boonex/convos/classes/BxCnvGrid.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -13,13 +13,13 @@ require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 
 bx_import('BxTemplGrid');
 
-class BxMsgGrid extends BxTemplGrid 
+class BxCnvGrid extends BxTemplGrid 
 {
     protected $MODULE;
 
     public function __construct ($aOptions, $oTemplate = false) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct ($aOptions, $oTemplate);
         $this->_sDefaultSortingOrder = 'DESC';
 
@@ -92,7 +92,7 @@ class BxMsgGrid extends BxTemplGrid
     protected function _getCellComments ($mixedValue, $sKey, $aField, $aRow) 
     {
         if ($aRow['comments'] - $aRow['read_comments'] > 0)
-            $mixedValue = _t('_bx_msg_x_new_messages', 1 + $mixedValue, $aRow['comments'] - $aRow['read_comments']);
+            $mixedValue = _t('_bx_cnv_x_new_messages', 1 + $mixedValue, $aRow['comments'] - $aRow['read_comments']);
         else
             $mixedValue = 1 + $mixedValue;
 
@@ -104,10 +104,10 @@ class BxMsgGrid extends BxTemplGrid
         bx_import('BxDolModule');
         $oModule = BxDolModule::getInstance($this->MODULE);
 
-        if ($sErrorMsg = $oModule->deleteMessage ($mixedId))
+        if ($sErrorMsg = $oModule->deleteConvo ($mixedId))
             return false;
     
-        return $oModule->_oDb->moveMessage((int)$mixedId, bx_get_logged_profile_id(), BX_MSG_FOLDER_TRASH);
+        return $oModule->_oDb->moveConvo((int)$mixedId, bx_get_logged_profile_id(), BX_CNV_FOLDER_TRASH);
     }
 }
 

+ 3 - 3
modules/boonex/messages/classes/BxMsgMenu.php → modules/boonex/convos/classes/BxCnvMenu.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,11 +14,11 @@ bx_import('BxBaseModTextMenu');
 /**
  * General class for module menu.
  */
-class BxMsgMenu extends BxBaseModTextMenu 
+class BxCnvMenu extends BxBaseModTextMenu 
 {
     public function __construct($aObject, $oTemplate = false) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct($aObject, $oTemplate);
     }
 }

+ 3 - 3
modules/boonex/messages/classes/BxMsgMenuView.php → modules/boonex/convos/classes/BxCnvMenuView.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,11 +14,11 @@ bx_import('BxBaseModTextMenuView');
 /**
  * View entry menu
  */
-class BxMsgMenuView extends BxBaseModTextMenuView
+class BxCnvMenuView extends BxBaseModTextMenuView
 {
     public function __construct($aObject, $oTemplate = false) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct($aObject, $oTemplate);
     }
 }

+ 30 - 28
modules/boonex/messages/classes/BxMsgModule.php → modules/boonex/convos/classes/BxCnvModule.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -11,15 +11,15 @@
 
 bx_import ('BxBaseModTextModule');
 
-define('BX_MSG_FOLDER_TALKS', 1);
-define('BX_MSG_FOLDER_DRAFTS', 2);
-define('BX_MSG_FOLDER_SPAM', 3);
-define('BX_MSG_FOLDER_TRASH', 4);
+define('BX_CNV_FOLDER_INBOX', 1);
+define('BX_CNV_FOLDER_DRAFTS', 2);
+define('BX_CNV_FOLDER_SPAM', 3);
+define('BX_CNV_FOLDER_TRASH', 4);
 
 /**
- * Messages module
+ * Conversations module
  */
-class BxMsgModule extends BxBaseModTextModule 
+class BxCnvModule extends BxBaseModTextModule 
 {
     function __construct(&$aModule) 
     {
@@ -52,10 +52,10 @@ class BxMsgModule extends BxBaseModTextModule
         $CNF = &$this->_oConfig->CNF;
 
         $aMapFolderId2MenuName = array (
-            BX_MSG_FOLDER_TALKS => 'messages-folder-talks',
-            BX_MSG_FOLDER_DRAFTS => 'messages-drafts',
-            BX_MSG_FOLDER_SPAM => 'messages-spam',
-            BX_MSG_FOLDER_TRASH => 'messages-trash',
+            BX_CNV_FOLDER_INBOX => 'convos-folder-inbox',
+            BX_CNV_FOLDER_DRAFTS => 'convos-drafts',
+            BX_CNV_FOLDER_SPAM => 'convos-spam',
+            BX_CNV_FOLDER_TRASH => 'convos-trash',
         );
 
         bx_import('BxDolMenu');
@@ -64,19 +64,19 @@ class BxMsgModule extends BxBaseModTextModule
             return;
 
         $oMenuSubmenu->setObjectSubmenu($CNF['OBJECT_MENU_SUBMENU'], array (
-            'title' => _t('_bx_msg'),
+            'title' => _t('_bx_cnv'),
             'link' => BX_DOL_URL_ROOT . $CNF['URL_HOME'],
             'icon' => '',
         ));
 
         $oMenuModule = BxDolMenu::getObjectInstance($CNF['OBJECT_MENU_SUBMENU']);
         if ($oMenuModule && isset($aMapFolderId2MenuName[$iCurrentFolderId]))
-            $oMenuModule->setSelected('bx_messages', $aMapFolderId2MenuName[$iCurrentFolderId]);
+            $oMenuModule->setSelected($this->_aModule['name'], $aMapFolderId2MenuName[$iCurrentFolderId]);
     }
 
     /**
-     * Mark message as unread for the current user
-     * @return error message on error, or empty message on success
+     * Mark conversation as unread for the current user
+     * @return error string on error, or empty string on success
      */
     public function markUnread ($iContentId) 
     {
@@ -94,10 +94,10 @@ class BxMsgModule extends BxBaseModTextModule
     }
 
     /**
-     * Delete message for current user by content id
-     * @return error message on error, or empty message on success
+     * Delete conversation for current user by content id
+     * @return error string on error, or empty string on success
      */
-    public function deleteMessage ($iContentId) 
+    public function deleteConvo ($iContentId) 
     {
         $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
         if (!$aContentInfo)
@@ -106,7 +106,7 @@ class BxMsgModule extends BxBaseModTextModule
         if (CHECK_ACTION_RESULT_ALLOWED !== ($sMsg = $this->checkAllowedDelete($aContentInfo)))
             return $sMsg;
 
-        if (!$this->_oDb->moveMessage((int)$iContentId, bx_get_logged_profile_id(), BX_MSG_FOLDER_TRASH))
+        if (!$this->_oDb->moveConvo((int)$iContentId, bx_get_logged_profile_id(), BX_CNV_FOLDER_TRASH))
             return _t('_error occured');
 
         return '';
@@ -129,7 +129,7 @@ class BxMsgModule extends BxBaseModTextModule
     {
         header('Content-Type:text/plain; charset=utf-8');
 
-        if ($s = $this->deleteMessage ($iContentId)) {
+        if ($s = $this->deleteConvo ($iContentId)) {
             echo $s;
             exit;
         }
@@ -139,12 +139,12 @@ class BxMsgModule extends BxBaseModTextModule
     }
 
     /**
-     * Display messages in folder
+     * Display convos in folder
      */
     public function actionFolder ($iFolderId) 
     {
         bx_import('BxDolGrid');
-        $oGrid = BxDolGrid::getObjectInstance('bx_messages');
+        $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->CNF['OBJECT_GRID']);
         if (!$oGrid){
             $this->_oTemplate->displayErrorOccured();
             exit;
@@ -167,14 +167,14 @@ class BxMsgModule extends BxBaseModTextModule
         // TODO: refactor below
         $oTemplate = BxDolTemplate::getInstance();
         $oTemplate->setPageNameIndex (BX_PAGE_DEFAULT);
-        $oTemplate->setPageHeader (str_replace('{folder}', _t($aFolder['name']), _t('_bx_msg_page_title_folder')));
+        $oTemplate->setPageHeader (str_replace('{folder}', _t($aFolder['name']), _t('_bx_cnv_page_title_folder')));
         $oTemplate->setPageContent ('page_main_code', $oGrid->getCode());
         $oTemplate->getPageCode();
 
     }
 
     /**
-     * Get possible recipients for message compose form
+     * Get possible recipients for start conversation form
      */
     public function actionAjaxGetRecipients () 
     {
@@ -187,7 +187,9 @@ class BxMsgModule extends BxBaseModTextModule
     }
 
     /**
-     * Update last comment time and author
+     * Get number of unread messages for spme profile
+     * @param $iProfileId - profile to get unread messages for, if omitted then currently logged is profile is used
+     * @return integer
      */
     public function serviceGetUnreadMessagesNum ($iProfileId = 0) 
     {
@@ -234,7 +236,7 @@ class BxMsgModule extends BxBaseModTextModule
     }
 
     /**
-     * No moderators for personal messages
+     * No moderators for personal convos
      */
     protected function _isModerator ($isPerformAction = false) 
     {
@@ -242,7 +244,7 @@ class BxMsgModule extends BxBaseModTextModule
     }
 
     /**
-     * No thumbs for messages
+     * No thumbs for convos
      */
     public function checkAllowedSetThumb () 
     {
@@ -250,7 +252,7 @@ class BxMsgModule extends BxBaseModTextModule
     }
 
     /**
-     * Only collaborators can view message
+     * Only collaborators can view convo
      */
     public function checkAllowedView ($aDataEntry, $isPerformAction = false) 
     {

+ 3 - 3
modules/boonex/messages/classes/BxMsgPageBrowse.php → modules/boonex/convos/classes/BxCnvPageBrowse.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,11 +14,11 @@ bx_import('BxBaseModTextPageBrowse');
 /**
  * Browse entries pages.
  */
-class BxMsgPageBrowse extends BxBaseModTextPageBrowse 
+class BxCnvPageBrowse extends BxBaseModTextPageBrowse 
 {    
     public function __construct($aObject, $oTemplate = false) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct($aObject, $oTemplate);
         $this->_oModule->setModuleSubmenu ();
     }

+ 3 - 3
modules/boonex/messages/classes/BxMsgPageEntry.php → modules/boonex/convos/classes/BxCnvPageEntry.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  *
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,11 +14,11 @@ bx_import('BxBaseModTextPageEntry');
 /**
  * Entry create/edit pages
  */
-class BxMsgPageEntry extends BxBaseModTextPageEntry 
+class BxCnvPageEntry extends BxBaseModTextPageEntry 
 {    
     public function __construct($aObject, $oTemplate = false) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct($aObject, $oTemplate);
 
         $CNF = &$this->_oModule->_oConfig->CNF;

+ 8 - 8
modules/boonex/messages/classes/BxMsgTemplate.php → modules/boonex/convos/classes/BxCnvTemplate.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -14,14 +14,14 @@ bx_import('BxBaseModTextTemplate');
 /*
  * Module representation.
  */
-class BxMsgTemplate extends BxBaseModTextTemplate 
+class BxCnvTemplate extends BxBaseModTextTemplate 
 {
     /**
      * Constructor
      */
     function __construct(&$oConfig, &$oDb) 
     {
-        $this->MODULE = 'bx_messages';
+        $this->MODULE = 'bx_convos';
         parent::__construct($oConfig, $oDb);
     }
 
@@ -53,7 +53,7 @@ class BxMsgTemplate extends BxBaseModTextTemplate
                 'condition' => $iCollaboratorsNum > $iMaxVisible,
                 'content' => array(
                     'popup' => '',
-                    'title_more' => _t('_bx_msg_more', $iCollaboratorsNum - $iMaxVisible),
+                    'title_more' => _t('_bx_cnv_more', $iCollaboratorsNum - $iMaxVisible),
                     'float' => $sFloat,
                     'id' => $this->MODULE . '-popup-' . $aContentInfo[$CNF['FIELD_ID']],
                 ),
@@ -67,11 +67,11 @@ class BxMsgTemplate extends BxBaseModTextTemplate
 
             $sInfo = '';
             if ($aContentInfo[$CNF['FIELD_AUTHOR']] == $iProfileId)
-                $sInfo = _t('_bx_msg_collaborator_author');
+                $sInfo = _t('_bx_cnv_collaborator_author');
             if ($aContentInfo['last_reply_profile_id'] == $iProfileId)
-                $sInfo .= ', ' . _t('_bx_msg_collaborator_last_replier');
+                $sInfo .= ', ' . _t('_bx_cnv_collaborator_last_replier');
             $sInfo = trim($sInfo, ', ');
-            $sInfo = $sInfo ? _t('_bx_msg_collaborator_info', $oProfile->getDisplayName(), $sInfo) : $oProfile->getDisplayName();
+            $sInfo = $sInfo ? _t('_bx_cnv_collaborator_info', $oProfile->getDisplayName(), $sInfo) : $oProfile->getDisplayName();
 
             $aCollaborator = array (
                 'id' => $oProfile->id(),
@@ -116,7 +116,7 @@ class BxMsgTemplate extends BxBaseModTextTemplate
         if ($aData['last_reply_timestamp'] == $aData[$oModule->_oConfig->CNF['FIELD_ADDED']])
             return bx_time_js($aData[$oModule->_oConfig->CNF['FIELD_ADDED']], BX_FORMAT_DATE);
         
-        return _t('_bx_msg_author_desc', bx_time_js($aData[$oModule->_oConfig->CNF['FIELD_ADDED']], BX_FORMAT_DATE), bx_time_js($aData['last_reply_timestamp'], BX_FORMAT_DATE));
+        return _t('_bx_cnv_author_desc', bx_time_js($aData[$oModule->_oConfig->CNF['FIELD_ADDED']], BX_FORMAT_DATE), bx_time_js($aData['last_reply_timestamp'], BX_FORMAT_DATE));
     }
 }
 

+ 9 - 9
modules/boonex/messages/install/config.php → modules/boonex/convos/install/config.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -15,9 +15,9 @@ $aConfig = array(
      * Main Section.
      */
     'type' => BX_DOL_MODULE_TYPE_MODULE,
-    'name' => 'bx_messages',
-    'title' => 'Messages',
-    'note' => 'Messaging module.',
+    'name' => 'bx_convos',
+    'title' => 'Convos',
+    'note' => 'Conversations module.',
     'version' => '1.0.0',
     'vendor' => 'BoonEx',
     'product_url' => 'http://www.boonex.com/products/{uri}',
@@ -30,11 +30,11 @@ $aConfig = array(
     /**
      * 'home_dir' and 'home_uri' - should be unique. Don't use spaces in 'home_uri' and the other special chars.
      */
-    'home_dir' => 'boonex/messages/',
-    'home_uri' => 'messages',
+    'home_dir' => 'boonex/convos/',
+    'home_uri' => 'convos',
 
-    'db_prefix' => 'bx_messages_',
-    'class_prefix' => 'BxMsg',
+    'db_prefix' => 'bx_convos_',
+    'class_prefix' => 'BxCnv',
 
     /**
      * Installation/Uninstallation Section.
@@ -73,7 +73,7 @@ $aConfig = array(
     /**
      * Category for language keys.
      */
-    'language_category' => 'Messages',
+    'language_category' => 'Convos',
 
     /**
      * Permissions Section

+ 2 - 2
modules/boonex/messages/install/installer.php → modules/boonex/convos/install/installer.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{
@@ -11,7 +11,7 @@
 
 bx_import('BxBaseModTextInstaller');
 
-class BxMsgInstaller extends BxBaseModTextInstaller 
+class BxCnvInstaller extends BxBaseModTextInstaller 
 {
     function __construct($aConfig) 
     {

+ 95 - 0
modules/boonex/convos/install/langs/en.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources name="en" flag="gb" title="English">
+
+	<string name="_bx_cnv"><![CDATA[Convos]]></string>
+
+	<string name="_bx_cnv_option_per_page_browse"><![CDATA[Number of items per page]]></string>
+
+	<string name="_bx_cnv_form_entry"><![CDATA[Convos]]></string>
+	<string name="_bx_cnv_form_entry_display_add"><![CDATA[Add convo]]></string>
+	<string name="_bx_cnv_form_entry_display_delete"><![CDATA[Delete convo]]></string>
+	<string name="_bx_cnv_form_entry_display_view"><![CDATA[View convo]]></string>
+	<string name="_bx_cnv_form_entry_input_sys_do_submit"><![CDATA[Submit]]></string>
+	<string name="_bx_cnv_form_entry_input_do_submit"><![CDATA[Submit]]></string>
+	<string name="_bx_cnv_form_entry_input_sys_text"><![CDATA[Text]]></string>
+	<string name="_bx_cnv_form_entry_input_text"><![CDATA[Text]]></string>
+	<string name="_bx_cnv_form_entry_input_text_err"><![CDATA[Text field can't be empty]]></string>
+	<string name="_bx_cnv_form_entry_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
+	<string name="_bx_cnv_form_entry_input_delete_confirm"><![CDATA[I am sure I want to delete this conversation]]></string>
+	<string name="_bx_cnv_form_entry_input_delete_confirm_info"><![CDATA[This action can not be undone]]></string>
+	<string name="_bx_cnv_form_entry_input_delete_confirm_error"><![CDATA[Please check this checkbox if you really want to delete the conversation]]></string>
+	<string name="_bx_cnv_form_entry_input_sys_attachments"><![CDATA[Attachments]]></string>
+	<string name="_bx_cnv_form_entry_input_attachments"><![CDATA[Attachments]]></string>
+    <string name="_bx_cnv_form_entry_input_recipients"><![CDATA[Recipients]]></string>
+    <string name="_bx_cnv_form_entry_input_sys_recipients"><![CDATA[Recipients]]></string>
+    <string name="_bx_cnv_form_entry_input_recipients_err"><![CDATA[Recipients is mandatory]]></string>
+
+	<string name="_bx_cnv_acl_action_create_entry"><![CDATA[Start conversation]]></string>
+	<string name="_bx_cnv_acl_action_delete_entry"><![CDATA[Delete convo]]></string>
+	<string name="_bx_cnv_acl_action_view_entry"><![CDATA[View convo]]></string>
+
+	<string name="_bx_cnv_page_title_sys_create_entry"><![CDATA[Start conversation]]></string>
+	<string name="_bx_cnv_page_title_create_entry"><![CDATA[Start conversation]]></string>
+	<string name="_bx_cnv_page_block_title_create_entry"><![CDATA[Start conversation]]></string>
+	<string name="_bx_cnv_page_title_sys_view_entry"><![CDATA[View converstion]]></string>
+	<string name="_bx_cnv_page_title_view_entry"><![CDATA[{title}]]></string>
+	<string name="_bx_cnv_page_block_title_entry_attachments"><![CDATA[Attachments]]></string>
+	<string name="_bx_cnv_page_block_title_entry_text"><![CDATA[Text]]></string>
+    <string name="_bx_cnv_page_block_title_entry_author"><![CDATA[Author]]></string>
+    <string name="_bx_cnv_page_block_title_entry_actions"><![CDATA[Actions]]></string>
+    <string name="_bx_cnv_page_block_title_entry_comments"><![CDATA[Comments]]></string>
+    <string name="_bx_cnv_page_block_title_entry_collaborators"><![CDATA[Participants]]></string>
+    <string name="_bx_cnv_page_title_sys_folder"><![CDATA[Convos in folder]]></string>
+    <string name="_bx_cnv_page_title_folder"><![CDATA[Folder: {folder}]]></string>
+    <string name="_bx_cnv_page_block_title_folder"><![CDATA[Folder: {folder}]]></string>
+
+    <string name="_bx_cnv_menu_set_title_view_entry"><![CDATA[View convo]]></string>
+    <string name="_bx_cnv_menu_title_view_entry"><![CDATA[View convo]]></string>
+    <string name="_bx_cnv_menu_title_submenu"><![CDATA[Convos Submenu]]></string>
+    <string name="_bx_cnv_menu_set_title_submenu"><![CDATA[Convos Submenu]]></string>
+    <string name="_bx_cnv_menu_title_folders_more"><![CDATA[Convos folders]]></string>
+    <string name="_bx_cnv_menu_set_title_submenu"><![CDATA[Convos folders]]></string>
+    <string name="_bx_cnv_menu_set_title_folders_more"><![CDATA[More folders]]></string>
+
+
+    <string name="_bx_cnv_menu_item_title_system_mark_unread_entry"><![CDATA[Mark as unread]]></string>
+    <string name="_bx_cnv_menu_item_title_mark_unread_entry"><![CDATA[Mark as unread]]></string>
+    <string name="_bx_cnv_menu_item_title_system_delete_entry"><![CDATA[Delete convo]]></string>
+    <string name="_bx_cnv_menu_item_title_delete_entry"><![CDATA[Delete convo]]></string>
+    <string name="_bx_cnv_menu_item_title_system_folder_inbox"><![CDATA[Inbox]]></string>
+    <string name="_bx_cnv_menu_item_title_folder_inbox"><![CDATA[Inbox]]></string>
+    <string name="_bx_cnv_menu_item_title_system_folder_drafts"><![CDATA[Drafts]]></string>
+    <string name="_bx_cnv_menu_item_title_folder_drafts"><![CDATA[Drafts]]></string>
+    <string name="_bx_cnv_menu_item_title_system_folder_spam"><![CDATA[Spam]]></string>
+    <string name="_bx_cnv_menu_item_title_folder_spam"><![CDATA[Spam]]></string>
+    <string name="_bx_cnv_menu_item_title_system_folder_trash"><![CDATA[Trash]]></string>
+    <string name="_bx_cnv_menu_item_title_folder_trash"><![CDATA[Trash]]></string>
+    <string name="_bx_cnv_menu_item_title_system_folder_more"><![CDATA[More]]></string>
+    <string name="_bx_cnv_menu_item_title_folder_more"><![CDATA[More]]></string>
+    <string name="_bx_cnv_menu_item_title_system_convos"><![CDATA[Convos]]></string>
+    <string name="_bx_cnv_menu_item_title_convos"><![CDATA[Convos]]></string>
+
+    <string name="_bx_cnv_txt_sample_single"><![CDATA[convo]]></string>
+
+    <string name="_bx_cnv_folder_inbox"><![CDATA[Inbox]]></string>
+    <string name="_bx_cnv_folder_drafts"><![CDATA[Drafts]]></string>
+    <string name="_bx_cnv_folder_spam"><![CDATA[Spam]]></string>
+    <string name="_bx_cnv_folder_trash"><![CDATA[Trash]]></string>
+
+    <string name="_bx_cnv_field_comments"><![CDATA[Messages]]></string>
+    <string name="_bx_cnv_field_updated"><![CDATA[Updated]]></string>
+    <string name="_bx_cnv_field_preview"><![CDATA[Preview]]></string>
+    <string name="_bx_cnv_field_collaborators"><![CDATA[Participants]]></string>
+
+    <string name="_bx_cnv_grid_action_delete"><![CDATA[Delete]]></string>
+    <string name="_bx_cnv_grid_action_compose"><![CDATA[Start new convo]]></string>
+
+    <string name="_bx_cnv_collaborator_info"><![CDATA[{0} ({1})]]></string>
+    <string name="_bx_cnv_collaborator_author"><![CDATA[author]]></string>
+    <string name="_bx_cnv_collaborator_last_replier"><![CDATA[last replier]]></string>
+    <string name="_bx_cnv_more"><![CDATA[{0} more]]></string>
+
+    <string name="_bx_cnv_author_desc"><![CDATA[{0} (updated {1})]]></string>
+    <string name="_bx_cnv_x_new_messages"><![CDATA[<b>{0} ({1} new)</b>]]></string>
+
+</resources>

+ 46 - 0
modules/boonex/convos/install/sql/disable.sql

@@ -0,0 +1,46 @@
+
+-- SETTINGS
+SET @iTypeId = (SELECT `ID` FROM `sys_options_types` WHERE `name` = 'bx_convos' LIMIT 1);
+SET @iCategId = (SELECT `ID` FROM `sys_options_categories` WHERE `type_id` = @iTypeId LIMIT 1);
+DELETE FROM `sys_options` WHERE `category_id` = @iCategId;
+DELETE FROM `sys_options_categories` WHERE `type_id` = @iTypeId;
+DELETE FROM `sys_options_types` WHERE `id` = @iTypeId;
+
+-- STORAGES & TRANSCODERS
+DELETE FROM `sys_objects_storage` WHERE `object` = 'bx_convos_files' OR `object` = 'bx_convos_photos_resized';
+DELETE FROM `sys_storage_tokens` WHERE `object` = 'bx_convos_files' OR `object` = 'bx_convos_photos_resized';
+
+DELETE FROM `sys_objects_transcoder_images` WHERE `object` = 'bx_convos_preview';
+DELETE FROM `sys_transcoder_images_filters` WHERE `transcoder_object` = 'bx_convos_preview';
+DELETE FROM `sys_transcoder_images_files` WHERE `transcoder_object` = 'bx_convos_preview';
+-- TODO: delete resized photo files as well
+TRUNCATE TABLE `bx_convos_photos_resized`; 
+
+-- PAGES
+DELETE FROM `sys_objects_page` WHERE `module` = 'bx_convos';
+DELETE FROM `sys_pages_blocks` WHERE `module` = 'bx_convos' OR `object` IN('bx_convos_create_entry', 'bx_convos_view_entry', 'bx_convos_home');
+
+-- MENU
+DELETE FROM `sys_objects_menu` WHERE `module` = 'bx_convos';
+DELETE FROM `sys_menu_sets` WHERE `module` = 'bx_convos';
+DELETE FROM `sys_menu_items` WHERE `module` = 'bx_convos' OR `set_name` IN('bx_convos_view', 'bx_convos_submenu', 'bx_convos_menu_folders_more');
+
+-- GRID
+DELETE FROM `sys_objects_grid` WHERE `object` LIKE 'bx_convos%';
+DELETE FROM `sys_grid_fields` WHERE `object` LIKE 'bx_convos%';
+DELETE FROM `sys_grid_actions` WHERE `object` LIKE 'bx_convos%';
+
+-- ACL
+DELETE `sys_acl_actions`, `sys_acl_matrix` FROM `sys_acl_actions`, `sys_acl_matrix` WHERE `sys_acl_matrix`.`IDAction` = `sys_acl_actions`.`ID` AND `sys_acl_actions`.`Module` = 'bx_convos';
+DELETE FROM `sys_acl_actions` WHERE `Module` = 'bx_convos';
+
+-- COMMENTS
+DELETE FROM `sys_objects_cmts` WHERE `Name` = 'bx_convos';
+
+-- VIEWS
+DELETE FROM `sys_objects_view` WHERE `Name` = 'bx_convos';
+
+-- ALERTS
+SET @iHandler := (SELECT `id` FROM `sys_alerts_handlers` WHERE `name` = 'bx_convos' LIMIT 1);
+DELETE FROM `sys_alerts` WHERE `handler_id` = @iHandler;
+DELETE FROM `sys_alerts_handlers` WHERE `id` = @iHandler;

+ 194 - 0
modules/boonex/convos/install/sql/enable.sql

@@ -0,0 +1,194 @@
+
+-- SETTINGS
+
+SET @iTypeOrder = (SELECT MAX(`order`) FROM `sys_options_types` WHERE `group` = 'modules');
+INSERT INTO `sys_options_types`(`group`, `name`, `caption`, `icon`, `order`) VALUES 
+('modules', 'bx_convos', '_bx_cnv', 'bx_convos@modules/boonex/convos/|std-mi.png', IF(ISNULL(@iTypeOrder), 1, @iTypeOrder + 1));
+SET @iTypeId = LAST_INSERT_ID();
+
+INSERT INTO `sys_options_categories` (`type_id`, `name`, `caption`, `order`)
+VALUES (@iTypeId, 'bx_convos', '_bx_cnv', 1);
+SET @iCategId = LAST_INSERT_ID();
+
+INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `check`, `check_error`, `extra`, `order`) VALUES
+('bx_convos_per_page_browse', '12', @iCategId, '_bx_cnv_option_per_page_browse', 'digit', '', '', '', 1);
+
+-- STORAGES & TRANSCODERS
+
+SET @iTotalFilesSize = (SELECT SUM(`size`) FROM `bx_convos_files`);
+SET @iTotalFilesNum = (SELECT COUNT(*) FROM `bx_convos_files`);
+SET @iTotalResizedSize = (SELECT SUM(`size`) FROM `bx_convos_photos_resized`);
+SET @iTotalResizedNum = (SELECT COUNT(*) FROM `bx_convos_photos_resized`);
+
+INSERT INTO `sys_objects_storage` (`object`, `engine`, `params`, `token_life`, `cache_control`, `levels`, `table_files`, `ext_mode`, `ext_allow`, `ext_deny`, `quota_size`, `current_size`, `quota_number`, `current_number`, `max_file_size`, `ts`) VALUES
+('bx_convos_files', 'Local', '', 360, 2592000, 3, 'bx_convos_files', 'deny-allow', '', 'action,apk,app,bat,bin,cmd,com,command,cpl,csh,exe,gadget,inf,ins,inx,ipa,isu,job,jse,ksh,lnk,msc,msi,msp,mst,osx,out,paf,pif,prg,ps1,reg,rgs,run,sct,shb,shs,u3p,vb,vbe,vbs,vbscript,workflow,ws,wsf', 0, @iTotalFilesSize, 0, @iTotalFilesNum, 0, 0),
+('bx_convos_photos_resized', 'Local', '', 360, 2592000, 3, 'bx_convos_photos_resized', 'allow-deny', 'jpg,jpeg,jpe,gif,png', '', 0, @iTotalResizedSize, 0, @iTotalResizedNum, 0, 0);
+
+INSERT INTO `sys_objects_transcoder_images` (`object`, `storage_object`, `source_type`, `source_params`, `private`, `atime_tracking`, `atime_pruning`, `ts`) VALUES 
+('bx_convos_preview', 'bx_convos_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_convos_files";}', 'no', '1', '2592000', '0');
+
+INSERT INTO `sys_transcoder_images_filters` (`transcoder_object`, `filter`, `filter_params`, `order`) VALUES 
+('bx_convos_preview', 'Resize', 'a:4:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";s:10:"force_type";s:3:"jpg";}', '0');
+
+
+-- PAGE: create entry
+
+INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_convos_create_entry', '_bx_cnv_page_title_sys_create_entry', '_bx_cnv_page_title_create_entry', 'bx_convos', 5, 2147483647, 1, 'start-convo', 'page.php?i=start-convo', '', '', '', 0, 1, 0, 'BxCnvPageBrowse', 'modules/boonex/convos/classes/BxCnvPageBrowse.php');
+
+INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
+('bx_convos_create_entry', 1, 'bx_convos', '_bx_cnv_page_block_title_create_entry', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:9:"bx_convos";s:6:"method";s:13:"entity_create";}', 0, 1, 1);
+
+
+-- PAGE: view entry
+
+INSERT INTO `sys_objects_page`(`object`, `uri`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_convos_view_entry', 'view-convo', '_bx_cnv_page_title_sys_view_entry', '_bx_cnv_page_title_view_entry', 'bx_convos', 10, 2147483647, 1, '', '', '', '', 0, 1, 0, 'BxCnvPageEntry', 'modules/boonex/convos/classes/BxCnvPageEntry.php');
+
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
+('bx_convos_view_entry', 4, 'bx_convos', '_bx_cnv_page_block_title_entry_text', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:17:\"entity_text_block\";}', 0, 0, 1, 0),
+('bx_convos_view_entry', 3, 'bx_convos', '_bx_cnv_page_block_title_entry_collaborators', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:20:\"entity_collaborators\";}', 0, 0, 1, 0),
+('bx_convos_view_entry', 1, 'bx_convos', '_bx_cnv_page_block_title_entry_actions', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:14:\"entity_actions\";}', 0, 0, 1, 0),
+('bx_convos_view_entry', 2, 'bx_convos', '_bx_cnv_page_block_title_entry_author', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:13:\"entity_author\";}', 0, 0, 1, 0),
+('bx_convos_view_entry', 4, 'bx_convos', '_bx_cnv_page_block_title_entry_attachments', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:18:\"entity_attachments\";}', 0, 0, 1, 1),
+('bx_convos_view_entry', 4, 'bx_convos', '_bx_cnv_page_block_title_entry_comments', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:15:\"entity_comments\";}', 0, 0, 1, 2);
+
+
+-- PAGE: module home
+
+INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_convos_home', '_bx_cnv_page_title_sys_folder', '_bx_cnv_page_title_folder', 'bx_convos', 5, 2147483647, 1, 'convos-folder', 'modules/?r=convos/folder/1', '', '', '', 0, 1, 0, 'BxCnvPageBrowse', 'modules/boonex/convos/classes/BxCnvPageBrowse.php');
+
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_convos_home', 1, 'bx_convos', '_bx_cnv_page_block_title_folder', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_convos\";s:6:\"method\";s:4:\"home\";}', 0, 1, 0);
+
+
+-- MENU: actions menu for view entry 
+
+INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
+('bx_convos_view', '_bx_cnv_menu_title_view_entry', 'bx_convos_view', 'bx_convos', 9, 0, 1, 'BxCnvMenuView', 'modules/boonex/convos/classes/BxCnvMenuView.php');
+
+INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
+('bx_convos_view', 'bx_convos', '_bx_cnv_menu_set_title_view_entry', 0);
+
+INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
+('bx_convos_view', 'bx_convos', 'delete-convo', '_bx_cnv_menu_item_title_system_delete_entry', '_bx_cnv_menu_item_title_delete_entry', 'javascript:void(0);', 'bx_cnv_delete(this, \'{content_id}\')', '', 'remove', '', 0, 1, 0, 1),
+('bx_convos_view', 'bx_convos', 'mark-unread-convo', '_bx_cnv_menu_item_title_system_mark_unread_entry', '_bx_cnv_menu_item_title_mark_unread_entry', 'javascript:void(0);', 'bx_cnv_mark_unread(this, \'{content_id}\')', '', 'check', '', 0, 1, 0, 2);
+
+
+-- MENU: module sub-menu
+
+INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
+('bx_convos_submenu', '_bx_cnv_menu_title_submenu', 'bx_convos_submenu', 'bx_convos', 8, 0, 1, '', '');
+
+INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
+('bx_convos_submenu', 'bx_convos', '_bx_cnv_menu_set_title_submenu', 0);
+
+INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
+('bx_convos_submenu', 'bx_convos', 'convos-folder-inbox', '_bx_cnv_menu_item_title_system_folder_inbox', '_bx_cnv_menu_item_title_folder_inbox', 'modules/?r=convos/folder/1', '', '', '', '', 2147483647, 1, 1, 1),
+('bx_convos_submenu', 'bx_convos', 'convos-folder-more', '_bx_cnv_menu_item_title_system_folder_more', '_bx_cnv_menu_item_title_folder_more', 'javascript:void(0);', 'bx_menu_popup(''bx_convos_menu_folders_more'', this);', '', '', '', 2147483647, 1, 1, 2);
+
+
+-- MENU: more folders
+
+INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
+('bx_convos_menu_folders_more', '_bx_cnv_menu_title_folders_more', 'bx_convos_menu_folders_more', 'bx_convos', 4, 0, 1, '', '');
+
+INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
+('bx_convos_menu_folders_more', 'bx_convos', '_bx_cnv_menu_set_title_folders_more', 0);
+
+INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
+('bx_convos_menu_folders_more', 'bx_convos', 'convos-drafts', '_bx_cnv_menu_item_title_system_folder_drafts', '_bx_cnv_menu_item_title_folder_drafts', 'modules/?r=convos/folder/2', '', '', '', '', 2147483647, 1, 1, 1),
+('bx_convos_menu_folders_more', 'bx_convos', 'convos-spam', '_bx_cnv_menu_item_title_system_folder_spam', '_bx_cnv_menu_item_title_folder_spam', 'modules/?r=convos/folder/3', '', '', '', '', 2147483647, 1, 1, 2),
+('bx_convos_menu_folders_more', 'bx_convos', 'convos-trash', '_bx_cnv_menu_item_title_system_folder_trash', '_bx_cnv_menu_item_title_folder_trash', 'modules/?r=convos/folder/4', '', '', '', '', 2147483647, 1, 1, 3);
+
+
+-- MENU: notifications
+
+INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
+('sys_account_notifications', 'bx_convos', 'notifications-convos', '_bx_cnv_menu_item_title_system_convos', '_bx_cnv_menu_item_title_convos', 'modules/?r=convos/folder/1', '', '', 'envelope col-red1', 'a:2:{s:6:"module";s:9:"bx_convos";s:6:"method";s:23:"get_unread_messages_num";}', '', 2147483646, 1, 0, 2);
+
+
+-- GRID
+
+INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_mode`, `sorting_fields`, `visible_for_levels`, `override_class_name`, `override_class_file`) VALUES
+('bx_convos', 'Sql', 'SELECT `c`.`id`, `c`.`author`, `c`.`text`, `c`.`added`, `c`.`comments`, `f`.`read_comments`, `last_reply_timestamp`, `last_reply_profile_id` FROM `bx_convos_conversations` AS `c` INNER JOIN `bx_convos_conv2folder` AS `f` ON (`c`.`id` = `f`.`conv_id` AND `f`.`folder_id` = {folder_id} AND `f`.`collaborator` = {profile_id})', 'bx_convos_conversations', 'id', 'last_reply_timestamp', '', 10, NULL, 'start', '', 'text', 'auto', 'comments,last_reply_timestamp', 64, 'BxCnvGrid', 'modules/boonex/convos/classes/BxCnvGrid.php');
+
+INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `params`, `order`) VALUES
+('bx_convos', 'checkbox', '_sys_select', '2%', '', 1),
+('bx_convos', 'collaborators', '_bx_cnv_field_collaborators', '25%', '', 2),
+('bx_convos', 'preview', '_bx_cnv_field_preview', '48%', '', 3),
+('bx_convos', 'comments', '_bx_cnv_field_comments', '12%', '', 4),
+('bx_convos', 'last_reply_timestamp', '_bx_cnv_field_updated', '13%', '', 5);
+
+INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `confirm`, `order`) VALUES
+('bx_convos', 'bulk', 'delete', '_bx_cnv_grid_action_delete', '', 1, 1),
+('bx_convos', 'independent', 'add', '_bx_cnv_grid_action_compose', '', 0, 1);
+
+
+-- ACL
+
+INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
+('bx_convos', 'create entry', NULL, '_bx_cnv_acl_action_create_entry', '', 1, 1);
+SET @iIdActionEntryCreate = LAST_INSERT_ID();
+
+INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
+('bx_convos', 'delete entry', NULL, '_bx_cnv_acl_action_delete_entry', '', 1, 1);
+SET @iIdActionEntryDelete = LAST_INSERT_ID();
+
+INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
+('bx_convos', 'view entry', NULL, '_bx_cnv_acl_action_view_entry', '', 1, 1);
+SET @iIdActionEntryView = LAST_INSERT_ID();
+
+
+SET @iUnauthenticated = 1;
+SET @iStandard = 2;
+SET @iUnconfirmed = 3;
+SET @iPending = 4;
+SET @iSuspended = 5;
+SET @iModerator = 6;
+SET @iAdministrator = 7;
+SET @iPremium = 8;
+
+INSERT INTO `sys_acl_matrix` (`IDLevel`, `IDAction`) VALUES
+
+-- entry create
+(@iStandard, @iIdActionEntryCreate),
+(@iModerator, @iIdActionEntryCreate),
+(@iAdministrator, @iIdActionEntryCreate),
+(@iPremium, @iIdActionEntryCreate),
+
+-- entry delete
+(@iStandard, @iIdActionEntryDelete),
+(@iModerator, @iIdActionEntryDelete),
+(@iAdministrator, @iIdActionEntryDelete),
+(@iPremium, @iIdActionEntryDelete),
+
+-- entry view
+(@iUnauthenticated, @iIdActionEntryView),
+(@iStandard, @iIdActionEntryView),
+(@iUnconfirmed, @iIdActionEntryView),
+(@iPending, @iIdActionEntryView),
+(@iModerator, @iIdActionEntryView),
+(@iAdministrator, @iIdActionEntryView),
+(@iPremium, @iIdActionEntryView);
+
+
+-- COMMENTS
+INSERT INTO `sys_objects_cmts` (`Name`, `Table`, `CharsPostMin`, `CharsPostMax`, `CharsDisplayMax`, `Nl2br`, `PerView`, `PerViewReplies`, `BrowseType`, `IsBrowseSwitch`, `PostFormPosition`, `NumberOfLevels`, `IsDisplaySwitch`, `IsRatable`, `ViewingThreshold`, `IsOn`, `RootStylePrefix`, `BaseUrl`, `ObjectVote`, `TriggerTable`, `TriggerFieldId`, `TriggerFieldTitle`, `TriggerFieldComments`, `ClassName`, `ClassFile`) VALUES
+('bx_convos', 'bx_convos_cmts', 1, 5000, 1000, 1, 5, 3, 'tail', 1, 'bottom', 1, 1, 0, -3, 1, 'cmt', 'page/view-convo&id={object_id}', '', 'bx_convos_conversations', 'id', '', 'comments', 'BxCnvCmts', 'modules/boonex/convos/classes/BxCnvCmts.php');
+
+-- VIEWS
+INSERT INTO `sys_objects_view` (`name`, `table_track`, `period`, `is_on`, `trigger_table`, `trigger_field_id`, `trigger_field_count`, `class_name`, `class_file`) VALUES 
+('bx_convos', 'bx_convos_views_track', '86400', '1', 'bx_convos_conversations', 'id', 'views', '', '');
+
+-- ALERTS
+
+INSERT INTO `sys_alerts_handlers` (`name`, `class`, `file`, `eval`) VALUES 
+('bx_convos', 'BxCnvAlertsResponse', 'modules/boonex/convos/classes/BxCnvAlertsResponse.php', '');
+SET @iHandler := LAST_INSERT_ID();
+
+INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
+('bx_convos', 'commentPost', @iHandler),
+('bx_convos', 'commentRemoved', @iHandler);
+

+ 40 - 40
modules/boonex/messages/install/sql/install.sql → modules/boonex/convos/install/sql/install.sql

@@ -1,7 +1,7 @@
 
 -- TABLE: entries
 
-CREATE TABLE IF NOT EXISTS `bx_messages_conversations` (
+CREATE TABLE IF NOT EXISTS `bx_convos_conversations` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `author` int(10) unsigned NOT NULL,
   `added` int(11) NOT NULL,
@@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS `bx_messages_conversations` (
   KEY `last_reply_timestamp` (`last_reply_timestamp`)
 );
 
-CREATE TABLE IF NOT EXISTS `bx_messages_conv2folder` (
+CREATE TABLE IF NOT EXISTS `bx_convos_conv2folder` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `conv_id` int(10) unsigned NOT NULL,
   `folder_id` int(10) unsigned NOT NULL,
@@ -26,7 +26,7 @@ CREATE TABLE IF NOT EXISTS `bx_messages_conv2folder` (
   KEY `conv_id` (`conv_id`)
 );
 
-CREATE TABLE IF NOT EXISTS `bx_messages_folders` (
+CREATE TABLE IF NOT EXISTS `bx_convos_folders` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `author` int(10) unsigned NOT NULL,
   `name` varchar(255) NOT NULL DEFAULT '',
@@ -34,15 +34,15 @@ CREATE TABLE IF NOT EXISTS `bx_messages_folders` (
   KEY `author` (`author`)
 );
 
-INSERT INTO `bx_messages_folders` (`id`, `author`, `name`) VALUES
-(1, 0, '_bx_msg_folder_talks'),
-(2, 0, '_bx_msg_folder_drafts'),
-(3, 0, '_bx_msg_folder_spam'),
-(4, 0, '_bx_msg_folder_trash');
+INSERT INTO `bx_convos_folders` (`id`, `author`, `name`) VALUES
+(1, 0, '_bx_cnv_folder_inbox'),
+(2, 0, '_bx_cnv_folder_drafts'),
+(3, 0, '_bx_cnv_folder_spam'),
+(4, 0, '_bx_cnv_folder_trash');
 
 -- TABLE: storages & transcoders
 
-CREATE TABLE IF NOT EXISTS `bx_messages_files` (
+CREATE TABLE IF NOT EXISTS `bx_convos_files` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `profile_id` int(10) unsigned NOT NULL,
   `remote_id` varchar(255) NOT NULL,
@@ -58,7 +58,7 @@ CREATE TABLE IF NOT EXISTS `bx_messages_files` (
   UNIQUE KEY `remote_id` (`remote_id`)
 );
 
-CREATE TABLE IF NOT EXISTS `bx_messages_photos_resized` (
+CREATE TABLE IF NOT EXISTS `bx_convos_photos_resized` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `profile_id` int(10) unsigned NOT NULL,
   `remote_id` varchar(255) NOT NULL,
@@ -76,7 +76,7 @@ CREATE TABLE IF NOT EXISTS `bx_messages_photos_resized` (
 
 -- TABLE: comments
 
-CREATE TABLE IF NOT EXISTS `bx_messages_cmts` (
+CREATE TABLE IF NOT EXISTS `bx_convos_cmts` (
   `cmt_id` int(11) NOT NULL AUTO_INCREMENT,
   `cmt_parent_id` int(11) NOT NULL DEFAULT '0',
   `cmt_vparent_id` int(11) NOT NULL DEFAULT '0',
@@ -95,7 +95,7 @@ CREATE TABLE IF NOT EXISTS `bx_messages_cmts` (
 
 -- TABLE: views
 
-CREATE TABLE `bx_messages_views_track` (
+CREATE TABLE `bx_convos_views_track` (
   `object_id` int(11) NOT NULL default '0',
   `viewer_id` int(11) NOT NULL default '0',
   `viewer_nip` int(11) unsigned NOT NULL default '0',
@@ -106,49 +106,49 @@ CREATE TABLE `bx_messages_views_track` (
 -- FORMS
 
 INSERT INTO `sys_objects_form`(`object`, `module`, `title`, `action`, `form_attrs`, `table`, `key`, `uri`, `uri_title`, `submit_name`, `params`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages', 'bx_messages', '_bx_msg_form_entry', '', 'a:1:{s:7:\"enctype\";s:19:\"multipart/form-data\";}', 'bx_messages_conversations', 'id', '', '', 'do_submit', '', 0, 1, 'BxMsgFormEntry', 'modules/boonex/messages/classes/BxMsgFormEntry.php');
+('bx_convos', 'bx_convos', '_bx_cnv_form_entry', '', 'a:1:{s:7:\"enctype\";s:19:\"multipart/form-data\";}', 'bx_convos_conversations', 'id', '', '', 'do_submit', '', 0, 1, 'BxCnvFormEntry', 'modules/boonex/convos/classes/BxCnvFormEntry.php');
 
 INSERT INTO `sys_form_displays`(`object`, `display_name`, `module`, `view_mode`, `title`) VALUES 
-('bx_messages', 'bx_messages_entry_add', 'bx_messages', 0, '_bx_msg_form_entry_display_add'),
-('bx_messages', 'bx_messages_entry_delete', 'bx_messages', 0, '_bx_msg_form_entry_display_delete'),
-('bx_messages', 'bx_messages_entry_view', 'bx_messages', 1, '_bx_msg_form_entry_display_view');
+('bx_convos', 'bx_convos_entry_add', 'bx_convos', 0, '_bx_cnv_form_entry_display_add'),
+('bx_convos', 'bx_convos_entry_delete', 'bx_convos', 0, '_bx_cnv_form_entry_display_delete'),
+('bx_convos', 'bx_convos_entry_view', 'bx_convos', 1, '_bx_cnv_form_entry_display_view');
 
 INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `checked`, `type`, `caption_system`, `caption`, `info`, `required`, `collapsed`, `html`, `attrs`, `attrs_tr`, `attrs_wrapper`, `checker_func`, `checker_params`, `checker_error`, `db_pass`, `db_params`, `editable`, `deletable`) VALUES 
-('bx_messages', 'bx_messages', 'delete_confirm', 1, '', 0, 'checkbox', '_bx_msg_form_entry_input_sys_delete_confirm', '_bx_msg_form_entry_input_delete_confirm', '_bx_msg_form_entry_input_delete_confirm_info', 1, 0, 0, '', '', '', 'Avail', '', '_bx_msg_form_entry_input_delete_confirm_error', '', '', 1, 0),
-('bx_messages', 'bx_messages', 'do_submit', '_bx_msg_form_entry_input_do_submit', '', 0, 'submit', '_bx_msg_form_entry_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
-('bx_messages', 'bx_messages', 'text', '', '', 0, 'textarea', '_bx_msg_form_entry_input_sys_text', '_bx_msg_form_entry_input_text', '', 1, 0, 2, '', '', '', 'Avail', '', '_bx_msg_form_entry_input_text_err', 'XssHtml', '', 1, 0),
-('bx_messages', 'bx_messages', 'recipients', '', '', 0, 'custom', '_bx_msg_form_entry_input_sys_recipients', '_bx_msg_form_entry_input_recipients', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_msg_form_entry_input_recipients_err', '', '', 1, 0),
-('bx_messages', 'bx_messages', 'attachments', '', '', 0, 'files', '_bx_msg_form_entry_input_sys_attachments', '_bx_msg_form_entry_input_attachments', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0);
+('bx_convos', 'bx_convos', 'delete_confirm', 1, '', 0, 'checkbox', '_bx_cnv_form_entry_input_sys_delete_confirm', '_bx_cnv_form_entry_input_delete_confirm', '_bx_cnv_form_entry_input_delete_confirm_info', 1, 0, 0, '', '', '', 'Avail', '', '_bx_cnv_form_entry_input_delete_confirm_error', '', '', 1, 0),
+('bx_convos', 'bx_convos', 'do_submit', '_bx_cnv_form_entry_input_do_submit', '', 0, 'submit', '_bx_cnv_form_entry_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
+('bx_convos', 'bx_convos', 'text', '', '', 0, 'textarea', '_bx_cnv_form_entry_input_sys_text', '_bx_cnv_form_entry_input_text', '', 1, 0, 2, '', '', '', 'Avail', '', '_bx_cnv_form_entry_input_text_err', 'XssHtml', '', 1, 0),
+('bx_convos', 'bx_convos', 'recipients', '', '', 0, 'custom', '_bx_cnv_form_entry_input_sys_recipients', '_bx_cnv_form_entry_input_recipients', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_cnv_form_entry_input_recipients_err', '', '', 1, 0),
+('bx_convos', 'bx_convos', 'attachments', '', '', 0, 'files', '_bx_cnv_form_entry_input_sys_attachments', '_bx_cnv_form_entry_input_attachments', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0);
 
 INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES
-('bx_messages_entry_add', 'delete_confirm', 2147483647, 0, 0),
-('bx_messages_entry_add', 'recipients', 2147483647, 1, 1),
-('bx_messages_entry_add', 'text', 2147483647, 1, 2),
-('bx_messages_entry_add', 'attachments', 2147483647, 1, 3),
-('bx_messages_entry_add', 'do_submit', 2147483647, 1, 4),
-
-('bx_messages_entry_view', 'delete_confirm', 2147483647, 0, 0),
-('bx_messages_entry_view', 'do_submit', 2147483647, 0, 0),
-('bx_messages_entry_view', 'recipients', 2147483647, 0, 0),
-('bx_messages_entry_view', 'text', 2147483647, 0, 0),
-('bx_messages_entry_view', 'attachments', 2147483647, 0, 0),
-
-('bx_messages_entry_delete', 'delete_confirm', 2147483647, 1, 1),
-('bx_messages_entry_delete', 'do_submit', 2147483647, 1, 2),
-('bx_messages_entry_delete', 'attachments', 2147483647, 0, 0),
-('bx_messages_entry_delete', 'recipients', 2147483647, 0, 0),
-('bx_messages_entry_delete', 'text', 2147483647, 0, 0);
+('bx_convos_entry_add', 'delete_confirm', 2147483647, 0, 0),
+('bx_convos_entry_add', 'recipients', 2147483647, 1, 1),
+('bx_convos_entry_add', 'text', 2147483647, 1, 2),
+('bx_convos_entry_add', 'attachments', 2147483647, 1, 3),
+('bx_convos_entry_add', 'do_submit', 2147483647, 1, 4),
+
+('bx_convos_entry_view', 'delete_confirm', 2147483647, 0, 0),
+('bx_convos_entry_view', 'do_submit', 2147483647, 0, 0),
+('bx_convos_entry_view', 'recipients', 2147483647, 0, 0),
+('bx_convos_entry_view', 'text', 2147483647, 0, 0),
+('bx_convos_entry_view', 'attachments', 2147483647, 0, 0),
+
+('bx_convos_entry_delete', 'delete_confirm', 2147483647, 1, 1),
+('bx_convos_entry_delete', 'do_submit', 2147483647, 1, 2),
+('bx_convos_entry_delete', 'attachments', 2147483647, 0, 0),
+('bx_convos_entry_delete', 'recipients', 2147483647, 0, 0),
+('bx_convos_entry_delete', 'text', 2147483647, 0, 0);
 
 -- STUDIO: page & widget
 
 INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
-(3, 'bx_messages', '_bx_msg', '_bx_msg', 'bx_messages@modules/boonex/messages/|std-pi.png');
+(3, 'bx_convos', '_bx_cnv', '_bx_cnv', 'bx_convos@modules/boonex/convos/|std-pi.png');
 SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
 INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_messages', '{url_studio}module.php?name=bx_messages', '', 'bx_messages@modules/boonex/messages/|std-wi.png', '_bx_msg', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+(@iPageId, 'bx_convos', '{url_studio}module.php?name=bx_convos', '', 'bx_convos@modules/boonex/convos/|std-wi.png', '_bx_cnv', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 30 - 0
modules/boonex/convos/install/sql/uninstall.sql

@@ -0,0 +1,30 @@
+
+-- TABLE: entries
+
+DROP TABLE IF EXISTS `bx_convos_conversations`, `bx_convos_conv2folder`, `bx_convos_folders`;
+
+-- TABLE: storages & transcoders
+
+DROP TABLE IF EXISTS `bx_convos_files`, `bx_convos_photos_resized`;
+
+-- TABLE: comments
+
+DROP TABLE IF EXISTS `bx_convos_cmts`;
+
+-- TABLE: views
+
+DROP TABLE IF EXISTS `bx_convos_views_track`;
+
+-- FORMS
+
+DELETE FROM `sys_objects_form` WHERE `module` = 'bx_convos';
+DELETE FROM `sys_form_displays` WHERE `module` = 'bx_convos';
+DELETE FROM `sys_form_inputs` WHERE `module` = 'bx_convos';
+DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN('bx_convos_entry_add', 'bx_convos_entry_view', 'bx_convos_entry_delete');
+
+-- STUDIO: page & widget
+
+DELETE FROM `tp`, `tw`, `tpw`
+USING `sys_std_pages` AS `tp`, `sys_std_widgets` AS `tw`, `sys_std_pages_widgets` AS `tpw`
+WHERE `tp`.`id` = `tw`.`page_id` AND `tw`.`id` = `tpw`.`widget_id` AND `tp`.`name` = 'bx_convos';
+

+ 22 - 0
modules/boonex/convos/js/main.js

@@ -0,0 +1,22 @@
+
+function bx_cnv_delete(e, iConvoId) {
+    return bx_cnv_action('delete', e, iConvoId, true);
+}
+
+function bx_cnv_mark_unread(e, iConvoId) {
+    return bx_cnv_action('mark_unread', e, iConvoId, false);
+}
+
+function bx_cnv_action(sAction, e, iConvoId, isConfirm) {
+    if (isConfirm && !confirm(_t('_are you sure?')))
+        return false;
+
+    bx_loading_btn(e, 1);
+    $.post(sUrlRoot + 'modules/?r=convos/' + sAction + '/' + parseInt(iConvoId), function (s) {
+        bx_loading_btn(e, 0);
+        if (sUrlRoot == s.substring(0,sUrlRoot.length))
+            location.href = s;
+        else
+            alert(s);
+    });
+}

+ 1 - 1
modules/boonex/messages/request.php → modules/boonex/convos/request.php

@@ -3,7 +3,7 @@
  * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  * 
- * @defgroup    Messages Messages
+ * @defgroup    Convos Convos
  * @ingroup     DolphinModules
  *
  * @{

+ 3 - 0
modules/boonex/convos/template/attachments.html

@@ -0,0 +1,3 @@
+
+<bx_include_base:../modules/base/text/template/attachments.html />
+

+ 3 - 0
modules/boonex/convos/template/author.html

@@ -0,0 +1,3 @@
+
+<bx_include_base:../modules/base/text/template/author.html />
+

+ 3 - 3
modules/boonex/messages/template/collaborators.html → modules/boonex/convos/template/collaborators.html

@@ -1,7 +1,7 @@
-<div class="bx-msg-collaborators bx-clearfix">
+<div class="bx-cnv-collaborators bx-clearfix">
 
     <bx_repeat:collaborators>
-        <div class="bx-msg-collaborator bx-def-unit bx-def-margin-sec-__float__-auto" style="float:__float__;">
+        <div class="bx-cnv-collaborator bx-def-unit bx-def-margin-sec-__float__-auto" style="float:__float__;">
             <a href="__url__" title="__title_attr__"><img class="bx-def-thumb bx-def-thumb-size" src="__thumb_url__" /></a>
             <bx_if:last_replier>
                 <div class="bx-def-unit-alert bg-col-blue2-dark" style="left:0; right:auto;"><i class="sys-icon comments"></i></div>
@@ -13,7 +13,7 @@
     </bx_repeat:collaborators>
 
     <bx_if:collaborators_more>
-        <div class="bx-msg-collaborator bx-def-unit bx-def-thumb-size bx-def-margin-sec-__float__-auto" style="float:__float__;">
+        <div class="bx-cnv-collaborator bx-def-unit bx-def-thumb-size bx-def-margin-sec-__float__-auto" style="float:__float__;">
             <a href="javascript:void(0);" onclick="$('#__id__').dolPopup({pointer:{el:$(this)}})">__title_more__</a>            
         </div>
         <div id="__id__" style="display:none;">__popup__</div>

+ 3 - 0
modules/boonex/convos/template/css/forms.css

@@ -0,0 +1,3 @@
+
+@import url(../../../../base/text/template/css/forms.css);
+

+ 9 - 0
modules/boonex/convos/template/css/main.css

@@ -0,0 +1,9 @@
+
+@import url(../../../../base/text/template/css/main.css);
+
+.bx-cnv-collaborator {
+    float:right;
+    white-space:nowrap;
+}
+
+

+ 3 - 0
modules/boonex/convos/template/entry-share.html

@@ -0,0 +1,3 @@
+
+<bx_include_base:../modules/base/text/template/entry-share.html />
+

+ 5 - 0
modules/boonex/convos/template/entry-text.html

@@ -0,0 +1,5 @@
+
+<div class="bx-base-text-entity-content bx-def-constraint-list bx-def-constraint-pre bx-def-constraint-object bx-def-constraint-iframe bx-def-constraint-img">
+    __text__
+</div>
+

+ 3 - 0
modules/boonex/convos/template/form_ghost_template.html

@@ -0,0 +1,3 @@
+
+<bx_include_base:../modules/base/text/template/form_ghost_template.html />
+

BIN
modules/boonex/convos/template/images/icons/std-mi.png


BIN
modules/boonex/convos/template/images/icons/std-pi.png


BIN
modules/boonex/convos/template/images/icons/std-si.png


BIN
modules/boonex/convos/template/images/icons/std-wi.png


+ 6 - 1
modules/boonex/english/data/langs/system.xml

@@ -1873,7 +1873,6 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_txt_error_entry_delete"><![CDATA[Entry delete failed]]></string>
 	<string name="_sys_txt_error_entry_is_not_defined"><![CDATA[Requested resource doesn't exist]]></string>
 	<string name="_sys_txt_error_entry_update"><![CDATA[Entry update failed]]></string>
-
 	<string name="_sys_txt_error_occured"><![CDATA[Error Occured]]></string>
 
 	<string name="_sys_txt_forgot_pasword"><![CDATA[Forgot password?]]></string>
@@ -1881,7 +1880,13 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_txt_forgot_pasword_desc"><![CDATA[Enter your account email address to get a password-reset link.]]></string>
 	<string name="_sys_txt_forgot_pasword_email_send_failed"><![CDATA[Email send failed, please try again later.]]></string>
 	<string name="_sys_txt_forgot_pasword_error_occured"><![CDATA[Error occured, please report error to the site administrator.]]></string>
+
+    <string name="_sys_txt_form_entry_input_picture_delete"><![CDATA[Delete]]></string>
+    <string name="_sys_txt_form_entry_input_picture_insert"><![CDATA[Insert to Post]]></string>
+	<string name="_sys_txt_form_entry_input_picture_pic_url"><![CDATA[Attachment URL:]]></string>
+    <string name="_sys_txt_form_entry_input_picture_use_as_thumb"><![CDATA[Use as Thumbnail]]></string>
 	<string name="_sys_txt_form_submission_error"><![CDATA[Incorrect info. Please, check your inputs and try to submit again.]]></string>
+
 	<string name="_sys_txt_login_description"><![CDATA[Not a member yet? <a href="{0}">Join now!</a>]]></string>
 	<string name="_sys_txt_login_error"><![CDATA[Entered email or password is incorrect. Please try again.]]></string>
 	<string name="_sys_txt_login_invalid_role"><![CDATA[Access denied]]></string>

+ 0 - 134
modules/boonex/messages/classes/BxMsgSearchResult.php

@@ -1,134 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    Messages Messages
- * @ingroup     DolphinModules
- *
- * @{
- */
-
-bx_import('BxBaseModTextSearchResult');
-
-class BxMsgSearchResult extends BxBaseModTextSearchResult 
-{
-    function __construct($sMode = '', $aParams = array()) 
-    {
-        parent::__construct($sMode, $aParams);
-
-        $this->aCurrent = array(
-            'name' => 'bx_messages',
-            'title' => '_bx_notes_page_title_browse',
-            'table' => 'bx_notes_posts',
-            'ownFields' => array('id', 'title', 'text', 'summary', 'thumb', 'author', 'added'),
-            'searchFields' => array('title', 'text'),
-            'restriction' => array(
-                'author' => array('value' => '', 'field' => 'author', 'operator' => '='),
-            ),
-            'paginate' => array('perPage' => getParam('bx_notes_per_page_browse'), 'start' => 0),
-            'sorting' => 'last',
-            'rss' => array(
-                'title' => '',
-                'link' => '',
-                'image' => '',
-                'profile' => 0,
-                'fields' => array (
-                    'Guid' => 'link',
-                    'Link' => 'link',
-                    'Title' => 'title',
-                    'DateTimeUTS' => 'added',
-                    'Desc' => 'text',
-                ),
-            ),
-            'ident' => 'id',
-        );
-
-        $this->sFilterName = 'bx_notes_filter';
-        $this->oModule = $this->getMain();
-
-        $oProfileAuthor = null;
-
-        $CNF = &$this->oModule->_oConfig->CNF;
-
-        switch ($sMode) {
-
-            case 'search':
-                if ($sValue)
-                    $this->aCurrent['restriction']['keyword'] = array('value' => $sValue,'field' => '','operator' => 'against');
-
-                $this->sBrowseUrl = "search/?q=" . $sValue;
-                $this->aCurrent['title'] = _t('_bx_notes_page_title_search_results', $sValue);
-                unset($this->aCurrent['rss']); // no RSS for search results
-                break;
-
-            case 'author':
-                bx_import('BxDolProfile');                
-                $oProfileAuthor = BxDolProfile::getInstance((int)$aParams['author']);
-                if (!$oProfileAuthor) {
-                    $this->isError = true;
-                    break;
-                }
-
-                $this->aCurrent['restriction']['author']['value'] = $oProfileAuthor->id();
-
-                $this->sBrowseUrl = 'page.php?i=' . $CNF['URI_AUTHOR_ENTRIES'] . '&profile_id={profile_id}';
-                $this->aCurrent['title'] = _t('_bx_notes_page_title_browse_by_author');
-                $this->aCurrent['rss']['link'] = 'modules/?r=notes/rss/' . $sMode . '/' . $oProfileAuthor->id();
-                break;
-            
-            case 'public':
-            case '':
-                bx_import('BxDolPermalinks');
-                $this->sBrowseUrl = BxDolPermalinks::getInstance()->permalink($CNF['URL_HOME']);
-                $this->aCurrent['title'] = _t('_bx_notes_page_title_browse_recent');
-                $this->aCurrent['rss']['link'] = 'modules/?r=notes/rss/' . $sMode;
-                break;
-
-            default:
-                $sMode = '';
-                $this->isError = true;
-        }
-
-        // add replacable markers and replace them
-        if ($oProfileAuthor) {
-            $this->addMarkers($oProfileAuthor->getInfo()); // profile info is replacable
-            $this->addMarkers(array('profile_id' => $oProfileAuthor->id())); // profile id is replacable
-            $this->addMarkers(array('display_name' => $oProfileAuthor->getDisplayName())); // profile display name is replacable
-        }
-
-        $this->sBrowseUrl = $this->_replaceMarkers($this->sBrowseUrl);
-        $this->aCurrent['title'] = $this->_replaceMarkers($this->aCurrent['title']);
-
-        // add conditions for private content
-        bx_import('BxDolPrivacy');
-        $oPrivacy = BxDolPrivacy::getObjectInstance($CNF['OBJECT_PRIVACY_VIEW']);
-        $a = $oPrivacy ? $oPrivacy->getContentPublicAsCondition($oProfileAuthor ? $oProfileAuthor->id() : 0) : array();
-        if (isset($a['restriction']))
-            $this->aCurrent['restriction'] = array_merge($this->aCurrent['restriction'], $a['restriction']);
-        if (isset($a['join']))
-            $this->aCurrent['join'] = array_merge($this->aCurrent['join'], $a['join']);
-
-        $this->setProcessPrivateContent(false);
-    }
-
-    function displayResultBlock () 
-    {
-        $s = parent::displayResultBlock ();
-        $s = '<div class="bx-notes-wrapper ' . ('unit_gallery.html' == $this->sUnitTemplate ? 'bx-def-margin-neg bx-clearfix' : '') . '">' . $s . '</div>';
-        return $s;
-    }
-
-    function getAlterOrder() 
-    {
-        if ($this->aCurrent['sorting'] == 'last') {
-            $aSql = array();
-            $aSql['order'] = " ORDER BY `bx_notes_posts`.`added` DESC";
-            return $aSql;
-        }
-        return array();
-    }
-}
-
-/** @} */
-

+ 0 - 102
modules/boonex/messages/install/langs/en.xml

@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources name="en" flag="gb" title="English">
-
-	<string name="_bx_msg"><![CDATA[Messages]]></string>
-
-	<string name="_bx_msg_option_per_page_browse"><![CDATA[Number of items per page]]></string>
-
-	<string name="_bx_msg_form_entry"><![CDATA[Messages]]></string>
-	<string name="_bx_msg_form_entry_display_add"><![CDATA[Add message]]></string>
-	<string name="_bx_msg_form_entry_display_delete"><![CDATA[Delete message]]></string>
-	<string name="_bx_msg_form_entry_display_view"><![CDATA[View message]]></string>
-	<string name="_bx_msg_form_entry_input_sys_do_submit"><![CDATA[Submit]]></string>
-	<string name="_bx_msg_form_entry_input_do_submit"><![CDATA[Submit]]></string>
-	<string name="_bx_msg_form_entry_input_sys_text"><![CDATA[Text]]></string>
-	<string name="_bx_msg_form_entry_input_text"><![CDATA[Text]]></string>
-	<string name="_bx_msg_form_entry_input_text_err"><![CDATA[Text field can't be empty]]></string>
-	<string name="_bx_msg_form_entry_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
-	<string name="_bx_msg_form_entry_input_delete_confirm"><![CDATA[I am sure I want to delete this message]]></string>
-	<string name="_bx_msg_form_entry_input_delete_confirm_info"><![CDATA[This action can not be undone]]></string>
-	<string name="_bx_msg_form_entry_input_delete_confirm_error"><![CDATA[Please check this checkbox if you really want to delete the message]]></string>
-	<string name="_bx_msg_form_entry_input_sys_attachments"><![CDATA[Attachments]]></string>
-	<string name="_bx_msg_form_entry_input_attachments"><![CDATA[Attachments]]></string>
-    <string name="_bx_msg_form_entry_input_picture_txt_delete"><![CDATA[Delete]]></string>
-    <string name="_bx_msg_form_entry_input_picture_txt_insert"><![CDATA[Insert to Post]]></string>
-    <string name="_bx_msg_form_entry_input_picture_txt_pic_url"><![CDATA[Attachment URL:]]></string>
-    <string name="_bx_msg_form_entry_input_recipients"><![CDATA[Recipients]]></string>
-    <string name="_bx_msg_form_entry_input_sys_recipients"><![CDATA[Recipients]]></string>
-    <string name="_bx_msg_form_entry_input_recipients_err"><![CDATA[Recipients is mandatory]]></string>
-
-	<string name="_bx_msg_acl_action_create_entry"><![CDATA[Compose message]]></string>
-	<string name="_bx_msg_acl_action_delete_entry"><![CDATA[Delete message]]></string>
-	<string name="_bx_msg_acl_action_view_entry"><![CDATA[View message]]></string>
-
-	<string name="_bx_msg_page_title_sys_create_entry"><![CDATA[Compose message]]></string>
-	<string name="_bx_msg_page_title_create_entry"><![CDATA[Compose message]]></string>
-	<string name="_bx_msg_page_block_title_create_entry"><![CDATA[Compose message]]></string>
-    <string name="_bx_msg_page_title_sys_delete_entry"><![CDATA[Delete message]]></string>
-    <string name="_bx_msg_page_title_delete_entry"><![CDATA[Delete message]]></string>
-    <string name="_bx_msg_page_block_title_delete_entry"><![CDATA[Delete message]]></string>
-	<string name="_bx_msg_page_title_sys_view_entry"><![CDATA[View message]]></string>
-	<string name="_bx_msg_page_title_view_entry"><![CDATA[{title}]]></string>
-	<string name="_bx_msg_page_block_title_entry_attachments"><![CDATA[Attachments]]></string>
-	<string name="_bx_msg_page_block_title_entry_text"><![CDATA[Message text]]></string>
-    <string name="_bx_msg_page_block_title_entry_author"><![CDATA[Author]]></string>
-    <string name="_bx_msg_page_block_title_entry_actions"><![CDATA[Actions]]></string>
-    <string name="_bx_msg_page_block_title_entry_comments"><![CDATA[Comments]]></string>
-    <string name="_bx_msg_page_block_title_entry_collaborators"><![CDATA[Participants]]></string>
-    <string name="_bx_msg_page_title_sys_folder"><![CDATA[Messages in folder]]></string>
-    <string name="_bx_msg_page_title_folder"><![CDATA[Folder: {folder}]]></string>
-    <string name="_bx_msg_page_block_title_folder"><![CDATA[Folder: {folder}]]></string>
-
-    <string name="_bx_msg_menu_set_title_view_entry"><![CDATA[View message]]></string>
-    <string name="_bx_msg_menu_title_view_entry"><![CDATA[View message]]></string>
-    <string name="_bx_msg_menu_title_submenu"><![CDATA[Messages Submenu]]></string>
-    <string name="_bx_msg_menu_set_title_submenu"><![CDATA[Messages Submenu]]></string>
-    <string name="_bx_msg_menu_title_entries_my"><![CDATA[My messages action menu]]></string>
-    <string name="_bx_msg_menu_set_title_entries_my"><![CDATA[My messages menu]]></string>
-    <string name="_bx_msg_menu_title_folders_more"><![CDATA[More folders]]></string>
-    <string name="_bx_msg_menu_set_title_submenu"><![CDATA[More folders]]></string>
-
-
-    <string name="_bx_msg_menu_item_title_system_mark_unread_entry"><![CDATA[Mark as unread]]></string>
-    <string name="_bx_msg_menu_item_title_mark_unread_entry"><![CDATA[Mark as unread]]></string>
-    <string name="_bx_msg_menu_item_title_system_delete_entry"><![CDATA[Delete message]]></string>
-    <string name="_bx_msg_menu_item_title_delete_entry"><![CDATA[Delete message]]></string>
-    <string name="_bx_msg_menu_item_title_system_folder_talks"><![CDATA[Talks]]></string>
-    <string name="_bx_msg_menu_item_title_folder_talks"><![CDATA[Talks]]></string>
-    <string name="_bx_msg_menu_item_title_system_folder_drafts"><![CDATA[Drafts]]></string>
-    <string name="_bx_msg_menu_item_title_folder_drafts"><![CDATA[Drafts]]></string>
-    <string name="_bx_msg_menu_item_title_system_folder_spam"><![CDATA[Spam]]></string>
-    <string name="_bx_msg_menu_item_title_folder_spam"><![CDATA[Spam]]></string>
-    <string name="_bx_msg_menu_item_title_system_folder_trash"><![CDATA[Trash]]></string>
-    <string name="_bx_msg_menu_item_title_folder_trash"><![CDATA[Trash]]></string>
-    <string name="_bx_msg_menu_item_title_system_folder_more"><![CDATA[More]]></string>
-    <string name="_bx_msg_menu_item_title_folder_more"><![CDATA[More]]></string>
-    <string name="_bx_msg_menu_item_title_system_messages"><![CDATA[Messages]]></string>
-    <string name="_bx_msg_menu_item_title_messages"><![CDATA[Messages]]></string>
-
-    <string name="_bx_msg_txt_sample_single"><![CDATA[message]]></string>
-
-    <string name="_bx_msg_folder_talks"><![CDATA[Talks]]></string>
-    <string name="_bx_msg_folder_drafts"><![CDATA[Drafts]]></string>
-    <string name="_bx_msg_folder_spam"><![CDATA[Spam]]></string>
-    <string name="_bx_msg_folder_trash"><![CDATA[Trash]]></string>
-
-    <string name="_bx_msg_field_comments"><![CDATA[Messages]]></string>
-    <string name="_bx_msg_field_updated"><![CDATA[Updated]]></string>
-    <string name="_bx_msg_field_preview"><![CDATA[Preview]]></string>
-    <string name="_bx_msg_field_collaborators"><![CDATA[Participants]]></string>
-
-    <string name="_bx_msg_grid_action_delete"><![CDATA[Delete]]></string>
-    <string name="_bx_msg_grid_action_compose"><![CDATA[Compose]]></string>
-
-    <string name="_bx_msg_collaborator_info"><![CDATA[{0} ({1})]]></string>
-    <string name="_bx_msg_collaborator_author"><![CDATA[author]]></string>
-    <string name="_bx_msg_collaborator_last_replier"><![CDATA[last replier]]></string>
-    <string name="_bx_msg_more"><![CDATA[{0} more]]></string>
-
-    <string name="_bx_msg_author_desc"><![CDATA[{0} (updated {1})]]></string>
-    <string name="_bx_msg_x_new_messages"><![CDATA[<b>{0} ({1} new)</b>]]></string>
-
-</resources>

+ 0 - 46
modules/boonex/messages/install/sql/disable.sql

@@ -1,46 +0,0 @@
-
--- SETTINGS
-SET @iTypeId = (SELECT `ID` FROM `sys_options_types` WHERE `name` = 'bx_messages' LIMIT 1);
-SET @iCategId = (SELECT `ID` FROM `sys_options_categories` WHERE `type_id` = @iTypeId LIMIT 1);
-DELETE FROM `sys_options` WHERE `category_id` = @iCategId;
-DELETE FROM `sys_options_categories` WHERE `type_id` = @iTypeId;
-DELETE FROM `sys_options_types` WHERE `id` = @iTypeId;
-
--- STORAGES & TRANSCODERS
-DELETE FROM `sys_objects_storage` WHERE `object` = 'bx_messages_files' OR `object` = 'bx_messages_photos_resized';
-DELETE FROM `sys_storage_tokens` WHERE `object` = 'bx_messages_files' OR `object` = 'bx_messages_photos_resized';
-
-DELETE FROM `sys_objects_transcoder_images` WHERE `object` = 'bx_messages_preview';
-DELETE FROM `sys_transcoder_images_filters` WHERE `transcoder_object` = 'bx_messages_preview';
-DELETE FROM `sys_transcoder_images_files` WHERE `transcoder_object` = 'bx_messages_preview';
--- TODO: delete resized photo files as well
-TRUNCATE TABLE `bx_messages_photos_resized`; 
-
--- PAGES
-DELETE FROM `sys_objects_page` WHERE `module` = 'bx_messages';
-DELETE FROM `sys_pages_blocks` WHERE `module` = 'bx_messages' OR `object` IN('bx_messages_create_entry', 'bx_messages_view_entry', 'bx_messages_home');
-
--- MENU
-DELETE FROM `sys_objects_menu` WHERE `module` = 'bx_messages';
-DELETE FROM `sys_menu_sets` WHERE `module` = 'bx_messages';
-DELETE FROM `sys_menu_items` WHERE `module` = 'bx_messages' OR `set_name` IN('bx_messages_view', 'bx_messages_submenu', 'bx_messages_menu_folders_more');
-
--- GRID
-DELETE FROM `sys_objects_grid` WHERE `object` LIKE 'bx_messages%';
-DELETE FROM `sys_grid_fields` WHERE `object` LIKE 'bx_messages%';
-DELETE FROM `sys_grid_actions` WHERE `object` LIKE 'bx_messages%';
-
--- ACL
-DELETE `sys_acl_actions`, `sys_acl_matrix` FROM `sys_acl_actions`, `sys_acl_matrix` WHERE `sys_acl_matrix`.`IDAction` = `sys_acl_actions`.`ID` AND `sys_acl_actions`.`Module` = 'bx_messages';
-DELETE FROM `sys_acl_actions` WHERE `Module` = 'bx_messages';
-
--- COMMENTS
-DELETE FROM `sys_objects_cmts` WHERE `Name` = 'bx_messages';
-
--- VIEWS
-DELETE FROM `sys_objects_view` WHERE `Name` = 'bx_messages';
-
--- ALERTS
-SET @iHandler := (SELECT `id` FROM `sys_alerts_handlers` WHERE `name` = 'bx_messages' LIMIT 1);
-DELETE FROM `sys_alerts` WHERE `handler_id` = @iHandler;
-DELETE FROM `sys_alerts_handlers` WHERE `id` = @iHandler;

+ 0 - 194
modules/boonex/messages/install/sql/enable.sql

@@ -1,194 +0,0 @@
-
--- SETTINGS
-
-SET @iTypeOrder = (SELECT MAX(`order`) FROM `sys_options_types` WHERE `group` = 'modules');
-INSERT INTO `sys_options_types`(`group`, `name`, `caption`, `icon`, `order`) VALUES 
-('modules', 'bx_messages', '_bx_msg', 'bx_messages@modules/boonex/messages/|std-mi.png', IF(ISNULL(@iTypeOrder), 1, @iTypeOrder + 1));
-SET @iTypeId = LAST_INSERT_ID();
-
-INSERT INTO `sys_options_categories` (`type_id`, `name`, `caption`, `order`)
-VALUES (@iTypeId, 'bx_messages', '_bx_msg', 1);
-SET @iCategId = LAST_INSERT_ID();
-
-INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `check`, `check_error`, `extra`, `order`) VALUES
-('bx_messages_per_page_browse', '12', @iCategId, '_bx_msg_option_per_page_browse', 'digit', '', '', '', 1);
-
--- STORAGES & TRANSCODERS
-
-SET @iTotalFilesSize = (SELECT SUM(`size`) FROM `bx_messages_files`);
-SET @iTotalFilesNum = (SELECT COUNT(*) FROM `bx_messages_files`);
-SET @iTotalResizedSize = (SELECT SUM(`size`) FROM `bx_messages_photos_resized`);
-SET @iTotalResizedNum = (SELECT COUNT(*) FROM `bx_messages_photos_resized`);
-
-INSERT INTO `sys_objects_storage` (`object`, `engine`, `params`, `token_life`, `cache_control`, `levels`, `table_files`, `ext_mode`, `ext_allow`, `ext_deny`, `quota_size`, `current_size`, `quota_number`, `current_number`, `max_file_size`, `ts`) VALUES
-('bx_messages_files', 'Local', '', 360, 2592000, 3, 'bx_messages_files', 'deny-allow', '', 'action,apk,app,bat,bin,cmd,com,command,cpl,csh,exe,gadget,inf,ins,inx,ipa,isu,job,jse,ksh,lnk,msc,msi,msp,mst,osx,out,paf,pif,prg,ps1,reg,rgs,run,sct,shb,shs,u3p,vb,vbe,vbs,vbscript,workflow,ws,wsf', 0, @iTotalFilesSize, 0, @iTotalFilesNum, 0, 0),
-('bx_messages_photos_resized', 'Local', '', 360, 2592000, 3, 'bx_messages_photos_resized', 'allow-deny', 'jpg,jpeg,jpe,gif,png', '', 0, @iTotalResizedSize, 0, @iTotalResizedNum, 0, 0);
-
-INSERT INTO `sys_objects_transcoder_images` (`object`, `storage_object`, `source_type`, `source_params`, `private`, `atime_tracking`, `atime_pruning`, `ts`) VALUES 
-('bx_messages_preview', 'bx_messages_photos_resized', 'Storage', 'a:1:{s:6:"object";s:17:"bx_messages_files";}', 'no', '1', '2592000', '0');
-
-INSERT INTO `sys_transcoder_images_filters` (`transcoder_object`, `filter`, `filter_params`, `order`) VALUES 
-('bx_messages_preview', 'Resize', 'a:4:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";s:10:"force_type";s:3:"jpg";}', '0');
-
-
--- PAGE: create entry
-
-INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages_create_entry', '_bx_msg_page_title_sys_create_entry', '_bx_msg_page_title_create_entry', 'bx_messages', 5, 2147483647, 1, 'compose-message', 'page.php?i=compose-message', '', '', '', 0, 1, 0, 'BxMsgPageBrowse', 'modules/boonex/messages/classes/BxMsgPageBrowse.php');
-
-INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
-('bx_messages_create_entry', 1, 'bx_messages', '_bx_msg_page_block_title_create_entry', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_messages";s:6:"method";s:13:"entity_create";}', 0, 1, 1);
-
-
--- PAGE: view entry
-
-INSERT INTO `sys_objects_page`(`object`, `uri`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages_view_entry', 'view-message', '_bx_msg_page_title_sys_view_entry', '_bx_msg_page_title_view_entry', 'bx_messages', 10, 2147483647, 1, '', '', '', '', 0, 1, 0, 'BxMsgPageEntry', 'modules/boonex/messages/classes/BxMsgPageEntry.php');
-
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
-('bx_messages_view_entry', 4, 'bx_messages', '_bx_msg_page_block_title_entry_text', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:17:\"entity_text_block\";}', 0, 0, 1, 0),
-('bx_messages_view_entry', 3, 'bx_messages', '_bx_msg_page_block_title_entry_collaborators', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:20:\"entity_collaborators\";}', 0, 0, 1, 0),
-('bx_messages_view_entry', 1, 'bx_messages', '_bx_msg_page_block_title_entry_actions', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:14:\"entity_actions\";}', 0, 0, 1, 0),
-('bx_messages_view_entry', 2, 'bx_messages', '_bx_msg_page_block_title_entry_author', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:13:\"entity_author\";}', 0, 0, 1, 0),
-('bx_messages_view_entry', 4, 'bx_messages', '_bx_msg_page_block_title_entry_attachments', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:18:\"entity_attachments\";}', 0, 0, 1, 1),
-('bx_messages_view_entry', 4, 'bx_messages', '_bx_msg_page_block_title_entry_comments', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:15:\"entity_comments\";}', 0, 0, 1, 2);
-
-
--- PAGE: module home
-
-INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages_home', '_bx_msg_page_title_sys_folder', '_bx_msg_page_title_folder', 'bx_messages', 5, 2147483647, 1, 'messages-folder', 'modules/?r=messages/folder/1', '', '', '', 0, 1, 0, 'BxMsgPageBrowse', 'modules/boonex/messages/classes/BxMsgPageBrowse.php');
-
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_messages_home', 1, 'bx_messages', '_bx_msg_page_block_title_folder', 0, 2147483647, 'service', 'a:2:{s:6:\"module\";s:11:\"bx_messages\";s:6:\"method\";s:4:\"home\";}', 0, 1, 0);
-
-
--- MENU: actions menu for view entry 
-
-INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages_view', '_bx_msg_menu_title_view_entry', 'bx_messages_view', 'bx_messages', 9, 0, 1, 'BxMsgMenuView', 'modules/boonex/messages/classes/BxMsgMenuView.php');
-
-INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
-('bx_messages_view', 'bx_messages', '_bx_msg_menu_set_title_view_entry', 0);
-
-INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('bx_messages_view', 'bx_messages', 'delete-message', '_bx_msg_menu_item_title_system_delete_entry', '_bx_msg_menu_item_title_delete_entry', 'javascript:void(0);', 'bx_msg_delete(this, \'{content_id}\')', '', 'remove', '', 0, 1, 0, 1),
-('bx_messages_view', 'bx_messages', 'mark-unread-message', '_bx_msg_menu_item_title_system_mark_unread_entry', '_bx_msg_menu_item_title_mark_unread_entry', 'javascript:void(0);', 'bx_msg_mark_unread(this, \'{content_id}\')', '', 'remove', '', 0, 1, 0, 2);
-
-
--- MENU: module sub-menu
-
-INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages_submenu', '_bx_msg_menu_title_submenu', 'bx_messages_submenu', 'bx_messages', 8, 0, 1, '', '');
-
-INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
-('bx_messages_submenu', 'bx_messages', '_bx_msg_menu_set_title_submenu', 0);
-
-INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('bx_messages_submenu', 'bx_messages', 'messages-folder-talks', '_bx_msg_menu_item_title_system_folder_talks', '_bx_msg_menu_item_title_folder_talks', 'modules/?r=messages/folder/1', '', '', '', '', 2147483647, 1, 1, 1),
-('bx_messages_submenu', 'bx_messages', 'messages-folder-more', '_bx_msg_menu_item_title_system_folder_more', '_bx_msg_menu_item_title_folder_more', 'javascript:void(0);', 'bx_menu_popup(''bx_messages_menu_folders_more'', this);', '', '', '', 2147483647, 1, 1, 2);
-
-
--- MENU: more folders
-
-INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
-('bx_messages_menu_folders_more', '_bx_msg_menu_title_folders_more', 'bx_messages_menu_folders_more', 'bx_messages', 4, 0, 1, '', '');
-
-INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
-('bx_messages_menu_folders_more', 'bx_messages', '_bx_msg_menu_set_title_folders_more', 0);
-
-INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('bx_messages_menu_folders_more', 'bx_messages', 'messages-drafts', '_bx_msg_menu_item_title_system_folder_drafts', '_bx_msg_menu_item_title_folder_drafts', 'modules/?r=messages/folder/2', '', '', '', '', 2147483647, 1, 1, 1),
-('bx_messages_menu_folders_more', 'bx_messages', 'messages-spam', '_bx_msg_menu_item_title_system_folder_spam', '_bx_msg_menu_item_title_folder_spam', 'modules/?r=messages/folder/3', '', '', '', '', 2147483647, 1, 1, 2),
-('bx_messages_menu_folders_more', 'bx_messages', 'messages-trash', '_bx_msg_menu_item_title_system_folder_trash', '_bx_msg_menu_item_title_folder_trash', 'modules/?r=messages/folder/4', '', '', '', '', 2147483647, 1, 1, 3);
-
-
--- MENU: notifications
-
-INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
-('sys_account_notifications', 'bx_messages', 'notifications-messages', '_bx_msg_menu_item_title_system_messages', '_bx_msg_menu_item_title_messages', 'modules/?r=messages/folder/1', '', '', 'envelope col-red1', 'a:2:{s:6:"module";s:11:"bx_messages";s:6:"method";s:23:"get_unread_messages_num";}', '', 2147483646, 1, 0, 2);
-
-
--- GRID
-
-INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_mode`, `sorting_fields`, `visible_for_levels`, `override_class_name`, `override_class_file`) VALUES
-('bx_messages', 'Sql', 'SELECT `c`.`id`, `c`.`author`, `c`.`text`, `c`.`added`, `c`.`comments`, `f`.`read_comments`, `last_reply_timestamp`, `last_reply_profile_id` FROM `bx_messages_conversations` AS `c` INNER JOIN `bx_messages_conv2folder` AS `f` ON (`c`.`id` = `f`.`conv_id` AND `f`.`folder_id` = {folder_id} AND `f`.`collaborator` = {profile_id})', 'bx_messages_conversations', 'id', 'last_reply_timestamp', '', 10, NULL, 'start', '', 'text', 'auto', 'comments,last_reply_timestamp', 64, 'BxMsgGrid', 'modules/boonex/messages/classes/BxMsgGrid.php');
-
-INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `params`, `order`) VALUES
-('bx_messages', 'checkbox', '_sys_select', '2%', '', 1),
-('bx_messages', 'collaborators', '_bx_msg_field_collaborators', '25%', '', 2),
-('bx_messages', 'preview', '_bx_msg_field_preview', '48%', '', 3),
-('bx_messages', 'comments', '_bx_msg_field_comments', '12%', '', 4),
-('bx_messages', 'last_reply_timestamp', '_bx_msg_field_updated', '13%', '', 5);
-
-INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `confirm`, `order`) VALUES
-('bx_messages', 'bulk', 'delete', '_bx_msg_grid_action_delete', '', 1, 1),
-('bx_messages', 'independent', 'add', '_bx_msg_grid_action_compose', '', 0, 1);
-
-
--- ACL
-
-INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
-('bx_messages', 'create entry', NULL, '_bx_msg_acl_action_create_entry', '', 1, 1);
-SET @iIdActionEntryCreate = LAST_INSERT_ID();
-
-INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
-('bx_messages', 'delete entry', NULL, '_bx_msg_acl_action_delete_entry', '', 1, 1);
-SET @iIdActionEntryDelete = LAST_INSERT_ID();
-
-INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
-('bx_messages', 'view entry', NULL, '_bx_msg_acl_action_view_entry', '', 1, 1);
-SET @iIdActionEntryView = LAST_INSERT_ID();
-
-
-SET @iUnauthenticated = 1;
-SET @iStandard = 2;
-SET @iUnconfirmed = 3;
-SET @iPending = 4;
-SET @iSuspended = 5;
-SET @iModerator = 6;
-SET @iAdministrator = 7;
-SET @iPremium = 8;
-
-INSERT INTO `sys_acl_matrix` (`IDLevel`, `IDAction`) VALUES
-
--- entry create
-(@iStandard, @iIdActionEntryCreate),
-(@iModerator, @iIdActionEntryCreate),
-(@iAdministrator, @iIdActionEntryCreate),
-(@iPremium, @iIdActionEntryCreate),
-
--- entry delete
-(@iStandard, @iIdActionEntryDelete),
-(@iModerator, @iIdActionEntryDelete),
-(@iAdministrator, @iIdActionEntryDelete),
-(@iPremium, @iIdActionEntryDelete),
-
--- entry view
-(@iUnauthenticated, @iIdActionEntryView),
-(@iStandard, @iIdActionEntryView),
-(@iUnconfirmed, @iIdActionEntryView),
-(@iPending, @iIdActionEntryView),
-(@iModerator, @iIdActionEntryView),
-(@iAdministrator, @iIdActionEntryView),
-(@iPremium, @iIdActionEntryView);
-
-
--- COMMENTS
-INSERT INTO `sys_objects_cmts` (`Name`, `Table`, `CharsPostMin`, `CharsPostMax`, `CharsDisplayMax`, `Nl2br`, `PerView`, `PerViewReplies`, `BrowseType`, `IsBrowseSwitch`, `PostFormPosition`, `NumberOfLevels`, `IsDisplaySwitch`, `IsRatable`, `ViewingThreshold`, `IsOn`, `RootStylePrefix`, `BaseUrl`, `ObjectVote`, `TriggerTable`, `TriggerFieldId`, `TriggerFieldTitle`, `TriggerFieldComments`, `ClassName`, `ClassFile`) VALUES
-('bx_messages', 'bx_messages_cmts', 1, 5000, 1000, 1, 5, 3, 'tail', 1, 'bottom', 1, 1, 0, -3, 1, 'cmt', 'page/view-message&id={object_id}', '', 'bx_messages_conversations', 'id', '', 'comments', 'BxMsgCmts', 'modules/boonex/messages/classes/BxMsgCmts.php');
-
--- VIEWS
-INSERT INTO `sys_objects_view` (`name`, `table_track`, `period`, `is_on`, `trigger_table`, `trigger_field_id`, `trigger_field_count`, `class_name`, `class_file`) VALUES 
-('bx_messages', 'bx_messages_views_track', '86400', '1', 'bx_messages_conversations', 'id', 'views', '', '');
-
--- ALERTS
-
-INSERT INTO `sys_alerts_handlers` (`name`, `class`, `file`, `eval`) VALUES 
-('bx_messages', 'BxMsgAlertsResponse', 'modules/boonex/messages/classes/BxMsgAlertsResponse.php', '');
-SET @iHandler := LAST_INSERT_ID();
-
-INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
-('bx_messages', 'commentPost', @iHandler),
-('bx_messages', 'commentRemoved', @iHandler);
-

+ 0 - 30
modules/boonex/messages/install/sql/uninstall.sql

@@ -1,30 +0,0 @@
-
--- TABLE: entries
-
-DROP TABLE IF EXISTS `bx_messages_conversations`, `bx_messages_conv2folder`, `bx_messages_folders`;
-
--- TABLE: storages & transcoders
-
-DROP TABLE IF EXISTS `bx_messages_files`, `bx_messages_photos_resized`;
-
--- TABLE: comments
-
-DROP TABLE IF EXISTS `bx_messages_cmts`;
-
--- TABLE: views
-
-DROP TABLE IF EXISTS `bx_messages_views_track`;
-
--- FORMS
-
-DELETE FROM `sys_objects_form` WHERE `module` = 'bx_messages';
-DELETE FROM `sys_form_displays` WHERE `module` = 'bx_messages';
-DELETE FROM `sys_form_inputs` WHERE `module` = 'bx_messages';
-DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN('bx_messages_entry_add', 'bx_messages_entry_view', 'bx_messages_entry_delete');
-
--- STUDIO: page & widget
-
-DELETE FROM `tp`, `tw`, `tpw`
-USING `sys_std_pages` AS `tp`, `sys_std_widgets` AS `tw`, `sys_std_pages_widgets` AS `tpw`
-WHERE `tp`.`id` = `tw`.`page_id` AND `tw`.`id` = `tpw`.`widget_id` AND `tp`.`name` = 'bx_messages';
-

+ 0 - 23
modules/boonex/messages/js/forms.js

@@ -1,23 +0,0 @@
-
-function bx_notes_select_thumb(eCheckbox) {
-    var eCont = $(eCheckbox).parents('.bx-form-input-files-result');
-    if (!eCont.length)
-        return;
-    eCont.find('.bx-notes-use-as-thumb input:checked').each (function () {        
-        if ($(this).attr('id') != $(eCheckbox).attr('id'))
-            $(this).css('border', '1px solid red').attr('checked', false);
-    });
-}
-
-function bx_notes_delete_ghost (iFileId, sFileUrl, sFileIcon, sEditorId, sSummaryId, oUploaderInstance) {
-    bx_editor_remove_img (
-        [sEditorId, sSummaryId], 
-        ['img[src="' + sFileIcon + '"]', 'img[src="' + sFileUrl + '"]', '.bx-notes-img-' + iFileId, '.bx-notes-icon-' + iFileId]
-    );
-    oUploaderInstance.deleteGhost(iFileId);
-}
-
-function bx_notes_insert_to_post (iFileId, sFileUrl, sEditorId) {
-    bx_editor_insert_img (sEditorId, 'bx-notes-img-' + iFileId, sFileUrl, 'bx-notes-img');
-}
-

+ 0 - 22
modules/boonex/messages/js/main.js

@@ -1,22 +0,0 @@
-
-function bx_msg_delete(e, iMsgId) {
-    return bx_msg_action('delete', e, iMsgId, true);
-}
-
-function bx_msg_mark_unread(e, iMsgId) {
-    return bx_msg_action('mark_unread', e, iMsgId, false);
-}
-
-function bx_msg_action(sAction, e, iMsgId, isConfirm) {
-    if (isConfirm && !confirm(_t('_are you sure?')))
-        return false;
-
-    bx_loading_btn(e, 1);
-    $.post(sUrlRoot + 'modules/?r=messages/' + sAction + '/' + parseInt(iMsgId), function (s) {
-        bx_loading_btn(e, 0);
-        if (sUrlRoot == s.substring(0,sUrlRoot.length))
-            location.href = s;
-        else
-            alert(s);
-    });
-}

+ 0 - 14
modules/boonex/messages/template/css/forms.css

@@ -1,14 +0,0 @@
-
-
-.bx-uploader-ghost .bx-notes-icon-wrapper {
-    float:left;
-}
-
-.bx-notes-uploader-ghost input.bx-form-input-text {
-    width:300px;
-}
-
-.bx-notes-use-as-thumb input,
-.bx-notes-use-as-thumb label {
-    vertical-align:middle;
-}

+ 0 - 74
modules/boonex/messages/template/css/main.css

@@ -1,74 +0,0 @@
-
-
-.bx-msg-collaborator {
-    float:right;
-    white-space:nowrap;
-}
-
-/* unit */
-
-.bx-notes-unit:first-child h1 {
-    padding-top:0;
-}
-
-.bx-notes-unit h1 {
-    margin:0;
-}
-
-.bx-notes-unit .sys-icon {
-    vertical-align:middle;
-}
-
-.bx-notes-unit-no-thumb,
-.bx-notes-unit-thumb {
-    display:block;
-    float:right;
-    overflow:hidden;
-}
-
-.bx-notes-unit-no-thumb {
-    overflow:hidden;
-}
-
-.bx-notes-unit-summary p {
-    margin:0;
-}
-
-.bx-notes-unit-info {
-    white-space:nowrap;
-    overflow:hidden;
-    text-overflow:ellipsis;
-}
-
-.bx-notes-unit-gallery {
-    float:left;
-}
-
-.bx-notes-unit-gallery .bx-notes-unit-no-thumb,
-.bx-notes-unit-gallery .bx-notes-unit-thumb {
-    float:none;
-    line-height:1.25em;
-}
-
-.bx-notes-unit-gallery h2 {
-    line-height:1.25em;
-    max-height:3.75em;
-    overflow:hidden; 
-}
-
-.bx-notes-wrapper {
-    margin-bottom:0;
-}
-
-/* view page */
-.bx-notes-entity-content p:first-child,
-.bx-notes-entity-content h1:first-child {
-    margin-top:0;
-}
-
-.bx-notes-entity-share .bx-vote,
-.bx-notes-entity-share .bx-tl-share,
-.bx-notes-entity-share .bx-social-sharing {
-	position: relative;
-	float: left;
-}

+ 0 - 1
modules/boonex/messages/template/entry-share.html

@@ -1 +0,0 @@
-<div class="bx-notes-entity-share bx-clearfix">__vote____share____social__</div>

+ 0 - 5
modules/boonex/messages/template/entry-text.html

@@ -1,5 +0,0 @@
-
-<div class="bx-notes-entity-content bx-def-constraint-list bx-def-constraint-pre bx-def-constraint-object bx-def-constraint-iframe bx-def-constraint-img">
-    __text__
-</div>
-

+ 0 - 29
modules/boonex/messages/template/form_ghost_template.html

@@ -1,29 +0,0 @@
-<div id="bx-uploader-file-{file_id}" class="bx-uploader-ghost bx-def-margin-sec-top bx-clearfix">
-    <input type="hidden" name="__name__" value="{file_id}" />
-    <div class="bx-notes-icon-wrapper bx-def-margin-sec-right">
-        <img src="{file_icon}" class="bx-def-round-corners bx-notes-icon bx-notes-icon-{file_id}" />
-    </div>
-    <span class="bx-notes-uploader-ghost">
-        <b><bx_text:_bx_notes_form_entry_input_picture_txt_pic_url /></b> 
-        <br />
-        <input class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" type="text" value="{file_url}" readonly="1" /> <br />
-
-        <span id="bx-notes-intert-to-post-link-{file_id}" style="display:none;">
-            <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_notes_insert_to_post('{file_id}', '{file_url}', '__editor_id__');"><bx_text:_bx_notes_form_entry_input_picture_txt_insert /></a>
-        </span>
-        <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_notes_delete_ghost('{file_id}', '{file_url}', '{file_icon}', '__editor_id__', '__summary_id__', {js_instance_name});"><bx_text:_bx_notes_form_entry_input_picture_txt_delete /></a>
-
-        <bx_if:set_thumb>
-            <span class="bx-notes-use-as-thumb">
-                <input type="checkbox" name="__name_thumb__[]" value="{file_id}" onclick="bx_notes_select_thumb(this)" id="__name_thumb__-{file_id}" /> 
-                <label for="__name_thumb__-{file_id}"><bx_text:_bx_notes_form_entry_input_picture_txt_use_as_thumb /></label>
-            </span>
-        </bx_if:set_thumb>
-
-    </span>
-</div>
-<script>
-    if ('object' == typeof(tinymce))
-        $('#bx-notes-intert-to-post-link-{file_id}').show();
-    $('#bx-uploader-file-{file_id} .bx-notes-use-as-thumb input[value="__thumb_id__"]').attr('checked', true);
-</script>

BIN
modules/boonex/messages/template/images/icons/std-mi.png


BIN
modules/boonex/messages/template/images/icons/std-pi.png


BIN
modules/boonex/messages/template/images/icons/std-si.png


BIN
modules/boonex/messages/template/images/icons/std-wi.png


+ 0 - 16
modules/boonex/messages/template/unit.html

@@ -1,16 +0,0 @@
-
-<div class="bx-notes-unit bx-def-margin-bottom">
-    <h1 class="bx-def-padding-sec-top"><a href="__content_url__">__title__</a></h1>
-    <div class="bx-notes-unit-info bx-def-margin-sec-top">
-        <span class="bx-def-font-grayed">__entry_posting_date__</span>
-        <span class="bx-notes-unit-info-div bx-def-font-grayed">&#183;</span>
-        <a href="__author_url__">__author__</a>
-    </div>
-    <div class="bx-notes-unit-summary bx-def-margin-sec-top bx-def-margin-sec-bottom bx-clearfix">
-        <bx_if:thumb>
-            <img class="bx-notes-unit-thumb bx-def-gal-img-size bx-def-round-corners bx-def-margin-sec-left" alt="__title__" src="__thumb_url__" />
-        </bx_if:thumb>
-        __summary__
-    </div> 
-</div>
-

+ 0 - 25
modules/boonex/messages/template/unit_gallery.html

@@ -1,25 +0,0 @@
-
-<div class="bx-notes-unit bx-notes-unit-gallery bx-def-gal-unit-size bx-def-margin">
-
-    <bx_if:thumb>
-        <a href="__content_url__"><img class="bx-notes-unit-thumb bx-def-gal-img-size bx-def-round-corners bx-def-color-bg-sec bx-def-font-middle" alt="__summary_attr__" src="__thumb_url__" /></a>
-    </bx_if:thumb>
-
-    <bx_if:no_thumb>
-        <div class="bx-def-gal-img-column">
-            <div class="bx-notes-unit-no-thumb bx-def-gal-img-size bx-def-round-corners bx-def-color-bg-sec bx-def-font-middle bx-def-font-grayed bx-def-padding bx-def-box-sizing">__summary_plain__</div>
-        </div>
-    </bx_if:no_thumb>
-
-    <div class="bx-def-gal-unit-column">
-        <h2 class="bx-def-margin-sec-topbottom"><a href="__content_url__">__title__</a></h2>
-    </div>
-
-    <div class="bx-notes-unit-info">
-        <span class="bx-def-font-grayed">__entry_posting_date__</span>
-        <span class="bx-notes-unit-info-div bx-def-font-grayed">&#183;</span>
-        <a href="__author_url__">__author__</a>
-    </div>
-
-</div>
-

+ 0 - 8
modules/boonex/messages/template/unit_private.html

@@ -1,8 +0,0 @@
-
-<div class="bx-notes-unit bx-def-margin-bottom">
-    <h2><bx_text:_sys_private /></h2>
-    <div class="bx-notes-unit-summary">
-        __summary__
-    </div>
-</div>
-

+ 0 - 4
modules/boonex/notes/install/langs/en.xml

@@ -30,10 +30,6 @@
 	<string name="_bx_notes_form_entry_input_delete_confirm_error"><![CDATA[Please check this checkbox if you really want to delete the note]]></string>
 	<string name="_bx_notes_form_entry_input_sys_pictures"><![CDATA[Pictures]]></string>
 	<string name="_bx_notes_form_entry_input_pictures"><![CDATA[Pictures]]></string>
-    <string name="_bx_notes_form_entry_input_picture_txt_delete"><![CDATA[Delete]]></string>
-    <string name="_bx_notes_form_entry_input_picture_txt_insert"><![CDATA[Insert to Post]]></string>
-    <string name="_bx_notes_form_entry_input_picture_txt_pic_url"><![CDATA[Picture URL:]]></string>
-    <string name="_bx_notes_form_entry_input_picture_txt_use_as_thumb"><![CDATA[Use as Thumbnail]]></string>
     <string name="_bx_notes_form_entry_input_sys_allow_view_to"><![CDATA[Visibility]]></string>
     <string name="_bx_notes_form_entry_input_allow_view_to"><![CDATA[Visibility]]></string>
 

+ 3 - 0
modules/boonex/notes/template/attachments.html

@@ -0,0 +1,3 @@
+
+<bx_include_base:../modules/base/text/template/attachments.html />
+

+ 1 - 3
modules/boonex/notes/template/author.html

@@ -1,5 +1,3 @@
 
-<div class="bx-notes-author bx-def-unit">
-    <a href="__author_url__"><img class="bx-def-thumb bx-def-thumb-size" src="__author_thumb_url__" /></a><div class="bx-def-unit-info bx-def-thumb-size-max-height bx-def-padding-left"><a href="__author_url__">__author_title__</a><br /><span class="bx-def-font-grayed bx-def-font-small">__author_desc__</span></div>
-</div>
+<bx_include_base:../modules/base/text/template/author.html />
 

+ 1 - 12
modules/boonex/notes/template/css/forms.css

@@ -1,14 +1,3 @@
 
+@import url(../../../../base/text/template/css/forms.css);
 
-.bx-uploader-ghost .bx-notes-icon-wrapper {
-    float:left;
-}
-
-.bx-notes-uploader-ghost input.bx-form-input-text {
-    width:300px;
-}
-
-.bx-notes-use-as-thumb input,
-.bx-notes-use-as-thumb label {
-    vertical-align:middle;
-}

+ 1 - 65
modules/boonex/notes/template/css/main.css

@@ -1,67 +1,3 @@
 
-/* unit */
+@import url(../../../../base/text/template/css/main.css);
 
-.bx-notes-unit:first-child h1 {
-    padding-top:0;
-}
-
-.bx-notes-unit h1 {
-    margin:0;
-}
-
-.bx-notes-unit .sys-icon {
-    vertical-align:middle;
-}
-
-.bx-notes-unit-no-thumb,
-.bx-notes-unit-thumb {
-    display:block;
-    float:right;
-    overflow:hidden;
-}
-
-.bx-notes-unit-no-thumb {
-    overflow:hidden;
-}
-
-.bx-notes-unit-summary p {
-    margin:0;
-}
-
-.bx-notes-unit-info {
-    white-space:nowrap;
-    overflow:hidden;
-    text-overflow:ellipsis;
-}
-
-.bx-notes-unit-gallery {
-    float:left;
-}
-
-.bx-notes-unit-gallery .bx-notes-unit-no-thumb,
-.bx-notes-unit-gallery .bx-notes-unit-thumb {
-    float:none;
-    line-height:1.25em;
-}
-
-.bx-notes-unit-gallery h2 {
-    line-height:1.25em;
-    max-height:3.75em;
-    overflow:hidden; 
-}
-
-.bx-notes-wrapper {
-    margin-bottom:0;
-}
-
-/* view page */
-.bx-notes-entity-content h1:first-child {
-    margin-top:0;
-}
-
-.bx-notes-entity-share .bx-vote,
-.bx-notes-entity-share .bx-tl-share,
-.bx-notes-entity-share .bx-social-sharing {
-	position: relative;
-	float: left;
-}

+ 3 - 1
modules/boonex/notes/template/entry-share.html

@@ -1 +1,3 @@
-<div class="bx-notes-entity-share bx-clearfix">__vote____share____social__</div>
+
+<bx_include_base:../modules/base/text/template/entry-share.html />
+

+ 1 - 4
modules/boonex/notes/template/entry-text.html

@@ -1,6 +1,3 @@
 
-<div class="bx-notes-entity-content bx-def-constraint-list bx-def-constraint-pre bx-def-constraint-object bx-def-constraint-iframe bx-def-constraint-img">
-    <h1>__title__</h1>
-    __text__
-</div>
+<bx_include_base:../modules/base/text/template/entry-text.html />
 

+ 1 - 27
modules/boonex/notes/template/form_ghost_template.html

@@ -1,29 +1,3 @@
-<div id="bx-uploader-file-{file_id}" class="bx-uploader-ghost bx-def-margin-sec-top bx-clearfix">
-    <input type="hidden" name="__name__" value="{file_id}" />
-    <div class="bx-notes-icon-wrapper bx-def-margin-sec-right">
-        <img src="{file_icon}" class="bx-def-round-corners bx-notes-icon bx-notes-icon-{file_id}" />
-    </div>
-    <span class="bx-notes-uploader-ghost">
-        <b><bx_text:_bx_notes_form_entry_input_picture_txt_pic_url /></b> 
-        <br />
-        <input class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" type="text" value="{file_url}" readonly="1" /> <br />
 
-        <span id="bx-notes-intert-to-post-link-{file_id}" style="display:none;">
-            <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_notes_insert_to_post('{file_id}', '{file_url}', '__editor_id__');"><bx_text:_bx_notes_form_entry_input_picture_txt_insert /></a>
-        </span>
-        <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_notes_delete_ghost('{file_id}', '{file_url}', '{file_icon}', '__editor_id__', '__summary_id__', {js_instance_name});"><bx_text:_bx_notes_form_entry_input_picture_txt_delete /></a>
+<bx_include_base:../modules/base/text/template/form_ghost_template.html />
 
-        <bx_if:set_thumb>
-            <span class="bx-notes-use-as-thumb">
-                <input type="checkbox" name="__name_thumb__[]" value="{file_id}" onclick="bx_notes_select_thumb(this)" id="__name_thumb__-{file_id}" /> 
-                <label for="__name_thumb__-{file_id}"><bx_text:_bx_notes_form_entry_input_picture_txt_use_as_thumb /></label>
-            </span>
-        </bx_if:set_thumb>
-
-    </span>
-</div>
-<script>
-    if ('object' == typeof(tinymce))
-        $('#bx-notes-intert-to-post-link-{file_id}').show();
-    $('#bx-uploader-file-{file_id} .bx-notes-use-as-thumb input[value="__thumb_id__"]').attr('checked', true);
-</script>

+ 1 - 14
modules/boonex/notes/template/unit.html

@@ -1,16 +1,3 @@
 
-<div class="bx-notes-unit bx-def-margin-bottom">
-    <h1 class="bx-def-padding-sec-top"><a href="__content_url__">__title__</a></h1>
-    <div class="bx-notes-unit-info bx-def-margin-sec-top">
-        <span class="bx-def-font-grayed">__entry_posting_date__</span>
-        <span class="bx-notes-unit-info-div bx-def-font-grayed">&#183;</span>
-        <a href="__author_url__">__author__</a>
-    </div>
-    <div class="bx-notes-unit-summary bx-def-margin-sec-top bx-def-margin-sec-bottom bx-clearfix">
-        <bx_if:thumb>
-            <img class="bx-notes-unit-thumb bx-def-gal-img-size bx-def-round-corners bx-def-margin-sec-left" alt="__title__" src="__thumb_url__" />
-        </bx_if:thumb>
-        __summary__
-    </div> 
-</div>
+<bx_include_base:../modules/base/text/template/unit.html />
 

+ 1 - 23
modules/boonex/notes/template/unit_gallery.html

@@ -1,25 +1,3 @@
 
-<div class="bx-notes-unit bx-notes-unit-gallery bx-def-gal-unit-size bx-def-margin">
-
-    <bx_if:thumb>
-        <a href="__content_url__"><img class="bx-notes-unit-thumb bx-def-gal-img-size bx-def-round-corners bx-def-color-bg-sec bx-def-font-middle" alt="__summary_attr__" src="__thumb_url__" /></a>
-    </bx_if:thumb>
-
-    <bx_if:no_thumb>
-        <div class="bx-def-gal-img-column">
-            <div class="bx-notes-unit-no-thumb bx-def-gal-img-size bx-def-round-corners bx-def-color-bg-sec bx-def-font-middle bx-def-font-grayed bx-def-padding bx-def-box-sizing">__summary_plain__</div>
-        </div>
-    </bx_if:no_thumb>
-
-    <div class="bx-def-gal-unit-column">
-        <h2 class="bx-def-margin-sec-topbottom"><a href="__content_url__">__title__</a></h2>
-    </div>
-
-    <div class="bx-notes-unit-info">
-        <span class="bx-def-font-grayed">__entry_posting_date__</span>
-        <span class="bx-notes-unit-info-div bx-def-font-grayed">&#183;</span>
-        <a href="__author_url__">__author__</a>
-    </div>
-
-</div>
+<bx_include_base:../modules/base/text/template/unit_gallery.html />
 

+ 1 - 6
modules/boonex/notes/template/unit_private.html

@@ -1,8 +1,3 @@
 
-<div class="bx-notes-unit bx-def-margin-bottom">
-    <h2><bx_text:_sys_private /></h2>
-    <div class="bx-notes-unit-summary">
-        __summary__
-    </div>
-</div>
+<bx_include_base:../modules/base/text/template/unit_private.html />
 

+ 1 - 1
modules/boonex/timeline/classes/BxTimelineResponse.php

@@ -21,7 +21,7 @@ class BxTimelineResponse extends BxDolAlertsResponse
      */
     public function __construct($oModule)
     {
-        parent::BxDolAlertsResponse();
+        parent::__construct();
 
         $this->_oModule = $oModule;
     }