Przeglądaj źródła

Merge branch 'master' of https://github.com/unaio/una

AlexeyUna 8 lat temu
rodzic
commit
84e13c2f9a
48 zmienionych plików z 522 dodań i 152 usunięć
  1. 4 0
      inc/classes/BxDolTemplate.php
  2. 13 13
      inc/profiles.inc.php
  3. 1 1
      install/sql/system.sql
  4. 30 0
      modules/base/general/classes/BxBaseModGeneralGridAdministration.php
  5. 19 0
      modules/base/general/classes/BxBaseModGeneralModule.php
  6. 4 2
      modules/base/general/classes/BxBaseModGeneralPageBrowse.php
  7. 1 10
      modules/base/text/classes/BxBaseModTextGridAdministration.php
  8. 10 14
      modules/boonex/accounts/classes/BxAccntGridAdministration.php
  9. 6 5
      modules/boonex/albums/install/sql/enable.sql
  10. 1 0
      modules/boonex/english/data/langs/system/en.xml
  11. 6 5
      modules/boonex/events/install/sql/enable.sql
  12. 6 5
      modules/boonex/files/install/sql/enable.sql
  13. 6 5
      modules/boonex/glossary/install/sql/enable.sql
  14. 6 5
      modules/boonex/groups/install/sql/enable.sql
  15. 6 5
      modules/boonex/market/install/sql/enable.sql
  16. 2 3
      modules/boonex/organizations/classes/BxOrgsGridAdministration.php
  17. 6 5
      modules/boonex/organizations/install/sql/enable.sql
  18. 6 5
      modules/boonex/persons/install/sql/enable.sql
  19. 6 5
      modules/boonex/photos/install/sql/enable.sql
  20. 6 5
      modules/boonex/polls/install/sql/enable.sql
  21. 6 5
      modules/boonex/posts/install/sql/enable.sql
  22. 17 1
      modules/boonex/russian/data/langs/bx_timeline/ru.xml
  23. 1 1
      modules/boonex/russian/data/langs/bx_videos/ru.xml
  24. 1 0
      modules/boonex/russian/data/langs/system/ru.xml
  25. 6 5
      modules/boonex/shopify/install/sql/enable.sql
  26. 6 5
      modules/boonex/snipcart/install/sql/enable.sql
  27. 6 5
      modules/boonex/spaces/install/sql/enable.sql
  28. 12 2
      modules/boonex/timeline/classes/BxTimelineConfig.php
  29. 99 0
      modules/boonex/timeline/classes/BxTimelineGridAdministration.php
  30. 31 0
      modules/boonex/timeline/classes/BxTimelineModule.php
  31. 24 0
      modules/boonex/timeline/classes/BxTimelinePageBrowse.php
  32. 15 1
      modules/boonex/timeline/install/langs/en.xml
  33. 4 0
      modules/boonex/timeline/install/sql/disable.sql
  34. 30 0
      modules/boonex/timeline/install/sql/enable.sql
  35. 56 0
      modules/boonex/timeline/js/manage_tools.js
  36. 1 0
      modules/boonex/timeline/template/author_link.html
  37. 1 0
      modules/boonex/timeline/template/repost_do_repost_label.html
  38. 10 1
      modules/boonex/videos/classes/BxVideosConfig.php
  39. 28 12
      modules/boonex/videos/classes/BxVideosFormEntry.php
  40. 3 2
      modules/boonex/videos/classes/BxVideosModule.php
  41. 6 2
      modules/boonex/videos/classes/BxVideosPageEntry.php
  42. 3 2
      modules/boonex/videos/classes/BxVideosTemplate.php
  43. 1 1
      modules/boonex/videos/install/langs/en.xml
  44. 6 5
      modules/boonex/videos/install/sql/enable.sql
  45. 2 0
      modules/boonex/videos/template/form_ghost_template.html
  46. 1 1
      template/_header_js.html
  47. 0 7
      template/scripts/BxBaseFormAccount.php
  48. 1 1
      template/scripts/BxBaseFormView.php

+ 4 - 0
inc/classes/BxDolTemplate.php

@@ -1266,6 +1266,10 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
             case 'lang_direction':
                 $sRet = bx_lang_direction();
                 break;
+            case 'lang_country':
+                if (!($sRet = BxDolLanguages::getInstance()->getLangCountryCode()))
+                    $sRet = bx_lang_name();
+                break;                
             case 'main_logo':
                 $sRet = BxTemplFunctions::getInstance()->getMainLogo();
                 break;

+ 13 - 13
inc/profiles.inc.php

@@ -186,21 +186,21 @@ function bx_check_password($sLogin, $sPassword, $iRole = BX_DOL_ROLE_MEMBER)
             'password' => &$sPassCheck,
         ));
     
-	$iMaxLoginAttempts = getParam('sys_account_limit_incorrect_login_attempts');
-    if ($iMaxLoginAttempts >0){
-        $oAccountQuery = BxDolAccountQuery::getInstance();
-        if ($aAccountInfo['login_attempts'] >= $iMaxLoginAttempts){
-            $oAccountQuery->lockAccount($aAccountInfo['id'], 1);
-            bx_import('BxDolLanguages');
-            return _t("_sys_txt_login_locked", BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=forgot-password'));
+    if ($sErrorMsg = bx_check_login($aAccountInfo['id'], $sPassCheck, $iRole)){
+        $iMaxLoginAttempts = getParam('sys_account_limit_incorrect_login_attempts');
+        if ($iMaxLoginAttempts >0){
+            $oAccountQuery = BxDolAccountQuery::getInstance();
+            if ($aAccountInfo['login_attempts'] >= $iMaxLoginAttempts){
+                $oAccountQuery->lockAccount($aAccountInfo['id'], 1);
+                bx_import('BxDolLanguages');
+                return _t("_sys_txt_login_locked", BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=forgot-password'));
+            }
+            else{
+                $oAccountQuery->updateAttemptsCounter($aAccountInfo['id']);
+            }
         }
-        else{
-            $oAccountQuery->updateAttemptsCounter($aAccountInfo['id']);
-        }
-    }
-    
-    if ($sErrorMsg = bx_check_login($aAccountInfo['id'], $sPassCheck, $iRole))
         return $sErrorMsg;
+    }
 
     // Admin can always login even if he is blocked/banned/suspended/etc
     if (isAdmin($aAccountInfo['id']))

+ 1 - 1
install/sql/system.sql

@@ -2903,7 +2903,7 @@ INSERT INTO `sys_form_inputs` (`object`, `module`, `name`, `value`, `values`, `c
 ('sys_login', 'system', 'do_sendsms', '_sys_form_login_input_sendsms', '', 0, 'submit', '_sys_form_login_input_caption_system_sendsms', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0),
 
 ('sys_account', 'system', 'email', '', '', 0, 'text', '_sys_form_login_input_caption_system_email', '_sys_form_account_input_email', '', 1, 0, 0, '', '', '', 'EmailUniq', '', '_sys_form_account_input_email_error', 'Xss', '', 0, 0),
-('sys_account', 'system', 'password', '', '', 0, 'password', '_sys_form_login_input_caption_system_password', '_sys_form_account_input_password', '', 1, 0, 0, '', '', '', 'Password', '', '_sys_form_account_input_password_error', '', '', 0, 0),
+('sys_account', 'system', 'password', '', '', 0, 'password', '_sys_form_login_input_caption_system_password', '_sys_form_account_input_password', '', 1, 0, 0, '', '', '', 'Preg', 'a:1:{s:4:"preg";s:38:"~^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}~";}', '_sys_form_account_input_password_error', '', '', 0, 0),
 ('sys_account', 'system', 'password_confirm', '', '', 0, 'password', '_sys_form_login_input_caption_system_password_confirm', '_sys_form_account_input_password_confirm', '', 1, 0, 0, '', '', '', 'PasswordConfirm', '', '_sys_form_account_input_password_confirm_error', '', '', 0, 0),
 ('sys_account', 'system', 'do_submit', '_sys_form_account_input_submit', '', 0, 'submit', '_sys_form_login_input_caption_system_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0),
 ('sys_account', 'system', 'name', '', '', 0, 'text', '_sys_form_login_input_caption_system_name', '_sys_form_account_input_name', '', 1, 0, 0, '', '', '', 'Avail', '', '_sys_form_account_input_name_error', 'Xss', '', 1, 0),

+ 30 - 0
modules/base/general/classes/BxBaseModGeneralGridAdministration.php

@@ -141,6 +141,15 @@ class BxBaseModGeneralGridAdministration extends BxTemplGrid
     {
     	return $this->_oModule->_oDb->getContentInfoById($iId);
     }
+    
+    protected function _getProfileObject($iId)
+    {
+        $oProfile = BxDolProfile::getInstance($iId);
+        if (!$oProfile) 
+            $oProfile = BxDolProfileUndefined::getInstance();
+
+        return $oProfile;
+    }
 
 	protected function _getManageAccountUrl($sFilter = '')
     {
@@ -172,6 +181,27 @@ class BxBaseModGeneralGridAdministration extends BxTemplGrid
     {
     	return true;
     }
+    
+    protected function _getCellHeaderReports ($sKey, $aField)
+    {
+        $s = parent::_getCellHeaderDefault($sKey, $aField);
+        return preg_replace ('/<a(.*?)>(.*?)<\/a>/', '<a$1 title="' . bx_html_attribute(_t('_sys_txt_reports_title')) . '"><i class="sys-icon exclamation-triangle"></i></a>', $s);
+    }
+    
+    protected function _getCellReports($mixedValue, $sKey, $aField, $aRow)
+    {
+        if ($mixedValue == 0){
+            $mixedValue = '';
+        }
+        else{
+            $CNF = &$this->_oModule->_oConfig->CNF;
+            $oReports = isset($CNF['OBJECT_REPORTS']) ? BxDolReport::getObjectInstance($CNF['OBJECT_REPORTS'], $aRow[$CNF['FIELD_ID']]) : null;
+            if ($oReports){
+                $mixedValue = $oReports->getCounter().$oReports->getJsScript();
+            }
+        }
+        return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
+    }
 }
 
 /** @} */

+ 19 - 0
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -342,6 +342,25 @@ class BxBaseModGeneralModule extends BxDolModule
         $oFormsHelper->redirectAfterAdd($aContentInfo);
     }
 
+    /**
+     * Get form object for add, edit, view or delete the content 
+     * @param $sType 'add', 'edit', 'view' or 'delete'
+     * @param $sDisplay optional display name
+     * @return form object or false on error
+     */
+    public function serviceGetObjectForm ($sType, $sDisplay = false)
+    {
+        if (!in_array($sType, array('add', 'edit', 'view', 'delete')))
+            return false;
+
+        bx_import('FormsEntryHelper', $this->_aModule);
+        $sClass = $this->_aModule['class_prefix'] . 'FormsEntryHelper';
+        $oFormsHelper = new $sClass($this);
+
+        $sFunc = 'getObjectForm' . ucfirst($sType);
+        return $oFormsHelper->$sFunc($sDisplay);
+    }
+
     /**
      * Create entry form
      * @return HTML string

+ 4 - 2
modules/base/general/classes/BxBaseModGeneralPageBrowse.php

@@ -25,8 +25,10 @@ class BxBaseModGeneralPageBrowse extends BxTemplPage
         $this->_oModule = BxDolModule::getInstance($this->MODULE);
 
         // select module submenu
-        $oMenuSubmenu = BxDolMenu::getObjectInstance('sys_site_submenu');
-        $oMenuSubmenu->setObjectSubmenu($this->_oModule->_oConfig->CNF['OBJECT_MENU_SUBMENU']);
+        if (isset($this->_oModule->_oConfig->CNF['OBJECT_MENU_SUBMENU'])){
+            $oMenuSubmenu = BxDolMenu::getObjectInstance('sys_site_submenu');
+            $oMenuSubmenu->setObjectSubmenu($this->_oModule->_oConfig->CNF['OBJECT_MENU_SUBMENU']);
+        }
     }
 
 }

+ 1 - 10
modules/base/text/classes/BxBaseModTextGridAdministration.php

@@ -81,7 +81,7 @@ class BxBaseModTextGridAdministration extends BxBaseModGeneralGridAdministration
     {
         return parent::_getCellDefault(bx_time_js($mixedValue), $sKey, $aField, $aRow);
     }
-
+    
     protected function _getCellAuthor($mixedValue, $sKey, $aField, $aRow)
     {
     	$oProfile = $this->_getProfileObject($aRow['author']);
@@ -129,15 +129,6 @@ class BxBaseModTextGridAdministration extends BxBaseModGeneralGridAdministration
     	return $this->_getActionDefault ($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
     }
 
-    protected function _getProfileObject($iId)
-    {
-        $oProfile = BxDolProfile::getInstance($iId);
-        if (!$oProfile) 
-            $oProfile = BxDolProfileUndefined::getInstance();
-
-        return $oProfile;
-    }
-
     protected function _getEntryLink($mixedValue, $aRow)
     {
         $CNF = &$this->_oModule->_oConfig->CNF;

+ 10 - 14
modules/boonex/accounts/classes/BxAccntGridAdministration.php

@@ -197,20 +197,16 @@ class BxAccntGridAdministration extends BxBaseModProfileGridAdministration
             echoJson(array());
             return;
         }
-
-        $iId = $aIds[0];
-        $oAccount = BxDolAccount::getInstance($iId);
-        if(!$oAccount)
-            return echoJson(array());
-        $aRes = array();
-        if ($oAccount->isLocked()){
-            $oAccountQuery = BxDolAccountQuery::getInstance();
-            $oAccountQuery->unlockAccount($iId);
-            $aRes = array('grid' => $this->getCode(false), 'blink' => $iId);
-        }
-        else{
-            $aRes = array('msg' => _t('_bx_accnt_grid_action_unlock_error'));
-        }
+		$oAccountQuery = BxDolAccountQuery::getInstance();
+		foreach($aIds as $iId){
+			$oAccount = BxDolAccount::getInstance($iId);
+			if(!$oAccount)
+				continue;
+			if ($oAccount->isLocked()){
+				$oAccountQuery->unlockAccount($iId);
+			}
+		}
+		$aRes = array('grid' => $this->getCode(false), 'blink' => $aIds);
         return echoJson($aRes);
     }
 

+ 6 - 5
modules/boonex/albums/install/sql/enable.sql

@@ -392,16 +392,17 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_albums_administration', 'Sql', 'SELECT * FROM `bx_albums_albums` WHERE 1 ', 'bx_albums_albums', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxAlbumsGridAdministration', 'modules/boonex/albums/classes/BxAlbumsGridAdministration.php'),
+('bx_albums_administration', 'Sql', 'SELECT * FROM `bx_albums_albums` WHERE 1 ', 'bx_albums_albums', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxAlbumsGridAdministration', 'modules/boonex/albums/classes/BxAlbumsGridAdministration.php'),
 ('bx_albums_common', 'Sql', 'SELECT * FROM `bx_albums_albums` WHERE 1 ', 'bx_albums_albums', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxAlbumsGridCommon', 'modules/boonex/albums/classes/BxAlbumsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_albums_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_albums_administration', 'switcher', '_bx_albums_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_albums_administration', 'title', '_bx_albums_grid_column_title_adm_title', '25%', 0, '', '', 3),
-('bx_albums_administration', 'added', '_bx_albums_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_albums_administration', 'author', '_bx_albums_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_albums_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_albums_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_albums_administration', 'title', '_bx_albums_grid_column_title_adm_title', '25%', 0, '', '', 4),
+('bx_albums_administration', 'added', '_bx_albums_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_albums_administration', 'author', '_bx_albums_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_albums_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_albums_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_albums_common', 'switcher', '', '8%', 0, '', '', 2),
 ('bx_albums_common', 'title', '_bx_albums_grid_column_title_adm_title', '40%', 0, '', '', 3),

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

@@ -2623,6 +2623,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_txt_unsubscribe_info"><![CDATA[Update email preferences for <b>{0}</b>]]></string>
     <string name="_sys_txt_unsubscribe_wrong_link"><![CDATA[Unsubscribe link is wrong.]]></string>
     <string name="_sys_txt_user_n"><![CDATA[User #{0}]]></string>
+  <string name="_sys_txt_reports_title"><![CDATA[Reports]]></string>
 	<string name="_sys_upgrade_conclusion"><![CDATA[<h3>Important info:</h3><p>{0}</p>]]></string>
 	<string name="_sys_upgrade_db_and_files_versions_different"><![CDATA[Database and files versions are different, probably previous patch wasn't applied correctly.]]></string>
 	<string name="_sys_upgrade_files_checksum_failed"><![CDATA[Can't apply upgrade because the following files were modified: {0}]]></string>

+ 6 - 5
modules/boonex/events/install/sql/enable.sql

@@ -457,16 +457,17 @@ 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_events_administration', 'Sql', 'SELECT `td`.*, `td`.`event_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_events_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_events'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_events_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'event_name', '', 'like', '', '', 192, 'BxEventsGridAdministration', 'modules/boonex/events/classes/BxEventsGridAdministration.php'),
+('bx_events_administration', 'Sql', 'SELECT `td`.*, `td`.`event_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_events_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_events'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_events_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'event_name', '', 'like', 'reports', '', 192, 'BxEventsGridAdministration', 'modules/boonex/events/classes/BxEventsGridAdministration.php'),
 ('bx_events_common', 'Sql', 'SELECT `td`.*, `td`.`event_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_events_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_events'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_events_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'event_name', '', 'like', '', '', 2147483647, 'BxEventsGridCommon', 'modules/boonex/events/classes/BxEventsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_events_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_events_administration', 'switcher', '_bx_events_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_events_administration', 'name', '_bx_events_grid_column_title_adm_name', '25%', 0, '', '', 3),
-('bx_events_administration', 'added_ts', '_bx_events_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_events_administration', 'account', '_bx_events_grid_column_title_adm_account', '25%', 0, '25', '', 5),
-('bx_events_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_events_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_events_administration', 'name', '_bx_events_grid_column_title_adm_name', '25%', 0, '', '', 4),
+('bx_events_administration', 'added_ts', '_bx_events_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_events_administration', 'account', '_bx_events_grid_column_title_adm_account', '20%', 0, '25', '', 6),
+('bx_events_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_events_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_events_common', 'name', '_bx_events_grid_column_title_adm_name', '48%', 0, '', '', 2),
 ('bx_events_common', 'added_ts', '_bx_events_grid_column_title_adm_added', '30%', 1, '25', '', 3),

+ 6 - 5
modules/boonex/files/install/sql/enable.sql

@@ -379,17 +379,18 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_files_administration', 'Sql', 'SELECT * FROM `bx_files_main` WHERE 1 ', 'bx_files_main', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,desc', '', 'like', '', '', 192, 'BxFilesGridAdministration', 'modules/boonex/files/classes/BxFilesGridAdministration.php'),
+('bx_files_administration', 'Sql', 'SELECT * FROM `bx_files_main` WHERE 1 ', 'bx_files_main', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,desc', '', 'like', 'reports', '', 192, 'BxFilesGridAdministration', 'modules/boonex/files/classes/BxFilesGridAdministration.php'),
 ('bx_files_common', 'Sql', 'SELECT * FROM `bx_files_main` WHERE 1 ', 'bx_files_main', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,desc', '', 'like', '', '', 2147483647, 'BxFilesGridCommon', 'modules/boonex/files/classes/BxFilesGridCommon.php');
 
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_files_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_files_administration', 'switcher', '_bx_files_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_files_administration', 'title', '_bx_files_grid_column_title_adm_title', '25%', 0, '', '', 3),
-('bx_files_administration', 'added', '_bx_files_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_files_administration', 'author', '_bx_files_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_files_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_files_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_files_administration', 'title', '_bx_files_grid_column_title_adm_title', '25%', 0, '', '', 4),
+('bx_files_administration', 'added', '_bx_files_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_files_administration', 'author', '_bx_files_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_files_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_files_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_files_common', 'switcher', '_bx_files_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_files_common', 'title', '_bx_files_grid_column_title_adm_title', '40%', 0, '', '', 3),

+ 6 - 5
modules/boonex/glossary/install/sql/enable.sql

@@ -376,17 +376,18 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_glossary_administration', 'Sql', 'SELECT * FROM `bx_glossary_terms` WHERE 1 ', 'bx_glossary_terms', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', @iAdministratorModeratorAccess, 'BxGlsrGridAdministration', 'modules/boonex/glossary/classes/BxGlsrGridAdministration.php'),
+('bx_glossary_administration', 'Sql', 'SELECT * FROM `bx_glossary_terms` WHERE 1 ', 'bx_glossary_terms', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', @iAdministratorModeratorAccess, 'BxGlsrGridAdministration', 'modules/boonex/glossary/classes/BxGlsrGridAdministration.php'),
 ('bx_glossary_common', 'Sql', 'SELECT * FROM `bx_glossary_terms` WHERE 1 ', 'bx_glossary_terms', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxGlsrGridCommon', 'modules/boonex/glossary/classes/BxGlsrGridCommon.php');
 
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_glossary_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_glossary_administration', 'switcher', '_bx_glossary_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_glossary_administration', 'title', '_bx_glossary_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_glossary_administration', 'added', '_bx_glossary_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_glossary_administration', 'author', '_bx_glossary_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_glossary_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_glossary_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_glossary_administration', 'title', '_bx_glossary_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_glossary_administration', 'added', '_bx_glossary_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_glossary_administration', 'author', '_bx_glossary_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_glossary_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_glossary_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_glossary_common', 'switcher', '_bx_glossary_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_glossary_common', 'title', '_bx_glossary_grid_column_title_adm_title', '40%', 0, '35', '', 3),

+ 6 - 5
modules/boonex/groups/install/sql/enable.sql

@@ -439,16 +439,17 @@ 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_groups_administration', 'Sql', 'SELECT `td`.*, `td`.`group_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_groups_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_groups'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_groups_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'group_name', '', 'like', '', '', 192, 'BxGroupsGridAdministration', 'modules/boonex/groups/classes/BxGroupsGridAdministration.php'),
+('bx_groups_administration', 'Sql', 'SELECT `td`.*, `td`.`group_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_groups_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_groups'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_groups_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'group_name', '', 'like', 'reports', '', 192, 'BxGroupsGridAdministration', 'modules/boonex/groups/classes/BxGroupsGridAdministration.php'),
 ('bx_groups_common', 'Sql', 'SELECT `td`.*, `td`.`group_name` AS `name`, `ta`.`email` AS `account`, `td`.`added` AS `added_ts`, `tp`.`status` AS `status` FROM `bx_groups_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_groups'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_groups_data', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'group_name', '', 'like', '', '', 2147483647, 'BxGroupsGridCommon', 'modules/boonex/groups/classes/BxGroupsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_groups_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_groups_administration', 'switcher', '_bx_groups_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_groups_administration', 'name', '_bx_groups_grid_column_title_adm_name', '25%', 0, '', '', 3),
-('bx_groups_administration', 'added_ts', '_bx_groups_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_groups_administration', 'account', '_bx_groups_grid_column_title_adm_account', '25%', 0, '25', '', 5),
-('bx_groups_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_groups_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_groups_administration', 'name', '_bx_groups_grid_column_title_adm_name', '25%', 0, '', '', 4),
+('bx_groups_administration', 'added_ts', '_bx_groups_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_groups_administration', 'account', '_bx_groups_grid_column_title_adm_account', '20%', 0, '25', '', 6),
+('bx_groups_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_groups_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_groups_common', 'name', '_bx_groups_grid_column_title_adm_name', '48%', 0, '', '', 2),
 ('bx_groups_common', 'added_ts', '_bx_groups_grid_column_title_adm_added', '30%', 1, '25', '', 3),

+ 6 - 5
modules/boonex/market/install/sql/enable.sql

@@ -507,7 +507,7 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_market_administration', 'Sql', 'SELECT * FROM `bx_market_products` WHERE 1 ', 'bx_market_products', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxMarketGridAdministration', 'modules/boonex/market/classes/BxMarketGridAdministration.php'),
+('bx_market_administration', 'Sql', 'SELECT * FROM `bx_market_products` WHERE 1 ', 'bx_market_products', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxMarketGridAdministration', 'modules/boonex/market/classes/BxMarketGridAdministration.php'),
 ('bx_market_common', 'Sql', 'SELECT * FROM `bx_market_products` WHERE 1 ', 'bx_market_products', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxMarketGridCommon', 'modules/boonex/market/classes/BxMarketGridCommon.php'),
 
 -- GRIDS: Licenses
@@ -517,10 +517,11 @@ INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `fie
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_market_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_market_administration', 'switcher', '_bx_market_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_market_administration', 'title', '_bx_market_grid_column_title_adm_title', '25%', 0, '', '', 3),
-('bx_market_administration', 'added', '_bx_market_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_market_administration', 'author', '_bx_market_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_market_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_market_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_market_administration', 'title', '_bx_market_grid_column_title_adm_title', '25%', 0, '', '', 4),
+('bx_market_administration', 'added', '_bx_market_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_market_administration', 'author', '_bx_market_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_market_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_market_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_market_common', 'switcher', '_bx_market_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_market_common', 'title', '_bx_market_grid_column_title_adm_title', '40%', 0, '', '', 3),

+ 2 - 3
modules/boonex/organizations/classes/BxOrgsGridAdministration.php

@@ -42,14 +42,13 @@ class BxOrgsGridAdministration extends BxBaseModGroupsGridAdministration
 
     	if(!empty($this->_sFilter1Value))
         	$this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `tp`.`status`=?", $this->_sFilter1Value);
-        
-        if(!empty($this->_sFilter2Value))
+        if(!empty($this->_sFilter2Value)){
         	$iLevel = intval(str_replace("level", "", $this->_sFilter2Value));
 			if ($iLevel <> 3)
         		$this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `tp`.`id` IN (SELECT `IDMember` FROM `sys_acl_levels_members` WHERE IDLevel = ?) ", $iLevel);
 			else
 				$this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `tp`.`id` NOT IN (SELECT `IDMember` FROM `sys_acl_levels_members`) ");
-
+        }
         return parent::_getDataSqlInner($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
     }
     

+ 6 - 5
modules/boonex/organizations/install/sql/enable.sql

@@ -510,16 +510,17 @@ 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_organizations_administration', 'Sql', 'SELECT `td`.*, `td`.`org_name` AS `fullname`, `ta`.`email` AS `account`, `ta`.`logged` AS `last_online`, `tp`.`status` AS `status` FROM `bx_organizations_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_organizations'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_organizations_data', 'id', 'last_online', 'status', '', 20, NULL, 'start', '', 'org_name', '', 'like', '', '', 192, 'BxOrgsGridAdministration', 'modules/boonex/organizations/classes/BxOrgsGridAdministration.php'),
+('bx_organizations_administration', 'Sql', 'SELECT `td`.*, `td`.`org_name` AS `fullname`, `ta`.`email` AS `account`, `ta`.`logged` AS `last_online`, `tp`.`status` AS `status` FROM `bx_organizations_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_organizations'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_organizations_data', 'id', 'last_online', 'status', '', 20, NULL, 'start', '', 'org_name', '', 'like', 'reports', '', 192, 'BxOrgsGridAdministration', 'modules/boonex/organizations/classes/BxOrgsGridAdministration.php'),
 ('bx_organizations_common', 'Sql', 'SELECT `td`.*, `td`.`org_name` AS `fullname`, `ta`.`email` AS `account`, `ta`.`logged` AS `last_online`, `tp`.`status` AS `status` FROM `bx_organizations_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_organizations'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_organizations_data', 'id', 'last_online', 'status', '', 20, NULL, 'start', '', 'org_name', '', 'like', '', '', 2147483647, 'BxOrgsGridCommon', 'modules/boonex/organizations/classes/BxOrgsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_organizations_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_organizations_administration', 'switcher', '_bx_orgs_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_organizations_administration', 'fullname', '_bx_orgs_grid_column_title_adm_fullname', '25%', 0, '', '', 3),
-('bx_organizations_administration', 'last_online', '_bx_orgs_grid_column_title_adm_last_online', '20%', 1, '25', '', 4),
-('bx_organizations_administration', 'account', '_bx_orgs_grid_column_title_adm_account', '25%', 0, '25', '', 5),
-('bx_organizations_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_organizations_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_organizations_administration', 'fullname', '_bx_orgs_grid_column_title_adm_fullname', '25%', 0, '', '', 4),
+('bx_organizations_administration', 'last_online', '_bx_orgs_grid_column_title_adm_last_online', '20%', 1, '25', '', 5),
+('bx_organizations_administration', 'account', '_bx_orgs_grid_column_title_adm_account', '20%', 0, '25', '', 6),
+('bx_organizations_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_organizations_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_organizations_common', 'fullname', '_bx_orgs_grid_column_title_adm_fullname', '48%', 0, '', '', 2),
 ('bx_organizations_common', 'last_online', '_bx_orgs_grid_column_title_adm_last_online', '30%', 1, '25', '', 3),

+ 6 - 5
modules/boonex/persons/install/sql/enable.sql

@@ -431,16 +431,17 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- 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_persons_administration', 'Sql', 'SELECT `td`.*, `ta`.`email` AS `account`, `ta`.`logged` AS `last_online`, `tp`.`status` AS `status` FROM `bx_persons_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_persons'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_persons_data', 'id', 'last_online', 'status', '', 20, NULL, 'start', '', 'fullname', '', 'like', '', '', 192, 'BxPersonsGridAdministration', 'modules/boonex/persons/classes/BxPersonsGridAdministration.php'),
+('bx_persons_administration', 'Sql', 'SELECT `td`.*, `ta`.`email` AS `account`, `ta`.`logged` AS `last_online`, `tp`.`status` AS `status` FROM `bx_persons_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_persons'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_persons_data', 'id', 'last_online', 'status', '', 20, NULL, 'start', '', 'fullname', '', 'like', 'reports', '', 192, 'BxPersonsGridAdministration', 'modules/boonex/persons/classes/BxPersonsGridAdministration.php'),
 ('bx_persons_common', 'Sql', 'SELECT `td`.*, `ta`.`email` AS `account`, `ta`.`logged` AS `last_online`, `tp`.`status` AS `status` FROM `bx_persons_data` AS `td` LEFT JOIN `sys_profiles` AS `tp` ON `td`.`id`=`tp`.`content_id` AND `tp`.`type`=''bx_persons'' LEFT JOIN `sys_accounts` AS `ta` ON `tp`.`account_id`=`ta`.`id` WHERE 1 ', 'bx_persons_data', 'id', 'last_online', 'status', '', 20, NULL, 'start', '', 'fullname', '', 'like', '', '', 2147483647, 'BxPersonsGridCommon', 'modules/boonex/persons/classes/BxPersonsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_persons_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_persons_administration', 'switcher', '_bx_persons_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_persons_administration', 'fullname', '_bx_persons_grid_column_title_adm_fullname', '25%', 0, '', '', 3),
-('bx_persons_administration', 'last_online', '_bx_persons_grid_column_title_adm_last_online', '20%', 1, '25', '', 4),
-('bx_persons_administration', 'account', '_bx_persons_grid_column_title_adm_account', '25%', 0, '25', '', 5),
-('bx_persons_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_persons_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_persons_administration', 'fullname', '_bx_persons_grid_column_title_adm_fullname', '25%', 0, '', '', 4),
+('bx_persons_administration', 'last_online', '_bx_persons_grid_column_title_adm_last_online', '20%', 1, '25', '', 5),
+('bx_persons_administration', 'account', '_bx_persons_grid_column_title_adm_account', '20%', 0, '25', '', 6),
+('bx_persons_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_persons_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_persons_common', 'fullname', '_bx_persons_grid_column_title_adm_fullname', '48%', 0, '', '', 2),
 ('bx_persons_common', 'last_online', '_bx_persons_grid_column_title_adm_last_online', '30%', 1, '25', '', 3),

+ 6 - 5
modules/boonex/photos/install/sql/enable.sql

@@ -367,17 +367,18 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_photos_administration', 'Sql', 'SELECT * FROM `bx_photos_entries` WHERE 1 ', 'bx_photos_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxPhotosGridAdministration', 'modules/boonex/photos/classes/BxPhotosGridAdministration.php'),
+('bx_photos_administration', 'Sql', 'SELECT * FROM `bx_photos_entries` WHERE 1 ', 'bx_photos_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxPhotosGridAdministration', 'modules/boonex/photos/classes/BxPhotosGridAdministration.php'),
 ('bx_photos_common', 'Sql', 'SELECT * FROM `bx_photos_entries` WHERE 1 ', 'bx_photos_entries', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxPhotosGridCommon', 'modules/boonex/photos/classes/BxPhotosGridCommon.php');
 
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_photos_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_photos_administration', 'switcher', '_bx_photos_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_photos_administration', 'title', '_bx_photos_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_photos_administration', 'added', '_bx_photos_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_photos_administration', 'author', '_bx_photos_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_photos_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_photos_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_photos_administration', 'title', '_bx_photos_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_photos_administration', 'added', '_bx_photos_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_photos_administration', 'author', '_bx_photos_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_photos_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_photos_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_photos_common', 'switcher', '_bx_photos_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_photos_common', 'title', '_bx_photos_grid_column_title_adm_title', '40%', 0, '35', '', 3),

+ 6 - 5
modules/boonex/polls/install/sql/enable.sql

@@ -373,17 +373,18 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_polls_administration', 'Sql', 'SELECT * FROM `bx_polls_entries` WHERE 1 ', 'bx_polls_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'text', '', 'like', '', '', 192, 'BxPollsGridAdministration', 'modules/boonex/polls/classes/BxPollsGridAdministration.php'),
+('bx_polls_administration', 'Sql', 'SELECT * FROM `bx_polls_entries` WHERE 1 ', 'bx_polls_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'text', '', 'like', 'reports', '', 192, 'BxPollsGridAdministration', 'modules/boonex/polls/classes/BxPollsGridAdministration.php'),
 ('bx_polls_common', 'Sql', 'SELECT * FROM `bx_polls_entries` WHERE 1 ', 'bx_polls_entries', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'text', '', 'like', '', '', 2147483647, 'BxPollsGridCommon', 'modules/boonex/polls/classes/BxPollsGridCommon.php');
 
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_polls_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_polls_administration', 'switcher', '_bx_polls_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_polls_administration', 'text', '_bx_polls_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_polls_administration', 'added', '_bx_polls_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_polls_administration', 'author', '_bx_polls_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_polls_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_polls_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_polls_administration', 'text', '_bx_polls_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_polls_administration', 'added', '_bx_polls_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_polls_administration', 'author', '_bx_polls_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_polls_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_polls_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_polls_common', 'switcher', '_bx_polls_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_polls_common', 'text', '_bx_polls_grid_column_title_adm_title', '40%', 0, '35', '', 3),

+ 6 - 5
modules/boonex/posts/install/sql/enable.sql

@@ -384,17 +384,18 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_posts_administration', 'Sql', 'SELECT * FROM `bx_posts_posts` WHERE 1 ', 'bx_posts_posts', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxPostsGridAdministration', 'modules/boonex/posts/classes/BxPostsGridAdministration.php'),
+('bx_posts_administration', 'Sql', 'SELECT * FROM `bx_posts_posts` WHERE 1 ', 'bx_posts_posts', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxPostsGridAdministration', 'modules/boonex/posts/classes/BxPostsGridAdministration.php'),
 ('bx_posts_common', 'Sql', 'SELECT * FROM `bx_posts_posts` WHERE 1 ', 'bx_posts_posts', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxPostsGridCommon', 'modules/boonex/posts/classes/BxPostsGridCommon.php');
 
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_posts_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_posts_administration', 'switcher', '_bx_posts_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_posts_administration', 'title', '_bx_posts_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_posts_administration', 'added', '_bx_posts_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_posts_administration', 'author', '_bx_posts_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_posts_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_posts_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_posts_administration', 'title', '_bx_posts_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_posts_administration', 'added', '_bx_posts_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_posts_administration', 'author', '_bx_posts_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_posts_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_posts_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_posts_common', 'switcher', '_bx_posts_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_posts_common', 'title', '_bx_posts_grid_column_title_adm_title', '40%', 0, '35', '', 3),

+ 17 - 1
modules/boonex/russian/data/langs/bx_timeline/ru.xml

@@ -85,6 +85,8 @@
 	<string name="_bx_timeline_page_title_sys_item_brief"><![CDATA[Предпросмотр элемента хроники]]></string>
     <string name="_bx_timeline_page_title_item_brief"><![CDATA[Предпросмотр элемента хроники]]></string>
 	<string name="_bx_timeline_page_title_sys_account"><![CDATA[Хроника новостей]]></string>
+  <string name="_bx_timeline_page_title_sys_manage_administration"><![CDATA[Управление всеми событями ленты]]></string>
+  <string name="_bx_timeline_page_title_manage"><![CDATA[Управление]]></string>
 	<string name="_bx_timeline_page_title_account"><![CDATA[Хроника новостей]]></string>
 	<string name="_bx_timeline_page_block_title_system_post_profile"><![CDATA[Создать публикацию]]></string>
 	<string name="_bx_timeline_page_block_title_post_profile"><![CDATA[Создать публикацию]]></string>
@@ -113,6 +115,8 @@
     <string name="_bx_timeline_page_block_title_system_view_hot_outline"><![CDATA[Хроника 'горячих' новостей (сводка)]]></string>
     <string name="_bx_timeline_page_block_title_view_hot_outline"><![CDATA[Хроника 'горячих' новостей]]></string>
 	<string name="_bx_timeline_page_block_title_browse_cmts"><![CDATA[Хроника новостей - Комментарии]]></string>
+  <string name="_bx_timeline_page_block_title_system_manage_administration"><![CDATA[Управление всеми событями ленты]]></string>
+  <string name="_bx_timeline_page_block_title_manage"><![CDATA[Управление]]></string>
 
     <string name="_bx_timeline_menu_item_view_all"><![CDATA[Все сообщения]]></string>
     <string name="_bx_timeline_menu_item_view_owner"><![CDATA[Сообщения от {0}]]></string>
@@ -125,6 +129,8 @@
     <string name="_bx_timeline_menu_item_title_item_repost"><![CDATA[Сделать репост]]></string>
     <string name="_bx_timeline_menu_item_title_system_item_send"><![CDATA[Послать]]></string>
     <string name="_bx_timeline_menu_item_title_item_send"><![CDATA[Послать другу]]></string>
+    <string name="_bx_timeline_menu_item_title_system_admt_timeline"><![CDATA[Лента]]></string>
+    <string name="_bx_timeline_menu_item_title_admt_timeline"><![CDATA[Лента - {addon} скрытых]]></string>
 
     <string name="_bx_timeline_menu_title_item_manage"><![CDATA[Элемент - Управление]]></string>
     <string name="_bx_timeline_menu_set_title_item_manage"><![CDATA[Элемент - Управление]]></string>
@@ -165,7 +171,15 @@
     <string name="_bx_timeline_menu_item_title_system_add_video"><![CDATA[Добавить видео]]></string>
     <string name="_bx_timeline_menu_item_title_add_video"><![CDATA[Добавить видео]]></string>
 
-    <string name="_bx_timeline_menu_item_title_system_timeline"><![CDATA[Лента]]></string>
+    <string name="_bx_timeline_grid_column_title_adm_active"><![CDATA[Активные]]></string>
+    <string name="_bx_timeline_grid_column_title_adm_description"><![CDATA[Событие]]></string>
+    <string name="_bx_timeline_grid_column_title_adm_added"><![CDATA[Добавлено]]></string>
+    <string name="_bx_timeline_grid_column_title_adm_author"><![CDATA[Автор]]></string>
+    <string name="_bx_timeline_grid_action_title_adm_delete"><![CDATA[Удалить]]></string>
+    <string name="_bx_timeline_grid_action_err_delete"><![CDATA[Невозможно удалить выбранную(ные) событие(я) ленты.]]></string>
+    <string name="_bx_timeline_grid_txt_account_manager"><![CDATA[Перенаправить в Управление аккаунтом.]]></string>
+
+  <string name="_bx_timeline_menu_item_title_system_timeline"><![CDATA[Лента]]></string>
     <string name="_bx_timeline_menu_item_title_timeline"><![CDATA[Лента]]></string>
 
     <string name="_bx_timeline_menu_item_title_system_create_entry"><![CDATA[Обновить статус]]></string>
@@ -173,6 +187,8 @@
 
 	<string name="_bx_timeline_menu_item_title_system_view_timeline_view"><![CDATA[Лента]]></string>
 	<string name="_bx_timeline_menu_item_title_view_timeline_view"><![CDATA[Лента]]></string>
+  
+  
 
 	<string name="_bx_timeline_alert_module_timeline_common_post"><![CDATA[Лента (разместить)]]></string>
 	<string name="_bx_timeline_alert_module_timeline_common_repost"><![CDATA[Лента (сделать репост)]]></string>

+ 1 - 1
modules/boonex/russian/data/langs/bx_videos/ru.xml

@@ -43,7 +43,7 @@
     <string name="_bx_videos_form_entry_input_videos_upload"><![CDATA[Загрузить]]></string>
     <string name="_bx_videos_form_entry_input_sys_allow_view_to"><![CDATA[Видимость]]></string>
     <string name="_bx_videos_form_entry_input_allow_view_to"><![CDATA[Видимость]]></string>
-    <string name="_bx_videos_form_entry_input_picture_use_as_thumb"><![CDATA[Изображение обложки]]></string>
+    <string name="_bx_videos_form_entry_input_picture_use_as_thumb"><![CDATA[Изображение постера]]></string>
     <string name="_bx_videos_form_entry_input_picture_use_as_poster"><![CDATA[Изображение постера]]></string>
     <string name="_bx_videos_form_entry_input_sys_date_added"><![CDATA[Создано]]></string>
     <string name="_bx_videos_form_entry_input_date_added"><![CDATA[Создано]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -2620,6 +2620,7 @@
 	<string name="_sys_txt_unsubscribe_info"><![CDATA[Обновить имейл-установки для <b>{0}</b>]]></string>
     <string name="_sys_txt_unsubscribe_wrong_link"><![CDATA[Ссылка отписки неправильная.]]></string>
     <string name="_sys_txt_user_n"><![CDATA[Пользователь #{0}]]></string>
+  <string name="_sys_txt_reports_title"><![CDATA[Жалобы]]></string>
 	<string name="_sys_upgrade_conclusion"><![CDATA[<h3>Важная информация:</h3><p>{0}</p>]]></string>
 	<string name="_sys_upgrade_db_and_files_versions_different"><![CDATA[База данных и версии файлов отличаются, возможно, предыдущий патч не был правильно применён.]]></string>
 	<string name="_sys_upgrade_files_checksum_failed"><![CDATA[Невозможно применить обновление, так как следующие файлы были изменены: {0}]]></string>

+ 6 - 5
modules/boonex/shopify/install/sql/enable.sql

@@ -359,16 +359,17 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_shopify_administration', 'Sql', 'SELECT * FROM `bx_shopify_entries` WHERE 1 ', 'bx_shopify_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxShopifyGridAdministration', 'modules/boonex/shopify/classes/BxShopifyGridAdministration.php'),
+('bx_shopify_administration', 'Sql', 'SELECT * FROM `bx_shopify_entries` WHERE 1 ', 'bx_shopify_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxShopifyGridAdministration', 'modules/boonex/shopify/classes/BxShopifyGridAdministration.php'),
 ('bx_shopify_common', 'Sql', 'SELECT * FROM `bx_shopify_entries` WHERE 1 ', 'bx_shopify_entries', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxShopifyGridCommon', 'modules/boonex/shopify/classes/BxShopifyGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_shopify_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_shopify_administration', 'switcher', '_bx_shopify_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_shopify_administration', 'title', '_bx_shopify_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_shopify_administration', 'added', '_bx_shopify_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_shopify_administration', 'author', '_bx_shopify_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_shopify_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_shopify_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_shopify_administration', 'title', '_bx_shopify_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_shopify_administration', 'added', '_bx_shopify_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_shopify_administration', 'author', '_bx_shopify_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_shopify_administration', 'actions', '', '20%', 0, '', '', 7),
 
 ('bx_shopify_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_shopify_common', 'switcher', '_bx_shopify_grid_column_title_adm_active', '8%', 0, '', '', 2),

+ 6 - 5
modules/boonex/snipcart/install/sql/enable.sql

@@ -360,16 +360,17 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_snipcart_administration', 'Sql', 'SELECT * FROM `bx_snipcart_entries` WHERE 1 ', 'bx_snipcart_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxSnipcartGridAdministration', 'modules/boonex/snipcart/classes/BxSnipcartGridAdministration.php'),
+('bx_snipcart_administration', 'Sql', 'SELECT * FROM `bx_snipcart_entries` WHERE 1 ', 'bx_snipcart_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxSnipcartGridAdministration', 'modules/boonex/snipcart/classes/BxSnipcartGridAdministration.php'),
 ('bx_snipcart_common', 'Sql', 'SELECT * FROM `bx_snipcart_entries` WHERE 1 ', 'bx_snipcart_entries', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxSnipcartGridCommon', 'modules/boonex/snipcart/classes/BxSnipcartGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_snipcart_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_snipcart_administration', 'switcher', '_bx_snipcart_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_snipcart_administration', 'title', '_bx_snipcart_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_snipcart_administration', 'added', '_bx_snipcart_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_snipcart_administration', 'author', '_bx_snipcart_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_snipcart_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_snipcart_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_snipcart_administration', 'title', '_bx_snipcart_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_snipcart_administration', 'added', '_bx_snipcart_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_snipcart_administration', 'author', '_bx_snipcart_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_snipcart_administration', 'actions', '', '20%', 0, '', '', 7),
 
 ('bx_snipcart_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_snipcart_common', 'switcher', '_bx_snipcart_grid_column_title_adm_active', '8%', 0, '', '', 2),

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

@@ -441,16 +441,17 @@ 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', '', '', 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', '', 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
 ('bx_spaces_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_spaces_administration', 'switcher', '_bx_spaces_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_spaces_administration', 'name', '_bx_spaces_grid_column_title_adm_name', '25%', 0, '', '', 3),
-('bx_spaces_administration', 'added_ts', '_bx_spaces_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_spaces_administration', 'account', '_bx_spaces_grid_column_title_adm_account', '25%', 0, '25', '', 5),
-('bx_spaces_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_spaces_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_spaces_administration', 'name', '_bx_spaces_grid_column_title_adm_name', '25%', 0, '', '', 4),
+('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),

+ 12 - 2
modules/boonex/timeline/classes/BxTimelineConfig.php

@@ -72,6 +72,7 @@ class BxTimelineConfig extends BxBaseModNotificationsConfig
 
         	// objects
         	'OBJECT_STORAGE' => $this->_sName . '_photos',
+            'OBJECT_GRID_ADMINISTRATION' => $this->_sName . '_administration',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW' => $this->_sName . '_photos_preview',
         	'OBJECT_METATAGS' => $this->_sName,
             'OBJECT_COMMENTS' => $this->_sName,
@@ -86,6 +87,8 @@ class BxTimelineConfig extends BxBaseModNotificationsConfig
         		'txt_sample_single_ext' => '_bx_timeline_txt_sample_ext',
             	'txt_sample_comment_single' => '_bx_timeline_txt_sample_comment_single',
         		'txt_sample_vote_single' => '_bx_timeline_txt_sample_vote_single',
+                'grid_action_err_delete' => '_bx_timeline_grid_action_err_delete', 
+                'grid_txt_account_manager' => '_bx_timeline_grid_txt_account_manager',
             ),
         );
 
@@ -146,12 +149,19 @@ class BxTimelineConfig extends BxBaseModNotificationsConfig
             'main' => 'BxTimelineMain',
             'view' => 'BxTimelineView',
             'post' => 'BxTimelinePost',
-            'repost' => 'BxTimelineRepost'
+            'repost' => 'BxTimelineRepost',
+            'manage_tools' => 'BxTimelineManageTools'
         );
         $this->_aJsObjects = array(
             'view' => 'oTimelineView',
             'post' => 'oTimelinePost',
-            'repost' => 'oTimelineRepost'
+            'repost' => 'oTimelineRepost',
+            'manage_tools' => 'oBxTimelineManageTools'
+        );
+        
+        $this->_aGridObjects = array(
+        	'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION']
+        	
         );
 
         $sHp = str_replace('_', '-', $this->_sName);

+ 99 - 0
modules/boonex/timeline/classes/BxTimelineGridAdministration.php

@@ -0,0 +1,99 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Timeline Timeline
+ * @ingroup     UnaModules
+ * 
+ * @{
+ */
+
+class BxTimelineGridAdministration extends BxBaseModGeneralGridAdministration
+{
+    public function __construct ($aOptions, $oTemplate = false)
+    {
+    	$this->MODULE = 'bx_timeline';
+        parent::__construct ($aOptions, $oTemplate);
+    }
+    
+    protected function _getCellDate($mixedValue, $sKey, $aField, $aRow)
+    {
+        return parent::_getCellDefault(bx_time_js($mixedValue), $sKey, $aField, $aRow);
+    }
+    
+    protected function _switcherChecked2State($isChecked)
+    {
+        return $isChecked ? '1' : '0';
+    }
+
+    protected function _switcherState2Checked($mixedState)
+    {
+        return '1' == $mixedState ? true : false;
+    }
+    
+    public function performActionDelete($aParams = array())
+    {
+    	$CNF = &$this->_oModule->_oConfig->CNF;
+
+        $iAffected = 0;
+        $aIds = bx_get('ids');
+        if(!$aIds || !is_array($aIds)) {
+            echoJson(array());
+            exit;
+        }
+        
+        $aIdsAffected = array ();
+        foreach($aIds as $iId) {
+			$aContentInfo = $this->_oModule->_oDb->getEvents(array('browse' => 'id', 'value' => $iId));
+	    	if ($this->_oModule->deleteEvent($aContentInfo)){
+                $aIdsAffected[] = $iId;
+                $iAffected++;
+            }
+        }
+
+        echoJson($iAffected ? array('grid' => $this->getCode(false), 'blink' => $aIdsAffected) : array('msg' => _t($CNF['T']['grid_action_err_delete'])));
+    }
+    
+    protected function _getActionDelete($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
+    {
+        if($this->_sManageType == BX_DOL_MANAGE_TOOLS_ADMINISTRATION && $this->_oModule->isAllowedDelete($aRow) !== true)
+			return '';
+
+    	return $this->_getActionDefault($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
+    }
+    
+
+    protected function _getCellOwnerId($mixedValue, $sKey, $aField, $aRow)
+    {
+    	$oProfile = $this->_getProfileObject($aRow['owner_id']);
+    	$sProfile = $oProfile->getDisplayName();
+
+		$oAcl = BxDolAcl::getInstance();
+
+    	$sAccountEmail = '';
+    	$sManageAccountUrl = '';
+    	if($oProfile && $oProfile instanceof BxDolProfile && $oAcl->isMemberLevelInSet(128)) {
+    		$sAccountEmail = $oProfile->getAccountObject()->getEmail();
+	    	$sManageAccountUrl = $this->_getManageAccountUrl($sAccountEmail);
+    	}
+
+        $mixedValue = $this->_oTemplate->parseHtmlByName('author_link.html', array(
+            'href' => $oProfile->getUrl(),
+            'title' => $sProfile,
+            'content' => $sProfile,
+        	'bx_if:show_account' => array(
+        		'condition' => !empty($sManageAccountUrl), 
+        		'content' => array(
+        			'href' => $sManageAccountUrl,
+		        	'title' => _t($this->_oModule->_oConfig->CNF['T']['grid_txt_account_manager']),
+		        	'content' => $sAccountEmail
+        		)
+        	)
+        ));
+
+        return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
+    }
+}
+
+/** @} */

+ 31 - 0
modules/boonex/timeline/classes/BxTimelineModule.php

@@ -1504,6 +1504,36 @@ class BxTimelineModule extends BxBaseModNotificationsModule implements iBxDolCon
 			),  // optional, may have some additional data to be passed in JS method provided using 'method' param above.
 		);
     }
+    
+    /**
+     * @page service Service Calls
+     * @section bx_timeline Accounts
+     * @subsection bx_timeline-other Other
+     * @subsubsection bx_timeline-get_menu_addon_manage_tools get_menu_addon_manage_tools
+     * 
+     * @code bx_srv('bx_timeline', 'get_menu_addon_manage_tools', [...]); @endcode
+     * 
+     * Get number of 'hidden' events for User End -> Dasboard page -> Manage block.
+     *
+     * @return integer number of 'hidden' events
+     * 
+     * @see BxTimelineModule::serviceGetMenuAddonManageTools
+     */
+    /** 
+     * @ref bx_timeline-get_menu_addon_manage_tools "get_menu_addon_manage_tools"
+     */
+	public function serviceGetMenuAddonManageTools()
+	{
+		bx_import('SearchResult', $this->_aModule);
+        $sClass = $this->_aModule['class_prefix'] . 'SearchResult';
+        $o = new $sClass();
+        $o->fillFilters(array(
+			'active' => 0
+        ));
+        $o->unsetPaginate();
+
+        return $o->getNum();
+	}
 
     /*
      * COMMON METHODS
@@ -1516,6 +1546,7 @@ class BxTimelineModule extends BxBaseModNotificationsModule implements iBxDolCon
         $this->onDelete($aEvent);
         return true;
     }
+    
 
     public function addAttachLink($aValues, $sDisplay = false)
     {

+ 24 - 0
modules/boonex/timeline/classes/BxTimelinePageBrowse.php

@@ -0,0 +1,24 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Timeline Timeline
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+/**
+ * Browse entries pages.
+ */
+class BxTimelinePageBrowse extends BxBaseModTextPageBrowse
+{
+    public function __construct($aObject, $oTemplate = false)
+    {
+        $this->MODULE = 'bx_timeline';
+        parent::__construct($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 15 - 1
modules/boonex/timeline/install/langs/en.xml

@@ -86,6 +86,8 @@
     <string name="_bx_timeline_page_title_item_brief"><![CDATA[Feed Item Preview]]></string>
 	<string name="_bx_timeline_page_title_sys_account"><![CDATA[Feed]]></string>
 	<string name="_bx_timeline_page_title_account"><![CDATA[Feed]]></string>
+  <string name="_bx_timeline_page_title_sys_manage_administration"><![CDATA[Manage All]]></string>
+  <string name="_bx_timeline_page_title_manage"><![CDATA[Manage]]></string>
 	<string name="_bx_timeline_page_block_title_system_post_profile"><![CDATA[Post to Feed]]></string>
 	<string name="_bx_timeline_page_block_title_post_profile"><![CDATA[Post to Feed]]></string>
 	<string name="_bx_timeline_page_block_title_system_view_profile"><![CDATA[Profile Feed (Timeline)]]></string>
@@ -113,8 +115,10 @@
     <string name="_bx_timeline_page_block_title_system_view_hot_outline"><![CDATA[Hot Feed (Outline)]]></string>
     <string name="_bx_timeline_page_block_title_view_hot_outline"><![CDATA[Hot Feed]]></string>
 	<string name="_bx_timeline_page_block_title_browse_cmts"><![CDATA[Feeds' Comments]]></string>
+  <string name="_bx_timeline_page_block_title_system_manage_administration"><![CDATA[Manage All]]></string>
+  <string name="_bx_timeline_page_block_title_manage"><![CDATA[Manage]]></string>
 
-    <string name="_bx_timeline_menu_item_view_all"><![CDATA[All posts]]></string>
+  <string name="_bx_timeline_menu_item_view_all"><![CDATA[All posts]]></string>
     <string name="_bx_timeline_menu_item_view_owner"><![CDATA[Posts by {0}]]></string>
     <string name="_bx_timeline_menu_item_view_other"><![CDATA[Posts by others]]></string>
     <string name="_bx_timeline_menu_item_get_rss"><![CDATA[RSS]]></string>
@@ -125,6 +129,8 @@
     <string name="_bx_timeline_menu_item_title_item_repost"><![CDATA[Repost]]></string>
     <string name="_bx_timeline_menu_item_title_system_item_send"><![CDATA[Send]]></string>
     <string name="_bx_timeline_menu_item_title_item_send"><![CDATA[Send to Friend]]></string>
+    <string name="_bx_timeline_menu_item_title_system_admt_timeline"><![CDATA[Timeline]]></string>
+    <string name="_bx_timeline_menu_item_title_admt_timeline"><![CDATA[Timeline - {addon} hidden]]></string>
     
     <string name="_bx_timeline_menu_title_item_manage"><![CDATA[Manage Item]]></string>
     <string name="_bx_timeline_menu_set_title_item_manage"><![CDATA[Manage Item]]></string>
@@ -174,6 +180,13 @@
 	<string name="_bx_timeline_menu_item_title_system_view_timeline_view"><![CDATA[Timeline]]></string>
 	<string name="_bx_timeline_menu_item_title_view_timeline_view"><![CDATA[Timeline]]></string>
 
+  <string name="_bx_timeline_grid_column_title_adm_active"><![CDATA[Active]]></string>
+  <string name="_bx_timeline_grid_column_title_adm_description"><![CDATA[Event]]></string>
+  <string name="_bx_timeline_grid_column_title_adm_added"><![CDATA[Added]]></string>
+  <string name="_bx_timeline_grid_column_title_adm_author"><![CDATA[Author]]></string>
+  <string name="_bx_timeline_grid_action_title_adm_delete"><![CDATA[Delete]]></string>
+  <string name="_bx_timeline_grid_txt_account_manager"><![CDATA[Redirect to manage account.]]></string>
+  
 	<string name="_bx_timeline_alert_module_timeline_common_post"><![CDATA[Timeline (post)]]></string>
 	<string name="_bx_timeline_alert_module_timeline_common_repost"><![CDATA[Timeline (repost)]]></string>
 	<string name="_bx_timeline_alert_action_added"><![CDATA[add]]></string>
@@ -183,6 +196,7 @@
 	<string name="_bx_timeline_txt_msg_no_results"><![CDATA[Empty]]></string>
 	<string name="_bx_timeline_txt_msg_performed_action"><![CDATA[The action was successfully performed.]]></string>
 	<string name="_bx_timeline_txt_msg_posted"><![CDATA[Posted successfully.]]></string>
+  <string name="_bx_timeline_grid_action_err_delete"><![CDATA[Cannot delete the selected timeline events(s).]]></string>
 	<string name="_bx_timeline_txt_err_cannot_perform_action"><![CDATA[Cannot perform action. Please report.]]></string>
 	<string name="_bx_timeline_txt_err_empty_post"><![CDATA[The post is empty.]]></string>
 

+ 4 - 0
modules/boonex/timeline/install/sql/disable.sql

@@ -55,6 +55,10 @@ DELETE FROM `sys_objects_report` WHERE `Name` = 'bx_timeline' LIMIT 1;
 -- SEARCH
 DELETE FROM `sys_objects_search` WHERE `ObjectName` IN ('bx_timeline', 'bx_timeline_cmts');
 
+-- GRIDS
+DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_timeline_administration');
+DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_timeline_administration');
+DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_timeline_administration');
 
 -- METATAGS
 DELETE FROM `sys_objects_metatags` WHERE `object` = 'bx_timeline';

+ 30 - 0
modules/boonex/timeline/install/sql/enable.sql

@@ -55,6 +55,14 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title_system`, `
 ('trigger_page_group_view_entry', @iPBCellGroup, 'bx_timeline', '_bx_timeline_page_block_title_system_view_profile', '_bx_timeline_page_block_title_view_profile', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:11:"bx_timeline";s:6:"method";s:22:"get_block_view_profile";s:6:"params";a:1:{i:0;s:6:"{type}";}}', 0, 0, 1, 0),
 ('trigger_page_group_view_entry', @iPBCellGroup, 'bx_timeline', '_bx_timeline_page_block_title_system_view_profile_outline', '_bx_timeline_page_block_title_view_profile_outline', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:11:"bx_timeline";s:6:"method";s:30:"get_block_view_profile_outline";s:6:"params";a:1:{i:0;s:6:"{type}";}}', 0, 0, 0, 0);
 
+-- PAGE: module manage all
+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_timeline_administration', '_bx_timeline_page_title_sys_manage_administration', '_bx_timeline_page_title_manage', 'bx_timeline', 5, 192, 1, 'timeline-administration', 'page.php?i=timeline-administration', '', '', '', 0, 1, 0, 'BxTimelinePageBrowse', 'modules/boonex/timeline/classes/BxTimelinePageBrowse.php');
+
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_timeline_administration', 1, 'bx_timeline', '_bx_timeline_page_block_title_system_manage_administration', '_bx_timeline_page_block_title_manage', 11, 192, 'service', 'a:3:{s:6:\"module\";s:11:\"bx_timeline\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
+
+
 -- MENU: Item Share (Repost, Send to Friend, etc)
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_timeline_menu_item_share', '_bx_timeline_menu_title_item_share', 'bx_timeline_menu_item_share', 'bx_timeline', 6, 0, 1, 'BxTimelineMenuItemShare', 'modules/boonex/timeline/classes/BxTimelineMenuItemShare.php');
@@ -120,6 +128,10 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('trigger_profile_view_submenu', 'bx_timeline', 'timeline-view', '_bx_timeline_menu_item_title_system_view_timeline_view', '_bx_timeline_menu_item_title_view_timeline_view', 'page.php?i=timeline-view&profile_id={profile_id}', '', '', 'clock-o col-green1', '', 2147483647, 1, 0, 0),
 ('trigger_group_view_submenu', 'bx_timeline', 'timeline-view', '_bx_timeline_menu_item_title_system_view_timeline_view', '_bx_timeline_menu_item_title_view_timeline_view', 'page.php?i=timeline-view&profile_id={profile_id}', '', '', 'clock-o col-green1', '', 2147483647, 1, 0, 0);
 
+-- MENU: dashboard manage tools
+SET @iManageMenuOrder = (SELECT IFNULL(MAX(`order`), 0) FROM `sys_menu_items` WHERE `set_name`='sys_account_dashboard_manage_tools' LIMIT 1);
+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_dashboard_manage_tools', 'bx_timeline', 'timeline-administration', '_bx_timeline_menu_item_title_system_admt_timeline', '_bx_timeline_menu_item_title_admt_timeline', 'page.php?i=timeline-administration', '', '_self', '', 'a:2:{s:6:"module";s:11:"bx_timeline";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, @iManageMenuOrder + 1);
 
 -- SETTINGS
 SET @iTypeOrder = (SELECT MAX(`order`) FROM `sys_options_types` WHERE `group` = 'modules');
@@ -279,6 +291,24 @@ INSERT INTO `sys_objects_search` (`ObjectName`, `Title`, `Order`, `ClassName`, `
 ('bx_timeline_cmts', '_bx_timeline_cmts', @iSearchOrder + 2, 'BxTimelineCmtsSearchResult', 'modules/boonex/timeline/classes/BxTimelineCmtsSearchResult.php');
 
 
+-- GRIDS: moderation tools
+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_timeline_administration', 'Sql', 'SELECT * FROM `bx_timeline_events` WHERE 1 ', 'bx_timeline_events', 'id', 'date', 'active', '', 20, NULL, 'start', '', 'title,description', '', 'like', 'reports', '', 192, 'BxTimelineGridAdministration', 'modules/boonex/timeline/classes/BxTimelineGridAdministration.php');
+
+INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
+('bx_timeline_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
+('bx_timeline_administration', 'switcher', '_bx_timeline_grid_column_title_adm_active', '8%', 0, '', '', 2),
+('bx_timeline_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 2),
+('bx_timeline_administration', 'description', '_bx_timeline_grid_column_title_adm_description', '25%', 0, '25', '', 3),
+('bx_timeline_administration', 'date', '_bx_timeline_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_timeline_administration', 'owner_id', '_bx_timeline_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_timeline_administration', 'actions', '', '20%', 0, '', '', 7);
+
+INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
+('bx_timeline_administration', 'bulk', 'delete', '_bx_timeline_grid_action_title_adm_delete', '', 0, 1, 1),
+('bx_timeline_administration', 'single', 'delete', '_bx_timeline_grid_action_title_adm_delete', 'remove', 1, 1, 2);
+
+
 -- METATAGS
 INSERT INTO `sys_objects_metatags` (`object`, `table_keywords`, `table_locations`, `table_mentions`, `override_class_name`, `override_class_file`) VALUES
 ('bx_timeline', 'bx_timeline_meta_keywords', 'bx_timeline_meta_locations', 'bx_timeline_meta_mentions', '', '');

+ 56 - 0
modules/boonex/timeline/js/manage_tools.js

@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Timeline Timeline
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+function BxTimelineManageTools(oOptions) {
+	this._iSearchTimeoutId = false;
+	this._sActionsUrl = oOptions.sActionUrl;
+	this._sObjNameGrid = oOptions.sObjNameGrid;
+	this._sObjName = oOptions.sObjName == undefined ? 'BxTimelineManageTools' : oOptions.sObjName;
+
+    this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
+    this._iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
+    this._sParamsDivider = oOptions.sParamsDivider == undefined ? '#-#' : oOptions.sParamsDivider;
+
+    this._aHtmlIds = oOptions.aHtmlIds == undefined ? {} : oOptions.aHtmlIds;
+    this._oRequestParams = oOptions.oRequestParams == undefined ? {} : oOptions.oRequestParams;
+}
+
+BxTimelineManageTools.prototype.onChangeFilter = function (oFilter) {
+	var $this = this;
+	var oFilter1 = $('#bx-grid-filter1-' + this._sObjNameGrid);
+	var sValueFilter1 = oFilter1.length > 0 ? oFilter1.val() : '';
+
+	var oSearch = $('#bx-grid-search-' + this._sObjNameGrid);
+	var sValueSearch = oSearch.length > 0 ? oSearch.val() : '';
+	if(sValueSearch == _t('_sys_grid_search'))
+		sValueSearch = '';
+
+	clearTimeout($this._iSearchTimeoutId);
+    $this._iSearchTimeoutId = setTimeout(function () {
+        glGrids[$this._sObjNameGrid].setFilter(sValueFilter1 + $this._sParamsDivider + sValueSearch, true);
+    }, 500);
+};
+
+BxTimelineManageTools.prototype.onClickSettings = function (sMenuObject, oButton) {
+	if($(oButton).hasClass('bx-btn-disabled'))
+		return false;
+
+	bx_menu_popup(sMenuObject, oButton, {}, {
+		content_id: $(oButton).attr('bx_grid_action_data')
+	});
+};
+
+BxTimelineManageTools.prototype.onClickDelete = function (iContentId) {
+	$('.bx-popup-applied:visible').dolPopupHide();
+
+	glGrids[this._sObjNameGrid].actionWithId(iContentId, 'delete', {}, '', false, 1);
+};
+
+/** @} */

+ 1 - 0
modules/boonex/timeline/template/author_link.html

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

+ 1 - 0
modules/boonex/timeline/template/repost_do_repost_label.html

@@ -0,0 +1 @@
+<bx_if:show_image><img src="__src__" /></bx_if:show_image><bx_if:show_icon><i class="sys-icon __name__"></i></bx_if:show_icon><bx_if:show_text><span class="bx-def-margin-sec-left-auto">__text__</span></bx_if:show_text>

+ 10 - 1
modules/boonex/videos/classes/BxVideosConfig.php

@@ -11,6 +11,8 @@
 
 class BxVideosConfig extends BxBaseModTextConfig
 {
+	protected $_bViewPageCover;
+
     function __construct($aModule)
     {
         parent::__construct($aModule);
@@ -42,7 +44,7 @@ class BxVideosConfig extends BxBaseModTextConfig
             'FIELD_ALLOW_VIEW_TO' => 'allow_view_to',
             'FIELD_PHOTO' => 'pictures',
             'FIELD_THUMB' => 'thumb',
-        	'FIELD_POSTER' => 'poster',
+        	'FIELD_POSTER' => '', //'poster',
         	'FIELD_VIDEOS' => 'videos',
             'FIELD_VIDEO' => 'video',
 			'FIELD_VIEWS' => 'views',
@@ -157,7 +159,14 @@ class BxVideosConfig extends BxBaseModTextConfig
         	'common' => $this->CNF['OBJECT_GRID_COMMON'],
         	'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION']
         );
+
+        $this->_bViewPageCover = false;
     }
+
+    public function isViewPageCover()
+    {
+    	return $this->_bViewPageCover;
+    } 
 }
 
 /** @} */

+ 28 - 12
modules/boonex/videos/classes/BxVideosFormEntry.php

@@ -59,7 +59,7 @@ class BxVideosFormEntry extends BxBaseModTextFormEntry
 
         $aValsToAdd[$CNF['FIELD_VIDEO']] = isset($_POST[$CNF['FIELD_VIDEO']]) ? bx_process_input($_POST[$CNF['FIELD_VIDEO']], BX_DATA_INT) : 0;
 
-        if($this->_oModule->checkAllowedSetThumb() === CHECK_ACTION_RESULT_ALLOWED && isset($CNF['FIELD_POSTER'])) {
+        if(!empty($CNF['FIELD_POSTER']) && $this->_oModule->checkAllowedSetThumb() === CHECK_ACTION_RESULT_ALLOWED) {
             $aPoster = isset($_POST[$CNF['FIELD_POSTER']]) ? bx_process_input ($_POST[$CNF['FIELD_POSTER']], BX_DATA_INT) : false;
 
             $aValsToAdd[$CNF['FIELD_POSTER']] = 0;
@@ -80,7 +80,7 @@ class BxVideosFormEntry extends BxBaseModTextFormEntry
 
         $aValsToAdd[$CNF['FIELD_VIDEO']] = isset($_POST[$CNF['FIELD_VIDEO']]) ? bx_process_input($_POST[$CNF['FIELD_VIDEO']], BX_DATA_INT) : 0;
 
-        if($this->_oModule->checkAllowedSetThumb($iContentId) === CHECK_ACTION_RESULT_ALLOWED && isset($CNF['FIELD_POSTER']) && isset($CNF['FIELD_PHOTO']) && isset($this->aInputs[$CNF['FIELD_PHOTO']])) {
+        if(!empty($CNF['FIELD_POSTER']) && $this->_oModule->checkAllowedSetThumb($iContentId) === CHECK_ACTION_RESULT_ALLOWED && isset($CNF['FIELD_PHOTO']) && isset($this->aInputs[$CNF['FIELD_PHOTO']])) {
             $aPoster = bx_process_input (bx_get($CNF['FIELD_POSTER']), BX_DATA_INT);
 
             $aValsToAdd[$CNF['FIELD_POSTER']] = 0;
@@ -123,16 +123,32 @@ class BxVideosFormEntry extends BxBaseModTextFormEntry
     	$CNF = &$this->_oModule->_oConfig->CNF;
 
         $aResult = parent::_getPhotoGhostTmplVars($aContentInfo);
-        $aResult = array_merge($aResult, array(
-            'poster_id' => isset($CNF['FIELD_POSTER']) && isset($aContentInfo[$CNF['FIELD_POSTER']]) ? $aContentInfo[$CNF['FIELD_POSTER']] : 0,
-        	'bx_if:set_poster' => array (
-    			'condition' => CHECK_ACTION_RESULT_ALLOWED === $this->_oModule->checkAllowedSetThumb($this->aInputs[$CNF['FIELD_PHOTO']]['content_id']),
-    			'content' => array (
-    				'name_poster' => isset($CNF['FIELD_POSTER']) ? $CNF['FIELD_POSTER'] : '',
-    				'txt_pict_use_as_poster' => _t(!empty($CNF['T']['txt_pict_use_as_poster']) ? $CNF['T']['txt_pict_use_as_poster'] : '_sys_txt_form_entry_input_picture_use_as_thumb')
-    			),
-    		)
-        ));
+
+		$bPoster = !empty($CNF['FIELD_POSTER']) && $this->_oModule->checkAllowedSetThumb($this->aInputs[$CNF['FIELD_PHOTO']]['content_id']) === CHECK_ACTION_RESULT_ALLOWED;
+
+		$aTmplVarsSetPoster = array();
+		$aTmplVarsInitPoster = array();
+		if($bPoster) {
+			$aTmplVarsSetPoster = array (
+				'name_poster' => $CNF['FIELD_POSTER'],
+				'txt_pict_use_as_poster' => _t(!empty($CNF['T']['txt_pict_use_as_poster']) ? $CNF['T']['txt_pict_use_as_poster'] : '_sys_txt_form_entry_input_picture_use_as_thumb')
+			);
+		
+			$aTmplVarsInitPoster = array(
+				'poster_id' => isset($aContentInfo[$CNF['FIELD_POSTER']]) ? $aContentInfo[$CNF['FIELD_POSTER']] : 0
+			);
+		}
+
+		$aResult = array_merge($aResult, array(
+			'bx_if:set_poster' => array (
+				'condition' => $bPoster,
+				'content' => $aTmplVarsSetPoster
+			),
+			'bx_if:init_poster' => array(
+				'condition' => $bPoster,
+				'content' => $aTmplVarsInitPoster
+			)
+		));
 
     	return $aResult;
     }

+ 3 - 2
modules/boonex/videos/classes/BxVideosModule.php

@@ -113,8 +113,9 @@ class BxVideosModule extends BxBaseModTextModule
         if(!($oTcvPoster || $oTciPoster) || !$oTcvMp4 || !$oTcvWebm)
             return array();
 
-        if(isset($CNF['FIELD_POSTER']) && !empty($aContentInfo[$CNF['FIELD_POSTER']]) && $oTciPoster)
-            $sPoster = $oTciPoster->getFileUrl($aContentInfo[$CNF['FIELD_POSTER']]);
+		$sPosterSrc = !empty($CNF['FIELD_POSTER']) ? $CNF['FIELD_POSTER'] : $CNF['FIELD_THUMB'];
+        if(!empty($sPosterSrc) && !empty($aContentInfo[$sPosterSrc]) && $oTciPoster)
+            $sPoster = $oTciPoster->getFileUrl($aContentInfo[$sPosterSrc]);
         else 
             $sPoster = $oTcvPoster->getFileUrl($iFile);
 

+ 6 - 2
modules/boonex/videos/classes/BxVideosPageEntry.php

@@ -29,6 +29,9 @@ class BxVideosPageEntry extends BxBaseModTextPageEntry
 
     protected function _getImageForPageCover ()
     {
+    	if(!$this->_oModule->_oConfig->isViewPageCover())
+    		return false;
+
         $CNF = &$this->_oModule->_oConfig->CNF;
 
         if(!empty($CNF['FIELD_THUMB']) && !empty($this->_aContentInfo[$CNF['FIELD_THUMB']]))
@@ -44,8 +47,9 @@ class BxVideosPageEntry extends BxBaseModTextPageEntry
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
 
-        if(!empty($CNF['FIELD_POSTER']) && !empty($this->_aContentInfo[$CNF['FIELD_POSTER']]))
-            return array('id' => $this->_aContentInfo[$CNF['FIELD_POSTER']], 'transcoder' => $CNF['OBJECT_IMAGES_TRANSCODER_POSTER']);
+		$sPosterSrc = !empty($CNF['FIELD_POSTER']) ? $CNF['FIELD_POSTER'] : $CNF['FIELD_THUMB'];
+        if(!empty($sPosterSrc) && !empty($this->_aContentInfo[$sPosterSrc]))
+            return array('id' => $this->_aContentInfo[$sPosterSrc], 'transcoder' => $CNF['OBJECT_IMAGES_TRANSCODER_POSTER']);
 
         if(!empty($CNF['FIELD_VIDEO']) && !empty($this->_aContentInfo[$CNF['FIELD_VIDEO']]))
             return array('id' => $this->_aContentInfo[$CNF['FIELD_VIDEO']], 'transcoder' => $CNF['OBJECT_VIDEOS_TRANSCODERS']['poster']);

+ 3 - 2
modules/boonex/videos/classes/BxVideosTemplate.php

@@ -47,8 +47,9 @@ class BxVideosTemplate extends BxBaseModTextTemplate
 
         $this->_checkDuration($aContentInfo);
 
-        if(isset($CNF['FIELD_POSTER']) && !empty($aContentInfo[$CNF['FIELD_POSTER']]))
-            $sPoster = BxDolTranscoder::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_POSTER'])->getFileUrl($aContentInfo[$CNF['FIELD_POSTER']]);
+		$sPosterSrc = !empty($CNF['FIELD_POSTER']) ? $CNF['FIELD_POSTER'] : $CNF['FIELD_THUMB'];
+        if(!empty($sPosterSrc) && !empty($aContentInfo[$sPosterSrc]))
+            $sPoster = BxDolTranscoder::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_POSTER'])->getFileUrl($aContentInfo[$sPosterSrc]);
         else 
             $sPoster = $aTranscodersVideo['poster']->getFileUrl($iFile);
 

+ 1 - 1
modules/boonex/videos/install/langs/en.xml

@@ -43,7 +43,7 @@
     <string name="_bx_videos_form_entry_input_videos_upload"><![CDATA[Upload]]></string>
     <string name="_bx_videos_form_entry_input_sys_allow_view_to"><![CDATA[Visibility]]></string>
     <string name="_bx_videos_form_entry_input_allow_view_to"><![CDATA[Visibility]]></string>
-    <string name="_bx_videos_form_entry_input_picture_use_as_thumb"><![CDATA[Cover Image]]></string>
+    <string name="_bx_videos_form_entry_input_picture_use_as_thumb"><![CDATA[Poster Image]]></string>
     <string name="_bx_videos_form_entry_input_picture_use_as_poster"><![CDATA[Poster Image]]></string>
     <string name="_bx_videos_form_entry_input_sys_date_added"><![CDATA[Created]]></string>
     <string name="_bx_videos_form_entry_input_date_added"><![CDATA[Created]]></string>

+ 6 - 5
modules/boonex/videos/install/sql/enable.sql

@@ -359,17 +359,18 @@ INSERT INTO `sys_objects_chart` (`object`, `title`, `table`, `field_date_ts`, `f
 
 -- GRIDS: moderation tools
 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_videos_administration', 'Sql', 'SELECT * FROM `bx_videos_entries` WHERE 1 ', 'bx_videos_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 192, 'BxVideosGridAdministration', 'modules/boonex/videos/classes/BxVideosGridAdministration.php'),
+('bx_videos_administration', 'Sql', 'SELECT * FROM `bx_videos_entries` WHERE 1 ', 'bx_videos_entries', 'id', 'added', 'status_admin', '', 20, NULL, 'start', '', 'title,text', '', 'like', 'reports', '', 192, 'BxVideosGridAdministration', 'modules/boonex/videos/classes/BxVideosGridAdministration.php'),
 ('bx_videos_common', 'Sql', 'SELECT * FROM `bx_videos_entries` WHERE 1 ', 'bx_videos_entries', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 2147483647, 'BxVideosGridCommon', 'modules/boonex/videos/classes/BxVideosGridCommon.php');
 
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_videos_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_videos_administration', 'switcher', '_bx_videos_grid_column_title_adm_active', '8%', 0, '', '', 2),
-('bx_videos_administration', 'title', '_bx_videos_grid_column_title_adm_title', '25%', 0, '25', '', 3),
-('bx_videos_administration', 'added', '_bx_videos_grid_column_title_adm_added', '20%', 1, '25', '', 4),
-('bx_videos_administration', 'author', '_bx_videos_grid_column_title_adm_author', '25%', 0, '25', '', 5),
-('bx_videos_administration', 'actions', '', '20%', 0, '', '', 6),
+('bx_videos_administration', 'reports', '_sys_txt_reports_title', '5%', 0, '', '', 3),
+('bx_videos_administration', 'title', '_bx_videos_grid_column_title_adm_title', '25%', 0, '25', '', 4),
+('bx_videos_administration', 'added', '_bx_videos_grid_column_title_adm_added', '20%', 1, '25', '', 5),
+('bx_videos_administration', 'author', '_bx_videos_grid_column_title_adm_author', '20%', 0, '25', '', 6),
+('bx_videos_administration', 'actions', '', '20%', 0, '', '', 7),
 ('bx_videos_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_videos_common', 'switcher', '_bx_videos_grid_column_title_adm_active', '8%', 0, '', '', 2),
 ('bx_videos_common', 'title', '_bx_videos_grid_column_title_adm_title', '40%', 0, '35', '', 3),

+ 2 - 0
modules/boonex/videos/template/form_ghost_template.html

@@ -31,7 +31,9 @@
     $('#bx-base-general-intert-to-post-link-{file_id}').show();
 
     $('#bx-uploader-file-{storage_object}-{file_id} .bx-base-general-use-as-thumb input[value="__thumb_id__"]').attr('checked', true);
+	<bx_if:init_poster>
     $('#bx-uploader-file-{storage_object}-{file_id} .bx-base-general-use-as-poster input[value="__poster_id__"]').attr('checked', true);
+	</bx_if:init_poster>
 
     // disable images drag&drop, because resized images address can be reset after some time
     $(".bx-base-general-icon-{file_id}").bind('dragstart', function(){

+ 1 - 1
template/_header_js.html

@@ -2,7 +2,7 @@
     var sUrlRoot = '<bx_url_root />';
 
     $(document).ready(function () {
-        bx_time('__lang__');
+        bx_time('__lang_country__');
     });
 
     (function(w) {

+ 0 - 7
template/scripts/BxBaseFormAccount.php

@@ -59,13 +59,6 @@ class BxFormAccountCheckerHelper extends BxDolFormCheckerHelper
 
         return BxDolAccountQuery::getInstance()->getIdByEmail($s) ? _t('_sys_form_account_input_email_uniq_error', BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=forgot-password')) : true;
     }
-    
-    function checkPassword($s)
-    {
-        if (!$this->checkLength($s, 8, 1024))
-            return false;
-        return self::checkPreg ($s, "~^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).~");
-    }
 }
 
 /**

+ 1 - 1
template/scripts/BxBaseFormView.php

@@ -1419,7 +1419,7 @@ BLAH;
 
                 'jquery.webForms.js',
 
-                'jquery-ui/i18n/jquery.ui.datepicker-' . $sUiLang . '.js',
+                'jquery-ui/i18n/jquery.ui.datepicker-' . $sUiLang . '.min.js',
 
             	'jquery-minicolors/jquery.minicolors.min.js',