Răsfoiți Sursa

Merge branch 'master' of github.com:boonex/dolphin

Alex Trofimov 11 ani în urmă
părinte
comite
a39b317688
62 a modificat fișierele cu 409 adăugiri și 507 ștergeri
  1. 2 1
      install/sql/system.sql
  2. 17 19
      modules/base/general/classes/BxBaseModGeneralGridAdministration.php
  3. 24 4
      modules/base/general/classes/BxBaseModGeneralMenuManageTools.php
  4. 15 7
      modules/base/general/classes/BxBaseModGeneralModule.php
  5. 20 1
      modules/base/profile/classes/BxBaseModProfileGridAdministration.php
  6. 1 1
      modules/base/profile/classes/BxBaseModProfileGridCommon.php
  7. 0 29
      modules/base/profile/classes/BxBaseModProfileGridModeration.php
  8. 31 0
      modules/base/profile/classes/BxBaseModProfileMenuManageTools.php
  9. 14 0
      modules/base/profile/classes/BxBaseModProfileModule.php
  10. 3 0
      modules/base/text/classes/BxBaseModTextGridAdministration.php
  11. 1 1
      modules/base/text/classes/BxBaseModTextGridCommon.php
  12. 0 29
      modules/base/text/classes/BxBaseModTextGridModeration.php
  13. 10 1
      modules/boonex/accounts/classes/BxAccntGridAdministration.php
  14. 0 23
      modules/boonex/accounts/classes/BxAccntGridModeration.php
  15. 29 0
      modules/boonex/accounts/classes/BxAccntMenuManageTools.php
  16. 6 3
      modules/boonex/accounts/classes/BxAccntModule.php
  17. 4 1
      modules/boonex/accounts/install/langs/en.xml
  18. 8 3
      modules/boonex/accounts/install/sql/disable.sql
  19. 31 32
      modules/boonex/accounts/install/sql/enable.sql
  20. 0 2
      modules/boonex/albums/classes/BxAlbumsConfig.php
  21. 0 23
      modules/boonex/albums/classes/BxAlbumsGridModeration.php
  22. 5 2
      modules/boonex/albums/install/langs/en.xml
  23. 3 3
      modules/boonex/albums/install/sql/disable.sql
  24. 10 26
      modules/boonex/albums/install/sql/enable.sql
  25. 6 0
      modules/boonex/albums/js/manage_tools.js
  26. 3 0
      modules/boonex/developer/install/langs/en.xml
  27. 13 11
      modules/boonex/developer/install/sql/install.sql
  28. 8 8
      modules/boonex/ocean/data/template/bx_timeline/css/view.less
  29. 0 2
      modules/boonex/organizations/classes/BxOrgsConfig.php
  30. 0 23
      modules/boonex/organizations/classes/BxOrgsGridModeration.php
  31. 6 1
      modules/boonex/organizations/install/langs/en.xml
  32. 14 32
      modules/boonex/organizations/install/sql/enable.sql
  33. 6 0
      modules/boonex/organizations/js/manage_tools.js
  34. 0 2
      modules/boonex/persons/classes/BxPersonsConfig.php
  35. 0 23
      modules/boonex/persons/classes/BxPersonsGridModeration.php
  36. 6 1
      modules/boonex/persons/install/langs/en.xml
  37. 3 3
      modules/boonex/persons/install/sql/disable.sql
  38. 14 32
      modules/boonex/persons/install/sql/enable.sql
  39. 6 0
      modules/boonex/persons/js/manage_tools.js
  40. 0 2
      modules/boonex/posts/classes/BxPostsConfig.php
  41. 0 23
      modules/boonex/posts/classes/BxPostsGridModeration.php
  42. 4 1
      modules/boonex/posts/install/langs/en.xml
  43. 3 3
      modules/boonex/posts/install/sql/disable.sql
  44. 10 26
      modules/boonex/posts/install/sql/enable.sql
  45. 6 0
      modules/boonex/posts/js/manage_tools.js
  46. 6 6
      modules/boonex/timeline/classes/BxTimelineMenuItemActions.php
  47. 16 12
      modules/boonex/timeline/classes/BxTimelineMenuItemManage.php
  48. 9 16
      modules/boonex/timeline/classes/BxTimelineModule.php
  49. 0 8
      modules/boonex/timeline/classes/BxTimelineTemplate.php
  50. 1 0
      modules/boonex/timeline/install/langs/en.xml
  51. 2 1
      modules/boonex/timeline/install/sql/enable.sql
  52. 0 15
      modules/boonex/timeline/js/view.js
  53. 9 0
      modules/boonex/timeline/template/css/view-media-desktop.css
  54. 4 0
      modules/boonex/timeline/template/css/view-media-tablet.css
  55. 0 21
      modules/boonex/timeline/template/css/view.css
  56. 4 19
      modules/boonex/timeline/template/item.html
  57. 1 0
      studio/classes/BxDolStudioBuilderPageQuery.php
  58. 6 0
      studio/template/css/builder_page.css
  59. 4 0
      studio/template/css/general.css
  60. 1 1
      studio/template/menu_side.html
  61. 3 3
      studio/template/scripts/BxBaseStudioBuilderPage.php
  62. 1 1
      template/scripts/BxBaseMenu.php

+ 2 - 1
install/sql/system.sql

@@ -3199,6 +3199,7 @@ CREATE TABLE IF NOT EXISTS `sys_pages_blocks` (
   `object` varchar(64) NOT NULL,
   `cell_id` int(11) NOT NULL DEFAULT '1',
   `module` varchar(32) NOT NULL,
+  `title_system` varchar(255) NOT NULL,
   `title` varchar(255) NOT NULL,
   `designbox_id` int(11) NOT NULL DEFAULT '11',
   `visible_for_levels` int(11) NOT NULL DEFAULT '2147483647',
@@ -3224,7 +3225,7 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designb
 -- content blocks
 INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
 
-('sys_home', 1, 'system', '_sys_page_block_title_login', 11, 2147483647, 'service', 'a:3:{s:6:\"module\";s:6:\"system\";s:6:\"method\";s:10:\"login_form\";s:5:\"class\";s:17:\"TemplServiceLogin\";}', 0, 1, 1),
+('sys_home', 1, 'system', '_sys_page_block_title_login', 11, 2147483647, 'service', 'a:3:{s:6:\"module\";s:6:\"system\";s:6:\"method\";s:10:\"login_form\";s:5:\"class\";s:17:\"TemplServiceLogin\";}', 1, 0, 1),
 
 ('sys_about', 1, 'system', '_sys_page_block_title_about', 11, 2147483647, 'lang', '_sys_page_lang_block_about', 0, 1, 1),
 

+ 17 - 19
modules/base/general/classes/BxBaseModGeneralGridAdministration.php

@@ -11,6 +11,9 @@
 bx_import('BxDolModule');
 bx_import('BxTemplGrid');
 
+define('BX_DOL_MANAGE_TOOLS_ADMINISTRATION', 'administration');
+define('BX_DOL_MANAGE_TOOLS_COMMON', 'common');
+
 class BxBaseModGeneralGridAdministration extends BxTemplGrid
 {
 	protected $MODULE;
@@ -19,9 +22,6 @@ class BxBaseModGeneralGridAdministration extends BxTemplGrid
 	protected $_sManageType;
 	protected $_sParamsDivider;
 
-	protected $_sFilterName;
-	protected $_sFilterValue;
-
     public function __construct ($aOptions, $oTemplate = false)
     {
     	$this->_oModule = BxDolModule::getInstance($this->MODULE);
@@ -30,15 +30,10 @@ class BxBaseModGeneralGridAdministration extends BxTemplGrid
 
         parent::__construct ($aOptions, $oTemplate);
 
-        $this->_sManageType = 'administration';
+        $this->_sManageType = BX_DOL_MANAGE_TOOLS_ADMINISTRATION;
         $this->_sParamsDivider = '#-#';
 
         $this->_sDefaultSortingOrder = 'DESC';
-
-        $this->_sFilterName = 'filter';
-        $sFilter = bx_get($this->_sFilterName);
-        if(!empty($sFilter))
-        	$this->_sFilterValue = bx_process_input($sFilter);
     }
 
 	public function performActionDelete($aParams = array())
@@ -73,13 +68,24 @@ class BxBaseModGeneralGridAdministration extends BxTemplGrid
         $this->_echoResultJson($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->checkAllowedEditAnyEntry() !== CHECK_ACTION_RESULT_ALLOWED)
+			return '';
+
+    	return $this->_getActionDefault($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
+    }
+
     protected function _getActionSettings($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
     {
     	$sJsObject = $this->_oModule->_oConfig->getJsObject('manage_tools');
     	$sMenuName = $this->_oModule->_oConfig->CNF['OBJECT_MENU_MANAGE_TOOLS'];
 
     	bx_import('BxDolMenu');
-    	$sMenu = BxDolMenu::getObjectInstance($sMenuName)->getCode();
+    	$oMenu = BxDolMenu::getObjectInstance($sMenuName);
+    	$oMenu->setContentId($aRow['id']);
+
+    	$sMenu = $oMenu->getCode();
     	if(empty($sMenu))
     		return '';
 
@@ -88,15 +94,7 @@ class BxBaseModGeneralGridAdministration extends BxTemplGrid
     		"onclick" => "$(this).off('click'); " . $sJsObject . ".onClickSettings('" . $sMenuName . "', this);"
     	));
 
-    	return $this->_getActionDefault ($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
-    }
-
-    protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
-    {
-    	if(empty($sFilter) && !empty($this->_sFilterValue))
-    		$sFilter = $this->_sFilterValue;
-
-		return parent::_getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
+    	return $this->_getActionDefault($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
     }
 
     protected function _getFilterSelectOne($sFilterName, $sFilterValue, $aFilterValues)

+ 24 - 4
modules/base/general/classes/BxBaseModGeneralMenuManageTools.php

@@ -17,6 +17,8 @@ bx_import('BxTemplMenu');
 class BxBaseModGeneralMenuManageTools extends BxTemplMenu
 {
 	protected $_oModule;
+	protected $_iContentId;
+	protected $_aContentInfo;
 
     public function __construct($aObject, $oTemplate = false)
     {
@@ -25,15 +27,33 @@ class BxBaseModGeneralMenuManageTools extends BxTemplMenu
         bx_import('BxDolModule');
         $this->_oModule = BxDolModule::getInstance($this->MODULE);
 
-        $iContentId = 0;
+        $this->_iContentId = 0;
+        $this->_aContentInfo = array();
+
         if(bx_get('content_id') !== false)
-        	$iContentId = (int)bx_get('content_id');
+        	$this->setContentId(bx_get('content_id'));
 
 		$this->addMarkers(array(
-			'js_object' => $this->_oModule->_oConfig->getJsObject('manage_tools'),
-			'content_id' => $iContentId
+			'js_object' => $this->_oModule->_oConfig->getJsObject('manage_tools')
 		));
     }
+
+    public function setContentId($iContentId)
+    {
+    	$this->_iContentId = (int)$iContentId;
+    	if(!empty($this->_iContentId)) {
+    		$this->_aContentInfo = $this->_getContentInfo($this->_iContentId);
+
+    		$this->addMarkers(array(
+    			'content_id' => $this->_iContentId
+			));
+    	}
+    }
+
+    protected function _getContentInfo($iContentId)
+    {
+    	return !empty($this->_oModule) && method_exists($this->_oModule->_oDb, 'getContentInfoById') ? $this->_oModule->_oDb->getContentInfoById($iContentId) : array();
+    }
 }
 
 /** @} */

+ 15 - 7
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -62,20 +62,16 @@ class BxBaseModGeneralModule extends BxDolModule
 
 		$CNF = &$this->_oConfig->CNF;
 
-		bx_import('BxDolAcl');
-		$oAcl = BxDolAcl::getInstance();
-
 		$sMenu = '';
-		if($oAcl->isMemberLevelInSet(192)) {
+		bx_import('BxDolAcl');
+		if(BxDolAcl::getInstance()->isMemberLevelInSet(192)) {
 			bx_import('BxDolPermalinks');
 			$oPermalink = BxDolPermalinks::getInstance();
 
 			$aMenuItems = array();
 			if(!empty($CNF['OBJECT_GRID_COMMON']) && !empty($CNF['T']['menu_item_manage_my']))
 				$aMenuItems[] = array('id' => 'manage-common', 'name' => 'manage-common', 'class' => '', 'link' => $oPermalink->permalink($CNF['URL_MANAGE_COMMON']), 'target' => '_self', 'title' => _t($CNF['T']['menu_item_manage_my']), 'active' => 1);
-			if(!empty($CNF['OBJECT_GRID_MODERATION']) && !empty($CNF['T']['menu_item_manage_all']) && $oAcl->isMemberLevelInSet(64))
-				$aMenuItems[] = array('id' => 'manage-moderation', 'name' => 'manage-moderation', 'class' => '', 'link' => $oPermalink->permalink($CNF['URL_MANAGE_MODERATION']), 'target' => '_self', 'title' => _t($CNF['T']['menu_item_manage_all']), 'active' => 1);
-			if(!empty($CNF['OBJECT_GRID_ADMINISTRATION']) && !empty($CNF['T']['menu_item_manage_all']) && $oAcl->isMemberLevelInSet(128))
+			if(!empty($CNF['OBJECT_GRID_ADMINISTRATION']) && !empty($CNF['T']['menu_item_manage_all']))
 				$aMenuItems[] = array('id' => 'manage-administration', 'name' => 'manage-administration', 'class' => '', 'link' => $oPermalink->permalink($CNF['URL_MANAGE_ADMINISTRATION']), 'target' => '_self', 'title' => _t($CNF['T']['menu_item_manage_all']), 'active' => 1);
 
 			if(count($aMenuItems) > 1) {
@@ -262,6 +258,18 @@ class BxBaseModGeneralModule extends BxDolModule
         return CHECK_ACTION_RESULT_ALLOWED;
     }
 
+    /**
+     * @return CHECK_ACTION_RESULT_ALLOWED if access is granted or error message if access is forbidden. So make sure to make strict(===) checking.
+     */
+    public function checkAllowedEditAnyEntry ($isPerformAction = false)
+    {
+    	$aCheck = checkActionModule($this->_iProfileId, 'edit any entry', $this->getName(), $isPerformAction);
+    	if($aCheck[CHECK_ACTION_RESULT] === CHECK_ACTION_RESULT_ALLOWED)
+    		return CHECK_ACTION_RESULT_ALLOWED;
+
+    	return _t('_sys_txt_access_denied');
+    }
+
     // ====== PROTECTED METHODS
 
     protected function _serviceBrowse ($sMode, $aParams = false, $iDesignBox = BX_DB_PADDING_DEF, $bDisplayEmptyMsg = false, $bAjaxPaginate = true, $sClassSearchResult = 'SearchResult')

+ 20 - 1
modules/base/profile/classes/BxBaseModProfileGridAdministration.php

@@ -80,7 +80,23 @@ class BxBaseModProfileGridAdministration extends BxBaseModGeneralGridAdministrat
     	$this->performActionDelete(array('with_content' => true));
     }
 
-	protected function _switcherChecked2State($isChecked)
+    protected function _getActionSetAclLevel($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
+    {
+    	if($this->_sManageType == BX_DOL_MANAGE_TOOLS_ADMINISTRATION && $this->_oModule->checkAllowedSetMembership($aRow) !== CHECK_ACTION_RESULT_ALLOWED)
+			return '';
+
+		return $this->_getActionDefault($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);	
+    }
+
+	protected function _getActionDeleteWithContent($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
+    {
+		if($this->_sManageType == BX_DOL_MANAGE_TOOLS_ADMINISTRATION && $this->_oModule->checkAllowedEditAnyEntry() !== CHECK_ACTION_RESULT_ALLOWED)
+			return '';
+
+    	return $this->_getActionDefault($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
+    }
+    
+    protected function _switcherChecked2State($isChecked)
     {
         return $isChecked ? 'active' : 'suspended';
     }
@@ -171,6 +187,9 @@ class BxBaseModProfileGridAdministration extends BxBaseModGeneralGridAdministrat
 
 	protected function _doDelete($iId, $aParams = array())
     {
+    	if($this->_oModule->checkMyself($iId))
+    		return false;
+
     	if(isset($aParams['with_content']) && $aParams['with_content'] === true) {
     		$oProfile = $this->_getProfileObject($iId);
 

+ 1 - 1
modules/base/profile/classes/BxBaseModProfileGridCommon.php

@@ -17,7 +17,7 @@ class BxBaseModProfileGridCommon extends BxBaseModProfileGridAdministration
     {
         parent::__construct ($aOptions, $oTemplate);
 
-        $this->_sManageType = 'common';
+        $this->_sManageType = BX_DOL_MANAGE_TOOLS_COMMON;
     }
 
     protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)

+ 0 - 29
modules/base/profile/classes/BxBaseModProfileGridModeration.php

@@ -1,29 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    BaseProfile Base classes for profile modules
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-bx_import('BxBaseModProfileGridAdministration');
-
-class BxBaseModProfileGridModeration extends BxBaseModProfileGridAdministration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-        parent::__construct ($aOptions, $oTemplate);
-
-        $this->_sManageType = 'moderation';
-    }
-
-	public function performActionDelete($bWithContent = false)
-    {
-        $this->_echoResultJson(array());
-    }
-}
-
-/** @} */

+ 31 - 0
modules/base/profile/classes/BxBaseModProfileMenuManageTools.php

@@ -16,10 +16,41 @@ bx_import('BxBaseModGeneralMenuManageTools');
  */
 class BxBaseModProfileMenuManageTools extends BxBaseModGeneralMenuManageTools
 {
+
     public function __construct($aObject, $oTemplate = false)
     {
         parent::__construct($aObject, $oTemplate);
     }
+
+	/**
+     * Check if menu items is visible.
+     * @param $a menu item array
+     * @return boolean
+     */
+    protected function _isVisible ($a)
+    {
+        if(!parent::_isVisible($a))
+            return false;
+
+        if(empty($this->_aContentInfo) || !is_array($this->_aContentInfo))
+        	return false;
+
+        $sCheckFuncName = '';
+        switch ($a['name']) {
+            case 'delete':
+            case 'delete-with-content':
+            	if($this->_oModule->checkMyself($this->_iContentId))
+            		return false;
+
+                $sCheckFuncName = 'checkAllowedDelete';
+                break;
+        }
+
+        if(!$sCheckFuncName || !method_exists($this->_oModule, $sCheckFuncName))
+            return true;
+
+        return $this->_oModule->{$sCheckFuncName}($this->_aContentInfo) === CHECK_ACTION_RESULT_ALLOWED;
+    }
 }
 
 /** @} */

+ 14 - 0
modules/base/profile/classes/BxBaseModProfileModule.php

@@ -350,6 +350,20 @@ class BxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolPro
         return $this->_checkAllowedConnect ($aDataEntry, $isPerformAction, 'sys_profiles_subscriptions', false, true);
     }
 
+    public function checkMyself($iContentId)
+    {
+		$iLogged = (int)bx_get_logged_profile_id();
+    	if(empty($iLogged))
+    		return false;
+
+    	bx_import('BxDolProfile');
+    	$oProfile = BxDolProfile::getInstanceByContentAndType((int)$iContentId, $this->_oConfig->getName());
+    	if(!$oProfile)
+    		return false;
+
+		return $oProfile->id() == $iLogged;
+    }
+
     // ====== PROTECTED METHODS
 
     protected function _checkAllowedConnect (&$aDataEntry, $isPerformAction, $sObjConnection, $isMutual, $isInvertResult, $isSwap = false)

+ 3 - 0
modules/base/text/classes/BxBaseModTextGridAdministration.php

@@ -121,6 +121,9 @@ class BxBaseModTextGridAdministration extends BxBaseModGeneralGridAdministration
 
     protected function _getActionEdit($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
     {
+    	if($this->_sManageType == BX_DOL_MANAGE_TOOLS_ADMINISTRATION && $this->_oModule->checkAllowedEditAnyEntry() !== CHECK_ACTION_RESULT_ALLOWED)
+			return '';
+
     	$CNF = &$this->_oModule->_oConfig->CNF;
 
 		bx_import('BxDolPermalinks');

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

@@ -17,7 +17,7 @@ class BxBaseModTextGridCommon extends BxBaseModTextGridAdministration
     {
         parent::__construct ($aOptions, $oTemplate);
 
-        $this->_sManageType = 'common';
+        $this->_sManageType = BX_DOL_MANAGE_TOOLS_COMMON;
     }
 
     protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)

+ 0 - 29
modules/base/text/classes/BxBaseModTextGridModeration.php

@@ -1,29 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    BaseText Base classes for text modules
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-bx_import('BxBaseModTextGridAdministration');
-
-class BxBaseModTextGridModeration extends BxBaseModTextGridAdministration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-        parent::__construct ($aOptions, $oTemplate);
-
-        $this->_sManageType = 'moderation';
-    }
-
-	public function performActionDelete($aParams = array())
-    {
-        $this->_echoResultJson(array());
-    }
-}
-
-/** @} */

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

@@ -54,6 +54,15 @@ class BxAccntGridAdministration extends BxBaseModProfileGridAdministration
 		$this->_echoResultJson($iAffected ? array('grid' => $this->getCode(false), 'blink' => $aIdsAffected) : array('msg' => _t($CNF['T']['grid_action_err_perform'])));
     }
 
+    public function resetQueryParams()
+    {
+        $aKeys = array('order_field', 'order_dir', $this->_aOptions['paginate_get_start'], $this->_aOptions['paginate_get_per_page']);
+        foreach ($aKeys as $sKey) {
+            unset($_GET[$sKey]);
+            unset($_POST[$sKey]);
+        }
+    }
+
 	protected function _performActionEnable($isChecked)
     {
     	$CNF = &$this->_oModule->_oConfig->CNF;
@@ -109,7 +118,7 @@ class BxAccntGridAdministration extends BxBaseModProfileGridAdministration
 	protected function _getContentInfo($iId)
     {
     	bx_import('BxDolAccount');
-    	return BxDolAccount::getInstance($iId)->getInfo();
+    	return BxDolAccountQuery::getInstance()->getInfoById($iId);
     }
 
 	protected function _doDelete($iId, $aParams = array())

+ 0 - 23
modules/boonex/accounts/classes/BxAccntGridModeration.php

@@ -1,23 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    Accounts Accounts
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-require_once('BxAccntGridAdministration');
-
-class BxAccntGridModeration extends BxAccntGridAdministration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-    	$this->MODULE = 'bx_accounts';
-        parent::__construct ($aOptions, $oTemplate);
-    }
-}
-
-/** @} */

+ 29 - 0
modules/boonex/accounts/classes/BxAccntMenuManageTools.php

@@ -22,6 +22,35 @@ class BxAccntMenuManageTools extends BxBaseModGeneralMenuManageTools
         $this->MODULE = 'bx_accounts';
         parent::__construct($aObject, $oTemplate);
     }
+
+    /**
+     * Check if menu items is visible.
+     * @param $a menu item array
+     * @return boolean
+     */
+    protected function _isVisible ($a)
+    {
+        if(!parent::_isVisible($a))
+            return false;
+
+        bx_import('BxDolAccountQuery');
+        $aDataEntry = BxDolAccountQuery::getInstance()->getInfoById($this->_iContentId);
+        if(empty($aDataEntry) || !is_array($aDataEntry))
+        	return false;
+
+        $sCheckFuncName = '';
+        switch ($a['name']) {
+            case 'delete':
+            case 'delete-with-content':
+                $sCheckFuncName = 'checkAllowedDelete';
+                break;
+        }
+
+        if(!$sCheckFuncName || !method_exists($this->_oModule, $sCheckFuncName))
+            return true;
+
+        return $this->_oModule->{$sCheckFuncName}($aDataEntry) === CHECK_ACTION_RESULT_ALLOWED;
+    }
 }
 
 /** @} */

+ 6 - 3
modules/boonex/accounts/classes/BxAccntModule.php

@@ -38,12 +38,15 @@ class BxAccntModule extends BxBaseModGeneralModule
 
     public function checkAllowedDelete(&$aDataEntry, $isPerformAction = false)
     {
+    	if(isAdmin() && (int)$aDataEntry['id'] == getLoggedId())
+    		return _t('_sys_txt_access_denied');
+
         // check ACL
         $aCheck = checkActionModule($this->_iProfileId, 'delete account', 'system', $isPerformAction);
-        if($aCheck[CHECK_ACTION_RESULT] === CHECK_ACTION_RESULT_ALLOWED)
-            return CHECK_ACTION_RESULT_ALLOWED;
+        if($aCheck[CHECK_ACTION_RESULT] != CHECK_ACTION_RESULT_ALLOWED)
+            return $aCheck[CHECK_ACTION_MESSAGE];
 
-        return _t('_sys_txt_access_denied');
+        return CHECK_ACTION_RESULT_ALLOWED;
     }
 }
 

+ 4 - 1
modules/boonex/accounts/install/langs/en.xml

@@ -2,10 +2,11 @@
 <resources name="en" flag="gb" title="English">
 	<string name="_bx_accnt"><![CDATA[Accounts]]></string>
 
-	<string name="_bx_accnt_page_title_sys_manage"><![CDATA[Manage Accounts]]></string>
+	<string name="_bx_accnt_page_title_sys_manage_administration"><![CDATA[Manage All Accounts]]></string>
 	<string name="_bx_accnt_page_title_manage"><![CDATA[Manage Accounts]]></string>
 	<string name="_bx_accnt_page_title_browse"><![CDATA[Accounts]]></string>
 
+	<string name="_bx_accnt_page_block_title_system_manage_administration"><![CDATA[Manage All Accounts]]></string>
 	<string name="_bx_accnt_page_block_title_manage"><![CDATA[Manage Accounts]]></string>
 
 	<string name="_bx_accnt_menu_set_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
@@ -20,6 +21,8 @@
 	<string name="_bx_accnt_menu_item_title_admt_accounts"><![CDATA[Accounts - {addon} unconfirmed]]></string>
 	<string name="_bx_accnt_menu_item_title_manage"><![CDATA[Manage]]></string>
 
+	<string name="_bx_accnt_acl_action_edit_any_account"><![CDATA[Edit Any Account]]></string>
+
 	<string name="_bx_accnt_grid_filter_item_title_adm_select_one_filter1"><![CDATA[All Statuses]]></string>
 	<string name="_bx_accnt_grid_filter_item_title_adm_active"><![CDATA[Active]]></string>
 	<string name="_bx_accnt_grid_filter_item_title_adm_pending"><![CDATA[Pending]]></string>

+ 8 - 3
modules/boonex/accounts/install/sql/disable.sql

@@ -12,7 +12,12 @@ DELETE FROM `sys_menu_sets` WHERE `module` = @sName;
 DELETE FROM `sys_menu_items` WHERE `module` = @sName;
 
 
+-- ACL
+DELETE `sys_acl_actions`, `sys_acl_matrix` FROM `sys_acl_actions`, `sys_acl_matrix` WHERE `sys_acl_matrix`.`IDAction` = `sys_acl_actions`.`ID` AND `sys_acl_actions`.`Module` = @sName;
+DELETE FROM `sys_acl_actions` WHERE `Module` = @sName;
+
+
 -- GRIDS
-DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_accounts_administration', 'bx_accounts_moderation');
-DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_accounts_administration', 'bx_accounts_moderation');
-DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_accounts_administration', 'bx_accounts_moderation');
+DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_accounts_administration');
+DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_accounts_administration');
+DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_accounts_administration');

+ 31 - 32
modules/boonex/accounts/install/sql/enable.sql

@@ -1,19 +1,12 @@
 SET @sName = 'bx_accounts';
 
 
--- PAGE: module moderation
-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_accounts_moderation', '_bx_accnt_page_title_sys_manage', '_bx_accnt_page_title_manage', @sName, 5, 64, 1, 'accounts-moderation', 'page.php?i=accounts-moderation', '', '', '', 0, 1, 0, '', '');
-
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_accounts_moderation', 1, @sName, '_bx_accnt_page_block_title_manage', 11, 64, 'service', 'a:3:{s:6:\"module\";s:11:\"bx_accounts\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:10:\"moderation\";}}', 0, 1, 0);
-
 -- PAGE: module administration
 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_accounts_administration', '_bx_accnt_page_title_sys_manage', '_bx_accnt_page_title_manage', @sName, 5, 128, 1, 'accounts-administration', 'page.php?i=accounts-administration', '', '', '', 0, 1, 0, '', '');
+('bx_accounts_administration', '_bx_accnt_page_title_sys_manage_administration', '_bx_accnt_page_title_manage', @sName, 5, 192, 1, 'accounts-administration', 'page.php?i=accounts-administration', '', '', '', 0, 1, 0, '', '');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_accounts_administration', 1, @sName, '_bx_accnt_page_block_title_manage', 11, 128, 'service', 'a:3:{s:6:\"module\";s:11:\"bx_accounts\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_accounts_administration', 1, @sName, '_bx_accnt_page_block_title_system_manage_administration', '_bx_accnt_page_block_title_manage', 11, 192, 'service', 'a:3:{s:6:\"module\";s:11:\"bx_accounts\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
 
 
 -- MENU: manage tools submenu
@@ -25,20 +18,40 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
 ('bx_accounts_menu_manage_tools', @sName, 'resend-cemail', '_bx_accnt_menu_item_title_system_resend_cemail', '_bx_accnt_menu_item_title_resend_cemail', 'javascript:void(0)', 'javascript:{js_object}.onClickResendCemail({content_id});', '_self', 'envelope-o', '', 192, 1, 0, 1),
-('bx_accounts_menu_manage_tools', @sName, 'delete', '_bx_accnt_menu_item_title_system_delete', '_bx_accnt_menu_item_title_delete', 'javascript:void(0)', 'javascript:{js_object}.onClickDelete({content_id});', '_self', 'trash-o', '', 128, 1, 0, 2),
-('bx_accounts_menu_manage_tools', @sName, 'delete-with-content', '_bx_accnt_menu_item_title_system_delete_with_content', '_bx_accnt_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id});', '_self', 'trash-o', '', 128, 1, 0, 3);
+('bx_accounts_menu_manage_tools', @sName, 'delete', '_bx_accnt_menu_item_title_system_delete', '_bx_accnt_menu_item_title_delete', 'javascript:void(0)', 'javascript:{js_object}.onClickDelete({content_id});', '_self', 'trash-o', '', 192, 1, 0, 2),
+('bx_accounts_menu_manage_tools', @sName, 'delete-with-content', '_bx_accnt_menu_item_title_system_delete_with_content', '_bx_accnt_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id});', '_self', 'trash-o', '', 192, 1, 0, 3);
 
 -- 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', @sName, 'accounts-moderation', '_bx_accnt_menu_item_title_system_admt_accounts', '_bx_accnt_menu_item_title_admt_accounts', 'page.php?i=accounts-moderation', '', '_self', '', 'a:2:{s:6:"module";s:11:"bx_accounts";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 64, 1, 0, @iManageMenuOrder + 1),
-('sys_account_dashboard_manage_tools', @sName, 'accounts-administration', '_bx_accnt_menu_item_title_system_admt_accounts', '_bx_accnt_menu_item_title_admt_accounts', 'page.php?i=accounts-administration', '', '_self', '', 'a:2:{s:6:"module";s:11:"bx_accounts";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 128, 1, 0, @iManageMenuOrder + 2);
+('sys_account_dashboard_manage_tools', @sName, 'accounts-administration', '_bx_accnt_menu_item_title_system_admt_accounts', '_bx_accnt_menu_item_title_admt_accounts', 'page.php?i=accounts-administration', '', '_self', '', 'a:2:{s:6:"module";s:11:"bx_accounts";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, @iManageMenuOrder + 1);
+
+
+-- ACL
+INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
+(@sName, 'edit any entry', NULL, '_bx_accnt_acl_action_edit_any_account', '', 1, 3);
+SET @iIdActionProfileEditAny = LAST_INSERT_ID();
+
+SET @iUnauthenticated = 1;
+SET @iAccount = 2;
+SET @iStandard = 3;
+SET @iUnconfirmed = 4;
+SET @iPending = 5;
+SET @iSuspended = 6;
+SET @iModerator = 7;
+SET @iAdministrator = 8;
+SET @iPremium = 9;
+
+INSERT INTO `sys_acl_matrix` (`IDLevel`, `IDAction`) VALUES
+
+-- edit any entry 
+(@iModerator, @iIdActionProfileEditAny),
+(@iAdministrator, @iIdActionProfileEditAny);
 
 
 -- 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`, `override_class_name`, `override_class_file`) VALUES
-('bx_accounts_administration', 'Sql', 'SELECT `ta`.*, `tp`.`status` AS `status` FROM `sys_accounts` AS `ta` LEFT JOIN `sys_profiles` AS `tp` ON `ta`.`id`=`tp`.`account_id` AND `tp`.`type`=''system'' WHERE 1 ', 'sys_accounts', 'id', 'logged', 'status', '', 20, NULL, 'start', '', 'name,email', '', 'like', '', '', 'BxAccntGridAdministration', 'modules/boonex/accounts/classes/BxAccntGridAdministration.php'),
-('bx_accounts_moderation', 'Sql', 'SELECT `ta`.*, `tp`.`status` AS `status` FROM `sys_accounts` AS `ta` LEFT JOIN `sys_profiles` AS `tp` ON `ta`.`id`=`tp`.`account_id` AND `tp`.`type`=''system'' WHERE 1 ', 'sys_accounts', 'id', 'logged', 'status', '', 20, NULL, 'start', '', 'name,email', '', 'like', '', '', 'BxAccntGridModeration', 'modules/boonex/accounts/classes/BxAccntGridModeration.php');
+('bx_accounts_administration', 'Sql', 'SELECT `ta`.*, `tp`.`status` AS `status` FROM `sys_accounts` AS `ta` LEFT JOIN `sys_profiles` AS `tp` ON `ta`.`id`=`tp`.`account_id` AND `tp`.`type`=''system'' WHERE 1 ', 'sys_accounts', 'id', 'logged', 'status', '', 20, NULL, 'start', '', 'name,email', '', 'like', '', '', 'BxAccntGridAdministration', 'modules/boonex/accounts/classes/BxAccntGridAdministration.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('bx_accounts_administration', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
@@ -48,16 +61,7 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('bx_accounts_administration', 'email_confirmed', '_bx_accnt_grid_column_title_adm_email_confirmed', '5%', 0, '', '', 5),
 ('bx_accounts_administration', 'profiles', '_bx_accnt_grid_column_title_adm_profiles', '22%', 0, '22', '', 5),
 ('bx_accounts_administration', 'logged', '_bx_accnt_grid_column_title_adm_logged', '15%', 0, '15', '', 7),
-('bx_accounts_administration', 'actions', '', '6%', 0, '', '', 8),
-
-('bx_accounts_moderation', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
-('bx_accounts_moderation', 'switcher', '_bx_accnt_grid_column_title_adm_active', '6%', 0, '', '', 2),
-('bx_accounts_moderation', 'name', '_bx_accnt_grid_column_title_adm_name', '22%', 0, '22', '', 3),
-('bx_accounts_moderation', 'email', '_bx_accnt_grid_column_title_adm_email', '22%', 0, '22', '', 4),
-('bx_accounts_moderation', 'email_confirmed', '_bx_accnt_grid_column_title_adm_email_confirmed', '5%', 0, '', '', 5),
-('bx_accounts_moderation', 'profiles', '_bx_accnt_grid_column_title_adm_profiles', '22%', 0, '22', '', 5),
-('bx_accounts_moderation', 'logged', '_bx_accnt_grid_column_title_adm_logged', '15%', 0, '15', '', 7),
-('bx_accounts_moderation', 'actions', '', '6%', 0, '', '', 8);
+('bx_accounts_administration', 'actions', '', '6%', 0, '', '', 8);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
 ('bx_accounts_administration', 'bulk', 'activate', '_bx_accnt_grid_action_title_adm_activate', '', 0, 0, 1),
@@ -65,9 +69,4 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('bx_accounts_administration', 'bulk', 'resend_cemail', '_bx_accnt_grid_action_title_adm_resend_cemail', '', 0, 0, 3),
 ('bx_accounts_administration', 'bulk', 'delete', '_bx_accnt_grid_action_title_adm_delete', '', 0, 1, 4),
 ('bx_accounts_administration', 'bulk', 'delete_with_content', '_bx_accnt_grid_action_title_adm_delete_with_content', '', 0, 1, 5),
-('bx_accounts_administration', 'single', 'settings', '_bx_accnt_grid_action_title_adm_more_actions', 'cog', 1, 0, 2),
-
-('bx_accounts_moderation', 'bulk', 'activate', '_bx_accnt_grid_action_title_adm_activate', '', 0, 0, 1),
-('bx_accounts_moderation', 'bulk', 'suspend', '_bx_accnt_grid_action_title_adm_suspend', '', 0, 0, 2),
-('bx_accounts_moderation', 'bulk', 'resend_cemail', '_bx_accnt_grid_action_title_adm_resend_cemail', '', 0, 0, 3),
-('bx_accounts_moderation', 'single', 'settings', '_bx_accnt_grid_action_title_adm_more_actions', 'cog', 1, 0, 4);
+('bx_accounts_administration', 'single', 'settings', '_bx_accnt_grid_action_title_adm_more_actions', 'cog', 1, 0, 1);

+ 0 - 2
modules/boonex/albums/classes/BxAlbumsConfig.php

@@ -82,7 +82,6 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             'OBJECT_MENU_SUBMENU_VIEW_ENTRY_MAIN_SELECTION' => 'albums-home', // first item in view entry submenu from main module submenu
             'OBJECT_MENU_MANAGE_TOOLS' => 'bx_albums_menu_manage_tools', //manage menu in content administration tools
             'OBJECT_GRID_ADMINISTRATION' => 'bx_albums_administration',
-        	'OBJECT_GRID_MODERATION' => 'bx_albums_moderation',
         	'OBJECT_GRID_COMMON' => 'bx_albums_common',
         	'OBJECT_UPLOADERS' => array('bx_albums_simple', 'bx_albums_html5'),
 
@@ -121,7 +120,6 @@ class BxAlbumsConfig extends BxBaseModTextConfig
 
         $this->_aGridObjects = array(
         	'common' => $this->CNF['OBJECT_GRID_COMMON'],
-        	'moderation' => $this->CNF['OBJECT_GRID_MODERATION'],
         	'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION'],
         	
         );

+ 0 - 23
modules/boonex/albums/classes/BxAlbumsGridModeration.php

@@ -1,23 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    Albums Albums
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-bx_import('BxBaseModTextGridModeration');
-
-class BxAlbumsGridModeration extends BxBaseModTextGridModeration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-    	$this->MODULE = 'bx_albums';
-        parent::__construct ($aOptions, $oTemplate);
-    }
-}
-
-/** @} */

+ 5 - 2
modules/boonex/albums/install/langs/en.xml

@@ -80,9 +80,12 @@
     <string name="_bx_albums_page_block_title_entries_of_author"><![CDATA[Albums of author]]></string>   
     <string name="_bx_albums_page_block_title_entries_actions"><![CDATA[Albums actions]]></string>
     <string name="_bx_albums_page_block_title_browse_cmts"><![CDATA[Albums' Comments]]></string>
-	<string name="_bx_albums_page_title_sys_manage"><![CDATA[Manage Albums]]></string>
+	<string name="_bx_albums_page_title_sys_manage"><![CDATA[Manage Own Albums]]></string>
+	<string name="_bx_albums_page_title_sys_manage_administration"><![CDATA[Manage All Albums]]></string>
 	<string name="_bx_albums_page_title_manage"><![CDATA[Manage Albums]]></string>
-	<string name="_bx_albums_page_block_title_manage"><![CDATA[Manage Albums]]></string>    
+	<string name="_bx_albums_page_block_title_system_manage"><![CDATA[Manage Own Albums]]></string>
+	<string name="_bx_albums_page_block_title_system_manage_administration"><![CDATA[Manage All Albums]]></string>
+	<string name="_bx_albums_page_block_title_manage"><![CDATA[Manage Albums]]></string>
 
     <string name="_bx_albums_menu_set_title_view_entry"><![CDATA[View Album]]></string>
     <string name="_bx_albums_menu_title_view_entry"><![CDATA[View Album]]></string>

+ 3 - 3
modules/boonex/albums/install/sql/disable.sql

@@ -29,9 +29,9 @@ DELETE FROM `sys_objects_search` WHERE `ObjectName` IN ('bx_albums', 'bx_albums_
 DELETE FROM `sys_objects_metatags` WHERE `object` = 'bx_albums';
 
 -- GRIDS
-DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_albums_administration', 'bx_albums_moderation', 'bx_albums_common');
-DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_albums_administration', 'bx_albums_moderation', 'bx_albums_common');
-DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_albums_administration', 'bx_albums_moderation', 'bx_albums_common');
+DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_albums_administration', 'bx_albums_common');
+DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_albums_administration', 'bx_albums_common');
+DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_albums_administration', 'bx_albums_common');
 
 -- UPLOADERS
 DELETE FROM `sys_objects_uploader` WHERE `object` IN('bx_albums_simple', 'bx_albums_html5');

+ 10 - 26
modules/boonex/albums/install/sql/enable.sql

@@ -107,26 +107,19 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
 ('bx_albums_home', 1, 'bx_albums', '_bx_albums_page_block_title_recent_entries', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:9:"bx_albums";s:6:"method";s:13:"browse_public";s:6:"params";a:3:{s:9:"unit_view";s:8:"extended";s:13:"empty_message";b:1;s:13:"ajax_paginate";b:0;}}', 0, 1, 0);
 
--- PAGE: module manage
+-- PAGE: module manage own
 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_albums_manage', '_bx_albums_page_title_sys_manage', '_bx_albums_page_title_manage', 'bx_albums', 5, 2147483647, 1, 'albums-manage', 'page.php?i=albums-manage', '', '', '', 0, 1, 0, 'BxAlbumsPageBrowse', 'modules/boonex/albums/classes/BxAlbumsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_albums_manage', 1, 'bx_albums', '_bx_albums_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
-
--- PAGE: module moderation
-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_albums_moderation', '_bx_albums_page_title_sys_manage', '_bx_albums_page_title_manage', 'bx_albums', 5, 64, 1, 'albums-moderation', 'page.php?i=albums-moderation', '', '', '', 0, 1, 0, 'BxAlbumsPageBrowse', 'modules/boonex/albums/classes/BxAlbumsPageBrowse.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_albums_manage', 1, 'bx_albums', '_bx_albums_page_block_title_system_manage', '_bx_albums_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_albums_moderation', 1, 'bx_albums', '_bx_albums_page_block_title_manage', 11, 64, 'service', 'a:3:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:10:\"moderation\";}}', 0, 1, 0);
-
--- PAGE: module administration
+-- 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_albums_administration', '_bx_albums_page_title_sys_manage', '_bx_albums_page_title_manage', 'bx_albums', 5, 128, 1, 'albums-administration', 'page.php?i=albums-administration', '', '', '', 0, 1, 0, 'BxAlbumsPageBrowse', 'modules/boonex/albums/classes/BxAlbumsPageBrowse.php');
+('bx_albums_administration', '_bx_albums_page_title_sys_manage_administration', '_bx_albums_page_title_manage', 'bx_albums', 5, 192, 1, 'albums-administration', 'page.php?i=albums-administration', '', '', '', 0, 1, 0, 'BxAlbumsPageBrowse', 'modules/boonex/albums/classes/BxAlbumsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_albums_administration', 1, 'bx_albums', '_bx_albums_page_block_title_manage', 11, 128, 'service', 'a:3:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_albums_administration', 1, 'bx_albums', '_bx_albums_page_block_title_system_manage_administration', '_bx_albums_page_block_title_manage', 11, 192, 'service', 'a:3:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
 
 -- PAGE: add block to homepage
 
@@ -216,8 +209,7 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 -- 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_albums', 'albums-moderation', '_bx_albums_menu_item_title_system_admt_albums', '_bx_albums_menu_item_title_admt_albums', 'page.php?i=albums-moderation', '', '_self', '', 'a:2:{s:6:"module";s:9:"bx_albums";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 64, 1, 0, @iManageMenuOrder + 1),
-('sys_account_dashboard_manage_tools', 'bx_albums', 'albums-administration', '_bx_albums_menu_item_title_system_admt_albums', '_bx_albums_menu_item_title_admt_albums', 'page.php?i=albums-administration', '', '_self', '', 'a:2:{s:6:"module";s:9:"bx_albums";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 128, 1, 0, @iManageMenuOrder + 2);
+('sys_account_dashboard_manage_tools', 'bx_albums', 'albums-administration', '_bx_albums_menu_item_title_system_admt_albums', '_bx_albums_menu_item_title_admt_albums', 'page.php?i=albums-administration', '', '_self', '', 'a:2:{s:6:"module";s:9:"bx_albums";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, @iManageMenuOrder + 1);
 
 -- MENU: add menu item to profiles modules (trigger* menu sets are processed separately upon modules enable/disable)
 
@@ -311,7 +303,6 @@ INSERT INTO `sys_objects_metatags` (`object`, `table_keywords`, `table_locations
 -- 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`, `override_class_name`, `override_class_file`) VALUES
 ('bx_albums_administration', 'Sql', 'SELECT * FROM `bx_albums_albums` WHERE 1 ', 'bx_albums_albums', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 'BxAlbumsGridAdministration', 'modules/boonex/albums/classes/BxAlbumsGridAdministration.php'),
-('bx_albums_moderation', 'Sql', 'SELECT * FROM `bx_albums_albums` WHERE 1 ', 'bx_albums_albums', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 'BxAlbumsGridModeration', 'modules/boonex/albums/classes/BxAlbumsGridModeration.php'),
 ('bx_albums_common', 'Sql', 'SELECT * FROM `bx_albums_albums` WHERE 1 ', 'bx_albums_albums', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 'BxAlbumsGridCommon', 'modules/boonex/albums/classes/BxAlbumsGridCommon.php');
 
 
@@ -322,11 +313,6 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('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_moderation', 'switcher', '', '10%', 0, '', '', 1),
-('bx_albums_moderation', 'title', '_bx_albums_grid_column_title_adm_title', '25%', 0, '', '', 2),
-('bx_albums_moderation', 'added', '_bx_albums_grid_column_title_adm_added', '25%', 1, '25', '', 3),
-('bx_albums_moderation', 'author', '_bx_albums_grid_column_title_adm_author', '25%', 0, '25', '', 4),
-('bx_albums_moderation', 'actions', '', '15%', 0, '', '', 5),
 ('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),
@@ -334,13 +320,11 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('bx_albums_common', 'actions', '', '20%', 0, '', '', 5);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
-('bx_albums_administration', 'bulk', 'delete', '_bx_albums_grid_action_title_adm_delete', '', 0, 1, 2),
+('bx_albums_administration', 'bulk', 'delete', '_bx_albums_grid_action_title_adm_delete', '', 0, 1, 1),
 ('bx_albums_administration', 'single', 'edit', '_bx_albums_grid_action_title_adm_edit', 'pencil', 1, 0, 1),
 ('bx_albums_administration', 'single', 'delete', '_bx_albums_grid_action_title_adm_delete', 'remove', 1, 1, 2),
 ('bx_albums_administration', 'single', 'settings', '_bx_albums_grid_action_title_adm_more_actions', 'cog', 1, 0, 3),
-('bx_albums_moderation', 'single', 'edit', '_bx_albums_grid_action_title_adm_edit', 'pencil', 1, 0, 1),
-('bx_albums_moderation', 'single', 'settings', '_bx_albums_grid_action_title_adm_more_actions', 'cog', 1, 0, 2),
-('bx_albums_common', 'bulk', 'delete', '_bx_albums_grid_action_title_adm_delete', '', 0, 1, 2),
+('bx_albums_common', 'bulk', 'delete', '_bx_albums_grid_action_title_adm_delete', '', 0, 1, 1),
 ('bx_albums_common', 'single', 'edit', '_bx_albums_grid_action_title_adm_edit', 'pencil', 1, 0, 1),
 ('bx_albums_common', 'single', 'delete', '_bx_albums_grid_action_title_adm_delete', 'remove', 1, 1, 2),
 ('bx_albums_common', 'single', 'settings', '_bx_albums_grid_action_title_adm_more_actions', 'cog', 1, 0, 3);

+ 6 - 0
modules/boonex/albums/js/manage_tools.js

@@ -42,4 +42,10 @@ BxAlbumsManageTools.prototype.onClickSettings = function(sMenuObject, oButton) {
 	});
 };
 
+BxAlbumsManageTools.prototype.onClickDelete = function(iContentId) {
+	$('.bx-popup-applied:visible').dolPopupHide();
+
+	glGrids[this._sObjNameGrid].actionWithId(iContentId, 'delete', {}, '', false, 1);
+};
+
 /** @} */

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

@@ -336,6 +336,9 @@
     <string name="_bx_dev_bp_txt_sys_block_module"><![CDATA[Module]]></string>
     <string name="_bx_dev_bp_txt_block_module"><![CDATA[Module]]></string>
     <string name="_bx_dev_bp_err_block_module"><![CDATA[You need to select a module]]></string>
+	<string name="_bx_dev_bp_txt_sys_block_title_system"><![CDATA[Title System]]></string>
+    <string name="_bx_dev_bp_txt_block_title_system"><![CDATA[Title System]]></string>
+    <string name="_bx_dev_bp_err_block_title_system"><![CDATA[You need to enter a value here]]></string>
     <string name="_bx_dev_bp_txt_sys_block_title"><![CDATA[Title]]></string>
     <string name="_bx_dev_bp_txt_block_title"><![CDATA[Title]]></string>
     <string name="_bx_dev_bp_err_block_title"><![CDATA[You need to enter a value here]]></string>

+ 13 - 11
modules/boonex/developer/install/sql/install.sql

@@ -490,6 +490,7 @@ INSERT INTO `sys_form_inputs` (`object`, `module`, `name`, `value`, `values`, `c
 ('bx_developer_bp_block', @sName, 'id', '0', '', 0, 'hidden', '_bx_dev_bp_txt_sys_block_id', '', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 0, 0),
 ('bx_developer_bp_block', @sName, 'object', '', '', 0, 'text', '_bx_dev_bp_txt_sys_block_object', '_bx_dev_bp_txt_block_object', '', 1, 0, 0, '', '', '', 'Length', 'a:2:{s:3:"min";i:6;s:3:"max";i:100;}', '_bx_dev_bp_err_block_object', 'Xss', '', 0, 0),
 ('bx_developer_bp_block', @sName, 'module', '', '', 0, 'select', '_bx_dev_bp_txt_sys_block_module', '_bx_dev_bp_txt_block_module', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_dev_bp_err_block_module', 'Xss', '', 0, 0),
+('bx_developer_bp_block', @sName, 'title_system', '', '', 0, 'text', '_bx_dev_bp_txt_sys_block_title_system', '_bx_dev_bp_txt_block_title_system', '', 1, 0, 0, '', '', '', 'Length', 'a:2:{s:3:"min";i:6;s:3:"max";i:100;}', '_bx_dev_bp_err_block_title_system', 'Xss', '', 0, 0),
 ('bx_developer_bp_block', @sName, 'title', '', '', 0, 'text', '_bx_dev_bp_txt_sys_block_title', '_bx_dev_bp_txt_block_title', '', 1, 0, 0, '', '', '', 'Length', 'a:2:{s:3:"min";i:6;s:3:"max";i:100;}', '_bx_dev_bp_err_block_title', 'Xss', '', 0, 0),
 ('bx_developer_bp_block', @sName, 'designbox_id', '', '', 0, 'select', '_bx_dev_bp_txt_sys_block_designbox_id', '_bx_dev_bp_txt_block_designbox_id', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_dev_bp_err_block_designbox_id', 'Xss', '', 0, 0),
 ('bx_developer_bp_block', @sName, 'visible_for', '', '', 0, 'select', '_bx_dev_bp_txt_sys_block_visible_for', '_bx_dev_bp_txt_block_visible_for', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 0, 0),
@@ -506,17 +507,18 @@ INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_fo
 ('bx_developer_bp_block_edit', 'id', 2147483647, 1, 1),
 ('bx_developer_bp_block_edit', 'object', 2147483647, 1, 2),
 ('bx_developer_bp_block_edit', 'module', 2147483647, 1, 3),
-('bx_developer_bp_block_edit', 'title', 2147483647, 1, 4),
-('bx_developer_bp_block_edit', 'designbox_id', 2147483647, 1, 5),
-('bx_developer_bp_block_edit', 'visible_for', 2147483647, 1, 6),
-('bx_developer_bp_block_edit', 'visible_for_levels', 2147483647, 1, 7),
-('bx_developer_bp_block_edit', 'deletable', 2147483647, 1, 8),
-('bx_developer_bp_block_edit', 'copyable', 2147483647, 1, 9),
-('bx_developer_bp_block_edit', 'active', 2147483647, 1, 10),
-('bx_developer_bp_block_edit', 'controls', 2147483647, 1, 11),
-('bx_developer_bp_block_edit', 'do_submit', 2147483647, 1, 12),
-('bx_developer_bp_block_edit', 'cancel', 2147483647, 1, 13),
-('bx_developer_bp_block_edit', 'delete', 2147483647, 1, 14);
+('bx_developer_bp_block_edit', 'title_system', 2147483647, 1, 4),
+('bx_developer_bp_block_edit', 'title', 2147483647, 1, 5),
+('bx_developer_bp_block_edit', 'designbox_id', 2147483647, 1, 6),
+('bx_developer_bp_block_edit', 'visible_for', 2147483647, 1, 7),
+('bx_developer_bp_block_edit', 'visible_for_levels', 2147483647, 1, 8),
+('bx_developer_bp_block_edit', 'deletable', 2147483647, 1, 9),
+('bx_developer_bp_block_edit', 'copyable', 2147483647, 1, 10),
+('bx_developer_bp_block_edit', 'active', 2147483647, 1, 11),
+('bx_developer_bp_block_edit', 'controls', 2147483647, 1, 12),
+('bx_developer_bp_block_edit', 'do_submit', 2147483647, 1, 13),
+('bx_developer_bp_block_edit', 'cancel', 2147483647, 1, 14),
+('bx_developer_bp_block_edit', 'delete', 2147483647, 1, 15);
 
 --
 -- Polyglot -> Grid descriptors

+ 8 - 8
modules/boonex/ocean/data/template/bx_timeline/css/view.css → modules/boonex/ocean/data/template/bx_timeline/css/view.less

@@ -1,14 +1,14 @@
-@import url(../../../../../timeline/template/css/view.css);
+@import (reference) '../../system/css/default.less';
+@import '../../../../../timeline/template/css/view.css';
 
-div.bx-tl-activity div.bx-tl-item-actions,
-div.bx-tl-activity div.bx-tl-item-menu {
-	margin-left: 10px;
-	margin-left: 0.625rem;
+div.bx-tl-activity ul.bx-menu-object-bx_timeline_menu_item_actions {
+	.bx-def-margin-thd-leftright-neg;
+
+	.margin-top(-@bx-margin-thd);
 }
 
-div.bx-tl-activity div.bx-tl-item-actions:first-child,
-div.bx-tl-activity div.bx-tl-item-menu:first-child {
-	margin-left: 0px;
+div.bx-tl-activity ul.bx-menu-object-bx_timeline_menu_item_actions li  {
+	.bx-def-margin-thd;
 }
 
 /*+++ Item Menu +++*/

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

@@ -89,7 +89,6 @@ class BxOrgsConfig extends BxBaseModProfileConfig
             'OBJECT_MENU_MANAGE_TOOLS' => 'bx_organizations_menu_manage_tools', //manage menu in content administration tools
             'OBJECT_PAGE_VIEW_ENTRY' => 'bx_organizations_view_profile',
             'OBJECT_GRID_ADMINISTRATION' => 'bx_organizations_administration',
-        	'OBJECT_GRID_MODERATION' => 'bx_organizations_moderation',
         	'OBJECT_GRID_COMMON' => 'bx_organizations_common',
 
         	'TRIGGER_PAGE_VIEW_ENTRY' => 'trigger_page_organizations_view_entry',
@@ -142,7 +141,6 @@ class BxOrgsConfig extends BxBaseModProfileConfig
 
         $this->_aGridObjects = array(
         	'common' => $this->CNF['OBJECT_GRID_COMMON'],
-        	'moderation' => $this->CNF['OBJECT_GRID_MODERATION'],
         	'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION'],
         	
         );

+ 0 - 23
modules/boonex/organizations/classes/BxOrgsGridModeration.php

@@ -1,23 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    Organizations Organizations
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-bx_import('BxBaseModProfileGridModeration');
-
-class BxOrgsGridModeration extends BxBaseModProfileGridModeration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-    	$this->MODULE = 'bx_organizations';
-        parent::__construct ($aOptions, $oTemplate);
-    }
-}
-
-/** @} */

+ 6 - 1
modules/boonex/organizations/install/langs/en.xml

@@ -60,7 +60,8 @@
 	<string name="_bx_orgs_page_title_profile_info"><![CDATA[Info about {display_name}]]></string>
 	<string name="_bx_orgs_page_title_sys_home"><![CDATA[Organizations Home]]></string>
 	<string name="_bx_orgs_page_title_home"><![CDATA[Organizations]]></string>
-	<string name="_bx_orgs_page_title_sys_manage"><![CDATA[Manage Organizations]]></string>
+	<string name="_bx_orgs_page_title_sys_manage"><![CDATA[Manage Own Organizations]]></string>
+		<string name="_bx_orgs_page_title_sys_manage_administration"><![CDATA[Manage All Organizations]]></string>
 	<string name="_bx_orgs_page_title_manage"><![CDATA[Manage Organizations]]></string>
 
 	<string name="_bx_orgs_page_block_title_create_profile"><![CDATA[Create Organization's Profile]]></string>
@@ -72,6 +73,8 @@
 	<string name="_bx_orgs_page_block_title_profile_cover"><![CDATA[Profile Cover]]></string>
 	<string name="_bx_orgs_page_block_title_profile_actions"><![CDATA[Actions]]></string>
 	<string name="_bx_orgs_page_block_title_latest_profiles"><![CDATA[Recent Organizations]]></string>
+	<string name="_bx_orgs_page_block_title_system_manage"><![CDATA[Manage Own Organizations]]></string>
+	<string name="_bx_orgs_page_block_title_system_manage_administration"><![CDATA[Manage All Organizations]]></string>
 	<string name="_bx_orgs_page_block_title_manage"><![CDATA[Manage Organizations]]></string>
 
     <string name="_bx_orgs_menu_title_submenu"><![CDATA[Organizations Submenu]]></string>
@@ -84,6 +87,8 @@
     <string name="_bx_orgs_menu_title_view_profile_submenu"><![CDATA[View Organization Submenu]]></string>
 	<string name="_bx_orgs_menu_set_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
     <string name="_bx_orgs_menu_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
+    <string name="_bx_orgs_menu_item_title_system_delete"><![CDATA[Delete]]></string>
+    <string name="_bx_orgs_menu_item_title_delete"><![CDATA[Delete]]></string>
     <string name="_bx_orgs_menu_item_title_system_delete_with_content"><![CDATA[Delete With Content]]></string>
     <string name="_bx_orgs_menu_item_title_delete_with_content"><![CDATA[Delete With Content]]></string>
     <string name="_bx_orgs_menu_item_title_system_edit_profile"><![CDATA[Edit Organization]]></string>

+ 14 - 32
modules/boonex/organizations/install/sql/enable.sql

@@ -85,29 +85,21 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
 ('bx_organizations_home', 1, 'bx_organizations', '_bx_orgs_page_block_title_latest_profiles', 11, 2147483647, 'service', 'a:3:{s:6:\"module\";s:16:\"bx_organizations\";s:6:\"method\";s:22:\"browse_recent_profiles\";s:6:"params";a:1:{i:0;b:1;}}', 0, 1, 0);
 
--- PAGE: module manage
+-- PAGE: module manage own
 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_organizations_manage', '_bx_orgs_page_title_sys_manage', '_bx_orgs_page_title_manage', 'bx_organizations', 5, 2147483647, 1, 'organizations-manage', 'page.php?i=organizations-manage', '', '', '', 0, 1, 0, 'BxOrgsPageBrowse', 'modules/boonex/organizations/classes/BxOrgsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_organizations_manage', 1, 'bx_organizations', '_bx_orgs_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:16:\"bx_organizations\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
-
--- PAGE: module moderation
-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_organizations_moderation', '_bx_orgs_page_title_sys_manage', '_bx_orgs_page_title_manage', 'bx_organizations', 5, 64, 1, 'organizations-moderation', 'page.php?i=organizations-moderation', '', '', '', 0, 1, 0, 'BxOrgsPageBrowse', 'modules/boonex/organizations/classes/BxOrgsPageBrowse.php');
-
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_organizations_moderation', 1, 'bx_organizations', '_bx_orgs_page_block_title_manage', 11, 64, 'service', 'a:3:{s:6:\"module\";s:16:\"bx_organizations\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:10:\"moderation\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_organizations_manage', 1, 'bx_organizations', '_bx_orgs_page_block_title_system_manage', '_bx_orgs_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:16:\"bx_organizations\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
 
--- PAGE: module administration
+-- 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_organizations_administration', '_bx_orgs_page_title_sys_manage', '_bx_orgs_page_title_manage', 'bx_organizations', 5, 128, 1, 'organizations-administration', 'page.php?i=organizations-administration', '', '', '', 0, 1, 0, 'BxOrgsPageBrowse', 'modules/boonex/organizations/classes/BxOrgsPageBrowse.php');
+('bx_organizations_administration', '_bx_orgs_page_title_sys_manage_administration', '_bx_orgs_page_title_manage', 'bx_organizations', 5, 192, 1, 'organizations-administration', 'page.php?i=organizations-administration', '', '', '', 0, 1, 0, 'BxOrgsPageBrowse', 'modules/boonex/organizations/classes/BxOrgsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_organizations_administration', 1, 'bx_organizations', '_bx_orgs_page_block_title_manage', 11, 128, 'service', 'a:3:{s:6:\"module\";s:16:\"bx_organizations\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_organizations_administration', 1, 'bx_organizations', '_bx_orgs_page_block_title_system_manage_administration', '_bx_orgs_page_block_title_manage', 11, 192, 'service', 'a:3:{s:6:\"module\";s:16:\"bx_organizations\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
 
 -- PAGE: add block to homepage
-
 SET @iBlockOrder = (SELECT `order` FROM `sys_pages_blocks` WHERE `object` = 'sys_home' AND `cell_id` = 1 ORDER BY `order` DESC LIMIT 1);
 INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
 ('sys_home', 1, 'bx_organizations', '_bx_orgs_page_block_title_latest_profiles', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:16:"bx_organizations";s:6:"method";s:22:"browse_recent_profiles";}', 1, 0, IFNULL(@iBlockOrder, 0) + 1);
@@ -203,17 +195,16 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 ('bx_organizations_menu_manage_tools', 'bx_organizations', '_bx_orgs_menu_set_title_manage_tools', 0);
 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('bx_organizations_menu_manage_tools', 'bx_organizations', 'delete-with-content', '_bx_orgs_menu_item_title_system_delete_with_content', '_bx_orgs_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id});', '_self', 'trash-o', '', 128, 1, 0, 0);
+('bx_organizations_menu_manage_tools', 'bx_organizations', 'delete', '_bx_orgs_menu_item_title_system_delete', '_bx_orgs_menu_item_title_delete', 'javascript:void(0)', 'javascript:{js_object}.onClickDelete({content_id});', '_self', 'trash-o', '', 2147483647, 1, 0, 1),
+('bx_organizations_menu_manage_tools', 'bx_organizations', 'delete-with-content', '_bx_orgs_menu_item_title_system_delete_with_content', '_bx_orgs_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id});', '_self', 'trash-o', '', 2147483647, 1, 0, 2);
 
 -- 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_organizations', 'organizations-moderation', '_bx_orgs_menu_item_title_system_admt_organizations', '_bx_orgs_menu_item_title_admt_organizations', 'page.php?i=organizations-moderation', '', '_self', '', 'a:2:{s:6:"module";s:16:"bx_organizations";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 64, 1, 0, @iManageMenuOrder + 1),
-('sys_account_dashboard_manage_tools', 'bx_organizations', 'organizations-administration', '_bx_orgs_menu_item_title_system_admt_organizations', '_bx_orgs_menu_item_title_admt_organizations', 'page.php?i=organizations-administration', '', '_self', '', 'a:2:{s:6:"module";s:16:"bx_organizations";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 128, 1, 0, @iManageMenuOrder + 2);
+('sys_account_dashboard_manage_tools', 'bx_organizations', 'organizations-administration', '_bx_orgs_menu_item_title_system_admt_organizations', '_bx_orgs_menu_item_title_admt_organizations', 'page.php?i=organizations-administration', '', '_self', '', 'a:2:{s:6:"module";s:16:"bx_organizations";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, @iManageMenuOrder + 1);
 
 
 -- ACL
-
 INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
 ('bx_organizations', 'create entry', NULL, '_bx_orgs_acl_action_create_profile', '', 1, 1);
 SET @iIdActionProfileCreate = LAST_INSERT_ID();
@@ -291,7 +282,6 @@ INSERT INTO `sys_objects_search` (`ObjectName`, `Title`, `Order`, `ClassName`, `
 -- 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`, `override_class_name`, `override_class_file`) VALUES
 ('bx_organizations_administration', 'Sql', 'SELECT `td`.*, `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', '', '', 'BxOrgsGridAdministration', 'modules/boonex/organizations/classes/BxOrgsGridAdministration.php'),
-('bx_organizations_moderation', 'Sql', 'SELECT `td`.*, `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', '', '', 'BxOrgsGridModeration', 'modules/boonex/organizations/classes/BxOrgsGridModeration.php'),
 ('bx_organizations_common', 'Sql', 'SELECT `td`.*, `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', '', '', 'BxOrgsGridCommon', 'modules/boonex/organizations/classes/BxOrgsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
@@ -301,11 +291,6 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('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_moderation', 'switcher', '', '10%', 0, '', '', 1),
-('bx_organizations_moderation', 'org_name', '_bx_orgs_grid_column_title_adm_org_name', '25%', 0, '', '', 2),
-('bx_organizations_moderation', 'last_online', '_bx_orgs_grid_column_title_adm_last_online', '25%', 1, '25', '', 3),
-('bx_organizations_moderation', 'account', '_bx_orgs_grid_column_title_adm_account', '25%', 0, '25', '', 4),
-('bx_organizations_moderation', 'actions', '', '15%', 0, '', '', 5),
 ('bx_organizations_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_organizations_common', 'org_name', '_bx_orgs_grid_column_title_adm_org_name', '48%', 0, '', '', 2),
 ('bx_organizations_common', 'last_online', '_bx_orgs_grid_column_title_adm_last_online', '30%', 1, '25', '', 3),
@@ -316,10 +301,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('bx_organizations_administration', 'bulk', 'delete', '_bx_orgs_grid_action_title_adm_delete', '', 0, 1, 2),
 ('bx_organizations_administration', 'bulk', 'delete_with_content', '_bx_orgs_grid_action_title_adm_delete_with_content', '', 0, 1, 3),
 ('bx_organizations_administration', 'single', 'set_acl_level', '_bx_orgs_grid_action_title_adm_set_acl_level', 'certificate', 1, 0, 1),
-('bx_organizations_administration', 'single', 'delete', '_bx_orgs_grid_action_title_adm_delete', 'remove', 1, 1, 2),
-('bx_organizations_administration', 'single', 'settings', '_bx_orgs_grid_action_title_adm_more_actions', 'cog', 1, 0, 3),
-('bx_organizations_moderation', 'single', 'settings', '_bx_orgs_grid_action_title_adm_more_actions', 'cog', 1, 0, 1),
-('bx_organizations_common', 'bulk', 'delete', '_bx_orgs_grid_action_title_adm_delete', '', 0, 1, 2),
-('bx_organizations_common', 'bulk', 'delete_with_content', '_bx_orgs_grid_action_title_adm_delete_with_content', '', 0, 1, 3),
-('bx_organizations_common', 'single', 'delete', '_bx_orgs_grid_action_title_adm_delete', 'remove', 1, 1, 2),
-('bx_organizations_common', 'single', 'settings', '_bx_orgs_grid_action_title_adm_more_actions', 'cog', 1, 0, 3);
+('bx_organizations_administration', 'single', 'settings', '_bx_orgs_grid_action_title_adm_more_actions', 'cog', 1, 0, 2),
+('bx_organizations_common', 'bulk', 'delete', '_bx_orgs_grid_action_title_adm_delete', '', 0, 1, 1),
+('bx_organizations_common', 'bulk', 'delete_with_content', '_bx_orgs_grid_action_title_adm_delete_with_content', '', 0, 1, 2),
+('bx_organizations_common', 'single', 'settings', '_bx_orgs_grid_action_title_adm_more_actions', 'cog', 1, 0, 1);

+ 6 - 0
modules/boonex/organizations/js/manage_tools.js

@@ -42,6 +42,12 @@ BxOrgsManageTools.prototype.onClickSettings = function(sMenuObject, oButton) {
 	});
 };
 
+BxOrgsManageTools.prototype.onClickDelete = function(iContentId) {
+	$('.bx-popup-applied:visible').dolPopupHide();
+
+	glGrids[this._sObjNameGrid].actionWithId(iContentId, 'delete', {}, '', false, 1);
+};
+
 BxOrgsManageTools.prototype.onClickDeleteWithContent = function(iContentId) {
 	$('.bx-popup-applied:visible').dolPopupHide();
 

+ 0 - 2
modules/boonex/persons/classes/BxPersonsConfig.php

@@ -89,7 +89,6 @@ class BxPersonsConfig extends BxBaseModProfileConfig
             'OBJECT_MENU_MANAGE_TOOLS' => 'bx_persons_menu_manage_tools', //manage menu in content administration tools
             'OBJECT_PAGE_VIEW_ENTRY' => 'bx_persons_view_profile',
             'OBJECT_GRID_ADMINISTRATION' => 'bx_persons_administration',
-        	'OBJECT_GRID_MODERATION' => 'bx_persons_moderation',
         	'OBJECT_GRID_COMMON' => 'bx_persons_common',
 
         	'TRIGGER_PAGE_VIEW_ENTRY' => 'trigger_page_persons_view_entry',
@@ -142,7 +141,6 @@ class BxPersonsConfig extends BxBaseModProfileConfig
 
         $this->_aGridObjects = array(
         	'common' => $this->CNF['OBJECT_GRID_COMMON'],
-        	'moderation' => $this->CNF['OBJECT_GRID_MODERATION'],
         	'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION'],
         	
         );

+ 0 - 23
modules/boonex/persons/classes/BxPersonsGridModeration.php

@@ -1,23 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    Persons Persons
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-bx_import('BxBaseModProfileGridModeration');
-
-class BxPersonsGridModeration extends BxBaseModProfileGridModeration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-    	$this->MODULE = 'bx_persons';
-        parent::__construct ($aOptions, $oTemplate);
-    }
-}
-
-/** @} */

+ 6 - 1
modules/boonex/persons/install/langs/en.xml

@@ -60,7 +60,8 @@
 	<string name="_bx_persons_page_title_profile_info"><![CDATA[Info about {display_name}]]></string>
 	<string name="_bx_persons_page_title_sys_home"><![CDATA[Persons Home]]></string>
 	<string name="_bx_persons_page_title_home"><![CDATA[People]]></string>
-	<string name="_bx_persons_page_title_sys_manage"><![CDATA[Manage Profiles]]></string>
+	<string name="_bx_persons_page_title_sys_manage"><![CDATA[Manage Own Profiles]]></string>
+	<string name="_bx_persons_page_title_sys_manage_administration"><![CDATA[Manage All Profiles]]></string>
 	<string name="_bx_persons_page_title_manage"><![CDATA[Manage Profiles]]></string>
 
 	<string name="_bx_persons_page_block_title_create_profile"><![CDATA[Create Person's Profile]]></string>
@@ -72,6 +73,8 @@
 	<string name="_bx_persons_page_block_title_profile_cover"><![CDATA[Profile Cover]]></string>
 	<string name="_bx_persons_page_block_title_profile_actions"><![CDATA[Actions]]></string>
 	<string name="_bx_persons_page_block_title_latest_profiles"><![CDATA[Recent People]]></string>
+	<string name="_bx_persons_page_block_title_system_manage"><![CDATA[Manage Own Profiles]]></string>
+	<string name="_bx_persons_page_block_title_system_manage_administration"><![CDATA[Manage All Profiles]]></string>
 	<string name="_bx_persons_page_block_title_manage"><![CDATA[Manage Profiles]]></string>
 
     <string name="_bx_persons_menu_title_submenu"><![CDATA[Persons Submenu]]></string>
@@ -84,6 +87,8 @@
     <string name="_bx_persons_menu_title_view_profile_submenu"><![CDATA[View Person Submenu]]></string>
 	<string name="_bx_persons_menu_set_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
     <string name="_bx_persons_menu_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
+    <string name="_bx_persons_menu_item_title_system_delete"><![CDATA[Delete]]></string>
+    <string name="_bx_persons_menu_item_title_delete"><![CDATA[Delete]]></string>
     <string name="_bx_persons_menu_item_title_system_delete_with_content"><![CDATA[Delete With Content]]></string>
     <string name="_bx_persons_menu_item_title_delete_with_content"><![CDATA[Delete With Content]]></string>
     <string name="_bx_persons_menu_item_title_system_edit_profile"><![CDATA[Edit Person]]></string>

+ 3 - 3
modules/boonex/persons/install/sql/disable.sql

@@ -32,6 +32,6 @@ DELETE FROM `sys_objects_metatags` WHERE `object` = 'bx_persons';
 DELETE FROM `sys_objects_search` WHERE `ObjectName` = 'bx_persons';
 
 -- GRIDS
-DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_persons_administration', 'bx_persons_moderation', 'bx_persons_common');
-DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_persons_administration', 'bx_persons_moderation', 'bx_persons_common');
-DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_persons_administration', 'bx_persons_moderation', 'bx_persons_common');
+DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_persons_administration', 'bx_persons_common');
+DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_persons_administration', 'bx_persons_common');
+DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_persons_administration', 'bx_persons_common');

+ 14 - 32
modules/boonex/persons/install/sql/enable.sql

@@ -85,26 +85,19 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
 ('bx_persons_home', 1, 'bx_persons', '_bx_persons_page_block_title_latest_profiles', 11, 2147483647, 'service', 'a:3:{s:6:\"module\";s:10:\"bx_persons\";s:6:\"method\";s:22:\"browse_recent_profiles\";s:6:"params";a:1:{i:0;b:1;}}', 0, 1, 0);
 
--- PAGE: module manage
+-- PAGE: module manage own
 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_persons_manage', '_bx_persons_page_title_sys_manage', '_bx_persons_page_title_manage', 'bx_persons', 5, 2147483647, 1, 'persons-manage', 'page.php?i=persons-manage', '', '', '', 0, 1, 0, 'BxPersonsPageBrowse', 'modules/boonex/persons/classes/BxPersonsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_persons_manage', 1, 'bx_persons', '_bx_persons_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_persons\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
-
--- PAGE: module moderation
-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_persons_moderation', '_bx_persons_page_title_sys_manage', '_bx_persons_page_title_manage', 'bx_persons', 5, 64, 1, 'persons-moderation', 'page.php?i=persons-moderation', '', '', '', 0, 1, 0, 'BxPersonsPageBrowse', 'modules/boonex/persons/classes/BxPersonsPageBrowse.php');
-
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_persons_moderation', 1, 'bx_persons', '_bx_persons_page_block_title_manage', 11, 64, 'service', 'a:3:{s:6:\"module\";s:10:\"bx_persons\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:10:\"moderation\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_persons_manage', 1, 'bx_persons', '_bx_persons_page_block_title_system_manage', '_bx_persons_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_persons\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
 
--- PAGE: module administration
+-- 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_persons_administration', '_bx_persons_page_title_sys_manage', '_bx_persons_page_title_manage', 'bx_persons', 5, 128, 1, 'persons-administration', 'page.php?i=persons-administration', '', '', '', 0, 1, 0, 'BxPersonsPageBrowse', 'modules/boonex/persons/classes/BxPersonsPageBrowse.php');
+('bx_persons_administration', '_bx_persons_page_title_sys_manage_administration', '_bx_persons_page_title_manage', 'bx_persons', 5, 192, 1, 'persons-administration', 'page.php?i=persons-administration', '', '', '', 0, 1, 0, 'BxPersonsPageBrowse', 'modules/boonex/persons/classes/BxPersonsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_persons_administration', 1, 'bx_persons', '_bx_persons_page_block_title_manage', 11, 128, 'service', 'a:3:{s:6:\"module\";s:10:\"bx_persons\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_persons_administration', 1, 'bx_persons', '_bx_persons_page_block_title_system_manage_administration', '_bx_persons_page_block_title_manage', 11, 192, 'service', 'a:3:{s:6:\"module\";s:10:\"bx_persons\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
 
 -- PAGE: add block to homepage
 
@@ -184,7 +177,6 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_persons_view_submenu', 'bx_persons', 'persons-profile-friends', '_bx_persons_menu_item_title_system_view_profile_friends', '_bx_persons_menu_item_title_view_profile_friends', 'page.php?i=persons-profile-friends&profile_id={profile_id}', '', '', '', '', 2147483647, 1, 0, 3);
 
 -- MENU: notifications menu in account popup
-
 SET @iNotifMenuOrder = (SELECT `order` FROM `sys_menu_items` WHERE `set_name` = 'sys_account_notifications' AND `active` = 1 ORDER BY `order` DESC 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_notifications', 'bx_persons', 'notifications-friend-requests', '_bx_persons_menu_item_title_system_friends', '_bx_persons_menu_item_title_friends', 'page.php?i=persons-profile-friends&profile_id={member_id}', '', '', 'group col-blue3', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:31:"get_unconfirmed_connections_num";s:6:"params";a:1:{i:0;s:20:"sys_profiles_friends";}s:5:"class";s:23:"TemplServiceConnections";}', '', 2147483646, 1, 0, IFNULL(@iNotifMenuOrder, 0) + 1);
@@ -203,17 +195,16 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 ('bx_persons_menu_manage_tools', 'bx_persons', '_bx_persons_menu_set_title_manage_tools', 0);
 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('bx_persons_menu_manage_tools', 'bx_persons', 'delete-with-content', '_bx_persons_menu_item_title_system_delete_with_content', '_bx_persons_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id});', '_self', 'trash-o', '', 128, 1, 0, 0);
+('bx_persons_menu_manage_tools', 'bx_persons', 'delete', '_bx_persons_menu_item_title_system_delete', '_bx_persons_menu_item_title_delete', 'javascript:void(0)', 'javascript:{js_object}.onClickDelete({content_id});', '_self', 'trash-o', '', 2147483647, 1, 0, 1),
+('bx_persons_menu_manage_tools', 'bx_persons', 'delete-with-content', '_bx_persons_menu_item_title_system_delete_with_content', '_bx_persons_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id});', '_self', 'trash-o', '', 2147483647, 1, 0, 2);
 
 -- 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_persons', 'persons-moderation', '_bx_persons_menu_item_title_system_admt_persons', '_bx_persons_menu_item_title_admt_persons', 'page.php?i=persons-moderation', '', '_self', '', 'a:2:{s:6:"module";s:10:"bx_persons";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 64, 1, 0, @iManageMenuOrder + 1),
-('sys_account_dashboard_manage_tools', 'bx_persons', 'persons-administration', '_bx_persons_menu_item_title_system_admt_persons', '_bx_persons_menu_item_title_admt_persons', 'page.php?i=persons-administration', '', '_self', '', 'a:2:{s:6:"module";s:10:"bx_persons";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 128, 1, 0, @iManageMenuOrder + 2);
+('sys_account_dashboard_manage_tools', 'bx_persons', 'persons-administration', '_bx_persons_menu_item_title_system_admt_persons', '_bx_persons_menu_item_title_admt_persons', 'page.php?i=persons-administration', '', '_self', '', 'a:2:{s:6:"module";s:10:"bx_persons";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, @iManageMenuOrder + 1);
 
 
 -- ACL
-
 INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
 ('bx_persons', 'create entry', NULL, '_bx_persons_acl_action_create_profile', '', 1, 1);
 SET @iIdActionProfileCreate = LAST_INSERT_ID();
@@ -293,7 +284,6 @@ INSERT INTO `sys_objects_search` (`ObjectName`, `Title`, `Order`, `ClassName`, `
 -- 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`, `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', '', '', 'BxPersonsGridAdministration', 'modules/boonex/persons/classes/BxPersonsGridAdministration.php'),
-('bx_persons_moderation', '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', '', '', 'BxPersonsGridModeration', 'modules/boonex/persons/classes/BxPersonsGridModeration.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', '', '', 'BxPersonsGridCommon', 'modules/boonex/persons/classes/BxPersonsGridCommon.php');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
@@ -303,11 +293,6 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('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_moderation', 'switcher', '', '10%', 0, '', '', 1),
-('bx_persons_moderation', 'fullname', '_bx_persons_grid_column_title_adm_fullname', '25%', 0, '', '', 2),
-('bx_persons_moderation', 'last_online', '_bx_persons_grid_column_title_adm_last_online', '25%', 1, '25', '', 3),
-('bx_persons_moderation', 'account', '_bx_persons_grid_column_title_adm_account', '25%', 0, '25', '', 4),
-('bx_persons_moderation', 'actions', '', '15%', 0, '', '', 5),
 ('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),
@@ -318,10 +303,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('bx_persons_administration', 'bulk', 'delete', '_bx_persons_grid_action_title_adm_delete', '', 0, 1, 2),
 ('bx_persons_administration', 'bulk', 'delete_with_content', '_bx_persons_grid_action_title_adm_delete_with_content', '', 0, 1, 3),
 ('bx_persons_administration', 'single', 'set_acl_level', '_bx_persons_grid_action_title_adm_set_acl_level', 'certificate', 1, 0, 1),
-('bx_persons_administration', 'single', 'delete', '_bx_persons_grid_action_title_adm_delete', 'remove', 1, 1, 2),
-('bx_persons_administration', 'single', 'settings', '_bx_persons_grid_action_title_adm_more_actions', 'cog', 1, 0, 3),
-('bx_persons_moderation', 'single', 'settings', '_bx_persons_grid_action_title_adm_more_actions', 'cog', 1, 0, 1),
-('bx_persons_common', 'bulk', 'delete', '_bx_persons_grid_action_title_adm_delete', '', 0, 1, 2),
-('bx_persons_common', 'bulk', 'delete_with_content', '_bx_persons_grid_action_title_adm_delete_with_content', '', 0, 1, 3),
-('bx_persons_common', 'single', 'delete', '_bx_persons_grid_action_title_adm_delete', 'remove', 1, 1, 2),
-('bx_persons_common', 'single', 'settings', '_bx_persons_grid_action_title_adm_more_actions', 'cog', 1, 0, 3);
+('bx_persons_administration', 'single', 'settings', '_bx_persons_grid_action_title_adm_more_actions', 'cog', 1, 0, 2),
+('bx_persons_common', 'bulk', 'delete', '_bx_persons_grid_action_title_adm_delete', '', 0, 1, 1),
+('bx_persons_common', 'bulk', 'delete_with_content', '_bx_persons_grid_action_title_adm_delete_with_content', '', 0, 1, 2),
+('bx_persons_common', 'single', 'settings', '_bx_persons_grid_action_title_adm_more_actions', 'cog', 1, 0, 1);

+ 6 - 0
modules/boonex/persons/js/manage_tools.js

@@ -42,6 +42,12 @@ BxPersonsManageTools.prototype.onClickSettings = function(sMenuObject, oButton)
 	});
 };
 
+BxPersonsManageTools.prototype.onClickDelete = function(iContentId) {
+	$('.bx-popup-applied:visible').dolPopupHide();
+
+	glGrids[this._sObjNameGrid].actionWithId(iContentId, 'delete', {}, '', false, 1);
+};
+
 BxPersonsManageTools.prototype.onClickDeleteWithContent = function(iContentId) {
 	$('.bx-popup-applied:visible').dolPopupHide();
 

+ 0 - 2
modules/boonex/posts/classes/BxPostsConfig.php

@@ -77,7 +77,6 @@ class BxPostsConfig extends BxBaseModTextConfig
             'OBJECT_MENU_SUBMENU_VIEW_ENTRY_MAIN_SELECTION' => 'posts-home', // first item in view entry submenu from main module submenu
             'OBJECT_MENU_MANAGE_TOOLS' => 'bx_posts_menu_manage_tools', //manage menu in content administration tools
             'OBJECT_GRID_ADMINISTRATION' => 'bx_posts_administration',
-        	'OBJECT_GRID_MODERATION' => 'bx_posts_moderation',
         	'OBJECT_GRID_COMMON' => 'bx_posts_common',
             'OBJECT_UPLOADERS' => array('sys_simple', 'sys_html5'),
 
@@ -116,7 +115,6 @@ class BxPostsConfig extends BxBaseModTextConfig
 
         $this->_aGridObjects = array(
         	'common' => $this->CNF['OBJECT_GRID_COMMON'],
-        	'moderation' => $this->CNF['OBJECT_GRID_MODERATION'],
         	'administration' => $this->CNF['OBJECT_GRID_ADMINISTRATION'],
         	
         );

+ 0 - 23
modules/boonex/posts/classes/BxPostsGridModeration.php

@@ -1,23 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    Posts Posts
- * @ingroup     TridentModules
- * 
- * @{
- */
-
-bx_import('BxBaseModTextGridModeration');
-
-class BxPostsGridModeration extends BxBaseModTextGridModeration
-{
-    public function __construct ($aOptions, $oTemplate = false)
-    {
-    	$this->MODULE = 'bx_posts';
-        parent::__construct ($aOptions, $oTemplate);
-    }
-}
-
-/** @} */

+ 4 - 1
modules/boonex/posts/install/langs/en.xml

@@ -76,8 +76,11 @@
     <string name="_bx_posts_page_block_title_entries_of_author"><![CDATA[Posts of author]]></string>   
     <string name="_bx_posts_page_block_title_entries_actions"><![CDATA[Posts actions]]></string>
     <string name="_bx_posts_page_block_title_browse_cmts"><![CDATA[Posts' Comments]]></string>
-	<string name="_bx_posts_page_title_sys_manage"><![CDATA[Manage Posts]]></string>
+	<string name="_bx_posts_page_title_sys_manage"><![CDATA[Manage Own Posts]]></string>
+	<string name="_bx_posts_page_title_sys_manage_administration"><![CDATA[Manage All Posts]]></string>
 	<string name="_bx_posts_page_title_manage"><![CDATA[Manage Posts]]></string>
+	<string name="_bx_posts_page_block_title_system_manage"><![CDATA[Manage Own Posts]]></string>
+	<string name="_bx_posts_page_block_title_system_manage_administration"><![CDATA[Manage All Posts]]></string>
 	<string name="_bx_posts_page_block_title_manage"><![CDATA[Manage Posts]]></string>    
 	<string name="_bx_posts_page_block_title_popular_keywords"><![CDATA[Popular Hashtags]]></string>
 

+ 3 - 3
modules/boonex/posts/install/sql/disable.sql

@@ -29,9 +29,9 @@ DELETE FROM `sys_objects_search` WHERE `ObjectName` IN ('bx_posts', 'bx_posts_cm
 DELETE FROM `sys_objects_metatags` WHERE `object` = 'bx_posts';
 
 -- GRIDS
-DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_posts_administration', 'bx_posts_moderation', 'bx_posts_common');
-DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_posts_administration', 'bx_posts_moderation', 'bx_posts_common');
-DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_posts_administration', 'bx_posts_moderation', 'bx_posts_common');
+DELETE FROM `sys_objects_grid` WHERE `object` IN ('bx_posts_administration', 'bx_posts_common');
+DELETE FROM `sys_grid_fields` WHERE `object` IN ('bx_posts_administration', 'bx_posts_common');
+DELETE FROM `sys_grid_actions` WHERE `object` IN ('bx_posts_administration', 'bx_posts_common');
 
 -- ALERTS
 SET @iHandler := (SELECT `id` FROM `sys_alerts_handlers` WHERE `name` = 'bx_posts' LIMIT 1);

+ 10 - 26
modules/boonex/posts/install/sql/enable.sql

@@ -93,26 +93,19 @@ INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbo
 ('bx_posts_home', 1, 'bx_posts', '_bx_posts_page_block_title_recent_entries', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:8:"bx_posts";s:6:"method";s:13:"browse_public";s:6:"params";a:3:{s:9:"unit_view";s:7:"gallery";s:13:"empty_message";b:1;s:13:"ajax_paginate";b:0;}}', 0, 1, 1, 0),
 ('bx_posts_home', 2, 'bx_posts', '_bx_posts_page_block_title_popular_keywords', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:14:"keywords_cloud";s:6:"params";a:2:{i:0;s:8:"bx_posts";i:1;s:8:"bx_posts";}s:5:"class";s:20:"TemplServiceMetatags";}', 0, 1, 1, 0);
 
--- PAGE: module manage
+-- PAGE: module manage own
 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_posts_manage', '_bx_posts_page_title_sys_manage', '_bx_posts_page_title_manage', 'bx_posts', 5, 2147483647, 1, 'posts-manage', 'page.php?i=posts-manage', '', '', '', 0, 1, 0, 'BxPostsPageBrowse', 'modules/boonex/posts/classes/BxPostsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_posts_manage', 1, 'bx_posts', '_bx_posts_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
-
--- PAGE: module moderation
-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_posts_moderation', '_bx_posts_page_title_sys_manage', '_bx_posts_page_title_manage', 'bx_posts', 5, 64, 1, 'posts-moderation', 'page.php?i=posts-moderation', '', '', '', 0, 1, 0, 'BxPostsPageBrowse', 'modules/boonex/posts/classes/BxPostsPageBrowse.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_posts_manage', 1, 'bx_posts', '_bx_posts_page_block_title_system_manage', '_bx_posts_page_block_title_manage', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:12:\"manage_tools\";}}', 0, 1, 0);
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_posts_moderation', 1, 'bx_posts', '_bx_posts_page_block_title_manage', 11, 64, 'service', 'a:3:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:10:\"moderation\";}}', 0, 1, 0);
-
--- PAGE: module administration
+-- 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_posts_administration', '_bx_posts_page_title_sys_manage', '_bx_posts_page_title_manage', 'bx_posts', 5, 128, 1, 'posts-administration', 'page.php?i=posts-administration', '', '', '', 0, 1, 0, 'BxPostsPageBrowse', 'modules/boonex/posts/classes/BxPostsPageBrowse.php');
+('bx_posts_administration', '_bx_posts_page_title_sys_manage_administration', '_bx_posts_page_title_manage', 'bx_posts', 5, 192, 1, 'posts-administration', 'page.php?i=posts-administration', '', '', '', 0, 1, 0, 'BxPostsPageBrowse', 'modules/boonex/posts/classes/BxPostsPageBrowse.php');
 
-INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
-('bx_posts_administration', 1, 'bx_posts', '_bx_posts_page_block_title_manage', 11, 128, 'service', 'a:3:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
+INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES 
+('bx_posts_administration', 1, 'bx_posts', '_bx_posts_page_block_title_system_manage_administration', '_bx_posts_page_block_title_manage', 11, 192, 'service', 'a:3:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:12:\"manage_tools\";s:6:\"params\";a:1:{i:0;s:14:\"administration\";}}', 0, 1, 0);
 
 -- PAGE: add block to homepage
 
@@ -210,8 +203,7 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 -- 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_posts', 'posts-moderation', '_bx_posts_menu_item_title_system_admt_posts', '_bx_posts_menu_item_title_admt_posts', 'page.php?i=posts-moderation', '', '_self', '', 'a:2:{s:6:"module";s:8:"bx_posts";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 64, 1, 0, @iManageMenuOrder + 1),
-('sys_account_dashboard_manage_tools', 'bx_posts', 'posts-administration', '_bx_posts_menu_item_title_system_admt_posts', '_bx_posts_menu_item_title_admt_posts', 'page.php?i=posts-administration', '', '_self', '', 'a:2:{s:6:"module";s:8:"bx_posts";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 128, 1, 0, @iManageMenuOrder + 2);
+('sys_account_dashboard_manage_tools', 'bx_posts', 'posts-administration', '_bx_posts_menu_item_title_system_admt_posts', '_bx_posts_menu_item_title_admt_posts', 'page.php?i=posts-administration', '', '_self', '', 'a:2:{s:6:"module";s:8:"bx_posts";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, @iManageMenuOrder + 1);
 
 -- MENU: add menu item to profiles modules (trigger* menu sets are processed separately upon modules enable/disable)
 
@@ -305,7 +297,6 @@ INSERT INTO `sys_objects_metatags` (`object`, `table_keywords`, `table_locations
 -- 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`, `override_class_name`, `override_class_file`) VALUES
 ('bx_posts_administration', 'Sql', 'SELECT * FROM `bx_posts_posts` WHERE 1 ', 'bx_posts_posts', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 'BxPostsGridAdministration', 'modules/boonex/posts/classes/BxPostsGridAdministration.php'),
-('bx_posts_moderation', 'Sql', 'SELECT * FROM `bx_posts_posts` WHERE 1 ', 'bx_posts_posts', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 'BxPostsGridModeration', 'modules/boonex/posts/classes/BxPostsGridModeration.php'),
 ('bx_posts_common', 'Sql', 'SELECT * FROM `bx_posts_posts` WHERE 1 ', 'bx_posts_posts', 'id', 'added', 'status', '', 20, NULL, 'start', '', 'title,text', '', 'like', '', '', 'BxPostsGridCommon', 'modules/boonex/posts/classes/BxPostsGridCommon.php');
 
 
@@ -316,11 +307,6 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('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_moderation', 'switcher', '', '10%', 0, '', '', 1),
-('bx_posts_moderation', 'title', '_bx_posts_grid_column_title_adm_title', '25%', 0, '', '', 2),
-('bx_posts_moderation', 'added', '_bx_posts_grid_column_title_adm_added', '25%', 1, '25', '', 3),
-('bx_posts_moderation', 'author', '_bx_posts_grid_column_title_adm_author', '25%', 0, '25', '', 4),
-('bx_posts_moderation', 'actions', '', '15%', 0, '', '', 5),
 ('bx_posts_common', 'checkbox', '_sys_select', '2%', 0, '', '', 1),
 ('bx_posts_common', 'switcher', '', '8%', 0, '', '', 2),
 ('bx_posts_common', 'title', '_bx_posts_grid_column_title_adm_title', '40%', 0, '', '', 3),
@@ -328,13 +314,11 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('bx_posts_common', 'actions', '', '20%', 0, '', '', 5);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
-('bx_posts_administration', 'bulk', 'delete', '_bx_posts_grid_action_title_adm_delete', '', 0, 1, 2),
+('bx_posts_administration', 'bulk', 'delete', '_bx_posts_grid_action_title_adm_delete', '', 0, 1, 1),
 ('bx_posts_administration', 'single', 'edit', '_bx_posts_grid_action_title_adm_edit', 'pencil', 1, 0, 1),
 ('bx_posts_administration', 'single', 'delete', '_bx_posts_grid_action_title_adm_delete', 'remove', 1, 1, 2),
 ('bx_posts_administration', 'single', 'settings', '_bx_posts_grid_action_title_adm_more_actions', 'cog', 1, 0, 3),
-('bx_posts_moderation', 'single', 'edit', '_bx_posts_grid_action_title_adm_edit', 'pencil', 1, 0, 1),
-('bx_posts_moderation', 'single', 'settings', '_bx_posts_grid_action_title_adm_more_actions', 'cog', 1, 0, 2),
-('bx_posts_common', 'bulk', 'delete', '_bx_posts_grid_action_title_adm_delete', '', 0, 1, 2),
+('bx_posts_common', 'bulk', 'delete', '_bx_posts_grid_action_title_adm_delete', '', 0, 1, 1),
 ('bx_posts_common', 'single', 'edit', '_bx_posts_grid_action_title_adm_edit', 'pencil', 1, 0, 1),
 ('bx_posts_common', 'single', 'delete', '_bx_posts_grid_action_title_adm_delete', 'remove', 1, 1, 2),
 ('bx_posts_common', 'single', 'settings', '_bx_posts_grid_action_title_adm_more_actions', 'cog', 1, 0, 3);

+ 6 - 0
modules/boonex/posts/js/manage_tools.js

@@ -42,4 +42,10 @@ BxPostsManageTools.prototype.onClickSettings = function(sMenuObject, oButton) {
 	});
 };
 
+BxPostsManageTools.prototype.onClickDelete = function(iContentId) {
+	$('.bx-popup-applied:visible').dolPopupHide();
+
+	glGrids[this._sObjNameGrid].actionWithId(iContentId, 'delete', {}, '', false, 1);
+};
+
 /** @} */

+ 6 - 6
modules/boonex/timeline/classes/BxTimelineMenuItemActions.php

@@ -98,23 +98,23 @@ class BxTimelineMenuItemActions extends BxTemplMenuCustom
      */
     protected function _isVisible ($a)
     {
-        if(!parent::_isVisible($a))
+        if(!parent::_isVisible($a) || empty($this->_aEvent))
             return false;
 
         $sCheckFuncName = '';
-        $aCheckFuncParams = array();
+        $aCheckFuncParams = array($this->_aEvent);
         switch ($a['name']) {
             case 'item-comment':
                 $sCheckFuncName = 'isAllowedComment';
-                if(!empty($this->_aEvent))
-                    $aCheckFuncParams = array($this->_aEvent);
                 break;
 
             case 'item-vote':
                 $sCheckFuncName = 'isAllowedVote';
-                if(!empty($this->_aEvent))
-                    $aCheckFuncParams = array($this->_aEvent);
                 break;
+
+            case 'item-more':
+            	$sCheckFuncName = 'isAllowedMore';
+            	break;
         }
 
         if(!$sCheckFuncName || !method_exists($this->_oModule, $sCheckFuncName))

+ 16 - 12
modules/boonex/timeline/classes/BxTimelineMenuItemManage.php

@@ -16,30 +16,31 @@ bx_import('BxTemplMenu');
  */
 class BxTimelineMenuItemManage extends BxTemplMenu
 {
-    protected $_aEvent;
+	protected $_iEvent;
     protected $_oModule;
 
+
     public function __construct($aObject, $oTemplate = false)
     {
         parent::__construct($aObject, $oTemplate);
 
+        bx_import('BxDolModule');
         $this->_oModule = BxDolModule::getInstance('bx_timeline');
 
+        $this->_iEvent = 0;
+        if(bx_get('content_id') !== false)
+        	$this->_iEvent = (int)bx_get('content_id');
+
         $this->addMarkers(array(
             'js_object_view' => $this->_oModule->_oConfig->getJsObject('view'),
+
+        	'content_id' => $this->_iEvent,
         ));
     }
 
-    public function setEvent($aEvent)
+    public function setEventId($iEventId)
     {
-        if(empty($aEvent) || !is_array($aEvent))
-            return;
-
-        $this->_aEvent = $aEvent;
-
-        $this->addMarkers(array(
-            'content_id' => $aEvent['id'],
-        ));
+    	$this->_iEvent = $iEventId;
     }
 
     public function isVisible()
@@ -69,13 +70,16 @@ class BxTimelineMenuItemManage extends BxTemplMenu
         if(!parent::_isVisible($a))
             return false;
 
+		$aEvent = $this->_oModule->_oDb->getEvents(array('browse' => 'id', 'value' => $this->_iEvent));
+		if(empty($aEvent) || !is_array($aEvent))
+			return false;
+
         $sCheckFuncName = '';
         $aCheckFuncParams = array();
         switch ($a['name']) {
             case 'item-delete':
                 $sCheckFuncName = 'isAllowedDelete';
-                if(!empty($this->_aEvent))
-                    $aCheckFuncParams = array($this->_aEvent);
+				$aCheckFuncParams = array($aEvent);
                 break;
         }
 

+ 9 - 16
modules/boonex/timeline/classes/BxTimelineModule.php

@@ -195,15 +195,6 @@ class BxTimelineModule extends BxBaseModNotificationsModule
         $this->_echoResultJson(array('content' => $sComments));
     }
 
-    public function actionGetManageMenuPopup()
-    {
-        $iItemId = bx_process_input(bx_get('id'), BX_DATA_INT);
-        if(!$iItemId)
-            return;
-
-        echo $this->getManageMenuObject($iItemId)->getCode();
-    }
-
     public function actionAddAttachLink()
     {
         $aResult = $this->getFormAttachLink();
@@ -591,15 +582,10 @@ class BxTimelineModule extends BxBaseModNotificationsModule
         return $oMenu;
     }
 
-    public function getManageMenuObject($mixedEvent)
+    public function getManageMenuObject()
     {
-    	if(!is_array($mixedEvent))
-    		$mixedEvent = $this->_oDb->getEvents(array('browse' => 'id', 'value' => (int)$mixedEvent));
-
         bx_import('BxDolMenu');
-        $oMenu = BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_manage'), $this->_oTemplate);
-        $oMenu->setEvent($mixedEvent);
-        return $oMenu;
+        return BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_manage'), $this->_oTemplate);
     }
 
     //--- Check permissions methods ---//
@@ -674,6 +660,13 @@ class BxTimelineModule extends BxBaseModNotificationsModule
         return $aCheckResult[CHECK_ACTION_RESULT] != CHECK_ACTION_RESULT_ALLOWED ? $aCheckResult[CHECK_ACTION_MESSAGE] : true;
     }
 
+    public function isAllowedMore($aEvent, $bPerform = false)
+    {
+    	$oMoreMenu = $this->getManageMenuObject();
+    	$oMoreMenu->setEventId($aEvent['id']);
+    	return $oMoreMenu->isVisible();
+    }
+
     public function onPost($iId)
     {
         $aEvent = $this->_oDb->getEvents(array('browse' => 'id', 'value' => $iId));

+ 0 - 8
modules/boonex/timeline/classes/BxTimelineTemplate.php

@@ -489,14 +489,6 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
             'js_object' => $sJsObject,
         	'html_id' => $this->_oConfig->getHtmlIds('view', 'item') . $aEvent['id'],
             'class' => $bBrowseItem ? 'bx-tl-view-sizer' : 'bx-tl-grid-sizer',
-            'bx_if:show_menu_item_manage' => array(
-                'condition' => $oModule->getManageMenuObject($aEvent)->isVisible(),
-                'content' => array(
-        			'style_prefix' => $sStylePrefix,
-		            'js_object' => $sJsObject,
-		        	'id' => $aEvent['id'],
-        		)
-            ),
             'bx_if:show_icon' => array(
                 'condition' => $bAuthorIcon,
                 'content' => array(

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

@@ -81,6 +81,7 @@
     <string name="_bx_timeline_menu_item_title_item_comment"><![CDATA[Comment]]></string>
     <string name="_bx_timeline_menu_item_title_system_item_vote"><![CDATA[Vote]]></string>
     <string name="_bx_timeline_menu_item_title_system_item_share"><![CDATA[Repost]]></string>
+    <string name="_bx_timeline_menu_item_title_system_item_more"><![CDATA[More]]></string>
 
 	<string name="_bx_timeline_menu_title_post_attachments"><![CDATA[Form Attachments]]></string>
     <string name="_bx_timeline_menu_set_title_post_attachments"><![CDATA[Form Attachments]]></string>

+ 2 - 1
modules/boonex/timeline/install/sql/enable.sql

@@ -51,7 +51,8 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `editable`, `order`) VALUES 
 ('bx_timeline_menu_item_actions', 'bx_timeline', 'item-comment', '_bx_timeline_menu_item_title_system_item_comment', '_bx_timeline_menu_item_title_item_comment', 'javascript:void(0)', 'javascript:{comment_onclick}', '_self', 'comment', 'a:3:{s:6:"module";s:11:"bx_timeline";s:6:"method";s:27:"get_menu_item_addon_comment";s:6:"params";a:2:{i:0;s:16:"{comment_system}";i:1;s:16:"{comment_object}";}}', '', 2147483647, 1, 0, 1, 1),
 ('bx_timeline_menu_item_actions', 'bx_timeline', 'item-vote', '_bx_timeline_menu_item_title_system_item_vote', '', 'javascript:void(0)', '', '', '', '', '', 2147483647, 1, 0, 0, 2),
-('bx_timeline_menu_item_actions', 'bx_timeline', 'item-share', '_bx_timeline_menu_item_title_system_item_share', '', 'javascript:void(0)', '', '', '', '', '', 2147483647, 1, 0, 0, 3);
+('bx_timeline_menu_item_actions', 'bx_timeline', 'item-share', '_bx_timeline_menu_item_title_system_item_share', '', 'javascript:void(0)', '', '', '', '', '', 2147483647, 1, 0, 0, 3),
+('bx_timeline_menu_item_actions', 'bx_timeline', 'item-more', '_bx_timeline_menu_item_title_system_item_more', '', 'javascript:void(0)', 'bx_menu_popup(''bx_timeline_menu_item_manage'', this, {}, {content_id:{content_id}});', '', 'ellipsis-h', '', 'bx_timeline_menu_item_manage', 2147483647, 1, 0, 0, 4);
 
 -- MENU: Post form attachments (Link, Photo, Video)
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 

+ 0 - 15
modules/boonex/timeline/js/view.js

@@ -87,21 +87,6 @@ BxTimelineView.prototype.showMoreContent = function(oLink) {
 	this.reloadMasonry();
 };
 
-BxTimelineView.prototype.showManageMenu = function(oLink, iId) {
-	var oData = this._getDefaultData();    
-    oData['id'] = iId;
-
-    $(this.sIdView).dolPopupAjax({
-		id: this._aHtmlIds['menu_popup'] + iId,
-		url: bx_append_url_params(this._sActionsUri + 'get_manage_menu_popup/', oData),
-		pointer:{
-			el:$(oLink)
-		}
-	});
-
-	return false;
-};
-
 BxTimelineView.prototype.showPhoto = function(oLink, sUrl) {
 	$('#' + this._aHtmlIds['photo_popup']).dolPopupImage(sUrl, $(oLink).parent());
 };

+ 9 - 0
modules/boonex/timeline/template/css/view-media-desktop.css

@@ -2,4 +2,13 @@
 	.bx-tl-grid-sizer {
 		width: 33.3%;
 	}
+
+	.bx-layout-column-wide .bx-tl-grid-sizer,
+	.bx-layout-column-half .bx-tl-grid-sizer {
+		width: 50%;
+	}
+
+	.bx-layout-column-thin .bx-tl-grid-sizer {
+		width: 100%;
+	}
 }

+ 4 - 0
modules/boonex/timeline/template/css/view-media-tablet.css

@@ -2,4 +2,8 @@
 	.bx-tl-grid-sizer { 
 		width: 50%;
 	}
+	.bx-layout-column-half .bx-tl-grid-sizer, 
+	.bx-layout-column-thin .bx-tl-grid-sizer {
+		width: 100%;
+	}
 }

+ 0 - 21
modules/boonex/timeline/template/css/view.css

@@ -42,21 +42,6 @@ div.bx-tl-item-cnt {
 	overflow: hidden;
 }
 
-/*+++ Item Menu +++*/
-div.bx-tl-item-menu {
-	float: left;
-}
-div.bx-tl-item-menu .bx-menu-ver li {
-	white-space: nowrap;
-}
-div.bx-tl-item-menu-button {
-	text-align: center;
-}
-
-div.bx-tl-item-menu-button i.sys-icon {
-	display: inline-block;
-}
-
 /*+++ Item Owner +++*/
 div.bx-tl-item-owner {
 	position: relative;
@@ -110,12 +95,6 @@ div.bx-tl-shared div.bx-tl-content {
 	color: #999999;
 }
 
-/*+++ Item Actions +++*/
-div.bx-tl-item-actions {
-	float: left;
-}
-
-
 /*--- Empty Style ---*/
 div.bx-tl-empty div.bx-msg-box-container {
 	margin-top: 0px;

+ 4 - 19
modules/boonex/timeline/template/item.html

@@ -25,26 +25,11 @@
 			</div>
 			__content__
 			<bx_if:show_location>
-				<div class="__style_prefix__-location bx-def-margin-top bx-def-font-grayed bx-clearfix">
-					__location__
-				</div>
+				<div class="__style_prefix__-location bx-def-margin-top bx-def-font-grayed bx-clearfix">__location__</div>
 			</bx_if:show_location>
-			<div class="__style_prefix__-activity bx-clearfix">
-				<bx_if:show_menu_item_actions>
-					<div class="__style_prefix__-item-actions bx-def-margin-left-auto bx-def-margin-top">
-						__menu_item_actions__
-					</div>
-				</bx_if:show_menu_item_actions>
-				<bx_if:show_menu_item_manage>
-					<div class="__style_prefix__-item-menu bx-def-margin-left-auto bx-def-margin-top">
-						<div class="__style_prefix__-item-menu-button">
-				   			<a href="javascript:void(0)" onclick="javascript:__js_object__.showManageMenu(this, __id__);">
-								<i class="sys-icon ellipsis-h"></i>
-							</a>
-						</div>
-					</div>
-			   	</bx_if:show_menu_item_manage>
-			</div>
+			<bx_if:show_menu_item_actions>
+				<div class="__style_prefix__-activity bx-def-margin-top bx-clearfix">__menu_item_actions__</div>
+			</bx_if:show_menu_item_actions>
 			<div class="__style_prefix__-item-comments-holder">__comments__</div>
 			__votes__
 		</div>

+ 1 - 0
studio/classes/BxDolStudioBuilderPageQuery.php

@@ -235,6 +235,7 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
                 `tpb`.`object` AS `object`,
                 `tpb`.`cell_id` AS `cell_id`,
                 `tpb`.`module` AS `module`,
+                `tpb`.`title_system` AS `title_system`,
                 `tpb`.`title` AS `title`,
                 `tpb`.`designbox_id` AS `designbox_id`,
                 `tpb`.`visible_for_levels` AS `visible_for_levels`,

+ 6 - 0
studio/template/css/builder_page.css

@@ -79,6 +79,12 @@ div.adm-bpb-info {
 	padding-left: 40px; 
 }
 div.adm-bpb-title {
+	padding-right: 20px;
+
+	white-space: nowrap;
+    text-overflow: ellipsis;
+	overflow: hidden;
+
 	font-weight: bold;
 }
 div.adm-bpb-description {

+ 4 - 0
studio/template/css/general.css

@@ -115,6 +115,10 @@ div.bx-std-pmen-item {
 }
 div.bx-std-pmen-item-cnt {
 	padding-left: 66px;    
+
+	white-space: nowrap;
+    text-overflow: ellipsis;
+	overflow: hidden;
 }
 
 span.bx-std-pmen-item-counter {}

+ 1 - 1
studio/template/menu_side.html

@@ -1,6 +1,6 @@
 <bx_repeat:menu_items>
     <div id="bx-std-pmi-__name__" class="bx-std-pmen-item bx-def-font-large __class_add__">
-        <a href="__link__" target="__target__" onclick="__onclick__">
+        <a href="__link__" target="__target__" onclick="__onclick__" title="__title_attr__">
             <div class="bx-std-pmen-item-cnt">
                 <bx_if:icon>
                     <img src="<bx_icon_url:mi-empty.png />" />

+ 3 - 3
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -143,7 +143,7 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
 
                 $aTmplVarsCell = array('id' => $i, 'bx_repeat:blocks' => array());
                 foreach($aBlocks as $aBlock) {
-                	$sTitle = $oPage->getBlockTitle($aBlock);
+                	$sTitle = !empty($aBlock['title_system']) ? _t($aBlock['title_system']) : $oPage->getBlockTitle($aBlock);
                 	list($sIcon, $sIconUrl) = $this->getBlockIcon($aBlock);
 
                     $aTmplVarsCell['bx_repeat:blocks'][] = array(
@@ -486,7 +486,7 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
                 $aMenu[$sName] = array_merge($aMenu[$sName], $aModule);
             else
                 $aMenu[$sName] = $aModule;
-                
+
 			if(empty($aMenu[$sName]['icon']))
 				$aMenu[$sName]['icon'] = BxDolStudioUtils::getModuleIcon($aModule, 'menu', false); 
         }
@@ -1466,7 +1466,7 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
                 'bx_if:show_text' => array(
                     'condition' => true,
                     'content' => array(
-                        'title' => _t($aBlock['title']),
+                        'title' => _t(!empty($aBlock['title_system']) ? $aBlock['title_system'] : $aBlock['title']),
                     )
                 ),
                 'bx_if:image' => array (

+ 1 - 1
template/scripts/BxBaseMenu.php

@@ -104,7 +104,7 @@ class BxBaseMenu extends BxDolMenu
 
 		$a['class_add'] = $this->_isSelected($a) ? 'bx-menu-tab-active' : '';
 		$a['link'] = isset($a['link']) ? $this->_oPermalinks->permalink($a['link']) : 'javascript:void(0);';
-		$a['title_attr'] = bx_html_attribute($a['title']);
+		$a['title_attr'] = bx_html_attribute(strip_tags($a['title']));
 		$a['bx_if:image'] = array (
 			'condition' => (bool)$sIconUrl,
 			'content' => array('icon_url' => $sIconUrl),