AntonLV 6 лет назад
Родитель
Сommit
5f9b9f689f

+ 0 - 6
modules/base/groups/template/css/main.css

@@ -21,10 +21,4 @@
 
 .bx-search-result-block {
     text-align:center;
-}
-
-
-/*-- Group Roles --*/
-#bx-groups-set-role-popup .bx-menu-ver {
-    margin: 0;
 }

+ 29 - 0
modules/boonex/groups/js/main.js

@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Groups Groups
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+function BxGroupsMain(oOptions) {
+    this._sActionsUrl = oOptions.sActionUrl;
+    this._sObjName = oOptions.sObjName == undefined ? 'oBxGroupsMain' : oOptions.sObjName;
+    this._sObjNameGrid = oOptions.sObjNameGrid == undefined ? '' : oOptions.sObjNameGrid;
+    
+    this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
+    this._iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
+
+    this._aHtmlIds = oOptions.aHtmlIds == undefined ? {} : oOptions.aHtmlIds;
+}
+
+BxGroupsMain.prototype.onClickSetRole = function(iFanProfileId, iRole) {
+    $('.bx-popup-applied:visible').dolPopupHide();
+
+    if(glGrids[this._sObjNameGrid] != undefined)
+        glGrids[this._sObjNameGrid].actionWithId(iFanProfileId, 'set_role_submit', {role: iRole}, '', false, false);
+};
+
+/** @} */

+ 6 - 0
modules/boonex/groups/template/css/main.css

@@ -1 +1,7 @@
 @import url(../../../../base/groups/template/css/main.css);
+
+
+/*-- Group Roles --*/
+#bx-groups-set-role-popup .bx-menu-ver {
+    margin: 0;
+}

+ 13 - 0
modules/boonex/russian/data/langs/bx_spaces/ru.xml

@@ -264,12 +264,14 @@
     <string name="_bx_spaces_txt_account_pending"><![CDATA[Эта пространство ожидает одобрения. Пожалуйста, дождитесь ее активации.]]></string>
     <string name="_bx_spaces_txt_account_suspended"><![CDATA[Эта пространство заблокирована.]]></string>
     <string name="_bx_spaces_txt_N_fans"><![CDATA[{0} участников]]></string>
+    <string name="_bx_spaces_txt_role"><![CDATA[Роль]]></string>
     <string name="_bx_spaces_txt_sample_single"><![CDATA[пространство]]></string>
     <string name="_bx_spaces_txt_sample_single_with_article"><![CDATA[пространство]]></string>
     <string name="_bx_spaces_txt_sample_comment_single"><![CDATA[комментарий к пространству]]></string>
     <string name="_bx_spaces_txt_sample_vote_single"><![CDATA[голос за пространство]]></string>
     <string name="_bx_spaces_txt_sample_score_up_single"><![CDATA[голос за пространство]]></string>
     <string name="_bx_spaces_txt_sample_score_down_single"><![CDATA[голос против пространства]]></string>
+    <string name="_bx_spaces_txt_set_role"><![CDATA[Задать роль]]></string>
     <string name="_bx_spaces_txt_to_admins"><![CDATA[В админы]]></string>
     <string name="_bx_spaces_txt_from_admins"><![CDATA[Из админов]]></string>
     <string name="_bx_spaces_txt_private_group"><![CDATA[Приватная пространство]]></string>
@@ -294,6 +296,11 @@
     <string name="_bx_spaces_cat_Fun"><![CDATA[Юмор]]></string>
     <string name="_bx_spaces_cat_Uncategorised"><![CDATA[Без категории]]></string>
 
+    <string name="_bx_spaces_pre_lists_roles"><![CDATA[Роли в группах]]></string>
+    <string name="_bx_spaces_role_regular"><![CDATA[Обычный]]></string>
+    <string name="_bx_spaces_role_administrator"><![CDATA[Администратор]]></string>
+    <string name="_bx_spaces_role_moderator"><![CDATA[Модератор]]></string>
+
     <string name="_bx_spaces_email_join_request"><![CDATA[Запрос на присоединение к пространству]]></string>
     <string name="_bx_spaces_email_join_request_subject"><![CDATA[Запрос на присоединение к пространству]]></string>
     <string name="_bx_spaces_email_join_request_body"><![CDATA[{email_header}
@@ -328,6 +335,12 @@
     <string name="_bx_spaces_email_admin_become_fan_subject"><![CDATA[Вы были лишены статуса администратора пространства]]></string>
     <string name="_bx_spaces_email_admin_become_fan_body"><![CDATA[{email_header}
 <p>Вы были лишены статуса администратора пространства <a href="{EntryUrl}">{EntryTitle}</a></p>
+{email_footer}]]></string>
+
+    <string name="_bx_spaces_email_set_role"><![CDATA[Изменение статуса в группе]]></string>
+    <string name="_bx_spaces_email_set_role_subject"><![CDATA[Ваш статус в группе был изменен]]></string>
+    <string name="_bx_spaces_email_set_role_body"><![CDATA[{email_header}
+<p>Ваш статус в группе <a href="{EntryUrl}">{EntryTitle}</a> был изменен на <b>{Role}</b>.</p>
 {email_footer}]]></string>
 
     <string name="_bx_spaces_email_invitation"><![CDATA[Приглашение в пространство]]></string>

+ 5 - 2
modules/boonex/spaces/classes/BxSpacesConfig.php

@@ -126,7 +126,8 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
             'OBJECT_CONNECTIONS' => 'bx_spaces_fans',
             'OBJECT_UPLOADERS_COVER' => array('bx_spaces_cover_crop'),
             'OBJECT_UPLOADERS_PICTURE' => array('bx_spaces_picture_crop'),
-            
+            'OBJECT_PRE_LIST_ROLES' => 'bx_spaces_roles',
+
             'BADGES_AVALIABLE' => true,
             'INVITES_KEYS_LIFETIME' => 86400,
 
@@ -135,6 +136,7 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
             'EMAIL_JOIN_CONFIRM' => 'bx_spaces_join_confirm',
             'EMAIL_FAN_BECOME_ADMIN' => 'bx_spaces_fan_become_admin',
             'EMAIL_ADMIN_BECOME_FAN' => 'bx_spaces_admin_become_fan',
+            'EMAIL_FAN_SET_ROLE' => 'bx_spaces_set_role',
             'EMAIL_FAN_REMOVE' => 'bx_spaces_fan_remove',
             'EMAIL_JOIN_REJECT' => 'bx_spaces_join_reject',
 
@@ -205,11 +207,13 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
         );
 
         $this->_aJsClasses = array(
+            'main' => 'BxSpacesMain',
             'manage_tools' => 'BxSpacesManageTools',
             'invite_popup' => 'BxSpacesInvitePopup'
         );
 
         $this->_aJsObjects = array(
+            'main' => 'oBxSpacesMain',
             'manage_tools' => 'oBxSpacesManageTools',
             'invite_popup' => 'oBxSpacesInvitePopup'
         );
@@ -217,7 +221,6 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
         $this->_aGridObjects = array(
             'common' => $this->CNF['OBJECT_GRID_COMMON'],
             'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION'],
-            
         );
     }
 

+ 15 - 2
modules/boonex/spaces/install/langs/en.xml

@@ -263,12 +263,14 @@
 	<string name="_bx_spaces_txt_account_pending"><![CDATA[This space is pending approval, please wait until it is activated.]]></string>
 	<string name="_bx_spaces_txt_account_suspended"><![CDATA[This space is suspended.]]></string>
 	<string name="_bx_spaces_txt_N_fans"><![CDATA[{0} members]]></string>
+        <string name="_bx_spaces_txt_role"><![CDATA[Role]]></string>
 	<string name="_bx_spaces_txt_sample_single"><![CDATA[space]]></string>
 	<string name="_bx_spaces_txt_sample_single_with_article"><![CDATA[a space]]></string>
 	<string name="_bx_spaces_txt_sample_comment_single"><![CDATA[comment to space]]></string>
 	<string name="_bx_spaces_txt_sample_vote_single"><![CDATA[vote to space]]></string>
         <string name="_bx_spaces_txt_sample_score_up_single"><![CDATA[score up vote to space]]></string>
         <string name="_bx_spaces_txt_sample_score_down_single"><![CDATA[score down vote to space]]></string>
+        <string name="_bx_spaces_txt_set_role"><![CDATA[Set Role]]></string>
 	<string name="_bx_spaces_txt_to_admins"><![CDATA[To Admins]]></string>
 	<string name="_bx_spaces_txt_from_admins"><![CDATA[From Admins]]></string>
 	<string name="_bx_spaces_txt_private_space"><![CDATA[Private space]]></string>
@@ -292,7 +294,12 @@
 	<string name="_bx_spaces_cat_Causes"><![CDATA[Causes]]></string>
 	<string name="_bx_spaces_cat_Fun"><![CDATA[Fun]]></string>
 	<string name="_bx_spaces_cat_Uncategorised"><![CDATA[Uncategorised]]></string>
-	
+
+    <string name="_bx_spaces_pre_lists_roles"><![CDATA[Group roles]]></string>
+    <string name="_bx_spaces_role_regular"><![CDATA[Regular]]></string>
+    <string name="_bx_spaces_role_administrator"><![CDATA[Administrator]]></string>
+    <string name="_bx_spaces_role_moderator"><![CDATA[Moderator]]></string>
+
 	<string name="_bx_spaces_email_join_request"><![CDATA[Space join request]]></string>
 	<string name="_bx_spaces_email_join_request_subject"><![CDATA[Request to join your space]]></string>
 	<string name="_bx_spaces_email_join_request_body"><![CDATA[{email_header}
@@ -328,7 +335,13 @@
 	<string name="_bx_spaces_email_admin_become_fan_body"><![CDATA[{email_header}
 	<p>Your admin status was revoked from <a href="{EntryUrl}">{EntryTitle}</a> space.</p>
 	{email_footer}]]></string>
-	
+
+    <string name="_bx_spaces_email_set_role"><![CDATA[Group member status was changed]]></string>
+    <string name="_bx_spaces_email_set_role_subject"><![CDATA[Your group status was changed]]></string>
+    <string name="_bx_spaces_email_set_role_body"><![CDATA[{email_header}
+<p>Your status in <a href="{EntryUrl}">{EntryTitle}</a> group was changed to <b>{Role}</b>.</p>
+{email_footer}]]></string>
+
 	<string name="_bx_spaces_email_invitation"><![CDATA[Invitation to space]]></string>
 	<string name="_bx_spaces_email_invitation_subject"><![CDATA[Invitation to "{EntryTitle}" space]]></string>
 	<string name="_bx_spaces_email_invitation_body"><![CDATA[{email_header}

+ 5 - 3
modules/boonex/spaces/install/sql/enable.sql

@@ -460,12 +460,13 @@ INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `fie
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `params`, `order`) VALUES
 ('bx_spaces_fans', 'name', '_sys_name', '50%', '', 10),
-('bx_spaces_fans', 'actions', '', '50%', '', 20);
+('bx_spaces_fans', 'role', '_bx_spaces_txt_role', '10%', '', 15),
+('bx_spaces_fans', 'actions', '', '40%', '', 20);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `confirm`, `order`) VALUES
 ('bx_spaces_fans', 'single', 'accept', '_sys_accept', '', 0, 10),
-('bx_spaces_fans', 'single', 'to_admins', '_bx_spaces_txt_to_admins', '', 0, 20),
-('bx_spaces_fans', 'single', 'from_admins', '_bx_spaces_txt_from_admins', '', 0, 30),
+('bx_spaces_fans', 'single', 'set_role', '_bx_spaces_txt_set_role', '', 0, 20),
+('bx_spaces_fans', 'single', 'set_role_submit', '', '', 0, 21),
 ('bx_spaces_fans', 'single', 'delete', '', 'remove', 1, 40);
 
 -- GRID: invites
@@ -554,6 +555,7 @@ INSERT INTO `sys_email_templates` (`Module`, `NameSystem`, `Name`, `Subject`, `B
 ('bx_spaces', '_bx_spaces_email_fan_remove', 'bx_spaces_fan_remove', '_bx_spaces_email_fan_remove_subject', '_bx_spaces_email_fan_remove_body'),
 ('bx_spaces', '_bx_spaces_email_fan_become_admin', 'bx_spaces_fan_become_admin', '_bx_spaces_email_fan_become_admin_subject', '_bx_spaces_email_fan_become_admin_body'),
 ('bx_spaces', '_bx_spaces_email_admin_become_fan', 'bx_spaces_admin_become_fan', '_bx_spaces_email_admin_become_fan_subject', '_bx_spaces_email_admin_become_fan_body'),
+('bx_spaces', '_bx_spaces_email_set_role', 'bx_spaces_set_role', '_bx_spaces_email_set_role_subject', '_bx_spaces_email_set_role_body'),
 ('bx_spaces', '_bx_spaces_email_invitation', 'bx_spaces_invitation', '_bx_spaces_email_invitation_subject', '_bx_spaces_email_invitation_body');
 
 -- UPLOADERS

+ 9 - 0
modules/boonex/spaces/install/sql/install.sql

@@ -195,6 +195,7 @@ CREATE TABLE IF NOT EXISTS `bx_spaces_admins` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `group_profile_id` int(10) unsigned NOT NULL,
   `fan_id` int(10) unsigned NOT NULL,
+  `role` int(10) unsigned NOT NULL default '0',
   PRIMARY KEY (`id`),
   UNIQUE KEY `admin` (`group_profile_id`,`fan_id`)
 );
@@ -341,6 +342,14 @@ INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALU
 ('bx_spaces_cats', '5', 5, '_bx_spaces_cat_Fun', ''),
 ('bx_spaces_cats', '6', 6, '_bx_spaces_cat_Uncategorised', '');
 
+INSERT INTO `sys_form_pre_lists`(`key`, `title`, `module`, `use_for_sets`) VALUES
+('bx_spaces_roles', '_bx_spaces_pre_lists_roles', 'bx_spaces', '0');
+
+INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALUES
+('bx_spaces_roles', '0', 1, '_bx_spaces_role_regular', ''),
+('bx_spaces_roles', '1', 2, '_bx_spaces_role_administrator', ''),
+('bx_spaces_roles', '2', 3, '_bx_spaces_role_moderator', '');
+
 -- COMMENTS
 INSERT INTO `sys_objects_cmts` (`Name`, `Module`, `Table`, `CharsPostMin`, `CharsPostMax`, `CharsDisplayMax`, `Html`, `PerView`, `PerViewReplies`, `BrowseType`, `IsBrowseSwitch`, `PostFormPosition`, `NumberOfLevels`, `IsDisplaySwitch`, `IsRatable`, `ViewingThreshold`, `IsOn`, `RootStylePrefix`, `BaseUrl`, `ObjectVote`, `TriggerTable`, `TriggerFieldId`, `TriggerFieldAuthor`, `TriggerFieldTitle`, `TriggerFieldComments`, `ClassName`, `ClassFile`) VALUES
 ('bx_spaces', 'bx_spaces', 'bx_spaces_cmts', 1, 5000, 1000, 3, 5, 3, 'tail', 1, 'bottom', 1, 1, 1, -3, 1, 'cmt', 'page.php?i=view-space-profile&id={object_id}', '', 'bx_spaces_data', 'id', 'author', 'space_name', 'comments', '', ''),

+ 1 - 1
modules/boonex/spaces/install/sql/uninstall.sql

@@ -26,7 +26,7 @@ DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN('bx_space_add', 'b
 -- PRE-VALUES
 DELETE FROM `sys_form_pre_lists` WHERE `module` = 'bx_spaces';
 
-DELETE FROM `sys_form_pre_values` WHERE `Key` IN('bx_spaces_cats');
+DELETE FROM `sys_form_pre_values` WHERE `Key` LIKE 'bx_spaces%';
 
 -- COMMENTS
 DELETE FROM `sys_objects_cmts` WHERE `Name` LIKE 'bx_spaces%';

+ 29 - 0
modules/boonex/spaces/js/main.js

@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Groups Groups
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+function BxSpacesMain(oOptions) {
+    this._sActionsUrl = oOptions.sActionUrl;
+    this._sObjName = oOptions.sObjName == undefined ? 'oBxSpacesMain' : oOptions.sObjName;
+    this._sObjNameGrid = oOptions.sObjNameGrid == undefined ? '' : oOptions.sObjNameGrid;
+    
+    this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
+    this._iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
+
+    this._aHtmlIds = oOptions.aHtmlIds == undefined ? {} : oOptions.aHtmlIds;
+}
+
+BxSpacesMain.prototype.onClickSetRole = function(iFanProfileId, iRole) {
+    $('.bx-popup-applied:visible').dolPopupHide();
+
+    if(glGrids[this._sObjNameGrid] != undefined)
+        glGrids[this._sObjNameGrid].actionWithId(iFanProfileId, 'set_role_submit', {role: iRole}, '', false, false);
+};
+
+/** @} */

+ 6 - 0
modules/boonex/spaces/template/css/main.css

@@ -1 +1,7 @@
 @import url(../../../../base/groups/template/css/main.css);
+
+
+/*-- Space Roles --*/
+#bx-spaces-set-role-popup .bx-menu-ver {
+    margin: 0;
+}