Răsfoiți Sursa

Ticket #2816 - Multi - Roles in Organizations.

AntonLV 6 ani în urmă
părinte
comite
a62aba1e16

+ 2 - 0
modules/boonex/organizations/classes/BxOrgsConfig.php

@@ -94,6 +94,7 @@ class BxOrgsConfig extends BxBaseModGroupsConfig
             'PARAM_SEARCHABLE_FIELDS' => 'bx_organizations_searchable_fields',
             'PARAM_PER_PAGE_BROWSE_SHOWCASE' => 'bx_organizations_per_page_browse_showcase',
             'PARAM_PER_PAGE_BROWSE_RECOMMENDED' => 'bx_organizations_per_page_browse_recommended',
+            'PARAM_MMODE' => 'bx_organizations_members_mode',
             'PARAM_PUBLIC_SBSN' => 'bx_organizations_public_subscriptions',
             'PARAM_PUBLIC_SBSD' => 'bx_organizations_public_subscribed_me',
             'PARAM_REDIRECT_AADD' => 'bx_organizations_redirect_aadd',
@@ -220,6 +221,7 @@ class BxOrgsConfig extends BxBaseModGroupsConfig
             	'txt_ntfs_join_request' => '_bx_orgs_txt_ntfs_join_request',
                 'txt_ntfs_fan_added' => '_bx_orgs_txt_ntfs_fan_added',
             	'txt_ntfs_timeline_post_common' => '_bx_orgs_txt_ntfs_timeline_post_common',
+                'option_members_mode_multi_roles' => '_bx_orgs_option_members_mode_multi_roles',
             	'txt_all_entries_by_author' => '_bx_orgs_page_title_browse_by_author',
             	'form_field_picture' => '_bx_orgs_form_profile_input_picture_search',
                 'form_field_online' => '_bx_orgs_form_profile_input_online_search',

+ 2 - 0
modules/boonex/organizations/install/langs/en.xml

@@ -16,6 +16,8 @@
     <string name="_bx_orgs_option_per_page_browse"><![CDATA[Number of items per page]]></string>
     <string name="_bx_orgs_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
     <string name="_bx_orgs_option_searchable_fields"><![CDATA[Searchable fields for keyword search]]></string>
+    <string name="_bx_orgs_option_members_mode"><![CDATA[Special mode for organization members]]></string>
+    <string name="_bx_orgs_option_members_mode_multi_roles"><![CDATA[Multi Roles]]></string>
     <string name="_bx_orgs_option_public_subscriptions"><![CDATA[Public following list]]></string>
     <string name="_bx_orgs_option_public_subscribed_me"><![CDATA[Public followers list]]></string>
     <string name="_bx_orgs_option_auto_activation_for_categories"><![CDATA[Auto-Activation For Categories]]></string>

+ 1 - 0
modules/boonex/organizations/install/sql/enable.sql

@@ -22,6 +22,7 @@ INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `e
 ('bx_organizations_per_page_browse_recommended', '10', @iCategId, '_sys_option_per_page_browse_recommended', 'digit', '', '', '', 16),
 ('bx_organizations_per_page_for_favorites_lists', '5', @iCategId, '_bx_orgs_option_per_page_for_favorites_lists', 'digit', '', '', '', 17),
 ('bx_organizations_searchable_fields', 'org_name,org_desc', @iCategId, '_bx_orgs_option_searchable_fields', 'list', 'a:2:{s:6:"module";s:16:"bx_organizations";s:6:"method";s:21:"get_searchable_fields";}', '', '', 20),
+('bx_organizations_members_mode', '', @iCategId, '_bx_orgs_option_members_mode', 'select', 'a:2:{s:6:"module";s:16:"bx_organizations";s:6:"method";s:24:"get_options_members_mode";}', '', '', 25),
 ('bx_organizations_public_subscriptions', '', @iCategId, '_bx_orgs_option_public_subscriptions', 'checkbox', '', '', '', 30),
 ('bx_organizations_public_subscribed_me', '', @iCategId, '_bx_orgs_option_public_subscribed_me', 'checkbox', '', '', '', 31),
 ('bx_organizations_enable_profile_activation_letter', 'on', @iCategId, '_bx_orgs_option_enable_profile_activation_letter', 'checkbox', '', '', '', 32),

+ 2 - 1
modules/boonex/organizations/install/sql/install.sql

@@ -215,6 +215,7 @@ CREATE TABLE IF NOT EXISTS `bx_organizations_admins` (
   `group_profile_id` int(10) unsigned NOT NULL,
   `fan_id` int(10) unsigned NOT NULL,
   `role` int(10) unsigned NOT NULL default '0',
+  `added` int(11) unsigned NOT NULL default '0',
   PRIMARY KEY (`id`),
   UNIQUE KEY `admin` (`group_profile_id`,`fan_id`)
 );
@@ -395,7 +396,7 @@ INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALU
 ('bx_organizations_cats', '35', 35, '_bx_orgs_cat_Other', '');
 
 INSERT INTO `sys_form_pre_lists`(`key`, `title`, `module`, `use_for_sets`) VALUES
-('bx_organizations_roles', '_bx_orgs_pre_lists_roles', 'bx_organizations', '0');
+('bx_organizations_roles', '_bx_orgs_pre_lists_roles', 'bx_organizations', '1');
 
 INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALUES
 ('bx_organizations_roles', '0', 1, '_bx_orgs_role_regular', ''),

+ 14 - 0
modules/boonex/organizations/js/main.js

@@ -26,4 +26,18 @@ BxOrgsMain.prototype.onClickSetRole = function(iFanProfileId, iRole) {
         glGrids[this._sObjNameGrid].actionWithId(iFanProfileId, 'set_role_submit', {role: iRole}, '', false, false);
 };
 
+BxOrgsMain.prototype.onClickSetRoleMulti = function(oElement, iFanProfileId, iRole) {
+    if(!glGrids[this._sObjNameGrid])
+        return;
+
+    var oSiblings = $(oElement).parents('.bx-base-group-sr-role:first').siblings();
+    if(iRole == 0)
+        oSiblings.find('input:checked').removeAttr('checked');
+    else
+        oSiblings.find("input[value = '0']:checked").removeAttr('checked');
+
+    var sRoles = $(oElement).parents('.bx-base-group-sr-roles:first').find('input:checked').serialize();
+    glGrids[this._sObjNameGrid].actionWithId(iFanProfileId, 'set_role_submit', {}, sRoles, false, false);
+};
+
 /** @} */

+ 18 - 0
modules/boonex/organizations/template/css/main.css

@@ -4,4 +4,22 @@
 /*-- Group Roles --*/
 #bx-organizations-set-role-popup .bx-menu-ver {
     margin: 0;
+}
+
+/*--- Set Role popup ---*/
+.bx-base-group-sr-role-cnt {
+    display: -webkit-flex;
+    display: flex;
+    -webkit-align-items: center;
+    align-items: center;
+}
+.bx-base-group-sr-role-cnt > * {
+    display: inline-block;
+}
+.bx-base-group-sr-role-cnt > input {
+    margin: 0;
+}
+.bx-base-group-sr-done .bx-btn {
+    display: inline-block;
+    float: none;
 }

+ 1 - 0
modules/boonex/organizations/template/set_role_popup.html

@@ -0,0 +1 @@
+<bx_include_base:../modules/base/groups/template/set_role_popup.html />

+ 2 - 0
modules/boonex/russian/data/langs/bx_organizations/ru.xml

@@ -16,6 +16,8 @@
     <string name="_bx_orgs_option_per_page_browse"><![CDATA[Количество элементов на странице]]></string>
     <string name="_bx_orgs_option_num_rss"><![CDATA[Количество элементов в ленте RSS]]></string>
     <string name="_bx_orgs_option_searchable_fields"><![CDATA[Поля для поиска по ключевому слову]]></string>
+    <string name="_bx_orgs_option_members_mode"><![CDATA[Спец. режим для членов организации]]></string>
+    <string name="_bx_orgs_option_members_mode_multi_roles"><![CDATA[Множественные роли]]></string>
     <string name="_bx_orgs_option_public_subscriptions"><![CDATA[Открытый список подписок]]></string>
     <string name="_bx_orgs_option_public_subscribed_me"><![CDATA[Открытый список подписчиков]]></string>
     <string name="_bx_orgs_option_per_page_for_favorites_lists"><![CDATA[Количество списков избранного на странице]]></string>