Browse Source

Order methods to by grouped by their task

remotes/origin/log-external-deletes
Joas Schilling 12 years ago
parent
commit
6c349c00bb
  1. 86
      lib/private/activitymanager.php
  2. 38
      lib/public/activity/iextension.php
  3. 24
      lib/public/activity/imanager.php

86
lib/private/activitymanager.php

@ -122,43 +122,45 @@ class ActivityManager implements IManager {
}
/**
* @param array $types
* @param string $filter
* @param string $method
* @return array
*/
function filterNotificationTypes($types, $filter) {
if (!$this->isFilterValid($filter)) {
return $types;
}
function getDefaultTypes($method) {
$defaultTypes = array();
foreach($this->extensions as $extension) {
$c = $extension();
if ($c instanceof IExtension) {
$result = $c->filterNotificationTypes($types, $filter);
if (is_array($result)) {
$types = $result;
$types = $c->getDefaultTypes($method);
if (is_array($types)) {
$defaultTypes = array_merge($types, $defaultTypes);
}
}
}
return $types;
return $defaultTypes;
}
/**
* @param string $method
* @return array
* @param string $type
* @return string
*/
function getDefaultTypes($method) {
$defaultTypes = array();
function getTypeIcon($type) {
if (isset($this->typeIcons[$type])) {
return $this->typeIcons[$type];
}
foreach($this->extensions as $extension) {
$c = $extension();
if ($c instanceof IExtension) {
$types = $c->getDefaultTypes($method);
if (is_array($types)) {
$defaultTypes = array_merge($types, $defaultTypes);
$icon = $c->getTypeIcon($type);
if (is_string($icon)) {
$this->typeIcons[$type] = $icon;
return $icon;
}
}
}
return $defaultTypes;
$this->typeIcons[$type] = '';
return '';
}
/**
@ -213,30 +215,6 @@ class ActivityManager implements IManager {
return false;
}
/**
* @param string $type
* @return string
*/
function getTypeIcon($type) {
if (isset($this->typeIcons[$type])) {
return $this->typeIcons[$type];
}
foreach($this->extensions as $extension) {
$c = $extension();
if ($c instanceof IExtension) {
$icon = $c->getTypeIcon($type);
if (is_string($icon)) {
$this->typeIcons[$type] = $icon;
return $icon;
}
}
}
$this->typeIcons[$type] = '';
return '';
}
/**
* @param array $activity
* @return integer|false
@ -300,6 +278,28 @@ class ActivityManager implements IManager {
return false;
}
/**
* @param array $types
* @param string $filter
* @return array
*/
function filterNotificationTypes($types, $filter) {
if (!$this->isFilterValid($filter)) {
return $types;
}
foreach($this->extensions as $extension) {
$c = $extension();
if ($c instanceof IExtension) {
$result = $c->filterNotificationTypes($types, $filter);
if (is_array($result)) {
$types = $result;
}
}
}
return $types;
}
/**
* @param string $filter
* @return array

38
lib/public/activity/iextension.php

@ -46,16 +46,6 @@ interface IExtension {
*/
public function getNotificationTypes($languageCode);
/**
* The extension can filter the types based on the filter if required.
* In case no filter is to be applied false is to be returned unchanged.
*
* @param array $types
* @param string $filter
* @return array|false
*/
public function filterNotificationTypes($types, $filter);
/**
* For a given method additional types to be displayed in the settings can be returned.
* In case no additional types are to be added false is to be returned.
@ -65,6 +55,15 @@ interface IExtension {
*/
public function getDefaultTypes($method);
/**
* A string naming the css class for the icon to be used can be returned.
* If no icon is known for the given type false is to be returned.
*
* @param string $type
* @return string|false
*/
public function getTypeIcon($type);
/**
* The extension can translate a given message to the requested languages.
* If no translation is available false is to be returned.
@ -92,15 +91,6 @@ interface IExtension {
*/
function getSpecialParameterList($app, $text);
/**
* A string naming the css class for the icon to be used can be returned.
* If no icon is known for the given type false is to be returned.
*
* @param string $type
* @return string|false
*/
public function getTypeIcon($type);
/**
* The extension can define the parameter grouping by returning the index as integer.
* In case no grouping is required false is to be returned.
@ -127,6 +117,16 @@ interface IExtension {
*/
public function isFilterValid($filterValue);
/**
* The extension can filter the types based on the filter if required.
* In case no filter is to be applied false is to be returned unchanged.
*
* @param array $types
* @param string $filter
* @return array|false
*/
public function filterNotificationTypes($types, $filter);
/**
* For a given filter the extension can specify the sql query conditions including parameters for that query.
* In case the extension does not know the filter false is to be returned.

24
lib/public/activity/imanager.php

@ -76,17 +76,16 @@ interface IManager {
function getNotificationTypes($languageCode);
/**
* @param array $types
* @param string $filter
* @param string $method
* @return array
*/
function filterNotificationTypes($types, $filter);
function getDefaultTypes($method);
/**
* @param string $method
* @return array
* @param string $type
* @return string
*/
function getDefaultTypes($method);
function getTypeIcon($type);
/**
* @param string $app
@ -106,12 +105,6 @@ interface IManager {
*/
function getSpecialParameterList($app, $text);
/**
* @param string $type
* @return string
*/
function getTypeIcon($type);
/**
* @param array $activity
* @return integer|false
@ -129,6 +122,13 @@ interface IManager {
*/
function isFilterValid($filterValue);
/**
* @param array $types
* @param string $filter
* @return array
*/
function filterNotificationTypes($types, $filter);
/**
* @param string $filter
* @return array

Loading…
Cancel
Save