Improved the run query page: added meaningfull examples, including "ticket of the user currently logged in", and did some cosmetics on the page (examples shown in a drawer) ; needed to add some options to the OQL (date intervals)

SVN:trunk[122]
This commit is contained in:
Romain Quetiez
2009-09-08 15:10:31 +00:00
parent f3367cd587
commit c97db0e5e3
10 changed files with 598 additions and 490 deletions

View File

@@ -1202,6 +1202,10 @@ abstract class MetaModel
$aScalarArgs[$sArgName] = (string) $value;
}
}
// Add standard contextual arguments
//
$aScalarArgs['current_contact_id'] = UserRights::GetContactId();
return $aScalarArgs;
}

View File

@@ -125,6 +125,9 @@ class OQLLexerRaw
'/^YEAR/',
'/^MONTH/',
'/^DAY/',
'/^HOUR/',
'/^MINUTE/',
'/^SECOND/',
'/^DATE_ADD/',
'/^DATE_SUB/',
'/^ROUND/',
@@ -444,44 +447,59 @@ class OQLLexerRaw
function yy_r1_43($yy_subpatterns)
{
$this->token = OQLParser::F_DATE_ADD;
$this->token = OQLParser::F_HOUR;
}
function yy_r1_44($yy_subpatterns)
{
$this->token = OQLParser::F_DATE_SUB;
$this->token = OQLParser::F_MINUTE;
}
function yy_r1_45($yy_subpatterns)
{
$this->token = OQLParser::F_ROUND;
$this->token = OQLParser::F_SECOND;
}
function yy_r1_46($yy_subpatterns)
{
$this->token = OQLParser::F_FLOOR;
$this->token = OQLParser::F_DATE_ADD;
}
function yy_r1_47($yy_subpatterns)
{
$this->token = OQLParser::NUMVAL;
$this->token = OQLParser::F_DATE_SUB;
}
function yy_r1_48($yy_subpatterns)
{
$this->token = OQLParser::STRVAL;
$this->token = OQLParser::F_ROUND;
}
function yy_r1_49($yy_subpatterns)
{
$this->token = OQLParser::NAME;
$this->token = OQLParser::F_FLOOR;
}
function yy_r1_50($yy_subpatterns)
{
$this->token = OQLParser::VARNAME;
$this->token = OQLParser::NUMVAL;
}
function yy_r1_51($yy_subpatterns)
{
$this->token = OQLParser::STRVAL;
}
function yy_r1_52($yy_subpatterns)
{
$this->token = OQLParser::NAME;
}
function yy_r1_53($yy_subpatterns)
{
$this->token = OQLParser::VARNAME;
}
function yy_r1_54($yy_subpatterns)
{
$this->token = OQLParser::DOT;

View File

@@ -97,6 +97,9 @@ f_from_days = "FROM_DAYS"
f_year = "YEAR"
f_month = "MONTH"
f_day = "DAY"
f_hour = "HOUR"
f_minute = "MINUTE"
f_second = "SECOND"
f_date_add = "DATE_ADD"
f_date_sub = "DATE_SUB"
f_round = "ROUND"
@@ -238,6 +241,15 @@ f_month {
f_day {
$this->token = OQLParser::F_DAY;
}
f_hour {
$this->token = OQLParser::F_HOUR;
}
f_minute {
$this->token = OQLParser::F_MINUTE;
}
f_second {
$this->token = OQLParser::F_SECOND;
}
f_date_add {
$this->token = OQLParser::F_DATE_ADD;
}

File diff suppressed because it is too large Load Diff

View File

@@ -118,6 +118,9 @@ arg_list(A) ::= arg_list(L) COMA argument(X). {
argument(A) ::= expression_prio4(X). { A = X; }
argument(A) ::= INTERVAL expression_prio4(X) interval_unit(Y). { A = new IntervalOqlExpression(X, Y); }
interval_unit(A) ::= F_SECOND(X). { A = X; }
interval_unit(A) ::= F_MINUTE(X). { A = X; }
interval_unit(A) ::= F_HOUR(X). { A = X; }
interval_unit(A) ::= F_DAY(X). { A = X; }
interval_unit(A) ::= F_MONTH(X). { A = X; }
interval_unit(A) ::= F_YEAR(X). { A = X; }

View File

@@ -50,6 +50,7 @@ abstract class UserRightsAddOnAPI
abstract public function Init(); // loads data (possible optimizations)
abstract public function CheckCredentials($sLogin, $sPassword); // returns the id of the user or false
abstract public function GetUserId($sLogin); // returns the id of the user or false
abstract public function GetContactId($sLogin); // returns the id of the "business" user or false
abstract public function GetFilter($sLogin, $sClass); // returns a filter object
abstract public function IsActionAllowed($iUserId, $sClass, $iActionCode, dbObjectSet $oInstances);
abstract public function IsStimulusAllowed($iUserId, $sClass, $sStimulusCode, dbObjectSet $oInstances);
@@ -171,6 +172,16 @@ class UserRights
}
}
public static function GetContactId($sName = '')
{
// note: returns null if the user management module is not related to the business data model
if (empty($sName))
{
$sName = self::$m_sUser;
}
return self::$m_oAddOn->GetContactId($sName);
}
public static function GetRealUser()
{
return self::$m_sRealUser;