|
|
@@ -747,4 +747,96 @@ class Schema_PrzypomnijStorageAcl extends Core_AclSimpleSchemaBase {
|
|
|
return in_array($fieldName, array_keys($this->_simpleSchema['root']));
|
|
|
}
|
|
|
|
|
|
+ // TODO: to use in AclQueryFeatures
|
|
|
+ function parseSpecialFilter($filterName, $value) { // @return string | array | null
|
|
|
+ switch ($filterName) {
|
|
|
+ case 'UserStatus': return $this->_parseSpecialFilterUserStatus($value);
|
|
|
+ case 'ns': return $this->_parseSpecialFilterNamespace($value);
|
|
|
+ case 'time': return $this->_parseSpecialFilterTime($value);
|
|
|
+ default: return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function _parseSpecialFilterUserStatus($value) {
|
|
|
+ switch ($value) {
|
|
|
+ case 'IS_ACTIVE': return ['USER__IS_ACTIVE', '=', '1'];
|
|
|
+ case 'IS_NOT_ACTIVE': return ['USER__IS_ACTIVE', '=', '0'];
|
|
|
+ default: return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function _parseSpecialFilterNamespace($value) {
|
|
|
+ switch ($value) {
|
|
|
+ case 'IN7_MK_BAZA_DYSTRYBUCJI': return ['namespace', '=', 'default_db/IN7_MK_BAZA_DYSTRYBUCJI'];
|
|
|
+ case 'IN7_DZIENNIK_KORESP': return ['namespace', '=', 'default_db/IN7_DZIENNIK_KORESP'];
|
|
|
+ case 'CRM_PROCES': return ['namespace', '=', 'default_db/CRM_PROCES'];
|
|
|
+ case 'PROBLEMS': return ['namespace', '=', 'default_db/PROBLEMS'];
|
|
|
+ case 'CRM_LISTA_ZASOBOW': return ['namespace', '=', 'default_db/CRM_LISTA_ZASOBOW'];
|
|
|
+ case 'MK_Rewiry': return ['namespace', '=', 'default_db/MK_Rewiry'];
|
|
|
+ case 'BUILDINGS': return ['namespace', '=', 'default_db/BUILDINGS'];
|
|
|
+ case 'QUALITY_NOTICES': return ['namespace', '=', 'default_db/QUALITY_NOTICES'];
|
|
|
+ case 'BADANIA_W_TERENIE': return ['namespace', '=', 'default_db/BADANIA_W_TERENIE'];
|
|
|
+ default: return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function _parseSpecialFilterTime($value) {
|
|
|
+ switch ($value) {
|
|
|
+ case 'PO_TERMINIE': return ['L_APPOITMENT_DATE', 'and', [
|
|
|
+ ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_LESS_THAN_NOW'],
|
|
|
+ ] ];
|
|
|
+ case 'DZISIAJ': return ['L_APPOITMENT_DATE', 'and', [
|
|
|
+ ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_GREATER_THAN', mktime(0,0,0, date("m"), date("d"), date("Y"))],
|
|
|
+ ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_LESS_THAN', mktime(0,0,0, date("m"), date("d") + 1, date("Y"))],
|
|
|
+ ] ];
|
|
|
+ case 'W_CIAGU_7_DNI': return ['L_APPOITMENT_DATE', 'and', [
|
|
|
+ ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_GREATER_THAN', mktime(0,0,0, date("m"), date("d") + 1, date("Y"))],
|
|
|
+ ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_LESS_THAN', mktime(0,0,0, date("m"), date("d") + 7, date("Y"))],
|
|
|
+ ] ];
|
|
|
+ case 'PO_7_DNIACH': return ['L_APPOITMENT_DATE', 'and', [
|
|
|
+ ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_GREATER_THAN', mktime(0,0,0, date("m"), date("d") + 7, date("Y"))],
|
|
|
+ ] ];
|
|
|
+ case 'BRAK': return ['L_APPOITMENT_DATE', 'or', [
|
|
|
+ ['L_APPOITMENT_DATE', '=', ''],
|
|
|
+ ['L_APPOITMENT_DATE', '=', '0000-00-00 00:00:00'],
|
|
|
+ ] ];
|
|
|
+ default: return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function getSpecialFilters() {
|
|
|
+ $fltrs = array();
|
|
|
+ {
|
|
|
+ $fltrs['UserStatus'] = new stdClass();
|
|
|
+ $fltrs['UserStatus']->icon = 'glyphicon glyphicon-user';
|
|
|
+ $fltrs['UserStatus']->label = 'Status użytkownika';
|
|
|
+ $fltrs['UserStatus']->btns = [];
|
|
|
+ $fltrs['UserStatus']->btns['Aktywny'] = (object)[ 'value' => 'IS_ACTIVE' ];
|
|
|
+ $fltrs['UserStatus']->btns['Nieaktywny'] = (object)[ 'value' => 'IS_NOT_ACTIVE' ];
|
|
|
+ }
|
|
|
+ {
|
|
|
+ $fltrs['ns'] = new stdClass();
|
|
|
+ $fltrs['ns']->icon = 'glyphicon glyphicon-tag';
|
|
|
+ $fltrs['ns']->label = 'Typ rekordu';
|
|
|
+ $fltrs['ns']->btns = [];
|
|
|
+ $fltrs['ns']->btns['Projekty'] = (object)[ 'value' => 'IN7_MK_BAZA_DYSTRYBUCJI' ];
|
|
|
+ $fltrs['ns']->btns['Koresp.'] = (object)[ 'value' => 'IN7_DZIENNIK_KORESP' ];
|
|
|
+ $fltrs['ns']->btns['Procesy'] = (object)[ 'value' => 'CRM_PROCES' ];
|
|
|
+ $fltrs['ns']->btns['Zadania'] = (object)[ 'value' => 'PROBLEMS' ];
|
|
|
+ $fltrs['ns']->btns['Zasoby'] = (object)[ 'value' => 'CRM_LISTA_ZASOBOW' ];
|
|
|
+ $fltrs['ns']->btns['MK_Rewiry'] = (object)[ 'value' => 'MK_Rewiry' ];
|
|
|
+ $fltrs['ns']->btns['Budynki'] = (object)[ 'value' => 'BUILDINGS' ];
|
|
|
+ $fltrs['ns']->btns['Jakość-Zgłoszenia'] = (object)[ 'value' => 'QUALITY_NOTICES' ];
|
|
|
+ $fltrs['ns']->btns['Badania w terenie'] = (object)[ 'value' => 'BADANIA_W_TERENIE' ];
|
|
|
+ }
|
|
|
+ {
|
|
|
+ $fltrs['time'] = new stdClass();
|
|
|
+ $fltrs['time']->icon = 'glyphicon glyphicon-calendar';
|
|
|
+ $fltrs['time']->label = 'Czas';
|
|
|
+ $fltrs['time']->btns = [];
|
|
|
+ $fltrs['time']->btns['po termine'] = (object)[ 'value' => 'PO_TERMINIE' ];
|
|
|
+ $fltrs['time']->btns['dzisiaj'] = (object)[ 'value' => 'DZISIAJ' ];
|
|
|
+ $fltrs['time']->btns['w ciągu 7 dni'] = (object)[ 'value' => 'W_CIAGU_7_DNI' ];
|
|
|
+ $fltrs['time']->btns['po 7 dniach'] = (object)[ 'value' => 'PO_7_DNIACH' ];
|
|
|
+ $fltrs['time']->btns['brak'] = (object)[ 'value' => 'BRAK' ];
|
|
|
+ }
|
|
|
+ return $fltrs;
|
|
|
+ }
|
|
|
+
|
|
|
}
|