Sfoglia il codice sorgente

Ticket #3732 - Pre-moderation for group based modules: Premoderation. Cources and Spaces.

AntonLV 4 anni fa
parent
commit
9afab4a019

+ 1 - 2
modules/base/profile/classes/BxBaseModProfilePageEntry.php

@@ -45,8 +45,7 @@ class BxBaseModProfilePageEntry extends BxBaseModGeneralPageEntry
             $this->_aContentInfo = $this->_oModule->_oDb->getContentInfoById($this->_aProfileInfo['content_id']);
         }
 
-        
-        if (!$this->_aContentInfo || !$this->_oProfile) {
+        if (!$this->_aContentInfo || !$this->_oProfile || !$this->isActive()) {
             $this->setPageCover(false);
             return;
         }

+ 12 - 1
modules/boonex/courses/classes/BxCoursesConfig.php

@@ -20,7 +20,8 @@ class BxCoursesConfig extends BxBaseModGroupsConfig
             'edit-course-profile' => 'checkAllowedEdit',
             'edit-course-cover' => 'checkAllowedChangeCover',
             'invite-to-course' => 'checkAllowedInvite',
-            'delete-course-profile' => 'checkAllowedDelete'
+            'delete-course-profile' => 'checkAllowedDelete',
+            'approve-group-profile' => 'checkAllowedApprove',
         ));
 
         $this->CNF = array (
@@ -53,6 +54,7 @@ class BxCoursesConfig extends BxBaseModGroupsConfig
             'FIELD_VIEWS' => 'views',
             'FIELD_VOTES' => 'votes',
             'FIELD_STATUS' => 'status',
+            'FIELD_STATUS_ADMIN' => 'status_admin',
             'FIELD_COMMENTS' => 'comments',
             'FIELDS_QUICK_SEARCH' => array('name'),
             'FIELD_LOCATION' => 'location',
@@ -77,6 +79,7 @@ class BxCoursesConfig extends BxBaseModGroupsConfig
             'URL_MANAGE_COMMON' => 'page.php?i=courses-manage',
             'URL_MANAGE_ADMINISTRATION' => 'page.php?i=courses-administration',
 
+            'PARAM_AUTO_APPROVE' => 'bx_courses_enable_auto_approve',
             'PARAM_NUM_RSS' => 'bx_courses_num_rss',
             'PARAM_NUM_CONNECTIONS_QUICK' => 'bx_courses_num_connections_quick',
 
@@ -184,6 +187,13 @@ class BxCoursesConfig extends BxBaseModGroupsConfig
                         BX_PROFILE_STATUS_SUSPENDED => '_bx_courses_txt_account_suspended',
                     ),
                 ),
+                'approving' => array (
+                    'name' => 'bx-groups-approving',
+                    'map' => array (
+                        'pending' => array('msg' => '_bx_courses_txt_account_pending', 'type' => BX_INFORMER_ALERT),
+                        'hidden' => array('msg' => '_bx_courses_txt_status_hidden', 'type' => BX_INFORMER_ERROR),
+                    ),
+                ),
             ),
 
             // some language keys
@@ -211,6 +221,7 @@ class BxCoursesConfig extends BxBaseModGroupsConfig
                 'grid_action_err_delete' => '_bx_courses_grid_action_err_delete',
                 'grid_txt_account_manager' => '_bx_courses_grid_txt_account_manager',
                 'filter_item_active' => '_bx_courses_grid_filter_item_title_adm_active',
+                'filter_item_hidden' => '_bx_courses_grid_filter_item_title_adm_hidden',
                 'filter_item_pending' => '_bx_courses_grid_filter_item_title_adm_pending',
                 'filter_item_suspended' => '_bx_courses_grid_filter_item_title_adm_suspended',
                 'filter_item_select_one_filter1' => '_bx_courses_grid_filter_item_title_adm_select_one_filter1',

+ 5 - 0
modules/boonex/courses/classes/BxCoursesMenuViewActionsAll.php

@@ -50,6 +50,11 @@ class BxCoursesMenuViewActionsAll extends BxBaseModGroupsMenuViewActionsAll
     {
         return $this->_getMenuItemByNameActionsMore($aItem);
     }
+
+    protected function _getMenuItemApproveCourseProfile($aItem)
+    {
+        return $this->_getMenuItemByNameActionsMore($aItem);
+    }
     
     protected function _getMenuItemProfileSetBadges($aItem)
     {

+ 2 - 0
modules/boonex/courses/classes/BxCoursesSearchResult.php

@@ -30,6 +30,8 @@ class BxCoursesSearchResult extends BxBaseModGroupsSearchResult
                 'perofileType' => array('value' => 'bx_courses', 'field' => 'type', 'operator' => '='),
                 'owner' => array('value' => '', 'field' => 'author', 'operator' => '=', 'table' => 'bx_courses_data'),
                 'featured' => array('value' => '', 'field' => 'featured', 'operator' => '<>', 'table' => 'bx_courses_data'),
+                'status' => array('value' => 'active', 'field' => 'status', 'operator' => '=', 'table' => 'bx_courses_data'),
+                'statusAdmin' => array('value' => 'active', 'field' => 'status_admin', 'operator' => '=', 'table' => 'bx_courses_data'),
             ),
             'join' => array (
                 'profile' => array(

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

@@ -3,6 +3,7 @@
     <string name="_bx_courses"><![CDATA[Courses]]></string>
     <string name="_bx_courses_cmts"><![CDATA[Courses' Comments]]></string>
 
+    <string name="_bx_courses_option_enable_auto_approve"><![CDATA[Auto approve a course after creation]]></string>
     <string name="_bx_courses_option_num_connections_quick"><![CDATA[Number of items in friends block]]></string>
     <string name="_bx_courses_option_per_page_browse"><![CDATA[Number of items per page]]></string>
     <string name="_bx_courses_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
@@ -350,6 +351,7 @@
 
     <string name="_bx_courses_txt_account_pending"><![CDATA[This course is pending approval, please wait until it is activated.]]></string>
     <string name="_bx_courses_txt_account_suspended"><![CDATA[This course is suspended.]]></string>
+    <string name="_bx_courses_txt_status_hidden"><![CDATA[This course was hidden.]]></string>
     <string name="_bx_courses_txt_N_fans"><![CDATA[{0} students]]></string>
     <string name="_bx_courses_txt_role"><![CDATA[Role]]></string>
     <string name="_bx_courses_txt_role_added"><![CDATA[Added]]></string>

+ 11 - 5
modules/boonex/courses/install/sql/enable.sql

@@ -11,6 +11,7 @@ VALUES (@iTypeId, 'bx_courses', '_bx_courses', 1);
 SET @iCategId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
+('bx_courses_enable_auto_approve', 'on', @iCategId, '_bx_courses_option_enable_auto_approve', 'checkbox', '', '', '', 0),
 ('bx_courses_num_connections_quick', '6', @iCategId, '_bx_courses_option_num_connections_quick', 'digit', '', '', '', 10),
 ('bx_courses_per_page_browse', '24', @iCategId, '_bx_courses_option_per_page_browse', 'digit', '', '', '', 11),
 ('bx_courses_num_rss', '10', @iCategId, '_bx_courses_option_num_rss', 'digit', '', '', '', 12),
@@ -264,7 +265,8 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_courses_view_actions_more', 'bx_courses', 'edit-course-profile', '_bx_courses_menu_item_title_system_edit_profile', '_bx_courses_menu_item_title_edit_profile', 'page.php?i=edit-course-profile&id={content_id}', '', '', 'pencil-alt', '', 2147483647, '', 1, 0, 40),
 ('bx_courses_view_actions_more', 'bx_courses', 'edit-course-pricing', '_bx_courses_menu_item_title_system_edit_pricing', '_bx_courses_menu_item_title_edit_pricing', 'page.php?i=edit-course-pricing&profile_id={profile_id}', '', '', 'money-check-alt', '', 2147483647, 'a:3:{s:6:"module";s:10:"bx_courses";s:6:"method";s:20:"is_pricing_avaliable";s:6:"params";a:1:{i:0;s:12:"{profile_id}";}}', 1, 0, 41),
 ('bx_courses_view_actions_more', 'bx_courses', 'invite-to-course', '_bx_courses_menu_item_title_system_invite', '_bx_courses_menu_item_title_invite', 'page.php?i=invite-to-course&id={content_id}', '', '', 'user-friends', '', 2147483647, '', 1, 0, 42),
-('bx_courses_view_actions_more', 'bx_courses', 'delete-course-profile', '_bx_courses_menu_item_title_system_delete_profile', '_bx_courses_menu_item_title_delete_profile', 'page.php?i=delete-course-profile&id={content_id}', '', '', 'remove', '', 2147483647, '', 1, 0, 50);
+('bx_courses_view_actions_more', 'bx_courses', 'delete-course-profile', '_bx_courses_menu_item_title_system_delete_profile', '_bx_courses_menu_item_title_delete_profile', 'page.php?i=delete-course-profile&id={content_id}', '', '', 'remove', '', 2147483647, '', 1, 0, 50),
+('bx_courses_view_actions_more', 'bx_courses', 'approve-course-profile', '_sys_menu_item_title_system_va_approve', '_sys_menu_item_title_va_approve', 'javascript:void(0)', 'javascript:bx_approve(this, ''{module_uri}'', {content_id});', '', 'check', '', 2147483647, '', 1, 0, 60);
 
 -- MENU: all actions menu for view entry 
 
@@ -297,6 +299,7 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_courses_view_actions_all', 'bx_courses', 'edit-course-pricing', '_bx_courses_menu_item_title_system_edit_pricing', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 415),
 ('bx_courses_view_actions_all', 'bx_courses', 'invite-to-course', '_bx_courses_menu_item_title_system_invite', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 420),
 ('bx_courses_view_actions_all', 'bx_courses', 'delete-course-profile', '_bx_courses_menu_item_title_system_delete_profile', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 430),
+('bx_courses_view_actions_all', 'bx_courses', 'approve-course-profile', '_sys_menu_item_title_system_va_approve', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 440),
 ('bx_courses_view_actions_all', 'bx_courses', 'more-auto', '_sys_menu_item_title_system_va_more_auto', '_sys_menu_item_title_va_more_auto', 'javascript:void(0)', '', '', 'ellipsis-v', '', '', 0, 2147483647, '', 1, 0, 9999);
 
 -- MENU: meta (counters) menu for view entry
@@ -559,7 +562,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `conf
 -- GRIDS: administration
 
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `override_class_name`, `override_class_file`) VALUES
-('bx_courses_administration', 'Sql', 'SELECT `td`.*, `td`.`name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_courses_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_courses'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_courses_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'name', '', 'like', 'reports', '', 192, 'BxCoursesGridAdministration', 'modules/boonex/courses/classes/BxCoursesGridAdministration.php'),
+('bx_courses_administration', 'Sql', 'SELECT `td`.*, `td`.`name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_courses_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_courses'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_courses_data', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'name', '', 'like', 'reports', '', 192, 'BxCoursesGridAdministration', 'modules/boonex/courses/classes/BxCoursesGridAdministration.php'),
 ('bx_courses_common', 'Sql', 'SELECT `td`.*, `td`.`name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_courses_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_courses'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_courses_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'name', '', 'like', '', '', 2147483647, 'BxCoursesGridCommon', 'modules/boonex/courses/classes/BxCoursesGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
@@ -570,10 +573,12 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('bx_courses_administration', 'added_ts', '_bx_courses_grid_column_title_adm_added', '20%', 1, '25', '', 5),
 ('bx_courses_administration', 'account', '_bx_courses_grid_column_title_adm_account', '20%', 0, '25', '', 6),
 ('bx_courses_administration', 'actions', '', '20%', 0, '', '', 7),
+
 ('bx_courses_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
-('bx_courses_common', 'name', '_bx_courses_grid_column_title_adm_name', '48%', 0, '', '', 2),
-('bx_courses_common', 'added_ts', '_bx_courses_grid_column_title_adm_added', '30%', 1, '25', '', 3),
-('bx_courses_common', 'actions', '', '20%', 0, '', '', 4);
+('bx_courses_common', 'switcher', '_bx_courses_grid_column_title_adm_active', '8%', 0, '', '', 2);
+('bx_courses_common', 'name', '_bx_courses_grid_column_title_adm_name', '40%', 0, '', '', 3),
+('bx_courses_common', 'added_ts', '_bx_courses_grid_column_title_adm_added', '30%', 1, '25', '', 4),
+('bx_courses_common', 'actions', '', '20%', 0, '', '', 5);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
 ('bx_courses_administration', 'bulk', 'delete', '_bx_courses_grid_action_title_adm_delete', '', 0, 1, 2),
@@ -582,6 +587,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('bx_courses_administration', 'single', 'settings', '_bx_courses_grid_action_title_adm_more_actions', 'cog', 1, 0, 2),
 ('bx_courses_administration', 'single', 'audit_content', '_bx_courses_grid_action_title_adm_audit_content', 'search', 1, 0, 3),
 ('bx_courses_administration', 'single', 'audit_context', '_bx_courses_grid_action_title_adm_audit_context', 'search-location', 1, 0, 4),
+
 ('bx_courses_common', 'bulk', 'delete', '_bx_courses_grid_action_title_adm_delete', '', 0, 1, 1),
 ('bx_courses_common', 'bulk', 'delete_with_content', '_bx_courses_grid_action_title_adm_delete_with_content', '', 0, 1, 2),
 ('bx_courses_common', 'single', 'settings', '_bx_courses_grid_action_title_adm_more_actions', 'cog', 1, 0, 1);

+ 1 - 0
modules/boonex/courses/install/sql/install.sql

@@ -28,6 +28,7 @@ CREATE TABLE IF NOT EXISTS `bx_courses_data` (
   `allow_view_to` varchar(16) NOT NULL DEFAULT '3',
   `allow_post_to` varchar(16) NOT NULL DEFAULT '3',
   `status` enum('active','awaiting','hidden') NOT NULL DEFAULT 'active',
+  `status_admin` enum('active','hidden','pending') NOT NULL DEFAULT 'active',
   PRIMARY KEY (`id`),
   FULLTEXT KEY `search_fields` (`name`, `desc`)
 );

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

@@ -3,6 +3,7 @@
     <string name="_bx_courses"><![CDATA[Курсы]]></string>
     <string name="_bx_courses_cmts"><![CDATA[Курсы - Комментарии]]></string>
 
+    <string name="_bx_courses_option_enable_auto_approve"><![CDATA[Автоматически активировать курс после создания]]></string>
     <string name="_bx_courses_option_num_connections_quick"><![CDATA[Количество элементов в блоке друзей]]></string>
     <string name="_bx_courses_option_per_page_browse"><![CDATA[Количество элементов на странице]]></string>
     <string name="_bx_courses_option_num_rss"><![CDATA[Количество элементов в ленте RSS]]></string>
@@ -349,6 +350,7 @@
 
     <string name="_bx_courses_txt_account_pending"><![CDATA[Этот курс ожидает одобрения. Пожалуйста, дождитесь его активации.]]></string>
     <string name="_bx_courses_txt_account_suspended"><![CDATA[Этот курс заблокирован.]]></string>
+    <string name="_bx_courses_txt_status_hidden"><![CDATA[Этот курс был скрыт.]]></string>
     <string name="_bx_courses_txt_N_fans"><![CDATA[{0} студентов]]></string>
     <string name="_bx_courses_txt_role"><![CDATA[Роль]]></string>
     <string name="_bx_courses_txt_role_added"><![CDATA[Начало]]></string>

+ 5 - 2
modules/boonex/russian/data/langs/bx_spaces/ru.xml

@@ -3,6 +3,7 @@
     <string name="_bx_spaces"><![CDATA[Пространства]]></string>
     <string name="_bx_spaces_cmts"><![CDATA[Пространства - Комментарии]]></string>
 
+    <string name="_bx_spaces_option_enable_auto_approve"><![CDATA[Автоматически активировать пространство после создания]]></string>
     <string name="_bx_spaces_option_enable_multilevel_hierarchy"><![CDATA[Включить многоуровневую иерархию (экспериментально)]]></string>
     <string name="_bx_spaces_option_num_connections_quick"><![CDATA[Количество элементов в блоке друзей]]></string>
     <string name="_bx_spaces_option_per_page_browse"><![CDATA[Количество элементов на странице]]></string>
@@ -298,6 +299,7 @@
     <string name="_bx_spaces_grid_filter_item_title_adm_select_one_filter1"><![CDATA[Все статусы]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_select_one_filter2"><![CDATA[Любая аудитория]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_active"><![CDATA[Активные]]></string>
+    <string name="_bx_spaces_grid_filter_item_title_adm_hidden"><![CDATA[Спрятанные]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_pending"><![CDATA[В ожидании]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_suspended"><![CDATA[Заблокированные]]></string>
     <string name="_bx_spaces_grid_column_title_adm_active"><![CDATA[Активные]]></string>
@@ -336,8 +338,9 @@
     <string name="_bx_spaces_search_extended_cmts"><![CDATA[Поиск комментариев к пространством]]></string>
 
     <string name="_bx_spaces_err_delete_child_presend"><![CDATA[Невозможно удалить пространство, т.к. оно используется другими в качестве родительского.]]></string>
-    <string name="_bx_spaces_txt_account_pending"><![CDATA[Эта пространство ожидает одобрения. Пожалуйста, дождитесь ее активации.]]></string>
-    <string name="_bx_spaces_txt_account_suspended"><![CDATA[Эта пространство заблокирована.]]></string>
+    <string name="_bx_spaces_txt_account_pending"><![CDATA[Это пространство ожидает одобрения. Пожалуйста, дождитесь ее активации.]]></string>
+    <string name="_bx_spaces_txt_account_suspended"><![CDATA[Это пространство заблокировано.]]></string>
+    <string name="_bx_spaces_txt_status_hidden"><![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_role_added"><![CDATA[Начало]]></string>

+ 12 - 1
modules/boonex/spaces/classes/BxSpacesConfig.php

@@ -20,7 +20,8 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
             'edit-space-profile' => 'checkAllowedEdit',
             'edit-space-cover' => 'checkAllowedChangeCover',
             'invite-to-space' => 'checkAllowedInvite',
-            'delete-space-profile' => 'checkAllowedDelete'
+            'delete-space-profile' => 'checkAllowedDelete',
+            'approve-space-profile' => 'checkAllowedApprove',
         ));
 
         $this->CNF = array (
@@ -55,6 +56,7 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
             'FIELD_VIEWS' => 'views',
             'FIELD_VOTES' => 'votes',
             'FIELD_STATUS' => 'status',
+            'FIELD_STATUS_ADMIN' => 'status_admin',
             'FIELD_COMMENTS' => 'comments',
             'FIELDS_QUICK_SEARCH' => array('space_name'),
             'FIELD_LOCATION' => 'location',
@@ -78,6 +80,7 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
             'URL_MANAGE_COMMON' => 'page.php?i=spaces-manage',
             'URL_MANAGE_ADMINISTRATION' => 'page.php?i=spaces-administration',
 
+            'PARAM_AUTO_APPROVE' => 'bx_spaces_enable_auto_approve',
             'PARAM_MULTILEVEL_HIERARCHY' => 'bx_spaces_enable_multilevel_hierarchy',
             'PARAM_NUM_RSS' => 'bx_spaces_num_rss',
             'PARAM_NUM_CONNECTIONS_QUICK' => 'bx_spaces_num_connections_quick',
@@ -184,6 +187,13 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
                         BX_PROFILE_STATUS_SUSPENDED => '_bx_spaces_txt_account_suspended',
                     ),
                 ),
+                'approving' => array (
+                    'name' => 'bx-groups-approving',
+                    'map' => array (
+                        'pending' => array('msg' => '_bx_spaces_txt_account_pending', 'type' => BX_INFORMER_ALERT),
+                        'hidden' => array('msg' => '_bx_spaces_txt_status_hidden', 'type' => BX_INFORMER_ERROR),
+                    ),
+                ),
             ),
 
             // some language keys
@@ -211,6 +221,7 @@ class BxSpacesConfig extends BxBaseModGroupsConfig
                 'grid_action_err_delete' => '_bx_spaces_grid_action_err_delete',
                 'grid_txt_account_manager' => '_bx_spaces_grid_txt_account_manager',
                 'filter_item_active' => '_bx_spaces_grid_filter_item_title_adm_active',
+                'filter_item_hidden' => '_bx_spaces_grid_filter_item_title_adm_hidden',
                 'filter_item_pending' => '_bx_spaces_grid_filter_item_title_adm_pending',
                 'filter_item_suspended' => '_bx_spaces_grid_filter_item_title_adm_suspended',
                 'filter_item_select_one_filter1' => '_bx_spaces_grid_filter_item_title_adm_select_one_filter1',

+ 6 - 1
modules/boonex/spaces/classes/BxSpacesMenuViewActionsAll.php

@@ -50,7 +50,12 @@ class BxSpacesMenuViewActionsAll extends BxBaseModGroupsMenuViewActionsAll
     {
         return $this->_getMenuItemByNameActionsMore($aItem);
     }
-    
+
+    protected function _getMenuItemApproveSpaceProfile($aItem)
+    {
+        return $this->_getMenuItemByNameActionsMore($aItem);
+    }
+
     protected function _getMenuItemProfileSetBadges($aItem)
     {
         return $this->_getMenuItemByNameActions($aItem);

+ 2 - 0
modules/boonex/spaces/classes/BxSpacesSearchResult.php

@@ -30,6 +30,8 @@ class BxSpacesSearchResult extends BxBaseModGroupsSearchResult
                 'perofileType' => array('value' => 'bx_spaces', 'field' => 'type', 'operator' => '='),
                 'owner' => array('value' => '', 'field' => 'author', 'operator' => '=', 'table' => 'bx_spaces_data'),
                 'featured' => array('value' => '', 'field' => 'featured', 'operator' => '<>', 'table' => 'bx_spaces_data'),
+                'status' => array('value' => 'active', 'field' => 'status', 'operator' => '=', 'table' => 'bx_spaces_data'),
+                'statusAdmin' => array('value' => 'active', 'field' => 'status_admin', 'operator' => '=', 'table' => 'bx_spaces_data'),
             ),
             'join' => array (
                 'profile' => array(

+ 3 - 0
modules/boonex/spaces/install/langs/en.xml

@@ -3,6 +3,7 @@
     <string name="_bx_spaces"><![CDATA[Spaces]]></string>
     <string name="_bx_spaces_cmts"><![CDATA[Spaces' Comments]]></string>
 
+    <string name="_bx_spaces_option_enable_auto_approve"><![CDATA[Auto approve a space after creation]]></string>
     <string name="_bx_spaces_option_enable_multilevel_hierarchy"><![CDATA[Allow multilevel hierarchy (experimental)]]></string>
     <string name="_bx_spaces_option_num_connections_quick"><![CDATA[Number of items in friends block]]></string>
     <string name="_bx_spaces_option_per_page_browse"><![CDATA[Number of items per page]]></string>
@@ -300,6 +301,7 @@
     <string name="_bx_spaces_grid_filter_item_title_adm_select_one_filter1"><![CDATA[All Statuses]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_select_one_filter2"><![CDATA[Any Audience]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_active"><![CDATA[Active]]></string>
+    <string name="_bx_spaces_grid_filter_item_title_adm_hidden"><![CDATA[Hidden]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_pending"><![CDATA[Pending]]></string>
     <string name="_bx_spaces_grid_filter_item_title_adm_suspended"><![CDATA[Suspended]]></string>
     <string name="_bx_spaces_grid_column_title_adm_active"><![CDATA[Active]]></string>
@@ -342,6 +344,7 @@
     <string name="_bx_spaces_err_delete_child_presend"><![CDATA[Cannot delete this space because there are child elements.]]></string>
     <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_status_hidden"><![CDATA[This space was hidden.]]></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_role_added"><![CDATA[Added]]></string>

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

@@ -12,6 +12,7 @@ SET @iCategId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
 ('bx_spaces_enable_multilevel_hierarchy', '', @iCategId, '_bx_spaces_option_enable_multilevel_hierarchy', 'checkbox', '', '', '', 0),
+('bx_spaces_enable_auto_approve', 'on', @iCategId, '_bx_spaces_option_enable_auto_approve', 'checkbox', '', '', '', 1),
 ('bx_spaces_num_connections_quick', '6', @iCategId, '_bx_spaces_option_num_connections_quick', 'digit', '', '', '', 10),
 ('bx_spaces_per_page_browse', '24', @iCategId, '_bx_spaces_option_per_page_browse', 'digit', '', '', '', 11),
 ('bx_spaces_num_rss', '10', @iCategId, '_bx_spaces_option_num_rss', 'digit', '', '', '', 12),
@@ -267,7 +268,8 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_spaces_view_actions_more', 'bx_spaces', 'edit-space-profile', '_bx_spaces_menu_item_title_system_edit_profile', '_bx_spaces_menu_item_title_edit_profile', 'page.php?i=edit-space-profile&id={content_id}', '', '', 'pencil-alt', '', 2147483647, '', 1, 0, 40),
 ('bx_spaces_view_actions_more', 'bx_spaces', 'edit-space-pricing', '_bx_spaces_menu_item_title_system_edit_pricing', '_bx_spaces_menu_item_title_edit_pricing', 'page.php?i=edit-space-pricing&profile_id={profile_id}', '', '', 'money-check-alt', '', 2147483647, 'a:3:{s:6:"module";s:9:"bx_spaces";s:6:"method";s:20:"is_pricing_avaliable";s:6:"params";a:1:{i:0;s:12:"{profile_id}";}}', 1, 0, 41),
 ('bx_spaces_view_actions_more', 'bx_spaces', 'invite-to-space', '_bx_spaces_menu_item_title_system_invite', '_bx_spaces_menu_item_title_invite', 'page.php?i=invite-to-space&id={content_id}', '', '', 'user-friends', '', 2147483647, '', 1, 0, 42),
-('bx_spaces_view_actions_more', 'bx_spaces', 'delete-space-profile', '_bx_spaces_menu_item_title_system_delete_profile', '_bx_spaces_menu_item_title_delete_profile', 'page.php?i=delete-space-profile&id={content_id}', '', '', 'remove', '', 2147483647, '', 1, 0, 50);
+('bx_spaces_view_actions_more', 'bx_spaces', 'delete-space-profile', '_bx_spaces_menu_item_title_system_delete_profile', '_bx_spaces_menu_item_title_delete_profile', 'page.php?i=delete-space-profile&id={content_id}', '', '', 'remove', '', 2147483647, '', 1, 0, 50),
+('bx_spaces_view_actions_more', 'bx_spaces', 'approve-space-profile', '_sys_menu_item_title_system_va_approve', '_sys_menu_item_title_va_approve', 'javascript:void(0)', 'javascript:bx_approve(this, ''{module_uri}'', {content_id});', '', 'check', '', 2147483647, '', 1, 0, 60);
 
 -- MENU: all actions menu for view entry 
 
@@ -300,6 +302,7 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_spaces_view_actions_all', 'bx_spaces', 'edit-space-pricing', '_bx_spaces_menu_item_title_system_edit_pricing', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 415),
 ('bx_spaces_view_actions_all', 'bx_spaces', 'invite-to-space', '_bx_spaces_menu_item_title_system_invite', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 420),
 ('bx_spaces_view_actions_all', 'bx_spaces', 'delete-space-profile', '_bx_spaces_menu_item_title_system_delete_profile', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 430),
+('bx_spaces_view_actions_all', 'bx_spaces', 'approve-space-profile', '_sys_menu_item_title_system_va_approve', '', '', '', '', '', '', '', 0, 2147483647, '', 1, 0, 440),
 ('bx_spaces_view_actions_all', 'bx_spaces', 'more-auto', '_sys_menu_item_title_system_va_more_auto', '_sys_menu_item_title_va_more_auto', 'javascript:void(0)', '', '', 'ellipsis-v', '', '', 0, 2147483647, '', 1, 0, 9999);
 
 -- MENU: meta (counters) menu for view entry
@@ -559,7 +562,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `conf
 -- GRIDS: administration
 
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `override_class_name`, `override_class_file`) VALUES
-('bx_spaces_administration', 'Sql', 'SELECT `td`.*, `td`.`space_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_spaces_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_spaces'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_spaces_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'space_name', '', 'like', 'reports', '', 192, 'BxSpacesGridAdministration', 'modules/boonex/spaces/classes/BxSpacesGridAdministration.php'),
+('bx_spaces_administration', 'Sql', 'SELECT `td`.*, `td`.`space_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_spaces_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_spaces'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_spaces_data', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'space_name', '', 'like', 'reports', '', 192, 'BxSpacesGridAdministration', 'modules/boonex/spaces/classes/BxSpacesGridAdministration.php'),
 ('bx_spaces_common', 'Sql', 'SELECT `td`.*, `td`.`space_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_spaces_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_spaces'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_spaces_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'space_name', '', 'like', '', '', 2147483647, 'BxSpacesGridCommon', 'modules/boonex/spaces/classes/BxSpacesGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
@@ -570,10 +573,12 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('bx_spaces_administration', 'added_ts', '_bx_spaces_grid_column_title_adm_added', '20%', 1, '25', '', 5),
 ('bx_spaces_administration', 'account', '_bx_spaces_grid_column_title_adm_account', '20%', 0, '25', '', 6),
 ('bx_spaces_administration', 'actions', '', '20%', 0, '', '', 7),
+
 ('bx_spaces_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
-('bx_spaces_common', 'name', '_bx_spaces_grid_column_title_adm_name', '48%', 0, '', '', 2),
-('bx_spaces_common', 'added_ts', '_bx_spaces_grid_column_title_adm_added', '30%', 1, '25', '', 3),
-('bx_spaces_common', 'actions', '', '20%', 0, '', '', 4);
+('bx_spaces_common', 'switcher', '_bx_spaces_grid_column_title_adm_active', '8%', 0, '', '', 2),
+('bx_spaces_common', 'name', '_bx_spaces_grid_column_title_adm_name', '40%', 0, '', '', 3),
+('bx_spaces_common', 'added_ts', '_bx_spaces_grid_column_title_adm_added', '30%', 1, '25', '', 4),
+('bx_spaces_common', 'actions', '', '20%', 0, '', '', 5);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
 ('bx_spaces_administration', 'bulk', 'delete', '_bx_spaces_grid_action_title_adm_delete', '', 0, 1, 2),

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

@@ -30,6 +30,7 @@ CREATE TABLE IF NOT EXISTS `bx_spaces_data` (
   `allow_view_to` varchar(16) NOT NULL DEFAULT '3',
   `allow_post_to` varchar(16) NOT NULL DEFAULT '3',
   `status` enum('active','awaiting','hidden') NOT NULL DEFAULT 'active',
+  `status_admin` enum('active','hidden','pending') NOT NULL DEFAULT 'active',
   PRIMARY KEY (`id`),
   FULLTEXT KEY `search_fields` (`space_name`, `space_desc`)
 );