This commit is contained in:
Roly Rudy Gutierrez Pinto
2018-11-27 15:59:01 -04:00
parent 0b841721a5
commit ad86c367f6
9 changed files with 106 additions and 13 deletions

View File

@@ -75,6 +75,8 @@ class UsersPropertiesMapBuilder
$tMap->addColumn('USR_SETTING_DESIGNER', 'UsrSettingDesigner', 'string', CreoleTypes::LONGVARCHAR, false, null); $tMap->addColumn('USR_SETTING_DESIGNER', 'UsrSettingDesigner', 'string', CreoleTypes::LONGVARCHAR, false, null);
$tMap->addColumn('PMDYNAFORM_FIRST_TIME', 'PmdynaformFirstTime', 'string', CreoleTypes::CHAR, false, 1);
} // doBuild() } // doBuild()
} // UsersPropertiesMapBuilder } // UsersPropertiesMapBuilder

View File

@@ -57,6 +57,12 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
*/ */
protected $usr_setting_designer; protected $usr_setting_designer;
/**
* The value for the pmdynaform_first_time field.
* @var string
*/
protected $pmdynaform_first_time = '0';
/** /**
* Flag to prevent endless save loop, if this object is referenced * Flag to prevent endless save loop, if this object is referenced
* by another object which falls in this transaction. * by another object which falls in this transaction.
@@ -147,6 +153,17 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
return $this->usr_setting_designer; return $this->usr_setting_designer;
} }
/**
* Get the [pmdynaform_first_time] column value.
*
* @return string
*/
public function getPmdynaformFirstTime()
{
return $this->pmdynaform_first_time;
}
/** /**
* Set the value of [usr_uid] column. * Set the value of [usr_uid] column.
* *
@@ -264,6 +281,28 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
} // setUsrSettingDesigner() } // setUsrSettingDesigner()
/**
* Set the value of [pmdynaform_first_time] column.
*
* @param string $v new value
* @return void
*/
public function setPmdynaformFirstTime($v)
{
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ($v !== null && !is_string($v)) {
$v = (string) $v;
}
if ($this->pmdynaform_first_time !== $v || $v === '0') {
$this->pmdynaform_first_time = $v;
$this->modifiedColumns[] = UsersPropertiesPeer::PMDYNAFORM_FIRST_TIME;
}
} // setPmdynaformFirstTime()
/** /**
* Hydrates (populates) the object variables with values from the database resultset. * Hydrates (populates) the object variables with values from the database resultset.
* *
@@ -291,12 +330,14 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
$this->usr_setting_designer = $rs->getString($startcol + 4); $this->usr_setting_designer = $rs->getString($startcol + 4);
$this->pmdynaform_first_time = $rs->getString($startcol + 5);
$this->resetModified(); $this->resetModified();
$this->setNew(false); $this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer. // FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 5; // 5 = UsersPropertiesPeer::NUM_COLUMNS - UsersPropertiesPeer::NUM_LAZY_LOAD_COLUMNS). return $startcol + 6; // 6 = UsersPropertiesPeer::NUM_COLUMNS - UsersPropertiesPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) { } catch (Exception $e) {
throw new PropelException("Error populating UsersProperties object", $e); throw new PropelException("Error populating UsersProperties object", $e);
@@ -515,6 +556,9 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
case 4: case 4:
return $this->getUsrSettingDesigner(); return $this->getUsrSettingDesigner();
break; break;
case 5:
return $this->getPmdynaformFirstTime();
break;
default: default:
return null; return null;
break; break;
@@ -540,6 +584,7 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
$keys[2] => $this->getUsrLoggedNextTime(), $keys[2] => $this->getUsrLoggedNextTime(),
$keys[3] => $this->getUsrPasswordHistory(), $keys[3] => $this->getUsrPasswordHistory(),
$keys[4] => $this->getUsrSettingDesigner(), $keys[4] => $this->getUsrSettingDesigner(),
$keys[5] => $this->getPmdynaformFirstTime(),
); );
return $result; return $result;
} }
@@ -586,6 +631,9 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
case 4: case 4:
$this->setUsrSettingDesigner($value); $this->setUsrSettingDesigner($value);
break; break;
case 5:
$this->setPmdynaformFirstTime($value);
break;
} // switch() } // switch()
} }
@@ -629,6 +677,10 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
$this->setUsrSettingDesigner($arr[$keys[4]]); $this->setUsrSettingDesigner($arr[$keys[4]]);
} }
if (array_key_exists($keys[5], $arr)) {
$this->setPmdynaformFirstTime($arr[$keys[5]]);
}
} }
/** /**
@@ -660,6 +712,10 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
$criteria->add(UsersPropertiesPeer::USR_SETTING_DESIGNER, $this->usr_setting_designer); $criteria->add(UsersPropertiesPeer::USR_SETTING_DESIGNER, $this->usr_setting_designer);
} }
if ($this->isColumnModified(UsersPropertiesPeer::PMDYNAFORM_FIRST_TIME)) {
$criteria->add(UsersPropertiesPeer::PMDYNAFORM_FIRST_TIME, $this->pmdynaform_first_time);
}
return $criteria; return $criteria;
} }
@@ -722,6 +778,8 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent
$copyObj->setUsrSettingDesigner($this->usr_setting_designer); $copyObj->setUsrSettingDesigner($this->usr_setting_designer);
$copyObj->setPmdynaformFirstTime($this->pmdynaform_first_time);
$copyObj->setNew(true); $copyObj->setNew(true);

View File

@@ -25,7 +25,7 @@ abstract class BaseUsersPropertiesPeer
const CLASS_DEFAULT = 'classes.model.UsersProperties'; const CLASS_DEFAULT = 'classes.model.UsersProperties';
/** The total number of columns. */ /** The total number of columns. */
const NUM_COLUMNS = 5; const NUM_COLUMNS = 6;
/** The number of lazy-loaded columns. */ /** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0; const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -46,6 +46,9 @@ abstract class BaseUsersPropertiesPeer
/** the column name for the USR_SETTING_DESIGNER field */ /** the column name for the USR_SETTING_DESIGNER field */
const USR_SETTING_DESIGNER = 'USERS_PROPERTIES.USR_SETTING_DESIGNER'; const USR_SETTING_DESIGNER = 'USERS_PROPERTIES.USR_SETTING_DESIGNER';
/** the column name for the PMDYNAFORM_FIRST_TIME field */
const PMDYNAFORM_FIRST_TIME = 'USERS_PROPERTIES.PMDYNAFORM_FIRST_TIME';
/** The PHP to DB Name Mapping */ /** The PHP to DB Name Mapping */
private static $phpNameMap = null; private static $phpNameMap = null;
@@ -57,10 +60,10 @@ abstract class BaseUsersPropertiesPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/ */
private static $fieldNames = array ( private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('UsrUid', 'UsrLastUpdateDate', 'UsrLoggedNextTime', 'UsrPasswordHistory', 'UsrSettingDesigner', ), BasePeer::TYPE_PHPNAME => array ('UsrUid', 'UsrLastUpdateDate', 'UsrLoggedNextTime', 'UsrPasswordHistory', 'UsrSettingDesigner', 'PmdynaformFirstTime', ),
BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID, UsersPropertiesPeer::USR_LAST_UPDATE_DATE, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME, UsersPropertiesPeer::USR_PASSWORD_HISTORY, UsersPropertiesPeer::USR_SETTING_DESIGNER, ), BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID, UsersPropertiesPeer::USR_LAST_UPDATE_DATE, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME, UsersPropertiesPeer::USR_PASSWORD_HISTORY, UsersPropertiesPeer::USR_SETTING_DESIGNER, UsersPropertiesPeer::PMDYNAFORM_FIRST_TIME, ),
BasePeer::TYPE_FIELDNAME => array ('USR_UID', 'USR_LAST_UPDATE_DATE', 'USR_LOGGED_NEXT_TIME', 'USR_PASSWORD_HISTORY', 'USR_SETTING_DESIGNER', ), BasePeer::TYPE_FIELDNAME => array ('USR_UID', 'USR_LAST_UPDATE_DATE', 'USR_LOGGED_NEXT_TIME', 'USR_PASSWORD_HISTORY', 'USR_SETTING_DESIGNER', 'PMDYNAFORM_FIRST_TIME', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
); );
/** /**
@@ -70,10 +73,10 @@ abstract class BaseUsersPropertiesPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/ */
private static $fieldKeys = array ( private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('UsrUid' => 0, 'UsrLastUpdateDate' => 1, 'UsrLoggedNextTime' => 2, 'UsrPasswordHistory' => 3, 'UsrSettingDesigner' => 4, ), BasePeer::TYPE_PHPNAME => array ('UsrUid' => 0, 'UsrLastUpdateDate' => 1, 'UsrLoggedNextTime' => 2, 'UsrPasswordHistory' => 3, 'UsrSettingDesigner' => 4, 'PmdynaformFirstTime' => 5, ),
BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID => 0, UsersPropertiesPeer::USR_LAST_UPDATE_DATE => 1, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME => 2, UsersPropertiesPeer::USR_PASSWORD_HISTORY => 3, UsersPropertiesPeer::USR_SETTING_DESIGNER => 4, ), BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID => 0, UsersPropertiesPeer::USR_LAST_UPDATE_DATE => 1, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME => 2, UsersPropertiesPeer::USR_PASSWORD_HISTORY => 3, UsersPropertiesPeer::USR_SETTING_DESIGNER => 4, UsersPropertiesPeer::PMDYNAFORM_FIRST_TIME => 5, ),
BasePeer::TYPE_FIELDNAME => array ('USR_UID' => 0, 'USR_LAST_UPDATE_DATE' => 1, 'USR_LOGGED_NEXT_TIME' => 2, 'USR_PASSWORD_HISTORY' => 3, 'USR_SETTING_DESIGNER' => 4, ), BasePeer::TYPE_FIELDNAME => array ('USR_UID' => 0, 'USR_LAST_UPDATE_DATE' => 1, 'USR_LOGGED_NEXT_TIME' => 2, 'USR_PASSWORD_HISTORY' => 3, 'USR_SETTING_DESIGNER' => 4, 'PMDYNAFORM_FIRST_TIME' => 5, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
); );
/** /**
@@ -184,6 +187,8 @@ abstract class BaseUsersPropertiesPeer
$criteria->addSelectColumn(UsersPropertiesPeer::USR_SETTING_DESIGNER); $criteria->addSelectColumn(UsersPropertiesPeer::USR_SETTING_DESIGNER);
$criteria->addSelectColumn(UsersPropertiesPeer::PMDYNAFORM_FIRST_TIME);
} }
const COUNT = 'COUNT(USERS_PROPERTIES.USR_UID)'; const COUNT = 'COUNT(USERS_PROPERTIES.USR_UID)';

View File

@@ -2399,6 +2399,7 @@
<column name="USR_LOGGED_NEXT_TIME" type="INTEGER" default="0"/> <column name="USR_LOGGED_NEXT_TIME" type="INTEGER" default="0"/>
<column name="USR_PASSWORD_HISTORY" type="LONGVARCHAR" required="false"/> <column name="USR_PASSWORD_HISTORY" type="LONGVARCHAR" required="false"/>
<column name="USR_SETTING_DESIGNER" type="LONGVARCHAR"/> <column name="USR_SETTING_DESIGNER" type="LONGVARCHAR"/>
<column name="PMDYNAFORM_FIRST_TIME" type="CHAR" size="1" default="0"/>
</table> </table>
<table name="ADDITIONAL_TABLES"> <table name="ADDITIONAL_TABLES">
<vendor type="mysql"> <vendor type="mysql">

View File

@@ -30,6 +30,7 @@ class Designer extends Controller
*/ */
public function index($httpData) public function index($httpData)
{ {
global $RBAC;
$proUid = isset($httpData->prj_uid) ? $httpData->prj_uid : ''; $proUid = isset($httpData->prj_uid) ? $httpData->prj_uid : '';
$appUid = isset($httpData->app_uid) ? $httpData->app_uid : ''; $appUid = isset($httpData->app_uid) ? $httpData->app_uid : '';
$proReadOnly = isset($httpData->prj_readonly) ? $httpData->prj_readonly : 'false'; $proReadOnly = isset($httpData->prj_readonly) ? $httpData->prj_readonly : 'false';
@@ -41,6 +42,9 @@ class Designer extends Controller
$enterprise = 0; $enterprise = 0;
$distribution = 0; $distribution = 0;
$usrUid = $RBAC->userObj->getUsrUid();
$userProperties = UsersPropertiesPeer::retrieveByPk($usrUid);
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
$licensedFeatures = PMLicensedFeatures::getSingleton(); $licensedFeatures = PMLicensedFeatures::getSingleton();
if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) { if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
@@ -65,6 +69,7 @@ class Designer extends Controller
$this->setVar("SYS_LANG", SYS_LANG); $this->setVar("SYS_LANG", SYS_LANG);
$this->setVar("SYS_SKIN", SYS_SKIN); $this->setVar("SYS_SKIN", SYS_SKIN);
$this->setVar('HTTP_SERVER_HOSTNAME', System::getHttpServerHostnameRequestsFrontEnd()); $this->setVar('HTTP_SERVER_HOSTNAME', System::getHttpServerHostnameRequestsFrontEnd());
$this->setVar('PMDYNAFORM_FIRST_TIME', $userProperties->getPmdynaformFirstTime());
if ($debug) { if ($debug) {
if (!file_exists(PATH_HTML . "lib-dev/pmUI/build.cache")) { if (!file_exists(PATH_HTML . "lib-dev/pmUI/build.cache")) {

View File

@@ -1115,6 +1115,7 @@ CREATE TABLE `USERS_PROPERTIES`
`USR_LOGGED_NEXT_TIME` INTEGER default 0, `USR_LOGGED_NEXT_TIME` INTEGER default 0,
`USR_PASSWORD_HISTORY` MEDIUMTEXT, `USR_PASSWORD_HISTORY` MEDIUMTEXT,
`USR_SETTING_DESIGNER` MEDIUMTEXT, `USR_SETTING_DESIGNER` MEDIUMTEXT,
`PMDYNAFORM_FIRST_TIME` CHAR(1) default '0',
PRIMARY KEY (`USR_UID`) PRIMARY KEY (`USR_UID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8'; )ENGINE=InnoDB DEFAULT CHARSET='utf8';
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------

View File

@@ -8,6 +8,7 @@ use G;
use PMmemcached; use PMmemcached;
use ProcessPeer; use ProcessPeer;
use ResultSet; use ResultSet;
use UsersPropertiesPeer;
class Process class Process
{ {
@@ -2160,4 +2161,21 @@ class Process
return $processes; return $processes;
} }
/**
* Set for the first time the user opened the dynaform editor.
*
* @param string $usrUid
* @param string $seen
*/
public function setIfFirstTimeConsumed($usrUid, $seen)
{
if ($seen === '1') {
$userProperties = UsersPropertiesPeer::retrieveByPk($usrUid);
if ($userProperties) {
$userProperties->setPmDynaformFirstTime('1');
$userProperties->save();
}
}
}
} }

View File

@@ -366,8 +366,9 @@ class Project extends Api
* *
* @url GET /:prj_uid/dynaforms * @url GET /:prj_uid/dynaforms
* @param string $prj_uid {@min 32}{@max 32} * @param string $prj_uid {@min 32}{@max 32}
* @param string $seen
*/ */
public function doGetDynaForms($prj_uid) public function doGetDynaForms($prj_uid, $seen = '0')
{ {
try { try {
$process = new \ProcessMaker\BusinessModel\Process(); $process = new \ProcessMaker\BusinessModel\Process();
@@ -375,7 +376,7 @@ class Project extends Api
$process->setArrayFieldNameForException(array("processUid" => "prj_uid")); $process->setArrayFieldNameForException(array("processUid" => "prj_uid"));
$response = $process->getDynaForms($prj_uid); $response = $process->getDynaForms($prj_uid);
$process->setIfFirstTimeConsumed($this->getUserId(), $seen);
return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601);
} catch (Exception $e) { } catch (Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));

View File

@@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<head> <head>
<link rel="stylesheet" href="/lib/pmdynaform/libs/font-awesome-4.6.3/css/font-awesome.min.css">
<!-- translations --> <!-- translations -->
<script type="text/javascript" src="{$translationMafe}"></script> <script type="text/javascript" src="{$translationMafe}"></script>
@@ -29,6 +30,7 @@
var SYS_LANG = "{$SYS_LANG}"; var SYS_LANG = "{$SYS_LANG}";
var SYS_SKIN = "{$SYS_SKIN}"; var SYS_SKIN = "{$SYS_SKIN}";
var HTTP_SERVER_HOSTNAME = "{$HTTP_SERVER_HOSTNAME}"; var HTTP_SERVER_HOSTNAME = "{$HTTP_SERVER_HOSTNAME}";
var PMDYNAFORM_FIRST_TIME = "{$PMDYNAFORM_FIRST_TIME}" === "1";
</script> </script>
<script type="text/javascript" src="/lib-dev/js/wz_jsgraphics.js"></script> <script type="text/javascript" src="/lib-dev/js/wz_jsgraphics.js"></script>
<script type="text/javascript" src="/lib-dev/js/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="/lib-dev/js/jquery-1.10.2.min.js"></script>
@@ -86,6 +88,7 @@
var SYS_LANG = "{$SYS_LANG}"; var SYS_LANG = "{$SYS_LANG}";
var SYS_SKIN = "{$SYS_SKIN}"; var SYS_SKIN = "{$SYS_SKIN}";
var HTTP_SERVER_HOSTNAME = "{$HTTP_SERVER_HOSTNAME}"; var HTTP_SERVER_HOSTNAME = "{$HTTP_SERVER_HOSTNAME}";
var PMDYNAFORM_FIRST_TIME = "{$PMDYNAFORM_FIRST_TIME}" === "1";
</script> </script>
<script type="text/javascript" src="/lib/js/mafe-{$buildhash}.js"></script> <script type="text/javascript" src="/lib/js/mafe-{$buildhash}.js"></script>
{foreach from=$sourceJs item=pathFile} {foreach from=$sourceJs item=pathFile}
@@ -94,7 +97,6 @@
{/if} {/if}
</head> </head>
<body onresize="resizingFrame();"> <body onresize="resizingFrame();">
<!--<div class="ui-layout-north">--> <!--<div class="ui-layout-north">-->