diff --git a/config.template.php b/config.template.php index 41abe8efc1a5b8039d470defa584ebbc138f3e47..fe88d5134b748dc385685ab7803d28d303380bd3 100644 --- a/config.template.php +++ b/config.template.php @@ -119,9 +119,6 @@ $list_max_entries_per_page = '20'; // history_max_viewed default value = 5 $history_max_viewed = '5'; -// default_module default value = Home -$default_module = 'Home'; - // default_action default value = index $default_action = 'index'; @@ -178,5 +175,8 @@ if(isset($default_timezone) && function_exists('date_default_timezone_set')) { //Set the default layout $default_layout = 'v7'; +//Maximiun scheduled workflows default value set to 10 +$max_scheduled_workflows = 10; + include_once 'config.security.php'; ?> diff --git a/data/CRMEntity.php b/data/CRMEntity.php index 5977573378163622d156dfab7e7dd7ec23d9f623..041febdb4b30334eed58687ff28bb5d25d3e3921 100644 --- a/data/CRMEntity.php +++ b/data/CRMEntity.php @@ -910,8 +910,17 @@ class CRMEntity { } } } + + //adding tags for vtws_retieve + $tagsList = Vtiger_Tag_Model::getAllAccessible($current_user->id, $module, $record); + $tags = array(); + foreach($tagsList as $tag) { + $tags[] = $tag->getName(); + } + $this->column_fields['tags'] = (count($tags) > 0) ? implode(',',$tags) : ''; $this->column_fields['record_id'] = $record; + $this->id = $record; $this->column_fields['record_module'] = $module; $this->column_fields->startTracking(); } @@ -936,7 +945,7 @@ class CRMEntity { $em->triggerEvent("vtiger.entity.beforesave.modifiable", $entityData); $em->triggerEvent("vtiger.entity.beforesave", $entityData); $em->triggerEvent("vtiger.entity.beforesave.final", $entityData); - } + } //Event triggering code ends //GS Save entity being called with the modulename as parameter diff --git a/include/QueryGenerator/EnhancedQueryGenerator.php b/include/QueryGenerator/EnhancedQueryGenerator.php index bf4878364c1301b5739e60cfbc53f5199c41aa40..5b139793b72e6c4b06693080d5ab59ae76e45921 100644 --- a/include/QueryGenerator/EnhancedQueryGenerator.php +++ b/include/QueryGenerator/EnhancedQueryGenerator.php @@ -667,27 +667,36 @@ class EnhancedQueryGenerator extends QueryGenerator { } foreach ($valueSqlList as $valueSql) { if (in_array($baseFieldName, $this->referenceFieldList)) { - if ($conditionInfo['operator'] == 'y') { + $trim = 'TRIM'; + $moduleList = $this->referenceFieldInfoList[$baseFieldName]; + if(in_array('Users', $moduleList)) { + $columnSqlTable = 'vtiger_users'.$parentReferenceField.$fieldName; + $columnSql = getSqlForNameInDisplayFormat(array('first_name'=>$columnSqlTable.'.first_name', + 'last_name'=>$columnSqlTable.'.last_name'),'Users'); + } else if(in_array('DocumentFolders', $moduleList)) { + $columnSql = "vtiger_attachmentsfolder".$fieldName.".foldername"; + } else if(in_array('Currency', $moduleList)) { + $columnSql = "vtiger_currency_info$parentReferenceField$fieldName.currency_name"; + if($fieldName == 'currency_id' && is_numeric($conditionInfo['value'])){ + $columnSql = "vtiger_currency_info$parentReferenceField$fieldName.id"; + } + } else if ($baseFieldName == 'roleid'){ + $columnSql = 'vtiger_role.rolename'; + }else { + $trim = ''; + $columnSql = 'vtiger_crmentity'.$parentReferenceField.$fieldName.'.label'; + } + if($conditionInfo['operator'] == 'y' || ($conditionInfo['operator'] == 'e' && $valueSql == "= ''")) { $columnName = $field->getColumnName(); // We are checking for zero since many reference fields will be set to 0 if it doest not have any value - $fieldSql .= "$fieldGlue $tableName.$columnName $valueSql OR $tableName.$columnName = '0'"; + // We are checking for NULL as well since for custom relationships if the record is deleted the value will be retained and will not become 0 + $fieldSql .= "$fieldGlue $trim($columnSql) IS NULL OR $tableName.$columnName $valueSql OR $tableName.$columnName = '0'"; $fieldGlue = ' OR'; - } else { - $moduleList = $this->referenceFieldInfoList[$baseFieldName]; - if (in_array('Users', $moduleList)) { - $columnSqlTable = 'vtiger_users'.$parentReferenceField.$fieldName; - $columnSql = getSqlForNameInDisplayFormat(array('first_name' => $columnSqlTable.'.first_name', - 'last_name' => $columnSqlTable.'.last_name'), 'Users'); - } else if (in_array('DocumentFolders', $moduleList)) { - $columnSql = "vtiger_attachmentsfolder".$fieldName.".foldername"; - } else if (in_array('Currency', $moduleList)) { - $columnSql = "vtiger_currency_info$parentReferenceField$fieldName.currency_name"; - } else if ($baseFieldName == 'roleid') { - $columnSql = 'vtiger_role.rolename'; - } else { - $columnSql = 'vtiger_crmentity'.$parentReferenceField.$fieldName.'.label'; - } - $fieldSql .= "$fieldGlue trim($columnSql) $valueSql"; + } else if ($conditionInfo['operator'] == 'k' || $conditionInfo['operator'] == 'n') { + $fieldSql .= " $fieldGlue ( $trim($columnSql) $valueSql OR $trim($columnSql) IS NULL )"; + $fieldGlue = 'OR'; + } else{ + $fieldSql .= "$fieldGlue $trim($columnSql) $valueSql"; $fieldGlue = ' OR'; } } elseif (in_array($baseFieldName, $this->ownerFields)) { diff --git a/include/Webservices/LineItem/VtigerInventoryOperation.php b/include/Webservices/LineItem/VtigerInventoryOperation.php index ade2deb304d6c9eac0b8f3e2f5336a192d2ff333..4502de55d2ebe2a24262eaa961be888ea2d14c36 100644 --- a/include/Webservices/LineItem/VtigerInventoryOperation.php +++ b/include/Webservices/LineItem/VtigerInventoryOperation.php @@ -336,7 +336,9 @@ class VtigerInventoryOperation extends VtigerModuleOperation { unset($_REQUEST['charges'][1]['taxes'][$shTaxId]); if(isset($element['hdnS_H_Percent']) && $element['hdnS_H_Percent'] != 0 && $element['hdnS_H_Amount'] != 0) { $_REQUEST['charges'][1]['taxes'][$shTaxId] = $element['hdnS_H_Percent']; - $_REQUEST['s_h_percent'] = ($element['hdnS_H_Amount'] * $element['hdnS_H_Percent'])/100; + $_REQUEST['s_h_percent'] = ($element['hdnS_H_Percent']/$element['hdnS_H_Amount'])*100; + $_REQUEST['charges'][$firstActiveCharge]['taxes'][$shTaxId] = $_REQUEST['s_h_percent']; + $element['hdnS_H_Percent'] = $_REQUEST['s_h_percent']; break; } else { $shTaxValue = 0; diff --git a/include/Webservices/VtigerModuleOperation.php b/include/Webservices/VtigerModuleOperation.php index 675b67ff8b4f000211db868d3a1ad9a3c4898626..930d1ce5ae9de5f4048b144fb94a76447c1bb435 100644 --- a/include/Webservices/VtigerModuleOperation.php +++ b/include/Webservices/VtigerModuleOperation.php @@ -174,6 +174,7 @@ class VtigerModuleOperation extends WebserviceEntityOperation { $meta = $parser->getObjectMetaData(); $this->pearDB->startTransaction(); $result = $this->pearDB->pquery($mysql_query, array()); + $tableIdColumn = $meta->getIdColumn(); $error = $this->pearDB->hasFailedTransaction(); $this->pearDB->completeTransaction(); @@ -187,13 +188,22 @@ class VtigerModuleOperation extends WebserviceEntityOperation { $output = array(); for($i=0; $i<$noofrows; $i++){ $row = $this->pearDB->fetchByAssoc($result,$i); - if(!$meta->hasPermission(EntityMeta::$RETRIEVE,$row["crmid"])){ + if(!$meta->hasPermission(EntityMeta::$RETRIEVE,$row[$tableIdColumn])){ continue; } - $output[] = DataTransform::sanitizeDataWithColumn($row,$meta); + $output[$row[$tableIdColumn]] = DataTransform::sanitizeDataWithColumn($row,$meta); } - return $output; + $newOutput = array(); + if(count($output)) { + //Added check if tags was requested or not + if(stripos($mysql_query, $meta->getEntityBaseTable().'.tags') !== false) $tags = Vtiger_Tag_Model::getAllAccessibleTags(array_keys($output)); + foreach($output as $id => $row1) { + if(!empty($tags[$id])) $output[$id]['tags'] = $tags[$id]; + $newOutput[] = $output[$id]; + } + } + return $newOutput; } public function describe($elementType){ diff --git a/include/Webservices/WebserviceField.php b/include/Webservices/WebserviceField.php index 3499c3a190dcbd489e480914b9c7ec8a3fe7570a..57be736e2405e7d4c1535e4d79f212e6188fb1b7 100644 --- a/include/Webservices/WebserviceField.php +++ b/include/Webservices/WebserviceField.php @@ -336,6 +336,7 @@ class WebserviceField{ function getPicklistDetails(){ $cache = Vtiger_Cache::getInstance(); + $fieldName = $this->getFieldName(); if($cache->getPicklistDetails($this->getTabId(),$this->getFieldName())){ return $cache->getPicklistDetails($this->getTabId(),$this->getFieldName()); } else { @@ -346,7 +347,26 @@ class WebserviceField{ foreach ($allRegions as $regionId => $regionDetails) { $picklistDetails[] = array('value' => $regionId, 'label' => $regionDetails['name']); } - } else { + }elseif ($fieldName == 'defaultlandingpage') { + $picklistDetails = array(); + $presence = array(0); + $restrictedModules = array('Webmails', 'Emails', 'Integration', 'Dashboard','ModComments'); + $query = 'SELECT name, tablabel, tabid FROM vtiger_tab WHERE presence IN (' . generateQuestionMarks($presence) . ') AND isentitytype = ? AND name NOT IN (' . generateQuestionMarks($restrictedModules) . ')'; + + $result = $this->pearDB->pquery($query, array($presence, '1', $restrictedModules)); + $numOfRows = $this->pearDB->num_rows($result); + + $picklistDetails[] = array('value' => 'Home', 'label' => vtranslate('Home', 'Home')); + for ($i = 0; $i < $numOfRows; $i++) { + $moduleName = $this->pearDB->query_result($result, $i, 'name'); + + // check the module access permission, if user has permission then show it in default module list + if (vtlib_isModuleActive($moduleName)) { + $moduleLabel = $this->pearDB->query_result($result, $i, 'tablabel'); + $picklistDetails[] = array('value' => $moduleName, 'label' => vtranslate($moduleLabel, $moduleName)); + } + } + } else { $hardCodedPickListNames = array('hdntaxtype','email_flag'); $hardCodedPickListValues = array('hdntaxtype'=> array( array('label' => 'Individual', 'value' => 'individual'), array('label' => 'Group', 'value' => 'group')), diff --git a/include/database/PearDatabase.php b/include/database/PearDatabase.php index 0b7646c23a4a23199c6fbe0d3f9033d68211b73c..fa41139bee6793849e055f7d2b0b9dc662bd7446 100644 --- a/include/database/PearDatabase.php +++ b/include/database/PearDatabase.php @@ -961,10 +961,12 @@ class PearDatabase{ $this->checkConnection(); $adoflds = $this->database->MetaColumns($tablename); $i=0; - foreach($adoflds as $fld) { - $colNames[$i] = $fld->name; - $i++; - } + if(!empty($adoflds)){ + foreach($adoflds as $fld) { + $colNames[$i] = $fld->name; + $i++; + } + } return $colNames; } diff --git a/include/fields/CurrencyField.php b/include/fields/CurrencyField.php index 5f475df09df174d77c7888d72fdfcd338bddb9f0..44e9a735f9fa38e49a041ba153f3266cf317836b 100644 --- a/include/fields/CurrencyField.php +++ b/include/fields/CurrencyField.php @@ -410,7 +410,7 @@ class CurrencyField { public static function convertToDollar($amount, $conversionRate) { if ($conversionRate == 0) return 0; - return $amount / $conversionRate; + return (float)$amount / (float)$conversionRate; } public static function convertFromDollar($amount, $conversionRate) { diff --git a/include/fields/DateTimeField.php b/include/fields/DateTimeField.php index de2d15fcf64baf70bbb1be5e35858c857b13cfdb..4425c3a36170f80b3d955aac46106cc95e4cb0af 100644 --- a/include/fields/DateTimeField.php +++ b/include/fields/DateTimeField.php @@ -68,54 +68,95 @@ class DateTimeField { public function getFullcalenderDateTimevalue ($user = null) { return $this->getDisplayDate($user) . ' ' . $this->getFullcalenderTime($user); } - /** - * - * @global Users $current_user - * @param type $date - * @param Users $user - * @return type - */ - public static function convertToDBFormat($date, $user = null) { - global $current_user; - if(empty($user)) { - $user = $current_user; - } - $format = $current_user->date_format; - if(empty($format)) { - $format = 'dd-mm-yyyy'; - } - - return self::__convertToDBFormat($date, $format); - } - - /** - * - * @param type $date - * @param string $format - * @return string - */ - public static function __convertToDBFormat($date, $format) { - - if ($format == '') { - $format = 'dd-mm-yyyy'; - } - $dbDate = ''; - if ($format == 'dd-mm-yyyy') { - list($d, $m, $y) = explode('-', $date); - } elseif ($format == 'mm-dd-yyyy') { - list($m, $d, $y) = explode('-', $date); - } elseif ($format == 'yyyy-mm-dd') { - list($y, $m, $d) = explode('-', $date); - } - - if (!$y && !$m && !$d) { - $dbDate = ''; - } else { - $dbDate = $y . '-' . $m . '-' . $d; - } - return $dbDate; - } + /** + * + * @param string $date + * @param Users $user + * + * @return string + * @global Users $current_user + */ + public static function convertToDBFormat($date, $user = null) + { + global $current_user; + if (empty($user)) { + $user = $current_user; + } + if (preg_match("/^[0-9]{2,4}[-][0-1]{1,2}?[0-9]{1,2}[-][0-3]{1,2}?[0-9]{1,2}$/", $date) == 1) { + return $date; + } + $format = $user->date_format; + if (empty($format)) { + if (false !== strpos($date, '.')) { + $format = 'dd.mm.yyyy'; + } else if (false !== strpos($date, '/')) { + $format = 'dd/mm/yyyy'; + } else { + $format = 'dd-mm-yyyy'; + } + } + + return self::__convertToDBFormat($date, $format); + } + + /** + * + * @param string $date + * @param string $format + * + * @return string + */ + public static function __convertToDBFormat($date, $format) + { + $dbDate = ''; + + if (empty($format)) { + if (false !== strpos($date, '.')) { + $format = 'dd.mm.yyyy'; + } else if (false !== strpos($date, '/')) { + $format = 'dd/mm/yyyy'; + } else { + $format = 'dd-mm-yyyy'; + } + } + + switch ($format) { + case 'dd.mm.yyyy': + list($d, $m, $y) = explode('.', $date); + break; + case 'mm.dd.yyyy': + list($m, $d, $y) = explode('.', $date); + break; + case 'yyyy.mm.dd': + list($y, $m, $d) = explode('.', $date); + break; + case 'dd/mm/yyyy': + list($d, $m, $y) = explode('/', $date); + break; + case 'mm/dd/yyyy': + list($m, $d, $y) = explode('/', $date); + break; + case 'yyyy/mm/dd': + list($y, $m, $d) = explode('/', $date); + break; + case 'dd-mm-yyyy': + list($d, $m, $y) = explode('-', $date); + break; + case 'mm-dd-yyyy': + list($m, $d, $y) = explode('-', $date); + break; + case 'yyyy-mm-dd': + list($y, $m, $d) = explode('-', $date); + break; + } + + if (!empty($y) && !empty($m) && !empty($d)) { + $dbDate = $y . '-' . $m . '-' . $d; + } + + return $dbDate; + } /** * @@ -148,30 +189,56 @@ class DateTimeField { return self::__convertToUserFormat($date, $format); } - /** - * - * @param type $date - * @param type $format - * @return type - */ - public static function __convertToUserFormat($date, $format) { - $date = self::convertToInternalFormat($date); - list($y, $m, $d) = explode('-', $date[0]); - - if ($format == 'dd-mm-yyyy') { - $date[0] = $d . '-' . $m . '-' . $y; - } elseif ($format == 'mm-dd-yyyy') { - $date[0] = $m . '-' . $d . '-' . $y; - } elseif ($format == 'yyyy-mm-dd') { - $date[0] = $y . '-' . $m . '-' . $d; - } - if ($date[1] != '') { - $userDate = $date[0] . ' ' . $date[1]; - } else { - $userDate = $date[0]; - } - return $userDate; - } + /** + * + * @param type $date + * @param type $format + * + * @return string + */ + public static function __convertToUserFormat($date, $format) + { + $date = self::convertToInternalFormat($date); + list($y, $m, $d) = explode('-', $date[0]); + + switch ($format) { + case 'dd.mm.yyyy': + $date[0] = $d . '.' . $m . '.' . $y; + break; + case 'mm.dd.yyyy': + $date[0] = $m . '.' . $d . '.' . $y; + break; + case 'yyyy.mm.dd': + $date[0] = $y . '.' . $m . '.' . $d; + break; + case 'dd/mm/yyyy': + $date[0] = $d . '/' . $m . '/' . $y; + break; + case 'mm/dd/yyyy': + $date[0] = $m . '/' . $d . '/' . $y; + break; + case 'yyyy/mm/dd': + $date[0] = $y . '/' . $m . '/' . $d; + break; + case 'dd-mm-yyyy': + $date[0] = $d . '-' . $m . '-' . $y; + break; + case 'mm-dd-yyyy': + $date[0] = $m . '-' . $d . '-' . $y; + break; + case 'yyyy-mm-dd': + $date[0] = $y . '-' . $m . '-' . $d; + break; + } + + if ($date[1] != '') { + $userDate = $date[0] . ' ' . $date[1]; + } else { + $userDate = $date[0]; + } + + return $userDate; + } /** * @@ -305,18 +372,29 @@ class DateTimeField { $user = $current_user; } - if($user->date_format == 'mm-dd-yyyy') { + $y = false; + $m = false; + $d = false; + $time = false; + + if($user->date_format) { list($date, $time) = explode(' ', $value); if(!empty($date)) { - list($m, $d, $y) = explode('-', $date); - if(strlen($m) < 3) { - $time = ' '.$time; - $value = "$y-$m-$d".rtrim($time); + switch ($user->date_format) { + case 'mm.dd.yyyy': list($m, $d, $y) = explode('.', $date); break; + case 'dd.mm.yyyy': list($d, $m, $y) = explode('.', $date); break; + case 'dd/mm/yyyy': list($d, $m, $y) = explode('/', $date); break; + case 'mm/dd/yyyy': list($d, $m, $y) = explode('/', $date); break; + case 'mm-dd-yyyy': list($m, $d, $y) = explode('-', $date); break; + case 'dd-mm-yyyy': list($d, $m, $y) = explode('-', $date); break; } } + if ($y) { + $value = "$y-$m-$d ".rtrim($time); + } } return $value; } -} +} \ No newline at end of file diff --git a/include/utils/CommonUtils.php b/include/utils/CommonUtils.php index 1ef02a99ab153c2e3632fad41934308ff7ee8733..bc741db18238384d257b0e664dba528293b89b1c 100755 --- a/include/utils/CommonUtils.php +++ b/include/utils/CommonUtils.php @@ -32,8 +32,8 @@ function is_admin($user) { return Vtiger_Functions::userIsAdministrator($user); } -function parse_calendardate($local_format) { - return Vtiger_Functions::currentUserJSDateFormat($local_format); +function parse_calendardate() { + return Vtiger_Functions::currentUserJSDateFormat(); } function from_html($string, $encode = true) { diff --git a/include/utils/EmailTemplate.php b/include/utils/EmailTemplate.php index 4c4b1790c362264deb80ca742fbc2fd23d48bd9d..8e57aaaa13b50c9014297c7da34ff01e296d71bc 100644 --- a/include/utils/EmailTemplate.php +++ b/include/utils/EmailTemplate.php @@ -66,6 +66,7 @@ class EmailTemplate { public function process($params) { $module = $this->module; $recordId = $this->recordId; + $variableList = array(); $variableList = $this->getTemplateVariableListForModule($module); $handler = vtws_getModuleHandlerFromName($module, $this->user); $meta = $handler->getMeta(); diff --git a/include/utils/InventoryUtils.php b/include/utils/InventoryUtils.php index 5280b6f48f73a35fbb5e0763ab1ee3d939d469a5..2c00ba34f6519c990c304ff0c137fa05a640c11a 100644 --- a/include/utils/InventoryUtils.php +++ b/include/utils/InventoryUtils.php @@ -864,7 +864,7 @@ function saveInventoryProductDetails(&$focus, $module, $update_prod_stock='false $adb->pquery('INSERT INTO vtiger_inventorychargesrel VALUES (?, ?)', array($focus->id, Zend_Json::encode($chargesInfo))); $updatequery .= " s_h_percent=?"; - array_push($updateparams, $shipping_handling_charge); + array_push($updateparams, vtlib_purify($_REQUEST['s_h_percent'])); //$id_array = Array('PurchaseOrder'=>'purchaseorderid','SalesOrder'=>'salesorderid','Quotes'=>'quoteid','Invoice'=>'invoiceid'); //Added where condition to which entity we want to update these values @@ -972,7 +972,7 @@ function getInventorySHTaxPercent($id, $taxname) global $log, $adb; $log->debug("Entering into function getInventorySHTaxPercent($id, $taxname)"); - $taxname = Vtiger_Util_Helper::validateStringForSql($taxname); + $taxname = $taxname; $res = $adb->pquery("select $taxname from vtiger_inventoryshippingrel where id= ?", array($id)); $taxpercentage = $adb->query_result($res,0,$taxname); @@ -1313,7 +1313,7 @@ function createRecords($obj) { $focus = CRMEntity::getInstance($moduleName); $params = array(); - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user)); + $tableName = Import_Utils_Helper::getDbTableName($obj->user); $sql = 'SELECT * FROM ' . $tableName . ' WHERE status = ? GROUP BY subject'; $params[] = Import_Data_Action::$IMPORT_RECORD_NONE; if($obj->batchImport) { @@ -1522,7 +1522,7 @@ function importRecord($obj, $inventoryFieldData, $lineItemDetails) { function getImportStatusCount($obj) { global $adb; - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user)); + $tableName = Import_Utils_Helper::getDbTableName($obj->user); $result = $adb->pquery('SELECT status FROM '.$tableName. ' GROUP BY subject', array()); $statusCount = array('TOTAL' => 0, 'IMPORTED' => 0, 'FAILED' => 0, 'PENDING' => 0, @@ -1565,7 +1565,7 @@ function undoLastImport($obj, $user) { $owner->id = $ownerId; $owner->retrieve_entity_info($ownerId, 'Users'); - $dbTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($owner)); + $dbTableName = Import_Utils_Helper::getDbTableName($owner); if(!is_admin($user) && $user->id != $owner->id) { $viewer = new Vtiger_Viewer(); diff --git a/include/utils/UserInfoUtil.php b/include/utils/UserInfoUtil.php index 5d34fccba6174a6c28edee9b0dc22c0b5c42a2c8..2ce1811cc2c4d200d78e3cce48ab8814ec112da8 100755 --- a/include/utils/UserInfoUtil.php +++ b/include/utils/UserInfoUtil.php @@ -2194,7 +2194,7 @@ function RecalculateSharingRules() $log->debug("Entering RecalculateSharingRules() method ..."); global $adb; require_once('modules/Users/CreateUserPrivilegeFile.php'); - $query="select id from vtiger_users where deleted=0"; + $query="select id from vtiger_users where deleted=0 AND status = 'Active'"; $result=$adb->pquery($query, array()); $num_rows=$adb->num_rows($result); for($i=0;$i<$num_rows;$i++) diff --git a/include/utils/VtlibUtils.php b/include/utils/VtlibUtils.php index dbf16efb05ff2c524bf4a9bab6c980d7e07767ea..50fb375994ce10932bcf78fc0de4d88ecdb0cbca 100644 --- a/include/utils/VtlibUtils.php +++ b/include/utils/VtlibUtils.php @@ -158,6 +158,8 @@ function vtlib_toggleModuleAccess($modules, $enable_disable) { } else if($enable_disable === false) { $enable_disable = 1; $event_type = Vtiger_Module::EVENT_MODULE_DISABLED; + //Update default landing page to dashboard if module is disabled. + $adb->pquery('UPDATE vtiger_users SET defaultlandingpage = ? WHERE defaultlandingpage IN(' . generateQuestionMarks($modules) . ')', array_merge(array('Home'), $modules)); } $checkResult = $adb->pquery('SELECT name FROM vtiger_tab WHERE name IN ('. generateQuestionMarks($modules) .')', array($modules)); @@ -712,16 +714,24 @@ function vtlib_purify($input, $ignore=false) { * @param <String> $value * @return <String> */ -function purifyHtmlEventAttributes($value){ +function purifyHtmlEventAttributes($value,$replaceAll = false){ $htmlEventAttributes = "onerror|onblur|onchange|oncontextmenu|onfocus|oninput|oninvalid|". - "onreset|onsearch|onselect|onsubmit|onkeydown|onkeypress|onkeyup|". - "onclick|ondblclick|ondrag|ondragend|ondragenter|ondragleave|ondragover|". - "ondragstart|ondrop|onmousedown|onmousemove|onmouseout|onmouseover|". - "onmouseup|onmousewheel|onscroll|onwheel|oncopy|oncut|onpaste"; - if(preg_match("/\s*(".$htmlEventAttributes.")\s*=/i", $value)) { - $value = str_replace("=", "=", $value); - } - return $value; + "onreset|onsearch|onselect|onsubmit|onkeydown|onkeypress|onkeyup|". + "onclick|ondblclick|ondrag|ondragend|ondragenter|ondragleave|ondragover|". + "ondragstart|ondrop|onmousedown|onmousemove|onmouseout|onmouseover|". + "onmouseup|onmousewheel|onscroll|onwheel|oncopy|oncut|onpaste|onload|". + "onselectionchange|onabort|onselectstart|onstart|onfinish|onloadstart|onshow"; + + // remove malicious html attributes with its value. + if ($replaceAll) { + $regex = '\s*=\s*(?:"[^"]*"[\'"]*|\'[^\']*\'[\'"]*|[^]*[\s\/>])*/i'; + $value = preg_replace("/\s*(" . $htmlEventAttributes . ")" . $regex, '', $value); + } else { + if (preg_match("/\s*(" . $htmlEventAttributes . ")\s*=/i", $value)) { + $value = str_replace("=", "=", $value); + } + } + return $value; } /** @@ -827,4 +837,23 @@ function vtlib_addSettingsLink($linkName, $linkURL, $blockName = false) { return $success; } +/** + * PHP7 support for split function + * split : Case sensitive. + */ +if (!function_exists('split')) { + function split($pattern, $string, $limit = null) { + $regex = '/' . preg_replace('/\//', '\\/', $pattern) . '/'; + return preg_split($regex, $string, $limit); + } + +} + +function php7_compat_ereg($pattern, $str, $ignore_case=false) { + $regex = '/'. preg_replace('/\//', '\\/', $pattern) .'/' . ($ignore_case ? 'i': ''); + return preg_match($regex, $str); +} + +if (!function_exists('ereg')) { function ereg($pattern, $str) { return php7_compat_ereg($pattern, $str); } } +if (!function_exists('eregi')) { function eregi($pattern, $str) { return php7_compat_ereg($pattern, $str, true); } } ?> \ No newline at end of file diff --git a/include/utils/utils.php b/include/utils/utils.php index fc250c377a47f30faf3464479efdc9ba750ccc0b..fd46ecd56a0221215a96a1177a30d1737b4a9a99 100755 --- a/include/utils/utils.php +++ b/include/utils/utils.php @@ -1786,32 +1786,9 @@ function isRecordExists($recordId) { function getValidDBInsertDateValue($value) { global $log; $log->debug("Entering getValidDBInsertDateValue(".$value.") method ..."); - $value = trim($value); - $delim = array('/','.'); - foreach ($delim as $delimiter){ - $x = strpos($value, $delimiter); - if($x === false) continue; - else{ - $value=str_replace($delimiter, '-', $value); - break; - } - } - list($y,$m,$d) = explode('-',$value); - if(strlen($y) == 1) $y = '0'.$y; - if(strlen($m) == 1) $m = '0'.$m; - if(strlen($d) == 1) $d = '0'.$d; - $value = implode('-', array($y,$m,$d)); - - if(strlen($y)<4){ - $insert_date = DateTimeField::convertToDBFormat($value); - } else { - $insert_date = $value; - } - - if (preg_match("/^[0-9]{2,4}[-][0-1]{1,2}?[0-9]{1,2}[-][0-3]{1,2}?[0-9]{1,2}$/", $insert_date) == 0) { - return ''; - } - + + $insert_date = DateTimeField::convertToDBFormat($value); + $log->debug("Exiting getValidDBInsertDateValue method ..."); return $insert_date; } @@ -2322,33 +2299,6 @@ function lower_array(&$string){ $string = strtolower(trim($string)); } -/* PHP 7 support */ -function php7_compat_split($delim, $str, $ignore_case=false) { - $splits = array(); - while ($str) { - $pos = $ignore_case ? stripos($str, $delim) : strpos($str, $delim); - if ($pos !== false) { - $splits[] = substr($str, 0, $pos); - $str = substr($str, $pos + strlen($delim)); - } else { - $splits[] = $str; - $str = false; - } - } - return $splits; -} - -if (!function_exists('split')) { function split($delim, $str) {return php7_compat_split($delim, $str); } } -if (!function_exists('spliti')) { function spliti($delim, $str) {return php7_compat_split($delim, $str, true);}} - -function php7_compat_ereg($pattern, $str, $ignore_case=false) { - $regex = '/'. preg_replace('/\//', '\\/', $pattern) .'/' . ($ignore_case ? 'i': ''); - return preg_match($regex, $str); -} - -if (!function_exists('ereg')) { function ereg($pattern, $str) { return php7_compat_ereg($pattern, $str); } } -if (!function_exists('eregi')) { function eregi($pattern, $str) { return php7_compat_ereg($pattern, $str, true); } } - if (!function_exists('get_magic_quotes_runtime')) { function get_magic_quotes_runtime() { return false; } } if (!function_exists('set_magic_quotes_runtime')) { function set_magic_quotes_runtime($flag) {} } diff --git a/includes/main/WebUI.php b/includes/main/WebUI.php index bbc6e0aaf928ea146af2104af3158c365e7d1823..96ba9788ff8f6d16ef97ced54008bdfc2335f521 100644 --- a/includes/main/WebUI.php +++ b/includes/main/WebUI.php @@ -151,7 +151,7 @@ class Vtiger_WebUI extends Vtiger_EntryPoint { if(empty($module)) { if ($this->hasLogin()) { - $defaultModule = vglobal('default_module'); + $defaultModule = $currentUser->defaultlandingpage; $moduleModel = Vtiger_Module_Model::getInstance($defaultModule); if(!empty($defaultModule) && $defaultModule != 'Home' && $moduleModel && $moduleModel->isActive()) { $module = $defaultModule; $qualifiedModuleName = $defaultModule; $view = 'List'; diff --git a/includes/runtime/Controller.php b/includes/runtime/Controller.php index dee9aa491115a833b9a97920753e170bd26f84f3..4d55354afd24b28b9230e1617a0db0aa9e6d9b8c 100644 --- a/includes/runtime/Controller.php +++ b/includes/runtime/Controller.php @@ -111,27 +111,38 @@ abstract class Vtiger_Action_Controller extends Vtiger_Controller { function requiresPermission(Vtiger_Request $request) { return array(); } - - function checkPermission(Vtiger_Request $request) { - $permissions = $this->requiresPermission($request); - foreach($permissions as $permission) { - if(array_key_exists('module_parameter', $permission)){ - $moduleParameter = $request->get($permission['module_parameter']); - }else{ - $moduleParameter = 'module'; - } - if(array_key_exists('record_parameter', $permission)){ - $recordParameter = $request->get($permission['record_parameter']); - }else{ - $recordParameter = ''; - } - if(!Users_Privileges_Model::isPermitted($moduleParameter, $permission['action'], $recordParameter)) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } - if(Vtiger_Runtime::isRestricted('modules',$moduleParameter)){} - } - return true; - } + + /** + * @param Vtiger_Request $request + * + * @return bool + * @throws AppException + */ + function checkPermission(Vtiger_Request $request) + { + $permissions = $this->requiresPermission($request); + foreach ($permissions as $permission) { + if (array_key_exists('module_parameter', $permission)) { + if ($request->has($permission['module_parameter']) && !empty($request->get($permission['module_parameter']))) { + $moduleParameter = $request->get($permission['module_parameter']); + } elseif ($request->has('record') && !empty($request->get('record'))) { + $moduleParameter = getSalesEntityType($request->get('record')); + } + } else { + $moduleParameter = 'module'; + } + if (array_key_exists('record_parameter', $permission)) { + $recordParameter = $request->get($permission['record_parameter']); + } else { + $recordParameter = ''; + } + if (!Users_Privileges_Model::isPermitted($moduleParameter, $permission['action'], $recordParameter)) { + throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); + } + } + + return true; + } } /** diff --git a/includes/runtime/Viewer.php b/includes/runtime/Viewer.php index 73d43351d50d99e21d2870cd96cc7ad912aaa55d..00dd62d0ed09d6dd7403a2434aecad12eff18b2a 100644 --- a/includes/runtime/Viewer.php +++ b/includes/runtime/Viewer.php @@ -144,7 +144,7 @@ class Vtiger_Viewer extends SmartyBC { public function assign($tpl_var, $value = null, $nocache = false) { // Reject unexpected value assignments. if ($tpl_var == 'SELECTED_MENU_CATEGORY') { - if ($val && preg_match("/[^a-zA-Z0-9_-]/", $val, $m)) { + if ($value && preg_match("/[^a-zA-Z0-9_-]/", $value, $m)) { return; } } diff --git a/kcfinder/core/browser.php b/kcfinder/core/browser.php index f429fd9c43a28917429fe40506c645ec4ac662cb..e292bf842cfc872c261cd9d67861a0f91257c8b0 100644 --- a/kcfinder/core/browser.php +++ b/kcfinder/core/browser.php @@ -262,7 +262,8 @@ class browser extends uploader { $this->errorMsg($message); } - $target = "$dir/" . file::getInexistantFilename($this->file['name'], $dir); + $sanitizedFilename = file::sanitizeFileName($this->file['name']); + $target = "$dir/" . file::getInexistantFilename($sanitizedFilename, $dir); if (!@move_uploaded_file($this->file['tmp_name'], $target) && !@rename($this->file['tmp_name'], $target) && diff --git a/kcfinder/core/uploader.php b/kcfinder/core/uploader.php index 736708aec6e2dae71c4b59d70b62c2d38f894bcd..f0aa69458cd251c34d31100d21ac48f1db9766dd 100644 --- a/kcfinder/core/uploader.php +++ b/kcfinder/core/uploader.php @@ -86,6 +86,7 @@ class uploader { $this->types = &$this->config['types']; $firstType = array_keys($this->types); $firstType = $firstType[0]; + $this->get['type'] = "images"; // to allow images upload only $this->type = ( isset($this->get['type']) && isset($this->types[$this->get['type']]) @@ -202,7 +203,8 @@ class uploader { if (!is_dir(path::normalize($dir))) @mkdir(path::normalize($dir), $this->config['dirPerms'], true); - $target = file::getInexistantFilename("$dir{$file['name']}"); + $sanitizedFilename = file::sanitizeFileName($file['name']); + $target = file::getInexistantFilename("$dir{$sanitizedFilename}"); if (!@move_uploaded_file($file['tmp_name'], $target) && !@rename($file['tmp_name'], $target) && @@ -290,6 +292,14 @@ class uploader { if (!$gd->init_error && !$this->imageResize($gd, $file['tmp_name'])) return $this->label("The image is too big and/or cannot be resized."); + //sanitization as per Vtiger standard + $isValidImage = Vtiger_Functions::validateImage($file); + if (is_string($isValidImage)) + $isValidImage = ($isValidImage == 'false') ? false : true; + if (!$isValidImage) { + return $this->label("Denied file extension."); + } + return true; } @@ -448,6 +458,10 @@ class uploader { $CKfuncNum = isset($this->opener['CKEditor']['funcNum']) ? $this->opener['CKEditor']['funcNum'] : 0; if (!$CKfuncNum) $CKfuncNum = 0; + if(!is_numeric($CKfuncNum)){ + $CKfuncNum = 0; // to prevent xss + } + $url = addcslashes($url, "'"); header("Content-Type: text/html; charset={$this->charset}"); ?><html> diff --git a/kcfinder/js/browser/files.js b/kcfinder/js/browser/files.js index 3d85061029dc6fe3b954769b4523f2415400c1d6..dfcac7efd1a2d7ba7508ac2b02b1d86e859c28a4 100644 --- a/kcfinder/js/browser/files.js +++ b/kcfinder/js/browser/files.js @@ -137,14 +137,14 @@ browser.selectFile = function(file, e) { $('#fileinfo').html(files.length + ' ' + this.label("selected files") + ' (' + size + ')'); else { var data = $(files[0]).data(); - $('#fileinfo').html(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); + $('#fileinfo').text(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); } } } else { var data = file.data(); $('.file').removeClass('selected'); file.addClass('selected'); - $('#fileinfo').html(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); + $('#fileinfo').text(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); } }; @@ -378,7 +378,7 @@ browser.menuFile = function(file, e) { html += '<div class="menu">'; $('.file').removeClass('selected'); file.addClass('selected'); - $('#fileinfo').html(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); + $('#fileinfo').text(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); if (this.opener.callBack || this.opener.callBackMultiple) { html += '<a href="kcact:pick">' + this.label("Select") + '</a>'; if (data.thumb) html += diff --git a/kcfinder/lib/helper_file.php b/kcfinder/lib/helper_file.php index 7facb100bcc9e66af02d0d97216f94910fdc7fb5..54ea6955e8ec10221810b1def5027a15a54c144c 100644 --- a/kcfinder/lib/helper_file.php +++ b/kcfinder/lib/helper_file.php @@ -196,7 +196,17 @@ class file { ? "$fdir/" . basename($file) : basename($file)); } - + + static function sanitizeFileName($filename){ + $sanitizedFilename = vtlib_purify($filename); + $sanitizedFilename = str_replace('/', "", $sanitizedFilename); + $sanitizedFilename = str_replace('"', "", $sanitizedFilename); + $sanitizedFilename = str_replace("'", "", $sanitizedFilename); + $sanitizedFilename = str_replace(' ', "", $sanitizedFilename); + $sanitizedFilename = str_replace('=', "", $sanitizedFilename); + $sanitizedFilename = str_replace('<', "", $sanitizedFilename); + $sanitizedFilename = str_replace('>', "", $sanitizedFilename); + return $sanitizedFilename; + } } - ?> \ No newline at end of file diff --git a/layouts/v7/modules/Accounts/DetailViewHeaderTitle.tpl b/layouts/v7/modules/Accounts/DetailViewHeaderTitle.tpl index bb1f9dbf64a60fc316081543ee3858c806321410..87dedc996703d573bf32efb6dba8999ec35d22b2 100644 --- a/layouts/v7/modules/Accounts/DetailViewHeaderTitle.tpl +++ b/layouts/v7/modules/Accounts/DetailViewHeaderTitle.tpl @@ -15,7 +15,7 @@ <div class="recordImage bgAccounts app-{$SELECTED_MENU_CATEGORY}"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.path)} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="100%" height="100%" align="left"><br> {else} <img src="{vimage_path('summary_organizations.png')}" class="summaryImg"/> diff --git a/layouts/v7/modules/Calendar/ListViewRecordActions.tpl b/layouts/v7/modules/Calendar/ListViewRecordActions.tpl index 129b900110fd6371ebc2bc888b22674dc3985613..5ea415cff4850bc951d4fbdf1fe2a7dc5a81795b 100644 --- a/layouts/v7/modules/Calendar/ListViewRecordActions.tpl +++ b/layouts/v7/modules/Calendar/ListViewRecordActions.tpl @@ -14,7 +14,7 @@ <input type="checkbox" value="{$LISTVIEW_ENTRY->getId()}" class="listViewEntriesCheckBox"/> </span> {/if} - {if $LISTVIEW_ENTRY->get('starred') eq 'Yes'} + {if $LISTVIEW_ENTRY->get('starred') eq vtranslate('LBL_YES', $MODULE)} {assign var=STARRED value=true} {else} {assign var=STARRED value=false} diff --git a/layouts/v7/modules/Calendar/partials/SidebarEssentials.tpl b/layouts/v7/modules/Calendar/partials/SidebarEssentials.tpl index 43462ffb80e9eff7bb111379e9e9d52ebac56be3..90847f8e8f572691d2054f1ef387c8bcc8227e06 100644 --- a/layouts/v7/modules/Calendar/partials/SidebarEssentials.tpl +++ b/layouts/v7/modules/Calendar/partials/SidebarEssentials.tpl @@ -26,7 +26,7 @@ </div> <hr style="margin: 5px 0;"> <div class="list-menu-content"> - <div id="{$SIDEBARWIDGET->get('linklabel')}" class="sidebar-widget-body activitytypes" style="max-height: 500px;"> + <div id="{$SIDEBARWIDGET->get('linklabel')}" class="sidebar-widget-body activitytypes"> <div style="text-align:center;"><img src="layouts/v7/skins/images/loading.gif"></div> </div> </div> diff --git a/layouts/v7/modules/Calendar/resources/Calendar.js b/layouts/v7/modules/Calendar/resources/Calendar.js index 0b938b775ac4a70758f3f6c50927d3d0f8d16aaf..e3926669f34b55c477b6773e68d6d8dad34ffa34 100644 --- a/layouts/v7/modules/Calendar/resources/Calendar.js +++ b/layouts/v7/modules/Calendar/resources/Calendar.js @@ -952,6 +952,8 @@ Vtiger.Class("Calendar_Calendar_Js", { app.request.post({data: dataParams}).then(function (e, data) { if (!e) { widgetBody.html(data); + let fullCalendarViewHeight = $('.fc-view-container').height(); + widgetBody.css('max-height', (fullCalendarViewHeight - 10) + 'px'); app.helper.showVerticalScroll( widgetBody, { diff --git a/layouts/v7/modules/Calendar/uitypes/OwnerFieldTaskSearchView.tpl b/layouts/v7/modules/Calendar/uitypes/OwnerFieldTaskSearchView.tpl index 9176b0b16d95ca69838eea2061c92cc9e83fc382..f5f44a78bd861caea6760d5e3b328d7520de5abe 100644 --- a/layouts/v7/modules/Calendar/uitypes/OwnerFieldTaskSearchView.tpl +++ b/layouts/v7/modules/Calendar/uitypes/OwnerFieldTaskSearchView.tpl @@ -12,14 +12,15 @@ {strip} <div class=""> {assign var=ASSIGNED_USER_ID value=$FIELD_MODEL->get('name')} - {assign var=ALL_ACTIVEUSER_LIST value=$USER_MODEL->getAccessibleUsers()} + {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} + {assign var=ALL_ACTIVEUSER_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_USERS')]} {assign var=SEARCH_VALUES value=explode(',',$SEARCH_INFO['searchValue'])} {assign var=SEARCH_VALUES value=array_map("trim",$SEARCH_VALUES)} {if $FIELD_MODEL->get('uitype') eq '52' || $FIELD_MODEL->get('uitype') eq '77'} {assign var=ALL_ACTIVEGROUP_LIST value=array()} {else} - {assign var=ALL_ACTIVEGROUP_LIST value=$USER_MODEL->getAccessibleGroups()} + {assign var=ALL_ACTIVEGROUP_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_GROUPS')]} {/if} {assign var=ACCESSIBLE_USER_LIST value=$USER_MODEL->getAccessibleUsersForModule($MODULE)} diff --git a/layouts/v7/modules/Contacts/resources/Detail.js b/layouts/v7/modules/Contacts/resources/Detail.js index 9fc987c721fcf3c396041c50c02eb91853c68272..cb2a98abe5b7cea438ce314c9f242bad97bcc10a 100644 --- a/layouts/v7/modules/Contacts/resources/Detail.js +++ b/layouts/v7/modules/Contacts/resources/Detail.js @@ -22,13 +22,16 @@ Vtiger_Detail_Js("Contacts_Detail_Js", {}, { checkForPortalUser: function (form) { var element = jQuery('[name="portal"]', form); var response = element.is(':checked'); - var primaryEmailField = jQuery('[data-name="email"]'); - var primaryEmailValue = primaryEmailField["0"].attributes["data-value"].value; + if (response) { + var primaryEmailField = jQuery('[data-name="email"]'); + if (primaryEmailField.length == 0) { app.helper.showErrorNotification({message: app.vtranslate('JS_PRIMARY_EMAIL_FIELD_DOES_NOT_EXISTS')}); return false; } + + var primaryEmailValue = primaryEmailField["0"].data("value"); if (primaryEmailValue == "") { app.helper.showErrorNotification({message: app.vtranslate('JS_PLEASE_ENTER_PRIMARY_EMAIL_VALUE_TO_ENABLE_PORTAL_USER')}); return false; diff --git a/layouts/v7/modules/Documents/ListViewRecordActions.tpl b/layouts/v7/modules/Documents/ListViewRecordActions.tpl index ea89bd38a55a36f0bd698f7683bac2602e86379a..d9d867e8005d1945be8b2df731801adb760c7d4d 100644 --- a/layouts/v7/modules/Documents/ListViewRecordActions.tpl +++ b/layouts/v7/modules/Documents/ListViewRecordActions.tpl @@ -15,7 +15,7 @@ <input type="checkbox" value="{$LISTVIEW_ENTRY->getId()}" class="listViewEntriesCheckBox"/> </span> {/if} - {if $LISTVIEW_ENTRY->get('starred') eq 'Yes'} + {if $LISTVIEW_ENTRY->get('starred') eq vtranslate('LBL_YES', $MODULE)} {assign var=STARRED value=true} {else} {assign var=STARRED value=false} diff --git a/layouts/v7/modules/Documents/partials/SidebarEssentials.tpl b/layouts/v7/modules/Documents/partials/SidebarEssentials.tpl index c0b2c0c8bf3f46b1b90241fcbf2dd37f67484906..bb5a89c1af116210d6da252ce81069b564d3aa2a 100644 --- a/layouts/v7/modules/Documents/partials/SidebarEssentials.tpl +++ b/layouts/v7/modules/Documents/partials/SidebarEssentials.tpl @@ -19,9 +19,7 @@ <div> <input class="search-list" type="text" placeholder="Search for List"> </div> - <div class="menu-scroller mCustomScrollBox" data-mcs-theme="dark"> - <div class="mCustomScrollBox mCS-light-2 mCSB_inside" tabindex="0"> - <div class="mCSB_container" style="position:relative; top:0; left:0;"> + <div class="menu-scroller scrollContainer" style="position:relative; top:0; left:0;"> <div class="list-menu-content"> {if $CUSTOM_VIEWS && count($CUSTOM_VIEWS) > 0} {foreach key=GROUP_LABEL item=GROUP_CUSTOM_VIEWS from=$CUSTOM_VIEWS} @@ -36,12 +34,12 @@ {vtranslate('LBL_SHARED_LIST',$MODULE)} {/if} </h6> - <input type="hidden" name="allCvId" value="{CustomView_Record_Model::getAllFilterByModule($MODULE)->get('cvid')}" /> + <input type="hidden" name="allCvId" value="{CustomView_Record_Model::getAllFilterByModule($MODULE)->get('cvid')}" /> <ul class="lists-menu"> {foreach item="CUSTOM_VIEW" from=$GROUP_CUSTOM_VIEWS name="customView"} <li style="font-size:12px;" class='listViewFilter {if $VIEWID eq $CUSTOM_VIEW->getId() && ($CURRENT_TAG eq '') && !$FOLDER_VALUE} active{/if} {if $smarty.foreach.customView.iteration gt 5} filterHidden hide{/if} '> {assign var=VIEWNAME value={vtranslate($CUSTOM_VIEW->get('viewname'), $MODULE)}} - <a class="filterName" href="javascript:;" data-filter-id="{$CUSTOM_VIEW->getId()}">{if {$VIEWNAME|strlen > 40} } {$VIEWNAME|substr:0:40|@escape:'html'}..{else}{$VIEWNAME|@escape:'html'}{/if}</a> + <a class="filterName" href="javascript:;" data-filter-id="{$CUSTOM_VIEW->getId()}">{if {$VIEWNAME|strlen} > 40 } {$VIEWNAME|substr:0:40|@escape:'html'}..{else}{$VIEWNAME|@escape:'html'}{/if}</a> <div class=" pull-right"> <span class="js-popover-container"> <span class="fa fa-angle-down" rel="popover" data-toggle="popover" aria-expanded="true" @@ -91,13 +89,7 @@ <h6 class="lists-header"><center> {vtranslate('LBL_NO')} {vtranslate('Lists')} {vtranslate('LBL_FOUND')} ... </center></h6> </div> </div> - </div> - </div> - </div> - - <div class="list-menu-content"> - <div class="list-group"> - <div class="sidebar-header clearfix"> + </div><div class="sidebar-header clearfix"> <h5 class="pull-left">{vtranslate('LBL_FOLDERS',$MODULE)}</h5> <button id="createFolder" class="btn btn-default pull-right sidebar-btn"> <span class="fa fa-plus" aria-hidden="true"></span> @@ -107,43 +99,47 @@ <div> <input class="search-folders" type="text" placeholder="Search for Folders"> </div> - <div class="menu-scroller mCustomScrollBox" data-mcs-theme="dark"> - <div class="mCustomScrollBox mCS-light-2 mCSB_inside" tabindex="0"> - <div class="mCSB_container" style="position:relative; top:0; left:0;"> - <ul id="folders-list" class="lists-menu"> - {foreach item="FOLDER" from=$FOLDERS} - {assign var=FOLDERNAME value={vtranslate($FOLDER->get('foldername'), $MODULE)}} - <li style="font-size:12px;" class='documentFolder {if $FOLDER_VALUE eq $FOLDER->getName()} active{/if}'> - <a class="filterName" href="javascript:void(0);" data-filter-id="{$FOLDER->get('folderid')}" data-folder-name="{$FOLDER->get('foldername')}" title="{$FOLDERNAME}"> - <i class="fa {if $FOLDER_VALUE eq $FOLDER->getName()}fa-folder-open{else}fa-folder{/if}"></i> - <span class="foldername">{if {$FOLDERNAME|strlen > 40} } {$FOLDERNAME|substr:0:40|@escape:'html'}..{else}{$FOLDERNAME|@escape:'html'}{/if}</span> - </a> - {if $FOLDER->getName() neq 'Default' && $FOLDER->getName() neq 'Google Drive' && $FOLDER->getName() neq 'Dropbox'} - <div class="dropdown pull-right"> - <span class="fa fa-caret-down dropdown-toggle" data-toggle="dropdown" aria-expanded="true"></span> - <ul class="dropdown-menu dropdown-menu-right vtDropDown" role="menu"> - <li class="editFolder " data-folder-id="{$FOLDER->get('folderid')}"> - <a role="menuitem" ><i class="fa fa-pencil-square-o"></i> Edit</a> - </li> - <li class="deleteFolder " data-deletable="{!$FOLDER->hasDocuments()}" data-folder-id="{$FOLDER->get('folderid')}"> - <a role="menuitem" ><i class="fa fa-trash"></i> Delete</a> - </li> - </ul> - </div> - {/if} - </li> - {/foreach} - <li class="noFolderText" style="display: none;"> - <h6 class="lists-header"><center> - {vtranslate('LBL_NO')} {vtranslate('LBL_FOLDERS', $MODULE)} {vtranslate('LBL_FOUND')} ... - </center></h6> - </li> - </ul> - </div> - </div> - </div> + <div class="menu-scroller scrollContainer" style="position:relative; top:0; left:0;"> + <div class="list-menu-content"> + <div class="list-group"> + <ul id="folders-list" class="lists-menu"> + {foreach item="FOLDER" from=$FOLDERS name="folderView"} + {assign var=FOLDERNAME value={vtranslate($FOLDER->get('foldername'), $MODULE)}} + <li style="font-size:12px;" class='documentFolder {if $FOLDER_VALUE eq $FOLDER->getName()} active{/if} {if $smarty.foreach.folderView.iteration gt 5} filterHidden hide{/if}'> + <a class="filterName" href="javascript:void(0);" data-filter-id="{$FOLDER->get('folderid')}" data-folder-name="{$FOLDER->get('foldername')}" title="{$FOLDERNAME}"> + <i class="fa {if $FOLDER_VALUE eq $FOLDER->getName()}fa-folder-open{else}fa-folder{/if}"></i> + <span class="foldername">{if {$FOLDERNAME|strlen} > 40 } {$FOLDERNAME|substr:0:40|@escape:'html'}..{else}{$FOLDERNAME|@escape:'html'}{/if}</span> + </a> + {if $FOLDER->getName() neq 'Default' && $FOLDER->getName() neq 'Google Drive' && $FOLDER->getName() neq 'Dropbox'} + <div class="dropdown pull-right"> + <span class="fa fa-caret-down dropdown-toggle" data-toggle="dropdown" aria-expanded="true"></span> + <ul class="dropdown-menu dropdown-menu-right vtDropDown" role="menu"> + <li class="editFolder " data-folder-id="{$FOLDER->get('folderid')}"> + <a role="menuitem" ><i class="fa fa-pencil-square-o"></i> Edit</a> + </li> + <li class="deleteFolder " data-deletable="{!$FOLDER->hasDocuments()}" data-folder-id="{$FOLDER->get('folderid')}"> + <a role="menuitem" ><i class="fa fa-trash"></i> Delete</a> + </li> + </ul> + </div> + {/if} + </li> + {/foreach} + <li class="noFolderText" style="display: none;"> + <h6 class="lists-header"><center> + {vtranslate('LBL_NO')} {vtranslate('LBL_FOLDERS', $MODULE)} {vtranslate('LBL_FOUND')} ... + </center></h6> + </li> + </ul> + <div class='clearfix'> + <a class="toggleFilterSize" data-more-text="Show more" data-less-text="Show less"> + {if $smarty.foreach.folderView.iteration gt 5} + {vtranslate('LBL_SHOW_MORE',Vtiger)} + {/if} + </a> + </div> </div> - </div> + </div></div> </div> </div> @@ -153,9 +149,7 @@ {vtranslate('LBL_TAGS', $MODULE)} </h4> <hr> - <div class="menu-scroller mCustomScrollBox"> - <div class="mCustomScrollBox mCS-light-2 mCSB_inside" tabindex="0"> - <div class="mCSB_container" style="position:relative; top:0; left:0;"> + <div class="menu-scroller scrollContainer" style="position:relative; top:0; left:0;"> <div class="list-menu-content"> <div id="listViewTagContainer" class="multiLevelTagList" {if $ALL_CUSTOMVIEW_MODEL} data-view-id="{$ALL_CUSTOMVIEW_MODEL->getId()}" {/if} @@ -214,9 +208,9 @@ </button> </div> </div> - </div> - </div> </div> </div> </div> -</div> \ No newline at end of file +</div> + + diff --git a/layouts/v7/modules/Documents/resources/Documents.js b/layouts/v7/modules/Documents/resources/Documents.js index 2421d6bb34ae0e152c61e1cd22ff5c9531d527d5..7d04c8e3424537418b913e8bc58573619896fa4f 100644 --- a/layouts/v7/modules/Documents/resources/Documents.js +++ b/layouts/v7/modules/Documents/resources/Documents.js @@ -198,7 +198,10 @@ Vtiger.Class('Documents_Index_Js', { container.find('.fileDetails').text(fileName + ' (' + fileSize + ')'); var fileParts = fileName.split('.'); var fileType = fileParts[fileParts.length - 1]; - container.find('[name="notes_title"]').val(fileName.replace('.'+fileType, '')); + let notesTitle = container.find('[name="notes_title"]').val(); + if (!notesTitle.trim()) { + container.find('[name="notes_title"]').val(fileName.replace('.' + fileType, '')); + } } }, diff --git a/layouts/v7/modules/Emails/resources/MassEdit.js b/layouts/v7/modules/Emails/resources/MassEdit.js index d7e772a82e6d6d90922cb8e85b4a1d68e88abe22..05dc98d191fd5d23cd9bcba0ed9bbcf314d2c98b 100644 --- a/layouts/v7/modules/Emails/resources/MassEdit.js +++ b/layouts/v7/modules/Emails/resources/MassEdit.js @@ -222,7 +222,7 @@ jQuery.Class("Emails_MassEdit_Js",{},{ jQuery(e.currentTarget).hide(); }); }, - + /** * Function which will handle the reference auto complete event registrations * @params - container <jQuery> - element in which auto complete fields needs to be searched @@ -281,10 +281,6 @@ jQuery.Class("Emails_MassEdit_Js",{},{ return { id: term, text: term }; } }, - escapeMarkup: function(m) { - // Do not escape HTML in the select options text - return m; - }, }).on("change", function (selectedData) { var addedElement = selectedData.added; @@ -371,7 +367,7 @@ jQuery.Class("Emails_MassEdit_Js",{},{ var emailInfo = { 'recordId' : key, 'id' : emailId, - 'text' : toEmailNamesList[key][i].label+' <b>('+emailId+')</b>' + 'text' : toEmailNamesList[key][i].label+' ('+emailId+')' } preloadData.push(emailInfo); if (jQuery.inArray(emailId, toFieldValues) != -1) { @@ -590,7 +586,7 @@ jQuery.Class("Emails_MassEdit_Js",{},{ var emailInfo = { 'recordId' : object.id, 'id' : object.emailid, - 'text' : object.name+' <b>('+object.emailid+')</b>' + 'text' : object.name+' ('+object.emailid+')' } preloadData.push(emailInfo); thisInstance.setPreloadData(preloadData); @@ -912,10 +908,6 @@ jQuery.Class("Emails_MassEdit_Js",{},{ jQuery('#emailTemplateWarning').addClass('hide'); } }); - var params = { - setHeight:(jQuery(window).height() - container.find('.modal-header').height() - container.find('.modal-footer').height() - 100)+'px' - }; - app.helper.showVerticalScroll(container.find('.modal-body'), params); } } }); diff --git a/layouts/v7/modules/HelpDesk/SelectEmailFields.tpl b/layouts/v7/modules/HelpDesk/SelectEmailFields.tpl index f8b5fdb395a867ea50f973da2eab37a09ac26aa0..f032b1b0476f00150f9d417190d92993244c015b 100644 --- a/layouts/v7/modules/HelpDesk/SelectEmailFields.tpl +++ b/layouts/v7/modules/HelpDesk/SelectEmailFields.tpl @@ -24,7 +24,7 @@ <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> {if $SEARCH_PARAMS} - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> {/if} <input type="hidden" name="fieldModule" value={$SOURCE_MODULE} /> <input type="hidden" name="to" value='{ZEND_JSON::encode($TO)}' /> diff --git a/layouts/v7/modules/Inventory/OverlayEditView.tpl b/layouts/v7/modules/Inventory/OverlayEditView.tpl index 5a937afd9941e2381c9b6d98f28e66e9987b93d1..160c2d4f931f483b0e6d1ea232c9ba8def6ee97d 100644 --- a/layouts/v7/modules/Inventory/OverlayEditView.tpl +++ b/layouts/v7/modules/Inventory/OverlayEditView.tpl @@ -46,7 +46,7 @@ <input type="hidden" name="returnrelatedModule" value="{$RETURN_RELATED_MODULE}" /> <input type="hidden" name="returnpage" value="{$RETURN_PAGE}" /> <input type="hidden" name="returnviewname" value="{$RETURN_VIEW_NAME}" /> - <input type="hidden" name="returnsearch_params" value='{ZEND_JSON::encode($RETURN_SEARCH_PARAMS)}' /> + <input type="hidden" name="returnsearch_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($RETURN_SEARCH_PARAMS))}' /> <input type="hidden" name="returnsearch_key" value={$RETURN_SEARCH_KEY} /> <input type="hidden" name="returnsearch_value" value={$RETURN_SEARCH_VALUE} /> <input type="hidden" name="returnoperator" value={$RETURN_SEARCH_OPERATOR} /> diff --git a/layouts/v7/modules/Invoice/DetailViewHeaderTitle.tpl b/layouts/v7/modules/Invoice/DetailViewHeaderTitle.tpl index 9cbd725bd87f9bf7b4ae0bd47d5ad05ce51ecb6b..fa8eb319215e452f9f12e31510de8caddcf45b6c 100644 --- a/layouts/v7/modules/Invoice/DetailViewHeaderTitle.tpl +++ b/layouts/v7/modules/Invoice/DetailViewHeaderTitle.tpl @@ -15,7 +15,7 @@ <div class="recordImage bginvoice app-{$SELECTED_MENU_CATEGORY}"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.path)} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="100%" height="100%" align="left"><br> {else} <img src="{vimage_path('summary_organizations.png')}" class="summaryImg"/> diff --git a/layouts/v7/modules/Leads/DetailViewHeaderTitle.tpl b/layouts/v7/modules/Leads/DetailViewHeaderTitle.tpl index cf005265fd4fe6db065d42f6ee6e5422b2cf443b..37eafff2013d3b96f1299046cb31587ce71d7b18 100644 --- a/layouts/v7/modules/Leads/DetailViewHeaderTitle.tpl +++ b/layouts/v7/modules/Leads/DetailViewHeaderTitle.tpl @@ -15,7 +15,7 @@ <div class="hidden-sm hidden-xs recordImage bgleads app-{$SELECTED_MENU_CATEGORY}"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.path)} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="100%" height="100px" align="left"><br> {else} <img src="{vimage_path('summary_Leads.png')}" class="summaryImg"/> diff --git a/layouts/v7/modules/Potentials/SelectEmailFields.tpl b/layouts/v7/modules/Potentials/SelectEmailFields.tpl index a964008f4d8e1ffb1ca51ce2ec7957537f28f42d..1eef188d84559d8371bc9c27fac91fe90864c11c 100644 --- a/layouts/v7/modules/Potentials/SelectEmailFields.tpl +++ b/layouts/v7/modules/Potentials/SelectEmailFields.tpl @@ -24,7 +24,7 @@ <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> {if $SEARCH_PARAMS} - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> {/if} <input type="hidden" name="fieldModule" value={$SOURCE_MODULE} /> <input type="hidden" name="to" value='{ZEND_JSON::encode($TO)}' /> diff --git a/layouts/v7/modules/PurchaseOrder/DetailViewHeaderTitle.tpl b/layouts/v7/modules/PurchaseOrder/DetailViewHeaderTitle.tpl index 8e8a892372b31fc52440adb34016deefd004e2ec..32f1128bd5fbc87695c02881a56a200395a85c95 100644 --- a/layouts/v7/modules/PurchaseOrder/DetailViewHeaderTitle.tpl +++ b/layouts/v7/modules/PurchaseOrder/DetailViewHeaderTitle.tpl @@ -15,7 +15,7 @@ <div class="recordImage bgpurchaseorder app-{$SELECTED_MENU_CATEGORY}"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.path)} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="100%" height="100%" align="left"><br> {else} <img src="{vimage_path('summary_organizations.png')}" class="summaryImg"/> diff --git a/layouts/v7/modules/Quotes/DetailViewHeaderTitle.tpl b/layouts/v7/modules/Quotes/DetailViewHeaderTitle.tpl index 983c6a96097236465d265768e20ee94e1f45a37e..d6e47f8a760a9e9f88f6c05d8f888ad71709e445 100644 --- a/layouts/v7/modules/Quotes/DetailViewHeaderTitle.tpl +++ b/layouts/v7/modules/Quotes/DetailViewHeaderTitle.tpl @@ -15,7 +15,7 @@ <div class="recordImage bgquotes app-{$SELECTED_MENU_CATEGORY}"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.path)} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="100%" height="100%" align="left"><br> {else} <img src="{vimage_path('summary_organizations.png')}" class="summaryImg"/> diff --git a/layouts/v7/modules/Reports/ChartEditStep2.tpl b/layouts/v7/modules/Reports/ChartEditStep2.tpl index a7e651de80ae77e85d2bcee0e70dad1c9549834d..4eb05155ca7241cef23c3c0987eef1d1971faaa0 100644 --- a/layouts/v7/modules/Reports/ChartEditStep2.tpl +++ b/layouts/v7/modules/Reports/ChartEditStep2.tpl @@ -15,7 +15,7 @@ {if $REPORT_MODEL->get('members')} <input type="hidden" name="members" value={ZEND_JSON::encode($REPORT_MODEL->get('members'))} /> {/if} - <input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" > + <input type="hidden" name="reportfolderid" value="{$REPORT_MODEL->get('reportfolderid')}" > <input type="hidden" name="reports_description" value="{$REPORT_MODEL->get('description')}" > <input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" > <input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} > diff --git a/layouts/v7/modules/Reports/ChartEditStep3.tpl b/layouts/v7/modules/Reports/ChartEditStep3.tpl index 38ff1fbaf6ba03424d1704a9b505534515749fbd..552bd09a7ea59a1a02af475df1ec9a08599e315a 100644 --- a/layouts/v7/modules/Reports/ChartEditStep3.tpl +++ b/layouts/v7/modules/Reports/ChartEditStep3.tpl @@ -15,7 +15,7 @@ {if $REPORT_MODEL->get('members')} <input type="hidden" name="members" value={ZEND_JSON::encode($REPORT_MODEL->get('members'))} /> {/if} - <input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" > + <input type="hidden" name="reportfolderid" value="{$REPORT_MODEL->get('reportfolderid')}" > <input type="hidden" name="reports_description" value="{Vtiger_Util_Helper::toSafeHTML($REPORT_MODEL->get('reports_description'))}" > <input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" > <input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} > diff --git a/layouts/v7/modules/Reports/ChartReportHeader.tpl b/layouts/v7/modules/Reports/ChartReportHeader.tpl index d5c401247288e116b646e3d78acbe778d7c4075f..22190b29375b2b11ddf4f71cdf54b76760df9c40 100644 --- a/layouts/v7/modules/Reports/ChartReportHeader.tpl +++ b/layouts/v7/modules/Reports/ChartReportHeader.tpl @@ -17,7 +17,7 @@ <input type="hidden" name="action" value="ChartSave" /> <input type="hidden" name="recordId" id="recordId" value="{$RECORD}" /> <input type="hidden" name="reportname" value="{$REPORT_MODEL->get('reportname')}" /> - <input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" /> + <input type="hidden" name="reportfolderid" value="{$REPORT_MODEL->get('reportfolderid')}" /> <input type="hidden" name="reports_description" value="{$REPORT_MODEL->get('reports_description')}" /> <input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" /> <input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} /> diff --git a/layouts/v7/modules/Reports/MoveReports.tpl b/layouts/v7/modules/Reports/MoveReports.tpl index 1fcbada3513e2dbe5527c6ac0bd8e8e9873dd10f..081d5e43ce6da3d90a7d4aa91b8172d473d8d403 100644 --- a/layouts/v7/modules/Reports/MoveReports.tpl +++ b/layouts/v7/modules/Reports/MoveReports.tpl @@ -19,7 +19,7 @@ <input type="hidden" name="selected_ids" value={ZEND_JSON::encode($SELECTED_IDS)} /> <input type="hidden" name="excluded_ids" value={ZEND_JSON::encode($EXCLUDED_IDS)} /> <input type="hidden" name="viewname" value="{$VIEWNAME}" /> - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> <div class="modal-body"> <div class="form-group"> <label for="inputEmail3" class="col-sm-4 control-label">{vtranslate('LBL_FOLDERS_LIST', $MODULE)}<span class="redColor">*</span></label> diff --git a/layouts/v7/modules/Reports/Step1.tpl b/layouts/v7/modules/Reports/Step1.tpl index 86861850b00afd1215d76fb69a5e1b189b58374f..d581273400c78b22bac25fef6a574bbcb11c8e87 100644 --- a/layouts/v7/modules/Reports/Step1.tpl +++ b/layouts/v7/modules/Reports/Step1.tpl @@ -34,7 +34,7 @@ <div class="form-group"> <label class="col-lg-3 control-label textAlignLeft">{vtranslate('LBL_REPORT_FOLDER',$MODULE)}<span class="redColor">*</span></label> <div class="col-lg-4"> - <select class="select2 col-lg-12 inputElement" name="folderid" data-rule-required="true"> + <select class="select2 col-lg-12 inputElement" name="reportfolderid" data-rule-required="true"> {foreach item=REPORT_FOLDER from=$REPORT_FOLDERS} <option value="{$REPORT_FOLDER->getId()}" {if $REPORT_FOLDER->getId() eq $REPORT_MODEL->get('folderid')} diff --git a/layouts/v7/modules/Reports/partials/SidebarEssentials.tpl b/layouts/v7/modules/Reports/partials/SidebarEssentials.tpl index 28ae2784418bed924079568ced1bba0809703ebd..c7193f77f2ab3cec9dc4624a7278c492aba86cf4 100644 --- a/layouts/v7/modules/Reports/partials/SidebarEssentials.tpl +++ b/layouts/v7/modules/Reports/partials/SidebarEssentials.tpl @@ -33,7 +33,7 @@ {foreach item=FOLDER from=$FOLDERS name="folderview"} <li style="font-size:12px;" class="listViewFilter {if $smarty.foreach.folderview.iteration gt 5} filterHidden hide{/if}" > {assign var=VIEWNAME value={vtranslate($FOLDER->getName(),$MODULE)}} - <a href="#" class='filterName' data-filter-id={$FOLDER->getId()}><i class="fa fa-folder foldericon"></i> {if {$VIEWNAME|strlen > 50} }{$VIEWNAME|substr:0:45}..{else}{$VIEWNAME}{/if}</a> + <a href="#" class='filterName' data-filter-id={$FOLDER->getId()}><i class="fa fa-folder foldericon"></i> {if {$VIEWNAME|strlen} > 50 }{$VIEWNAME|substr:0:45}..{else}{$VIEWNAME}{/if}</a> <div class="pull-right"> {assign var="FOLDERID" value=$FOLDER->get('folderid')} <span class="js-popover-container"> @@ -70,4 +70,4 @@ </div> </div> </div> -{/strip} \ No newline at end of file +{/strip} diff --git a/layouts/v7/modules/Reports/resources/Detail.js b/layouts/v7/modules/Reports/resources/Detail.js index 263fc79564ea46a02d6c0c283cacefd95325c55b..411ccf11e1d0857dc4d3ed45db55399c515bdde0 100644 --- a/layouts/v7/modules/Reports/resources/Detail.js +++ b/layouts/v7/modules/Reports/resources/Detail.js @@ -62,7 +62,7 @@ Vtiger_Detail_Js("Reports_Detail_Js",{},{ function(error,data){ app.helper.hideProgress(); thisInstance.getContentHolder().find('#reportContentsDiv').html(data); - jQuery('.reportActionButtons').addClass('hide'); + if(currentMode == 'save') jQuery('.reportActionButtons').addClass('hide'); // app.helper.showHorizontalScroll(jQuery('#reportDetails')); // To get total records count diff --git a/layouts/v7/modules/Reports/resources/Edit2.js b/layouts/v7/modules/Reports/resources/Edit2.js index d938d86dfd5073afb4e6a6f4a78c1599cdabaac3..f85a279573baabc567fa82c697b4de92bd2b5d7b 100644 --- a/layouts/v7/modules/Reports/resources/Edit2.js +++ b/layouts/v7/modules/Reports/resources/Edit2.js @@ -189,7 +189,7 @@ Reports_Edit_Js("Reports_Edit2_Js",{},{ */ arrangeSelectChoicesInOrder : function() { var selectElement = this.getReportsColumnsList(); - var chosenElement = jQuery('#s2id_reportsColumnsList'); + var chosenElement = app.getSelect2ElementFromSelect(selectElement); var choicesContainer = chosenElement.find('ul.select2-choices'); var choicesList = choicesContainer.find('li.select2-search-choice'); @@ -204,7 +204,9 @@ Reports_Edit_Js("Reports_Edit2_Js",{},{ } for(var index=selectedOrderKeys.length ; index > 0 ; index--) { var selectedValue = selectedOrder[selectedOrderKeys[index-1]]; - var option = selectedOptions.filter('[value="'+selectedValue+'"]'); + //We should consider value as string + var colonEscapedValue = selectedValue.replace(":", "\\:"); + var option = selectedOptions.filter('[value="'+colonEscapedValue+'"]'); choicesList.each(function(choiceListIndex,element){ var liElement = jQuery(element); if(liElement.find('div').html() == option.html()){ @@ -302,12 +304,12 @@ Reports_Edit_Js("Reports_Edit2_Js",{},{ //If the container is reloading, containers cache should be reset this.reportsColumnsList = false; this.selectedFields = false; - this.arrangeSelectChoicesInOrder(); this.registerLineItemCalculationLimit(); this.registerLineItemCalculationLimitOnLoad(); vtUtils.applyFieldElementsView(container); this.registerSelect2ElementForReportColumns(); - this.makeColumnListSortable(); + this.arrangeSelectChoicesInOrder(); + this.makeColumnListSortable(); } }); diff --git a/layouts/v7/modules/Reports/step2.tpl b/layouts/v7/modules/Reports/step2.tpl index 71673f7910728d23d16bf3d688be12a5c7f43688..87f683c0ff55e9a171103d9f85cab25cd1b2dcb3 100644 --- a/layouts/v7/modules/Reports/step2.tpl +++ b/layouts/v7/modules/Reports/step2.tpl @@ -19,7 +19,7 @@ {if $REPORT_MODEL->get('members')} <input type="hidden" name="members" value={ZEND_JSON::encode($REPORT_MODEL->get('members'))} /> {/if} - <input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" /> + <input type="hidden" name="reportfolderid" value="{$REPORT_MODEL->get('reportfolderid')}" /> <input type="hidden" name="description" value="{$REPORT_MODEL->get('description')}" /> <input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" /> <input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} /> diff --git a/layouts/v7/modules/Reports/step3.tpl b/layouts/v7/modules/Reports/step3.tpl index a301821e956e9d72ae3b6857087f434595f941c3..e11086e55277b6a179ce642e9adec86ef32ae6f4 100644 --- a/layouts/v7/modules/Reports/step3.tpl +++ b/layouts/v7/modules/Reports/step3.tpl @@ -18,7 +18,7 @@ {if $REPORT_MODEL->get('members')} <input type="hidden" name="members" value={ZEND_JSON::encode($REPORT_MODEL->get('members'))} /> {/if} - <input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" /> + <input type="hidden" name="reportfolderid" value="{$REPORT_MODEL->get('reportfolderid')}" /> <input type="hidden" name="reports_description" value="{Vtiger_Util_Helper::toSafeHTML($REPORT_MODEL->get('description'))}" /> <input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" /> <input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} /> diff --git a/layouts/v7/modules/Rss/resources/List.js b/layouts/v7/modules/Rss/resources/List.js index e22540f52771345735f5e0de4148cebfe1521d03..76fb94e43445e756eb140dc9ed21c76888601aab 100644 --- a/layouts/v7/modules/Rss/resources/List.js +++ b/layouts/v7/modules/Rss/resources/List.js @@ -215,9 +215,8 @@ Vtiger_List_Js("Rss_List_Js",{},{ var thisInstance = this; jQuery('#page').on('click', '#deleteButton', function(e){ var elem = jQuery(e.currentTarget); - var originalDropDownMenu = elem.closest('.dropdown-menu').data('original-menu'); - var parent = app.helper.getDropDownmenuParent(originalDropDownMenu); - thisInstance.deleteRecord(parent); + var feedContainer = elem.closest('.feedContainer'); + thisInstance.deleteRecord(feedContainer); }) }, @@ -322,7 +321,8 @@ Vtiger_List_Js("Rss_List_Js",{},{ var container = this.getListViewContainer(); this.registerRssAddButtonClickEvent(); this.registerRssUrlClickEvent(); - this.registerFeedClickEvent(container); + //Avoiding this call as file_get_contents is not fetching data successfully. + //this.registerFeedClickEvent(container); this.registerMakeDefaultClickEvent(container); this.setFeedContainerHeight(container); } diff --git a/layouts/v7/modules/SalesOrder/DetailViewHeaderTitle.tpl b/layouts/v7/modules/SalesOrder/DetailViewHeaderTitle.tpl index 574595f999a67f336e02eefccee99eeb38427581..c8a3135ec7bdaa28d63fdaba3f5a7ad069801781 100644 --- a/layouts/v7/modules/SalesOrder/DetailViewHeaderTitle.tpl +++ b/layouts/v7/modules/SalesOrder/DetailViewHeaderTitle.tpl @@ -15,7 +15,7 @@ <div class="recordImage bgsalesorder app-{$SELECTED_MENU_CATEGORY}"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.path)} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="100%" height="100%" align="left"><br> {else} <img src="{vimage_path('summary_organizations.png')}" class="summaryImg"/> diff --git a/layouts/v7/modules/Settings/Profiles/DetailView.tpl b/layouts/v7/modules/Settings/Profiles/DetailView.tpl index 552bee433865965947e96e052996ccfa67977792..f0aa84866c6edbfeed022e42559eff0f1a5ebc93 100644 --- a/layouts/v7/modules/Settings/Profiles/DetailView.tpl +++ b/layouts/v7/modules/Settings/Profiles/DetailView.tpl @@ -91,7 +91,6 @@ </thead> <tbody> {foreach from=$RECORD_MODEL->getModulePermissions() key=TABID item=PROFILE_MODULE} - {assign var=IS_RESTRICTED_MODULE value=$RECORD_MODEL->isRestrictedModule($PROFILE_MODULE->getName())} <tr> {assign var=MODULE_PERMISSION value=$RECORD_MODEL->hasModulePermission($PROFILE_MODULE)} <td data-module-name='{$PROFILE_MODULE->getName()}' data-module-status='{$MODULE_PERMISSION}'> @@ -102,7 +101,7 @@ {assign var="ACTION_MODEL" value=$ALL_BASIC_ACTIONS[$ACTION_ID]} {assign var=MODULE_ACTION_PERMISSION value=$RECORD_MODEL->hasModuleActionPermission($PROFILE_MODULE, $ACTION_MODEL)} <td data-action-state='{$ACTION_MODEL->getName()}' data-moduleaction-status='{$MODULE_ACTION_PERMISSION}' style="text-align: center;"> - {if !$IS_RESTRICTED_MODULE && $ACTION_MODEL->isModuleEnabled($PROFILE_MODULE)} + {if $ACTION_MODEL->isModuleEnabled($PROFILE_MODULE)} <img src="{if $MODULE_ACTION_PERMISSION}{$ENABLE_IMAGE_PATH}{else}{$DISABLE_IMAGE_PATH}{/if}" /> {/if} </td> @@ -220,4 +219,4 @@ </div> </div> </div> -{/strip} \ No newline at end of file +{/strip} diff --git a/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl b/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl index 0ebabbe0724bbed1cbba9587d25cd81eb6d16e94..e6267c44c851423289f8b7a0b87f3fd8a178d41b 100644 --- a/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl +++ b/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl @@ -114,7 +114,6 @@ {foreach from=$PROFILE_MODULES key=TABID item=PROFILE_MODULE} {assign var=MODULE_NAME value=$PROFILE_MODULE->getName()} {if $MODULE_NAME neq 'Events'} - {assign var=IS_RESTRICTED_MODULE value=$RECORD_MODEL->isRestrictedModule($MODULE_NAME)} <tr> <td class="verticalAlignMiddleImp"> <input class="modulesCheckBox" type="checkbox" name="permissions[{$TABID}][is_permitted]" data-value="{$TABID}" data-module-state="" {if $RECORD_MODEL->hasModulePermission($PROFILE_MODULE)}checked="true"{else} data-module-unchecked="true" {/if}> {$PROFILE_MODULE->get('label')|vtranslate:$PROFILE_MODULE->getName()} @@ -124,7 +123,7 @@ <td class="textAlignCenter verticalAlignMiddleImp"> {assign var="ACTION_MODEL" value=$ALL_BASIC_ACTIONS[$ORDERID]} {assign var=ACTION_ID value=$ACTION_MODEL->get('actionid')} - {if !$IS_RESTRICTED_MODULE && $ACTION_MODEL->isModuleEnabled($PROFILE_MODULE)} + {if $ACTION_MODEL->isModuleEnabled($PROFILE_MODULE)} <input class="action{$ACTION_ID}CheckBox" type="checkbox" name="permissions[{$TABID}][actions][{$ACTION_ID}]" data-action-state="{$ACTION_MODEL->getName()}" {if $RECORD_MODEL->hasModuleActionPermission($PROFILE_MODULE, $ACTION_MODEL)}checked="true"{elseif empty($RECORD_ID) && empty($IS_DUPLICATE_RECORD)} checked="true" {else} data-action{$ACTION_ID}-unchecked="true"{/if}></td> {/if} </td> diff --git a/layouts/v7/modules/Settings/Vtiger/ConfigEditorDetail.tpl b/layouts/v7/modules/Settings/Vtiger/ConfigEditorDetail.tpl index 859f3bec58004f9a3a02facf5033d7410de8dac2..bc17c893ba064d5d9df8c204dcf7ebdd5b028117 100644 --- a/layouts/v7/modules/Settings/Vtiger/ConfigEditorDetail.tpl +++ b/layouts/v7/modules/Settings/Vtiger/ConfigEditorDetail.tpl @@ -28,20 +28,18 @@ <div class="row form-group"><div class="col-lg-4 col-md-4 col-sm-4 fieldLabel"><label>{if $FIELD_NAME == 'upload_maxsize'}{if $FIELD_DATA[$FIELD_NAME] gt 5}{vtranslate($FIELD_DETAILS['label'], $QUALIFIED_MODULE,$FIELD_DATA[$FIELD_NAME])}{else}{vtranslate($FIELD_DETAILS['label'], $QUALIFIED_MODULE,5)}{/if}{else}{vtranslate($FIELD_DETAILS['label'], $QUALIFIED_MODULE)}{/if}</label></div> <div class="col-lg-8 col-md-8 col-sm-8 fieldValue break-word"> <div> - {if $FIELD_NAME == 'default_module'} - {vtranslate($FIELD_DATA[$FIELD_NAME], $FIELD_DATA[$FIELD_NAME])} - {else if $FIELD_DETAILS['fieldType'] == 'checkbox'} + {if $FIELD_DETAILS['fieldType'] == 'checkbox'} {vtranslate($FIELD_DATA[$FIELD_NAME], $QUALIFIED_MODULE)} {if $FIELD_NAME == 'email_tracking'} <div class="input-info-addon"><a class="fa fa-question-circle" data-toggle="tooltip" data-placement="right" title="{vtranslate('LBL_PERSONAL_EMAIL_TRACKING_INFO',$QUALIFIED_MODULE)}"></a></div> - {/if} - {else if $FIELD_NAME == 'default_reply_to'} + {/if} + {else if $FIELD_NAME == 'default_reply_to'} {vtranslate($FIELD_DATA[$FIELD_NAME])} <div class="input-info-addon"><a class="fa fa-info-circle" data-toggle="tooltip" data-placement="right" title="{vtranslate('LBL_DEFAULT_REPLY_TO_INFO',$QUALIFIED_MODULE)}"></a></div> - {else} + {else} {$FIELD_DATA[$FIELD_NAME]} - {/if} - {if $FIELD_NAME == 'upload_maxsize'} + {/if} + {if $FIELD_NAME == 'upload_maxsize'} {vtranslate('LBL_MB', $QUALIFIED_MODULE)} {/if} </div> diff --git a/layouts/v7/modules/Settings/Vtiger/ConfigEditorEdit.tpl b/layouts/v7/modules/Settings/Vtiger/ConfigEditorEdit.tpl index 084309c97eeff789645e4811ccf32e049ca08f3e..aaf21c73bcb8b85f289ad8b25fe99ca0f58d7be6 100644 --- a/layouts/v7/modules/Settings/Vtiger/ConfigEditorEdit.tpl +++ b/layouts/v7/modules/Settings/Vtiger/ConfigEditorEdit.tpl @@ -35,7 +35,7 @@ <select class="select2-container inputElement select2 col-lg-11" name="{$FIELD_NAME}" > {foreach key=optionName item=optionLabel from=$MODEL->getPicklistValues($FIELD_NAME)} - {if $FIELD_NAME != 'default_module' && $FIELD_NAME != 'default_reply_to'} + {if $FIELD_NAME != 'default_reply_to'} <option {if $optionLabel == $FIELD_DATA[$FIELD_NAME]} selected {/if}>{vtranslate($optionLabel, $QUALIFIED_MODULE)}</option> {else if $FIELD_NAME == 'default_reply_to'} <option value="{$optionName}" {if $optionName == $FIELD_DATA[$FIELD_NAME]} selected {/if}>{vtranslate($optionName)}</option> diff --git a/layouts/v7/modules/Settings/Workflows/AdvanceFilter.tpl b/layouts/v7/modules/Settings/Workflows/AdvanceFilter.tpl index 723bfef0b95089d515c5c0f0ce8c76c6dc7969df..c690497c084082bb888e4007e1f015f8b974bedc 100644 --- a/layouts/v7/modules/Settings/Workflows/AdvanceFilter.tpl +++ b/layouts/v7/modules/Settings/Workflows/AdvanceFilter.tpl @@ -24,11 +24,11 @@ <div class="filterContainer"> <input type="hidden" name="date_filters" data-value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($DATE_FILTERS))}' /> - <input type=hidden name="advanceFilterOpsByFieldType" data-value='{ZEND_JSON::encode($ADVANCED_FILTER_OPTIONS_BY_TYPE)}' /> + <input type=hidden name="advanceFilterOpsByFieldType" data-value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($ADVANCED_FILTER_OPTIONS_BY_TYPE))}' /> {foreach key=ADVANCE_FILTER_OPTION_KEY item=ADVANCE_FILTER_OPTION from=$ADVANCED_FILTER_OPTIONS} {$ADVANCED_FILTER_OPTIONS[$ADVANCE_FILTER_OPTION_KEY] = vtranslate($ADVANCE_FILTER_OPTION, $MODULE)} {/foreach} - <input type=hidden name="advanceFilterOptions" data-value='{ZEND_JSON::encode($ADVANCED_FILTER_OPTIONS)}' /> + <input type=hidden name="advanceFilterOptions" data-value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($ADVANCED_FILTER_OPTIONS))}' /> <div class="allConditionContainer conditionGroup contentsBackground" style="padding-bottom:15px;"> <div class="header"> <span><strong>{vtranslate('LBL_ALL_CONDITIONS',$MODULE)}</strong></span> diff --git a/layouts/v7/modules/Settings/Workflows/WorkFlowConditions.tpl b/layouts/v7/modules/Settings/Workflows/WorkFlowConditions.tpl index 116f7098f87051c4bfce4c363fe7a7779f5ceb0f..670d044f147ba96c6371b847cdf6f4d499e02563 100644 --- a/layouts/v7/modules/Settings/Workflows/WorkFlowConditions.tpl +++ b/layouts/v7/modules/Settings/Workflows/WorkFlowConditions.tpl @@ -11,7 +11,7 @@ -->*} {strip} <input type="hidden" name="conditions" id="advanced_filter" value='' /> - <input type="hidden" id="olderConditions" value='{ZEND_JSON::encode($WORKFLOW_MODEL->get('conditions'))}' /> + <input type="hidden" id="olderConditions" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($WORKFLOW_MODEL->get('conditions')))}' /> <input type="hidden" name="filtersavedinnew" value="{$WORKFLOW_MODEL->get('filtersavedinnew')}" /> <div class="editViewHeader"> <div class='row'> diff --git a/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js b/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js index 837650c3a679f8e8e46e48f814f9536916fe1ae4..cf26d355efd552bb8a9a431ea95033af64272670 100644 --- a/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js +++ b/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js @@ -491,7 +491,27 @@ Vtiger_Picklist_Field_Js('Workflows_Picklist_Field_Js',{},{ var pickListValuesArrayFlip = {}; for(var key in pickListValues){ var pickListValue = pickListValues[key]; + var translatedValues = new Array(); + var selectedValues = selectedOption.split(","); pickListValuesArrayFlip[pickListValue] = key; + if(selectedValues.length > 1){ + for(var index in selectedValues){ + var selectedValue = selectedValues[index]; + if(selectedValue == key){ + translatedValues.push(pickListValue); + } else { + //if condition is startswith, endswith, contains, doesnot contains should be retain the selected value in the picklist + translatedValues.push(selectedValue); + } + } + }else{ + if(selectedOption == key){ + selectedOption = pickListValue; + } + } + } + if(selectedValues.length > 1){ + selectedOption = translatedValues.join(","); } var html = '<input type="hidden" class="inputElement select2" name="'+ this.getName() +'" id="'+ this.getName() +'">'; var selectContainer = jQuery(html).val(selectedOption); @@ -533,3 +553,72 @@ Vtiger_Multipicklist_Field_Js('Workflows_Multipicklist_Field_Js', {}, { return selectContainer; } }); + +Vtiger_Reference_Field_Js("Workflows_Reference_Field_Js",{},{ + getUi : function(){ + var referenceModules = this.getReferenceModules(); + var value = this.getValue(); + var html = '<div class="referencefield-wrapper'; + if(value){ + html += ' selected'; + } + html += '">'; + html += '<input name="popupReferenceModule" type="hidden" value="'+referenceModules[0]+'"/>'; + html += '<div class="input-group">'; + html += '<input class="sourceField" name="'+this.getName()+'" type="hidden" value="'+value+'"/>'; + html += '<span class="clearReferenceSelectionWrapper"><input class="autoComplete inputElement ui-autocomplete-input textOverflowEllipsis" type="text" data-fieldtype="reference" data-fieldmodule="'+this.get('workflow_field_modulename')+'" name="'+this.getName()+'_display" placeholder="Type to Search"'; + var reset = false; + if(value){ + html += ' value="'+value+'" disabled="disabled"'; + reset = true; + } + html += '/>'; + + if(reset){ + html += '<a href="#" class="clearReferenceSelection"><i class="fa fa-close p-l-8"></i></a>'; + }else { + html += '<a href="#" class="clearReferenceSelection hide"><i class="fa fa-close p-l-8"></i></a>'; + } + html += '</span>'; + html += '<div class="referenceLoadingWrapper hide"><svg class="referenceSpinner"><circle cx="20" cy="20" r="8"></circle><circle class="small" cx="20" cy="20" r="5"></circle></svg></div>'; + //popup search element + html += '<span class="input-group-addon relatedPopup cursorPointer textAlignCenter" title="Select">'; + html += '<i class="fa fa-search p-l-8"></i>'; + html += '</span>'; + + html += '</div>'; + html += '</div>'; + return this.addValidationToElement(html); + } +}); + +Workflows_Reference_Field_Js("Workflows_Multireference_Field_Js",{},{}); + +Workflows_Field_Js('Workflows_Integer_Field_Js',{},{ + getUi : function() { + if(this.getName() === 'profile_rating') { + //Special handling for profile_rating field to show dropdown instead of input box as its integer field. + var html = '<select class="select2 inputElement inlinewidth" name="'+ this.getName() +'" id="field_'+this.getModuleName()+'_'+this.getName()+'">'; + var pickListValues = {1 : 1, 2 : 2, 3 : 3, 4 : 4, 5 : 5}; + var selectedOption = parseInt(this.getValue()); + html += '<option value="">Select an Option</option>'; + for(var option in pickListValues) { + html += '<option value="'+option+'" '; + if(option == selectedOption) { + html += ' selected '; + } + html += '>'+option+'</option>'; + } + html +='</select>'; + var selectContainer = jQuery(html); + this.addValidationToElement(selectContainer); + return selectContainer; + } else { + var value = app.htmlDecode(this.getValue()); + value = value.replace(/"/g, """); + var html = '<input value="'+value+'" type="text" class="getPopupUi inputElement" name="'+ this.getName() +'" /><input type="hidden" name="valuetype" value="'+this.get('workflow_valuetype')+'" />'; + return this.addValidationToElement(jQuery(html)); + } + } +}); + diff --git a/layouts/v7/modules/Users/CalendarSettingsDetailView.tpl b/layouts/v7/modules/Users/CalendarSettingsDetailView.tpl index cb37e45d80a938eaae1868c82ece75e8b2c17fb9..f268a505c8b8e63594eab5e8c8453c8d142edd64 100644 --- a/layouts/v7/modules/Users/CalendarSettingsDetailView.tpl +++ b/layouts/v7/modules/Users/CalendarSettingsDetailView.tpl @@ -72,7 +72,7 @@ <td class="fieldValue {$WIDTHTYPE}"> <div id="imageContainer" width="300" height="200"> {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty({$IMAGE_INFO.orgname})} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" width="300" height="200"> {/if} {/foreach} diff --git a/layouts/v7/modules/Users/CalendarSettingsEditView.tpl b/layouts/v7/modules/Users/CalendarSettingsEditView.tpl index f3edd00ca2d9205e511e35150ea86f5a58207d06..215289ea1f976c0d8922d3d963eea521e1183c1c 100644 --- a/layouts/v7/modules/Users/CalendarSettingsEditView.tpl +++ b/layouts/v7/modules/Users/CalendarSettingsEditView.tpl @@ -40,7 +40,7 @@ <input type="hidden" name="returnrelatedModule" value="{$RETURN_RELATED_MODULE}" /> <input type="hidden" name="returnpage" value="{$RETURN_PAGE}" /> <input type="hidden" name="returnviewname" value="{$RETURN_VIEW_NAME}" /> - <input type="hidden" name="returnsearch_params" value='{ZEND_JSON::encode($RETURN_SEARCH_PARAMS)}' /> + <input type="hidden" name="returnsearch_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($RETURN_SEARCH_PARAMS))}' /> <input type="hidden" name="returnsearch_key" value={$RETURN_SEARCH_KEY} /> <input type="hidden" name="returnsearch_value" value={$RETURN_SEARCH_VALUE} /> <input type="hidden" name="returnoperator" value={$RETURN_SEARCH_OPERATOR} /> diff --git a/layouts/v7/modules/Users/DetailViewBlockView.tpl b/layouts/v7/modules/Users/DetailViewBlockView.tpl index 50b41e2dca2647b40e7a9684e7e37bc072c1e06e..33ba6ff0023b9b68204654283e635585ab0e7bab 100644 --- a/layouts/v7/modules/Users/DetailViewBlockView.tpl +++ b/layouts/v7/modules/Users/DetailViewBlockView.tpl @@ -65,7 +65,7 @@ <td class="fieldValue {$WIDTHTYPE}"> <div id="imageContainer" width="300" height="200"> {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty({$IMAGE_INFO.orgname})} + {if !empty($IMAGE_INFO.url)} <img src="{$IMAGE_INFO.url}" width="300" height="200"> {/if} {/foreach} @@ -107,7 +107,11 @@ {/if} <span class="value textOverflowEllipsis" data-field-type="{$FIELD_MODEL->getFieldDataType()}" {if $FIELD_MODEL->get('uitype') eq '19' or $FIELD_MODEL->get('uitype') eq '20' or $FIELD_MODEL->get('uitype') eq '21'} style="white-space:normal;" {/if} {if $fieldDataType eq 'email'}title='{$FIELD_MODEL->get('fieldvalue')}'{/if} > + {if $FIELD_MODEL->getName() neq 'defaultlandingpage'} {include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getDetailViewTemplateName(),$MODULE_NAME) FIELD_MODEL=$FIELD_MODEL USER_MODEL=$USER_MODEL MODULE=$MODULE_NAME RECORD=$RECORD} + {else} + {vtranslate($FIELD_MODEL->get('fieldvalue'),$FIELD_MODEL->get('fieldvalue'))} + {/if} </span> {if $IS_AJAX_ENABLED && $FIELD_MODEL->isEditable() eq 'true' && $FIELD_MODEL->isAjaxEditable() eq 'true'} <span class="hide edit pull-left"> diff --git a/layouts/v7/modules/Users/ListViewContents.tpl b/layouts/v7/modules/Users/ListViewContents.tpl index 4c505bde7f3a3c0c407c8a010aefb4f421f89609..51a563f18f202041f310b9212dc6f615db04f231 100644 --- a/layouts/v7/modules/Users/ListViewContents.tpl +++ b/layouts/v7/modules/Users/ListViewContents.tpl @@ -97,7 +97,7 @@ <div style="margin-left: -13px;"> {assign var=IMAGE_DETAILS value=$LISTVIEW_ENTRY->getImageDetails()} {foreach item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty({$IMAGE_INFO.orgname})} + {if !empty($IMAGE_INFO.url)} <div class='col-lg-2'> <img height="25px" width="25px" src="{$IMAGE_INFO.url}"> </div> diff --git a/layouts/v7/modules/Users/PreferenceDetailViewHeader.tpl b/layouts/v7/modules/Users/PreferenceDetailViewHeader.tpl index 3c6173ce5b42be83a27864c0577e201d58fee7d2..d9a79561b345437dd841da6058fa4e8d76b3696f 100644 --- a/layouts/v7/modules/Users/PreferenceDetailViewHeader.tpl +++ b/layouts/v7/modules/Users/PreferenceDetailViewHeader.tpl @@ -18,7 +18,7 @@ <div class="col-xs-8"> {assign var=IMAGE_DETAILS value=$RECORD->getImageDetails()} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.orgname)} + {if !empty($IMAGE_INFO.url)} <span class="logo col-xs-2"> <img height="75px" width="75px" src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" data-image-id="{$IMAGE_INFO.id}"> </span> diff --git a/layouts/v7/modules/Users/UserViewHeader.tpl b/layouts/v7/modules/Users/UserViewHeader.tpl index 0e4b6266523a7f5aeb39bce42caec5758232e6fe..754487eb3507f85796fa72369cc331f19a1383f1 100644 --- a/layouts/v7/modules/Users/UserViewHeader.tpl +++ b/layouts/v7/modules/Users/UserViewHeader.tpl @@ -18,7 +18,7 @@ <div class="col-md-5 recordImage" style="height: 50px;width: 50px;"> {assign var=NOIMAGE value=0} {foreach key=ITER item=IMAGE_INFO from=$RECORD->getImageDetails()} - {if !empty($IMAGE_INFO.url) && !empty($IMAGE_INFO.orgname)} + {if !empty($IMAGE_INFO.url)} <img height="100%" width="100%" src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" data-image-id="{$IMAGE_INFO.id}"> {else} {assign var=NOIMAGE value=1} diff --git a/layouts/v7/modules/Vtiger/AddCommentForm.tpl b/layouts/v7/modules/Vtiger/AddCommentForm.tpl index e436d980a250800e1a7a2dd5d9588d6db78a7936..a3771e2286b142b69af0f26bef23a5fcdf4a4453 100644 --- a/layouts/v7/modules/Vtiger/AddCommentForm.tpl +++ b/layouts/v7/modules/Vtiger/AddCommentForm.tpl @@ -21,7 +21,8 @@ <input type="hidden" name="search_key" value= "{$SEARCH_KEY}" /> <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> + <input type="hidden" name="tag_params" value={ZEND_JSON::encode($TAG_PARAMS)}> {assign var=HEADER_TITLE value={vtranslate('LBL_ADDING_COMMENT', $MODULE)}} {include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE=$HEADER_TITLE} diff --git a/layouts/v7/modules/Vtiger/AdvanceFilter.tpl b/layouts/v7/modules/Vtiger/AdvanceFilter.tpl index 2895431a26922928321c28a39a288a8033658394..7df2f3ba234a9c6284231827eaf2296c693f3e07 100644 --- a/layouts/v7/modules/Vtiger/AdvanceFilter.tpl +++ b/layouts/v7/modules/Vtiger/AdvanceFilter.tpl @@ -24,7 +24,7 @@ <div class="filterContainer filterElements well filterConditionContainer filterConditionsDiv"> <input type="hidden" name="date_filters" data-value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($DATE_FILTERS))}' /> - <input type=hidden name="advanceFilterOpsByFieldType" data-value='{ZEND_JSON::encode($ADVANCED_FILTER_OPTIONS_BY_TYPE)}' /> + <input type=hidden name="advanceFilterOpsByFieldType" data-value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($ADVANCED_FILTER_OPTIONS_BY_TYPE))}' /> {foreach key=ADVANCE_FILTER_OPTION_KEY item=ADVANCE_FILTER_OPTION from=$ADVANCED_FILTER_OPTIONS} {$ADVANCED_FILTER_OPTIONS[$ADVANCE_FILTER_OPTION_KEY] = vtranslate($ADVANCE_FILTER_OPTION, $MODULE)} {/foreach} diff --git a/layouts/v7/modules/Vtiger/ComposeEmailForm.tpl b/layouts/v7/modules/Vtiger/ComposeEmailForm.tpl index 03ee45c1d9ab3cca7ed00c73c922a18993fa559d..99f57dee328a2e270a41b6af98b26a5cf984e17b 100644 --- a/layouts/v7/modules/Vtiger/ComposeEmailForm.tpl +++ b/layouts/v7/modules/Vtiger/ComposeEmailForm.tpl @@ -38,7 +38,7 @@ <input type="hidden" name="search_key" value= "{$SEARCH_KEY}" /> <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> <div class="row toEmailField"> <div class="col-lg-12"> diff --git a/layouts/v7/modules/Vtiger/Export.tpl b/layouts/v7/modules/Vtiger/Export.tpl index 2fffe80e6300cbab0cf9c2d9a963da0595732111..8f84d447e1a21165ea3de404cdd0bb390b7b939a 100644 --- a/layouts/v7/modules/Vtiger/Export.tpl +++ b/layouts/v7/modules/Vtiger/Export.tpl @@ -22,7 +22,7 @@ <input type="hidden" name="search_key" value= "{$SEARCH_KEY}" /> <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> <input type="hidden" name="orderby" value="{$ORDER_BY}" /> <input type="hidden" name="sortorder" value="{$SORT_ORDER}" /> <input type="hidden" name="tag_params" value='{Zend_JSON::encode($TAG_PARAMS)}' /> diff --git a/layouts/v7/modules/Vtiger/ListViewRecordActions.tpl b/layouts/v7/modules/Vtiger/ListViewRecordActions.tpl index 01e5953367336b37382fb2b4f4dd4d040677dca8..9ed2ffe24a2e5f44a9881e3b259a7b3cf058a8af 100644 --- a/layouts/v7/modules/Vtiger/ListViewRecordActions.tpl +++ b/layouts/v7/modules/Vtiger/ListViewRecordActions.tpl @@ -15,7 +15,7 @@ <input type="checkbox" value="{$LISTVIEW_ENTRY->getId()}" class="listViewEntriesCheckBox"/> </span> {/if} - {if $LISTVIEW_ENTRY->get('starred') eq 'Yes'} + {if $LISTVIEW_ENTRY->get('starred') eq vtranslate('LBL_YES', $MODULE)} {assign var=STARRED value=true} {else} {assign var=STARRED value=false} diff --git a/layouts/v7/modules/Vtiger/MassEditForm.tpl b/layouts/v7/modules/Vtiger/MassEditForm.tpl index f8fdc9f45e0c9718ea4663b6539e8011c34e77a7..0a138c42e10424f3f0f947135fbca47e07cbfcc4 100644 --- a/layouts/v7/modules/Vtiger/MassEditForm.tpl +++ b/layouts/v7/modules/Vtiger/MassEditForm.tpl @@ -17,7 +17,8 @@ <input type="hidden" name="viewname" value="{$CVID}" /> <input type="hidden" name="selected_ids" value={ZEND_JSON::encode($SELECTED_IDS)}> <input type="hidden" name="excluded_ids" value={ZEND_JSON::encode($EXCLUDED_IDS)}> - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="tag_params" value={ZEND_JSON::encode($TAG_PARAMS)}> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> <div> <header class="overlayHeader" style='flex:0 0 auto;'> {assign var=TITLE value="{vtranslate('LBL_MASS_EDITING',$MODULE)}"} diff --git a/layouts/v7/modules/Vtiger/OverlayEditView.tpl b/layouts/v7/modules/Vtiger/OverlayEditView.tpl index 1873cbbb8263761e07a7c3799dafd5ac3618d0fe..66c58bdf9ae297d8d5d72671695e90f43da33ddf 100644 --- a/layouts/v7/modules/Vtiger/OverlayEditView.tpl +++ b/layouts/v7/modules/Vtiger/OverlayEditView.tpl @@ -46,7 +46,7 @@ <input type="hidden" name="returnrelatedModule" value="{$RETURN_RELATED_MODULE}" /> <input type="hidden" name="returnpage" value="{$RETURN_PAGE}" /> <input type="hidden" name="returnviewname" value="{$RETURN_VIEW_NAME}" /> - <input type="hidden" name="returnsearch_params" value='{ZEND_JSON::encode($RETURN_SEARCH_PARAMS)}' /> + <input type="hidden" name="returnsearch_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($RETURN_SEARCH_PARAMS))}' /> <input type="hidden" name="returnsearch_key" value={$RETURN_SEARCH_KEY} /> <input type="hidden" name="returnsearch_value" value={$RETURN_SEARCH_VALUE} /> <input type="hidden" name="returnoperator" value={$RETURN_SEARCH_OPERATOR} /> diff --git a/layouts/v7/modules/Vtiger/RecentActivities.tpl b/layouts/v7/modules/Vtiger/RecentActivities.tpl index 0da6885c3a69677aadd46d28da47fb2e75db8761..1aaf9ecc49c3ef7a23cf8d42737c6b8ce73278e2 100644 --- a/layouts/v7/modules/Vtiger/RecentActivities.tpl +++ b/layouts/v7/modules/Vtiger/RecentActivities.tpl @@ -31,15 +31,15 @@ </time> {assign var=USER_MODEL value=$RECENT_ACTIVITY->getModifiedBy()} {assign var=IMAGE_DETAILS value=$USER_MODEL->getImageDetails()} - {if $IMAGE_DETAILS neq '' && $IMAGE_DETAILS[0] neq '' && $IMAGE_DETAILS[0].path eq ''} + {if $IMAGE_DETAILS neq '' && $IMAGE_DETAILS[0] neq '' && $IMAGE_DETAILS[0].url eq ''} <div class="update_icon bg-info"> <i class='update_image vicon-vtigeruser'></i> </div> {else} {foreach item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.path) && !empty({$IMAGE_INFO.orgname})} + {if !empty($IMAGE_INFO.url)} <div class="update_icon"> - <img class="update_image" src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" > + <img class="update_image" src="{$IMAGE_INFO.url}" > </div> {/if} {/foreach} @@ -59,15 +59,15 @@ </time> {assign var=USER_MODEL value=$RECENT_ACTIVITY->getModifiedBy()} {assign var=IMAGE_DETAILS value=$USER_MODEL->getImageDetails()} - {if $IMAGE_DETAILS neq '' && $IMAGE_DETAILS[0] neq '' && $IMAGE_DETAILS[0].path eq ''} + {if $IMAGE_DETAILS neq '' && $IMAGE_DETAILS[0] neq '' && $IMAGE_DETAILS[0].url eq ''} <div class="update_icon bg-info"> <i class='update_image vicon-vtigeruser'></i> </div> {else} {foreach item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.path) && !empty({$IMAGE_INFO.orgname})} + {if !empty($IMAGE_INFO.url)} <div class="update_icon"> - <img class="update_image" src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" > + <img class="update_image" src="{$IMAGE_INFO.url}" > </div> {/if} {/foreach} diff --git a/layouts/v7/modules/Vtiger/SelectEmailFields.tpl b/layouts/v7/modules/Vtiger/SelectEmailFields.tpl index b89e525f01ababd66976aa03105de7e8a792fdd0..98db34602f502efa8c749165e175a861010df081 100644 --- a/layouts/v7/modules/Vtiger/SelectEmailFields.tpl +++ b/layouts/v7/modules/Vtiger/SelectEmailFields.tpl @@ -23,8 +23,9 @@ <input type="hidden" name="search_key" value= "{$SEARCH_KEY}" /> <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> + <input type="hidden" name="tag_params" value={ZEND_JSON::encode($TAG_PARAMS)}> {if $SEARCH_PARAMS} - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> {/if} <input type="hidden" name="fieldModule" value={$SOURCE_MODULE} /> <input type="hidden" name="to" value='{ZEND_JSON::encode($TO)}' /> diff --git a/layouts/v7/modules/Vtiger/SendSMSForm.tpl b/layouts/v7/modules/Vtiger/SendSMSForm.tpl index 432104491545298187d8d9f981feb415cd1a36d9..b01ea0dd8e88272be54cddb26e517f0f84339ce8 100644 --- a/layouts/v7/modules/Vtiger/SendSMSForm.tpl +++ b/layouts/v7/modules/Vtiger/SendSMSForm.tpl @@ -23,7 +23,7 @@ <input type="hidden" name="search_key" value= "{$SEARCH_KEY}" /> <input type="hidden" name="operator" value="{$OPERATOR}" /> <input type="hidden" name="search_value" value="{$ALPHABET_VALUE}" /> - <input type="hidden" name="search_params" value='{ZEND_JSON::encode($SEARCH_PARAMS)}' /> + <input type="hidden" name="search_params" value='{Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($SEARCH_PARAMS))}' /> <div class="modal-body"> <div> diff --git a/layouts/v7/modules/Vtiger/partials/Topbar.tpl b/layouts/v7/modules/Vtiger/partials/Topbar.tpl index befc47baca23f280a43801e6bfc9b177954d3ebb..5464555a50d29e728cf27eef2446bdc84b7ad3d5 100644 --- a/layouts/v7/modules/Vtiger/partials/Topbar.tpl +++ b/layouts/v7/modules/Vtiger/partials/Topbar.tpl @@ -163,8 +163,8 @@ <i class='vicon-vtigeruser' style="font-size:90px"></i> {else} {foreach item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.path) && !empty({$IMAGE_INFO.orgname})} - <img src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" width="100px" height="100px"> + {if !empty($IMAGE_INFO.url)} + <img src="{$IMAGE_INFO.url}" width="100px" height="100px"> {/if} {/foreach} {/if} diff --git a/layouts/v7/modules/Vtiger/resources/AdvanceFilter.js b/layouts/v7/modules/Vtiger/resources/AdvanceFilter.js index 38383c60844494473fe149eecef4e7a322e49e3e..122a4ff0413b91f506d4178f4bd119a968468eb9 100644 --- a/layouts/v7/modules/Vtiger/resources/AdvanceFilter.js +++ b/layouts/v7/modules/Vtiger/resources/AdvanceFilter.js @@ -217,6 +217,11 @@ jQuery.Class("Vtiger_AdvanceFilter_Js",{ var fieldSelected = fieldSelect.find('option:selected'); var fieldSpecificType = this.getFieldSpecificType(fieldSelected) var conditionList = this.getConditionListFromType(fieldSpecificType); + + var fieldInfo = fieldSelected.data('fieldinfo'); + if(typeof fieldInfo != 'undefined') { + fieldType = fieldInfo.type; + } //for none in field name if(typeof conditionList == 'undefined') { conditionList = {}; @@ -225,6 +230,8 @@ jQuery.Class("Vtiger_AdvanceFilter_Js",{ var options = ''; for(var key in conditionList) { + if (fieldType == 'multipicklist' && (conditionList[key] == "e" || conditionList[key] == "n" )) { continue; } + //IE Browser consider the prototype properties also, it should consider has own properties only. if(conditionList.hasOwnProperty(key)) { var conditionValue = conditionList[key]; @@ -332,15 +339,15 @@ jQuery.Class("Vtiger_AdvanceFilter_Js",{ fieldUiHolder.html(fieldSpecificUi); if(fieldSpecificUi.is('input.select2')){ - var tagElements = fieldSpecificUi.data('tags'); - var params = {tags : tagElements,tokenSeparators: [","]} - vtUtils.showSelect2ElementView(fieldSpecificUi, params); + var tagElements = fieldSpecificUi.data('tags'); + var params = {tags : tagElements,tokenSeparators: [","]} + vtUtils.showSelect2ElementView(fieldSpecificUi, params); } else if(fieldSpecificUi.is('select')){ - if(fieldSpecificUi.hasClass('chzn-select')) { - app.changeSelectElementView(fieldSpecificUi) - }else{ - vtUtils.showSelect2ElementView(fieldSpecificUi); - } + if(fieldSpecificUi.hasClass('chzn-select')) { + app.changeSelectElementView(fieldSpecificUi) + }else{ + vtUtils.showSelect2ElementView(fieldSpecificUi); + } } else if (fieldSpecificUi.has('input.dateField').length > 0){ vtUtils.registerEventForDateFields(fieldSpecificUi); } else if(fieldSpecificUi.has('input.timepicker-default').length > 0){ @@ -707,9 +714,29 @@ Vtiger_Picklist_Field_Js('AdvanceFilter_Picklist_Field_Js',{},{ tagsArray.push(app.htmlDecode(val)); }); var pickListValuesArrayFlip = {}; + var translatedValues = new Array(); + var selectedValues = selectedOption.split(","); for(var key in pickListValues){ - var pickListValue = pickListValues[key]; - pickListValuesArrayFlip[pickListValue] = key; + var pickListValue = pickListValues[key]; + pickListValuesArrayFlip[pickListValue] = key; + if(selectedValues.length > 1){ + for(var index in selectedValues){ + var selectedValue = selectedValues[index]; + if(selectedValue == key){ + translatedValues.push(pickListValue); + } else { + //if condition is startswith, endswith, contains, doesnot contains should be retain the selected value in the picklist + translatedValues.push(selectedValue); + } + } + }else{ + if(selectedOption == key){ + selectedOption = pickListValue; + } + } + } + if(selectedValues.length > 1){ + selectedOption = translatedValues.join(","); } var html = '<input type="hidden" class="col-lg-12 select2" name="'+ this.getName() +'">'; var selectContainer = jQuery(html).val(selectedOption); diff --git a/layouts/v7/modules/Vtiger/resources/Detail.js b/layouts/v7/modules/Vtiger/resources/Detail.js index 86842fa212b404273c3b5761b77884c489b45c97..fc0f6890f9560660154668e1fa9737fd42e2db05 100644 --- a/layouts/v7/modules/Vtiger/resources/Detail.js +++ b/layouts/v7/modules/Vtiger/resources/Detail.js @@ -1136,7 +1136,7 @@ Vtiger.Class("Vtiger_Detail_Js",{ fieldName = multiPicklistFieldName[0]; } - var customHandlingFields = ['owner','ownergroup','picklist','multipicklist','reference','currencyList','text']; + var customHandlingFields = ['owner','ownergroup','picklist','multipicklist','reference','currencyList','text', 'documentsFolder']; if(jQuery.inArray(fieldType, customHandlingFields) !== -1){ value = rawValue; } diff --git a/layouts/v7/modules/Vtiger/resources/Field.js b/layouts/v7/modules/Vtiger/resources/Field.js index 78dacb077adbe4871a8fb0315d50ee0c50a74c7e..5bbed20b1ddbf429bb41cfa295fe2f08c5620dee 100644 --- a/layouts/v7/modules/Vtiger/resources/Field.js +++ b/layouts/v7/modules/Vtiger/resources/Field.js @@ -289,6 +289,48 @@ Vtiger_Field_Js('Vtiger_Picklist_Field_Js',{},{ } }); +Vtiger_Field_Js('Vtiger_Documentsfolder_Field_Js',{},{ + + /** + * Function to get the pick list values + * @return <object> key value pair of options + */ + getPickListValues : function() { + return this.get('documentFolders'); + }, + + /** + * Function to get the ui + * @return - select element and chosen element + */ + getUi : function() { + //added class inlinewidth + var html = '<select class="select2 inputElement inlinewidth" name="'+ this.getName() +'" id="field_'+this.getModuleName()+'_'+this.getName()+'">'; + var pickListValues = this.getPickListValues(); + var selectedOption = app.htmlDecode(this.getValue()); + + if(typeof pickListValues[' '] == 'undefined' || pickListValues[' '].length <= 0 || pickListValues[' '] != 'Select an Option') { + html += '<option value="">'+app.vtranslate('JS_SELECT_OPTION')+'</option>'; + } + + var data = this.getData(); + + var fieldName = this.getName(); + for(var option in pickListValues) { + html += '<option value="'+option+'" '; + if(option == selectedOption) { + html += ' selected '; + } + html += '>'+pickListValues[option]+'</option>'; + } + html +='</select>'; + + var selectContainer = jQuery(html); + this.addValidationToElement(selectContainer); + return selectContainer; + } +}); + Vtiger_Field_Js('Vtiger_Currencylist_Field_Js',{},{ /** @@ -594,7 +636,7 @@ Vtiger_Field_Js('Vtiger_Email_Field_Js',{},{ * return <String or Jquery> it can return either plain html or jquery object */ getUi : function() { - var html = '<input class="inputElement" type="text" name="'+ this.getName() +'" data-label="'+this.get('label')+'" data-rule-email="true" data-rule-illegal="true"/>'; + var html = '<input class="getPopupUi inputElement" type="text" name="'+ this.getName() +'" data-label="'+this.get('label')+'" data-rule-email="true" data-rule-illegal="true"/>'; html = jQuery(html).val(app.htmlDecode(this.getValue())); this.addValidationToElement(html); return jQuery(html); diff --git a/layouts/v7/modules/Vtiger/resources/List.js b/layouts/v7/modules/Vtiger/resources/List.js index c73c6fdb09c64b0daae7bef733d50adaa58eb97c..42b72964126caa19d5071705bbda28458b586efd 100644 --- a/layouts/v7/modules/Vtiger/resources/List.js +++ b/layouts/v7/modules/Vtiger/resources/List.js @@ -119,7 +119,7 @@ Vtiger.Class("Vtiger_List_Js", { var listSelectParams = listInstance.getListSelectAllParams(); if (listSelectParams) { app.helper.showProgress(); - app.request.get({'url': massActionUrl}).then( + app.request.get({'url': massActionUrl,'data': listSelectParams}).then( function (error, data) { app.helper.hideProgress(); if (data) { @@ -1430,11 +1430,14 @@ Vtiger.Class("Vtiger_List_Js", { recordSelectTracker.clearList(); }, getListSelectAllParams: function (jsonDecode) { - var self = this; - var recordSelectTrackerInstance = self.getRecordSelectTrackerInstance(); - var params = recordSelectTrackerInstance.getSelectedAndExcludedIds(jsonDecode); - params.search_params = JSON.stringify(self.getListSearchParams()); - return params; + var self = this; + var recordSelectTrackerInstance = self.getRecordSelectTrackerInstance(); + var params = recordSelectTrackerInstance.getSelectedAndExcludedIds(jsonDecode); + params.search_params = JSON.stringify(self.getListSearchParams()); + var container = self.getListViewContainer(); + params.tag_params = JSON.stringify(self.getListTagParams()); + params.tag = container.find('[name="tag"]').val(); + return params; }, registerCheckBoxClickEvent: function () { var self = this; diff --git a/layouts/v7/modules/Vtiger/resources/Popup.js b/layouts/v7/modules/Vtiger/resources/Popup.js index 3774c130fe6376c29bf0f85812c0230e41a81ae0..62387f416e3df2c1306c7c733dfcf98e17778e79 100644 --- a/layouts/v7/modules/Vtiger/resources/Popup.js +++ b/layouts/v7/modules/Vtiger/resources/Popup.js @@ -210,8 +210,8 @@ jQuery.Class("Vtiger_Popup_Js",{ var listViewTable = listViewPageDiv.find('.listViewEntriesTable'); var searchParams = new Array(); var currentSearchParams = new Array(); - if(jQuery('#currentSearchParams').val()) - currentSearchParams = JSON.parse(jQuery('#currentSearchParams').val()); + if(jQuery('#currentSearchParams', listViewPageDiv).val()) + currentSearchParams = JSON.parse(jQuery('#currentSearchParams', listViewPageDiv).val()); listViewTable.find('.listSearchContributor').each(function(index,domElement){ var searchInfo = new Array(); var searchContributorElement = jQuery(domElement); diff --git a/layouts/v7/modules/Vtiger/resources/RelatedList.js b/layouts/v7/modules/Vtiger/resources/RelatedList.js index 72ff75f871e52dd6033896a2060d9483729c7972..fa97d206c2dd1002aac5d2171961a6f861c96bdf 100644 --- a/layouts/v7/modules/Vtiger/resources/RelatedList.js +++ b/layouts/v7/modules/Vtiger/resources/RelatedList.js @@ -128,7 +128,6 @@ jQuery.Class("Vtiger_RelatedList_Js",{ thisInstance.selectedRelatedTabElement.addClass('active'); container = jQuery('div.details'); container.html(responseData); - vtUtils.applyFieldElementsView(container); thisInstance.initializePaginationEvents(); thisInstance.triggerRelationAdditionalActions(); app.event.trigger('post.relatedListLoad.click', container); diff --git a/layouts/v7/modules/Vtiger/resources/Vtiger.js b/layouts/v7/modules/Vtiger/resources/Vtiger.js index f2474b6a1765341b9c0884df56db77c0743613a8..222e6e85b9836af595f4a09a7022fad1d2a27a88 100644 --- a/layouts/v7/modules/Vtiger/resources/Vtiger.js +++ b/layouts/v7/modules/Vtiger/resources/Vtiger.js @@ -498,7 +498,7 @@ Vtiger.Class('Vtiger_Index_Js', { //fix for Refresh list view after Quick create var parentModule=app.getModuleName(); var viewname=app.view(); - if((quickCreateModuleName == parentModule) && (viewname=="List")){ + if(((quickCreateModuleName == parentModule) || (quickCreateModuleName == 'Events' && parentModule == 'Calendar')) && (viewname=="List")){ var listinstance = app.controller(); listinstance.loadListViewRecords(); } @@ -521,7 +521,12 @@ Vtiger.Class('Vtiger_Index_Js', { app.helper.showModal(data, callbackparams); var form = jQuery('form[name="QuickCreate"]'); var moduleName = form.find('[name="module"]').val(); - app.helper.showVerticalScroll(jQuery('form[name="QuickCreate"] .modal-body'), {'autoHideScrollbar': true}); + var Options= { + scrollInertia: 200, + autoHideScrollbar: true, + setHeight:(jQuery(window).height() - jQuery('form[name="QuickCreate"] .modal-body').find('.modal-header').height() - jQuery('form[name="QuickCreate"] .modal-body').find('.modal-footer').height()- 135), + } + app.helper.showVerticalScroll(jQuery('form[name="QuickCreate"] .modal-body'), Options); var targetInstance = thisInstance; var moduleInstance = Vtiger_Edit_Js.getInstanceByModuleName(moduleName); diff --git a/layouts/v7/modules/Vtiger/resources/dashboards/Widget.js b/layouts/v7/modules/Vtiger/resources/dashboards/Widget.js index 600bb3e8aadb4b33dc79a85c40c5b8af0ebc169f..58b15c06d5ecbb1ae88e6ed2159f8fbe785e26db 100644 --- a/layouts/v7/modules/Vtiger/resources/dashboards/Widget.js +++ b/layouts/v7/modules/Vtiger/resources/dashboards/Widget.js @@ -86,11 +86,23 @@ Vtiger.Class('Vtiger_Widget_Js',{ }, convertToDateRangePicketFormat : function(userDateFormat) { - if(userDateFormat == 'yyyy-mm-dd') { + if ('dd.mm.yyyy' === userDateFormat) { + return 'dd.MM.yyyy'; + } else if ('mm.dd.yyyy' === userDateFormat) { + return 'MM.dd.yyyy' + } else if ('yyyy.mm.dd' === userDateFormat) { + return 'yyyy.MM.dd'; + } else if ('dd/mm/yyyy' === userDateFormat) { + return 'dd/MM/yyyy'; + } else if ('mm/dd/yyyy' === userDateFormat) { + return 'MM/dd/yyyy' + } else if ('yyyy/mm/dd' === userDateFormat) { + return 'yyyy/MM/dd'; + } else if ('yyyy-mm-dd' === userDateFormat) { return 'yyyy-MM-dd'; - }else if( userDateFormat == 'mm-dd-yyyy') { + } else if ('mm-dd-yyyy' === userDateFormat) { return 'MM-dd-yyyy'; - }else if(userDateFormat == 'dd-mm-yyyy') { + } else if ('dd-mm-yyyy' === userDateFormat) { return 'dd-MM-yyyy'; } }, diff --git a/layouts/v7/modules/Vtiger/uitypes/Image.tpl b/layouts/v7/modules/Vtiger/uitypes/Image.tpl index b2f0665c86341a19f46844a5cda8af43473b8394..6e9afa7f8c570fe0dbe73408e3ab271fe9ffa0f2 100644 --- a/layouts/v7/modules/Vtiger/uitypes/Image.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/Image.tpl @@ -49,8 +49,8 @@ {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} <div class="row" style="margin-top:5px;"> - {if !empty($IMAGE_INFO.path) && !empty({$IMAGE_INFO.orgname})} - <span class="col-lg-6" name="existingImages"><img src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" data-image-id="{$IMAGE_INFO.id}" width="400" height="250" ></span> + {if !empty($IMAGE_INFO.url)} + <span class="col-lg-6" name="existingImages"><img src="{$IMAGE_INFO.url}" data-image-id="{$IMAGE_INFO.id}" width="400" height="250" ></span> <span class="col-lg-3"> <span class="row"> <span class="col-lg-11">[{$IMAGE_INFO.name}]</span> @@ -61,4 +61,4 @@ </div> {/foreach} {/if} -{/strip} \ No newline at end of file +{/strip} diff --git a/layouts/v7/modules/Vtiger/uitypes/ImageDetailView.tpl b/layouts/v7/modules/Vtiger/uitypes/ImageDetailView.tpl index 9fc6de202c9615d44325d8309782d03f0e878acb..a5ca411b80d1a63e0bf5a0b7da4241b6fd0795cf 100644 --- a/layouts/v7/modules/Vtiger/uitypes/ImageDetailView.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/ImageDetailView.tpl @@ -10,7 +10,7 @@ ********************************************************************************/ -->*} {foreach key=ITER item=IMAGE_INFO from=$RECORD->getImageDetails()} - {if !empty($IMAGE_INFO.path) && !empty({$IMAGE_INFO.orgname})} - <img src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" width="150" height="80"> + {if !empty($IMAGE_INFO.url)} + <img src="{$IMAGE_INFO.url}" width="150" height="80"> {/if} {/foreach} \ No newline at end of file diff --git a/layouts/v7/modules/Vtiger/uitypes/Owner.tpl b/layouts/v7/modules/Vtiger/uitypes/Owner.tpl index 2b3905b9bb5a5eb58ad3a40d73af14a4122db92b..2af89d6b86ed5531f718c46c900cf6b892148003 100644 --- a/layouts/v7/modules/Vtiger/uitypes/Owner.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/Owner.tpl @@ -13,10 +13,10 @@ {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()} {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} {if $FIELD_MODEL->get('uitype') eq '53'} - {assign var=ALL_ACTIVEUSER_LIST value=$USER_MODEL->getAccessibleUsers()} - {assign var=ALL_ACTIVEGROUP_LIST value=$USER_MODEL->getAccessibleGroups()} + {assign var=ALL_ACTIVEUSER_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_USERS')]} + {assign var=ALL_ACTIVEGROUP_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_GROUPS')]} {assign var=ASSIGNED_USER_ID value=$FIELD_MODEL->get('name')} - {assign var=CURRENT_USER_ID value=$USER_MODEL->get('id')} + {assign var=CURRENT_USER_ID value=$USER_MODEL->get('id')} {assign var=FIELD_VALUE value=$FIELD_MODEL->get('fieldvalue')} {assign var=ACCESSIBLE_USER_LIST value=$USER_MODEL->getAccessibleUsersForModule($MODULE)} diff --git a/layouts/v7/modules/Vtiger/uitypes/OwnerFieldSearchView.tpl b/layouts/v7/modules/Vtiger/uitypes/OwnerFieldSearchView.tpl index 9b01991cc70f724fc00a0acb62f701964cdd8cf0..4fdd538d585da954607ce22c4d4277fcec339812 100644 --- a/layouts/v7/modules/Vtiger/uitypes/OwnerFieldSearchView.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/OwnerFieldSearchView.tpl @@ -10,24 +10,24 @@ ********************************************************************************/ -->*} {strip} - {assign var="FIELD_INFO" value=Zend_Json::encode($FIELD_MODEL->getFieldInfo())} + {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} <div class="select2_search_div"> {assign var=ASSIGNED_USER_ID value=$FIELD_MODEL->get('name')} - {assign var=ALL_ACTIVEUSER_LIST value=$USER_MODEL->getAccessibleUsers()} + {assign var=ALL_ACTIVEUSER_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_USERS')]} {assign var=SEARCH_VALUES value=explode(',',$SEARCH_INFO['searchValue'])} {assign var=SEARCH_VALUES value=array_map("trim",$SEARCH_VALUES)} {if $FIELD_MODEL->get('uitype') eq '52' || $FIELD_MODEL->get('uitype') eq '77'} {assign var=ALL_ACTIVEGROUP_LIST value=array()} {else} - {assign var=ALL_ACTIVEGROUP_LIST value=$USER_MODEL->getAccessibleGroups()} + {assign var=ALL_ACTIVEGROUP_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_GROUPS')]} {/if} {assign var=ACCESSIBLE_USER_LIST value=$USER_MODEL->getAccessibleUsersForModule($MODULE)} {assign var=ACCESSIBLE_GROUP_LIST value=$USER_MODEL->getAccessibleGroupForModule($MODULE)} <input type="text" class="listSearchContributor inputElement select2_input_element"/> - <select class="select2 listSearchContributor {$ASSIGNED_USER_ID}" name="{$ASSIGNED_USER_ID}" multiple data-fieldinfo='{$FIELD_INFO|escape}' style="display:none"> + <select class="select2 listSearchContributor {$ASSIGNED_USER_ID}" name="{$ASSIGNED_USER_ID}" multiple data-fieldinfo='{Zend_Json::encode($FIELD_INFO)|escape}' style="display:none"> <optgroup label="{vtranslate('LBL_USERS')}"> {foreach key=OWNER_ID item=OWNER_NAME from=$ALL_ACTIVEUSER_LIST} <option value="{$OWNER_NAME}" data-picklistvalue= '{$OWNER_NAME}' {if in_array(trim(decode_html($OWNER_NAME)),$SEARCH_VALUES)} selected {/if} diff --git a/layouts/v7/modules/Vtiger/uitypes/OwnerGroup.tpl b/layouts/v7/modules/Vtiger/uitypes/OwnerGroup.tpl index 7584b5402b9539dd27c62716936f4931ed880a73..7968de1c9571c04b9d527a3042fec98fc4494ad5 100644 --- a/layouts/v7/modules/Vtiger/uitypes/OwnerGroup.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/OwnerGroup.tpl @@ -10,7 +10,7 @@ {strip} {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()} - {assign var=ALL_ACTIVEGROUP_LIST value=$USER_MODEL->getAccessibleGroups()} + {assign var=ALL_ACTIVEGROUP_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_GROUPS')]} {assign var=ASSIGNED_GROUP_ID value=$FIELD_MODEL->get('name')} {assign var=CURRENT_USER_ID value=$USER_MODEL->get('id')} {assign var=FIELD_VALUE value=$FIELD_MODEL->get('fieldvalue')} diff --git a/layouts/v7/modules/Vtiger/uitypes/OwnerGroupFieldSearchView.tpl b/layouts/v7/modules/Vtiger/uitypes/OwnerGroupFieldSearchView.tpl index 0daeaafb853640958a2fd198e4f85b23b489203a..51edb7f9ee6784a66ddf3d9b1a1a8726dc84bf45 100644 --- a/layouts/v7/modules/Vtiger/uitypes/OwnerGroupFieldSearchView.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/OwnerGroupFieldSearchView.tpl @@ -8,6 +8,7 @@ *************************************************************************************} {strip} + {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} {assign var=ASSIGNED_USER_ID value=$FIELD_MODEL->get('name')} {assign var=SEARCH_VALUES value=explode(',',$SEARCH_INFO['searchValue'])} {assign var=SEARCH_VALUES value=array_map("trim",$SEARCH_VALUES)} @@ -15,7 +16,7 @@ {if $FIELD_MODEL->get('uitype') eq '52' || $FIELD_MODEL->get('uitype') eq '77'} {assign var=ALL_ACTIVEGROUP_LIST value=array()} {else} - {assign var=ALL_ACTIVEGROUP_LIST value=$USER_MODEL->getAccessibleGroups()} + {assign var=ALL_ACTIVEGROUP_LIST value=$FIELD_INFO['picklistvalues'][vtranslate('LBL_GROUPS')]} {/if} {assign var=ACCESSIBLE_GROUP_LIST value=$USER_MODEL->getAccessibleGroupForModule($MODULE)} diff --git a/layouts/v7/resources/application.js b/layouts/v7/resources/application.js index e3117227d7e28964474e53dda879f909218194e1..8d97851863268337a9203d4e05bb687508c86d22 100644 --- a/layouts/v7/resources/application.js +++ b/layouts/v7/resources/application.js @@ -40,7 +40,7 @@ window.app = (function () { if (!data['success'] && data['error']['message']) { aDeferred.resolve(new VtError(data['error'])); return; - } else if (data['result']) { + } else if (data['result'] && data['result'] !== null) { data = data['result']; } } @@ -73,7 +73,7 @@ window.app = (function () { if (!response['success'] && response['error']['message']) { aDeferred.resolve(new VtError(response['error'])); return; - } else if (response['result']) { + } else if (response['result'] && response['result'] !== null) { response = response['result']; } } diff --git a/layouts/v7/resources/helper.js b/layouts/v7/resources/helper.js index 58ffff39b002260e530783ee645da137ddce2f03..79b3564f922a4c71abb2fb106d294dfaa1e91664 100644 --- a/layouts/v7/resources/helper.js +++ b/layouts/v7/resources/helper.js @@ -87,12 +87,30 @@ jQuery.Class("Vtiger_Helper_Js",{ var timeComponent = dateTimeComponents[1]; var seconds = '00'; - var splittedDate = dateComponent.split("-"); + var splittedDate = ''; + var splittedDateFormat = ''; + + if (dateFormat.indexOf('.') !== -1) { + splittedDate = dateComponent.split('.'); + } else if (dateFormat.indexOf('/') !== -1) { + splittedDate = dateComponent.split('/'); + } else { + splittedDate = dateComponent.split('-'); + } + if(splittedDate.length > 3) { var errorMsg = app.vtranslate("JS_INVALID_DATE"); throw errorMsg; } - var splittedDateFormat = dateFormat.split("-"); + + if (dateFormat.indexOf('.') !== -1) { + splittedDateFormat = dateFormat.split('.'); + } else if (dateFormat.indexOf('/') !== -1) { + splittedDateFormat = dateFormat.split('/'); + } else { + splittedDateFormat = dateFormat.split('-'); + } + var year = splittedDate[splittedDateFormat.indexOf("yyyy")]; var month = splittedDate[splittedDateFormat.indexOf("mm")]; var date = splittedDate[splittedDateFormat.indexOf("dd")]; @@ -453,6 +471,7 @@ jQuery.Class("Vtiger_Helper_Js",{ aDeferred.resolve(); }) $('.myModal').modal('hide'); + $('.myModal').data('bs.modal',null); // clear any options previously set return aDeferred.promise(); }, diff --git a/layouts/v7/skins/vtiger/style.less b/layouts/v7/skins/vtiger/style.less index 260a8fb7c461f09832e85561d5a4c7cba7ee3edf..b3c4d5639d64dcfff9f5db22a6be723c12c0f4da 100644 --- a/layouts/v7/skins/vtiger/style.less +++ b/layouts/v7/skins/vtiger/style.less @@ -97,6 +97,7 @@ body{ } .global-nav .global-actions{ padding-right:15px; + height: 42px !important; } .app-nav{ position: relative; @@ -134,9 +135,9 @@ body{ padding-right: 0; position: absolute; width: 100%; - height: 43px; + height: 42px; /* border-top:1px solid #ddd;*/ - border-bottom:1px solid #eee + border-bottom:1px solid #ddd } .app-nav .module-action-bar .module-action-content{ background: @blockBackground; @@ -149,7 +150,7 @@ body{ .main-container .module-nav{ display: inline-block; width: 42px; - z-index: 10; + z-index: 1093; position: absolute; bottom: 0; top: 0; @@ -174,6 +175,7 @@ body{ .main-container .content-area{ width: 100%; padding-left:283px; + padding-top: 15px; min-height: 768px; } .main-container .settingsPageDiv{ @@ -252,16 +254,8 @@ body{ padding-top:5px; }*/ .global-nav .navbar-nav > li div a{ - padding : 13px; -} -#navbar > ul > li > div > div > a{ - float: left; -} - -#navbar > ul > li > div > a{ - float: left; + padding : 15px; } - .global-nav>ul{ margin-right: 20px; } @@ -284,7 +278,7 @@ body{ height: 100%; width: 100%; color: @search-link-color; - margin: 4px; + margin-top: 4px; padding: 0px 10px; text-decoration: none; vertical-align: top; @@ -421,9 +415,9 @@ body{ .app-nav .app-indicator-icon-container { top: 0px; - height: 43px; + height: 42px; text-align: center; - line-height: 43px; + line-height: 42px; /* background-color: #2c3b49;*/ color: #ffffff; /*border-bottom: 1px solid #272B46;*/ @@ -823,10 +817,6 @@ a.menu-item:hover{ margin: 10px 0; } -#logout-footer > div > span > a { - float : none; -} - .app-home { background: @app_home; } @@ -859,7 +849,7 @@ a.menu-item:hover{ /******** View styles (List/Edit/Detail..) *******/ /*************************************************/ .viewContent .content-area{ - padding-left : 3%; + padding-left : 50px; } .viewContent .content-area.full-width{ @@ -1601,7 +1591,6 @@ ul.unstyled{ width: 100%; border: 1px solid #ddd; margin-top: 10px; - overflow: scroll; } .listview-table{ @@ -1644,7 +1633,6 @@ ul.unstyled{ vertical-align: middle; width: 100%; display: inline-block; - word-break: normal; } } .listViewEntries .relatedListEntryValues .value{ @@ -1939,7 +1927,7 @@ input[type=checkbox]:checked{ padding-top:5px; } .detailViewButtoncontainer button.btn { - margin: 1px !important; + margin: 0px 1px !important; } .detailview-header .recordBasicInfo > .info-row{ margin-bottom: 4px; @@ -2397,6 +2385,7 @@ strong, b, th{ max-width:85%; //TN-#34716 display: inline-block; vertical-align: middle; + height: 26px; } .related-tabs .tab-label{ @@ -5605,7 +5594,7 @@ hr{ padding: 15px; text-align: right; border-top: 1px solid #e5e5e5; - z-index:6; + z-index:1090; } .modal-footer-overwrite-style{ position: initial; @@ -5704,9 +5693,7 @@ hr{ //related tabs css .related-tabs.row .nav>li{ padding:0 10px; - margin:0 2px 3px 2px; - width: 90px; - text-align: center; + margin:0 2px; } .massEditTabs.nav>li{ @@ -5744,7 +5731,6 @@ hr{ .nav-tabs>li.active,.nav-tabs>li:hover,.nav-tabs>li.active:focus { border: none; border-bottom: 3px solid @relatedtabsborderbottomcolor; - margin-bottom: 0; } } @@ -6770,8 +6756,7 @@ div.tooltip-inner{ //Detailview and edit view Changes .detailview-header-block{ background: white; - padding: 15px; - padding-top: 25px; + padding: 15px; } .detailViewContainer .content-area, @@ -8472,123 +8457,9 @@ input:focus:-ms-input-placeholder { color:transparent; } /* IE 10+ */ .moduleIcon .custom-module { font-weight: bold; } -.margin0 { - margin : 0 -} -.border0 { - border: 0; -} -.padding0 { - padding: 0; +.navbar-fixed-top { + z-index: 1095 !important; } -.rounded0 { - border-radius: 0; +body .fc { +overflow:auto; } -.bg-white { - background: #FFFFFF; -} -@media all and (min-width:0px) and (max-width: 600px) { - //Responsive Table - table.summary-table>tbody>tr>td, - table.summary-table>tbody>tr>th, - table.summary-table>tfoot>tr>td, - table.summary-table>tfoot>tr>th, - table.summary-table>thead>tr>td, - table.summary-table>thead>tr>th, - .quickCreateContent>table.table>tbody>tr>td, - .quickCreateContent>table.table>tbody>tr>th, - .quickCreateContent>table.table>tfoot>tr>td, - .quickCreateContent>table.table>tfoot>tr>th, - .quickCreateContent>table.table>thead>tr>td, - .quickCreateContent>table.table>thead>tr>th, - .fieldBlockContainer>table.table:not(#lineItemResult)>tbody>tr>td, - .fieldBlockContainer>table.table:not(#lineItemResult)>tbody>tr>th, - .fieldBlockContainer>table.table:not(#lineItemResult)>tfoot>tr>td, - .fieldBlockContainer>table.table:not(#lineItemResult)>tfoot>tr>th, - .fieldBlockContainer>table.table:not(#lineItemResult)>thead>tr>td, - .fieldBlockContainer>table.table:not(#lineItemResult)>thead>tr>th, - .detailview-table>tbody>tr>td, - .detailview-table>tbody>tr>th, - .detailview-table>tfoot>tr>td, - .detailview-table>tfoot>tr>th, - .detailview-table>thead>tr>td, - .detailview-table>thead>tr>th { - display: block; - min-width: 100%!important; - } - - table.summary-table>thead>tr>th, - .quickCreateContent>table.table>thead>tr>th, - .fieldBlockContainer>table.table:not(#lineItemResult)>thead>tr>th, - .detailview-table>thead>tr>th { - display: none; - } - .editElement div { - float: left; - } - #detailView td.fieldValue .edit { - width: 100%; - float: none !important; - display: inline-block; - } - table.summary-table td.fieldValue .inputElement, - .quickCreateContent>table.table td.fieldValue .inputElement, - .fieldBlockContainer>table.table:not(#lineItemResult) td.fieldValue .inputElement, - .fieldBlockContainer>table.table:not(#lineItemResult) td.fieldValue .input-group { - width: 100%; - float: none !important; - } - #detailView td.fieldLabel { - padding-top: 20px; - } - #detailView td.fieldValue { - border-bottom: 1px solid #eee; - padding-bottom: 20px; - } - #detailView td.fieldValue>span:first-child { - border: 0; - border-bottom: 1px dashed #aaa; - } - //Search bar - .search-link { - border:0; - } - #page>nav.navbar { - border-bottom: 1px solid #eee; - } - .modal-overlay-footer - { - border-left: 0; - } - .app-footer { - font-size: 11px; - } - body { - font-size: 13px; - } - .overlay-container-60{ - margin-left:0px ; - } - .overlayPageContent { - padding-bottom: 0; - &.fade{ - overflow: scroll; - } - } - .overlayDetail .modal-content{ - position:relative; - } - .mCSB_inside > .mCSB_container { - margin-right: 0; - } - #mCSB_9_scrollbar_vertical { - display: none; - } - .lineItemInputBox { - width: 100%; - } - #comment1 { - border-left-color: #ccc; - } -} - diff --git a/layouts/vlayout/modules/Vtiger/resources/dashboards/Widget.js b/layouts/vlayout/modules/Vtiger/resources/dashboards/Widget.js index 7947ac249a5eea4ae27b5def449286d4208bfb66..e8d50d206c6f0557d396bac9ce5bab1e03bd14d1 100644 --- a/layouts/vlayout/modules/Vtiger/resources/dashboards/Widget.js +++ b/layouts/vlayout/modules/Vtiger/resources/dashboards/Widget.js @@ -84,11 +84,23 @@ jQuery.Class('Vtiger_Widget_Js',{ }, convertToDateRangePicketFormat : function(userDateFormat) { - if(userDateFormat == 'yyyy-mm-dd') { + if ('dd.mm.yyyy' === userDateFormat) { + return 'dd.MM.yyyy'; + } else if ('mm.dd.yyyy' === userDateFormat) { + return 'MM.dd.yyyy' + } else if ('yyyy.mm.dd' === userDateFormat) { + return 'yyyy.MM.dd'; + } else if ('dd/mm/yyyy' === userDateFormat) { + return 'dd/MM/yyyy'; + } else if ('mm/dd/yyyy' === userDateFormat) { + return 'MM/dd/yyyy' + } else if ('yyyy/mm/dd' === userDateFormat) { + return 'yyyy/MM/dd'; + } else if ('yyyy-mm-dd' === userDateFormat) { return 'yyyy-MM-dd'; - }else if( userDateFormat == 'mm-dd-yyyy') { + } else if ('mm-dd-yyyy' === userDateFormat) { return 'MM-dd-yyyy'; - }else if(userDateFormat == 'dd-mm-yyyy') { + } else if ('dd-mm-yyyy' === userDateFormat) { return 'dd-MM-yyyy'; } }, diff --git a/libraries/Smarty/libs/debug.tpl b/libraries/Smarty/libs/debug.tpl index 12eef0ffdbf046fb9daf2b6189ed35f2148b654f..7ba49116d2d6fb3e6e4c8bcde7b3e326bd698263 100644 --- a/libraries/Smarty/libs/debug.tpl +++ b/libraries/Smarty/libs/debug.tpl @@ -127,7 +127,7 @@ td { {/capture} <script type="text/javascript"> {$id = $template_name|default:''|md5} - _smarty_console = window.open("","console{$id}","width=680,height=600,resizable,scrollbars=yes"); + var _smarty_console = window.open("","console{$id}","width=680,height=600,resizable,scrollbars=yes"); _smarty_console.document.write("{$debug_output|escape:'javascript' nofilter}"); _smarty_console.document.close(); </script> diff --git a/libraries/jquery/VtJqplotInterface.js b/libraries/jquery/VtJqplotInterface.js index aeedf0cecadb6bee67fac6ee72fca90b331fc804..63ddc0c2ac5a6449474ecc8693204baf0ab6d16b 100644 --- a/libraries/jquery/VtJqplotInterface.js +++ b/libraries/jquery/VtJqplotInterface.js @@ -9,7 +9,7 @@ var vtJqPlotInterface = function() { - this.legendPlacement = 'outsideGrid'; /* refer: http://www.jqplot.com/docs/files/jqplot-core-js.html#Legend.placement */ + this.legendPlacement = 'outside'; /* refer: http://www.jqplot.com/docs/files/jqplot-core-js.html#Legend.placement */ this.renderPie = function() { this.element.jqplot([this.data['chartData']], { diff --git a/log4php.properties b/log4php.properties index 149fb54660eca23da4536e1ccf722c002a6cac52..65596188204449c147f2368df391575ed65448ef 100644 --- a/log4php.properties +++ b/log4php.properties @@ -18,7 +18,7 @@ log4php.appender.A3.File=logs/installation.log log4php.rootLogger=FATAL,A1 log4php.appender.A1=LoggerAppenderRollingFile -log4php.appender.A1.MaxFileSize=3MB +log4php.appender.A1.MaxFileSize=10MB log4php.appender.A1.MaxBackupIndex=10 log4php.appender.A1.layout=LoggerLayoutTTCC log4php.appender.A1.layout.ContextPrinting="true" diff --git a/modules/Accounts/actions/TransferOwnership.php b/modules/Accounts/actions/TransferOwnership.php index d5b11d18fbb904d08890491ae8ffdb27bf86cc77..292bdecf07ddbdce7959a4cd5636ff5fe657777e 100644 --- a/modules/Accounts/actions/TransferOwnership.php +++ b/modules/Accounts/actions/TransferOwnership.php @@ -79,18 +79,40 @@ class Accounts_TransferOwnership_Action extends Vtiger_Action_Controller { } } + $tagParams = $request->get('tag_params'); + $tag = $request->get('tag'); + $listViewSessionKey = $module.'_'.$cvId; + + if(!empty($tag)) { + $listViewSessionKey .='_'.$tag; + } + + $orderParams = Vtiger_ListView_Model::getSortParamsSession($listViewSessionKey); + if(!empty($tag) && empty($tagParams)){ + $tagParams = $orderParams['tag_params']; + } + + if(empty($tagParams)){ + $tagParams = array(); + } + + $searchParams = $request->get('search_params'); + if(empty($searchParams) && !is_array($searchParams)){ + $searchParams = array(); + } + $searchAndTagParams = array_merge($searchParams, $tagParams); + if($selectedIds == 'all'){ $customViewModel = CustomView_Record_Model::getInstanceById($cvId); if($customViewModel) { $operator = $request->get('operator'); - $searchParams = $request->get('search_params'); if (!empty($operator)) { $customViewModel->set('operator', $operator); $customViewModel->set('search_key', $request->get('search_key')); $customViewModel->set('search_value', $request->get('search_value')); } - if (!empty($searchParams)) { - $customViewModel->set('search_params', $searchParams); + if (!empty($searchAndTagParams)) { + $customViewModel->set('search_params', $searchAndTagParams); } return $customViewModel->getRecordIds($excludedIds, $module); } diff --git a/modules/Calendar/Activity.php b/modules/Calendar/Activity.php index 2c5d40cb3e08621f6e9c081dd5e06c271ec9d2fb..42a06897ea4b04378c5d61c954a84629b8bd2f0b 100644 --- a/modules/Calendar/Activity.php +++ b/modules/Calendar/Activity.php @@ -746,6 +746,7 @@ function insertIntoRecurringTable(& $recurObj) $params = array($activity_id); } } else { + if ( $recurid === '' || !$recurid ) { $recurid = 0; } $query = "INSERT INTO ".$this->reminder_table." VALUES (?,?,?,?)"; $params = array($activity_id, $reminder_time, 0, $recurid); } @@ -1046,7 +1047,7 @@ function insertIntoRecurringTable(& $recurObj) } //if secondary modules custom reference field is selected $query .= parent::getReportsUiType10Query($secmodule, $queryPlanner); - + return $query; } @@ -1166,8 +1167,6 @@ function insertIntoRecurringTable(& $recurObj) $tabId = getTabid("Calendar"); $eventTempTable = 'vt_tmp_u'.$userModel->id.'_t'.$tabId.'_events'.$scope; $taskTempTable = 'vt_tmp_u'.$userModel->id.'_t'.$tabId.'_task'.$scope; - $eventTempTable = Vtiger_Util_Helper::validateStringForSql($eventTempTable); - $taskTempTable = Vtiger_Util_Helper::validateStringForSql($taskTempTable); $query = " ($eventTempTable.shared IS NOT NULL OR $taskTempTable.shared IS NOT NULL) "; } return $query; diff --git a/modules/Calendar/RepeatEvents.php b/modules/Calendar/RepeatEvents.php index 0b4d54b73cca9ea84065e773d77aa1b2df2b4123..93898a03fcbb6ba6f00b5ecd4ea7c13e402a6500 100644 --- a/modules/Calendar/RepeatEvents.php +++ b/modules/Calendar/RepeatEvents.php @@ -39,6 +39,14 @@ class Calendar_RepeatEvents { global $current_user; $format_string = 'Y-m-d H:i'; switch($current_user->date_format) { + case 'dd.mm.yyyy': $format_string = 'd.m.Y H:i'; break; + case 'mm.dd.yyyy': $format_string = 'm.d.Y H:i'; break; + case 'yyyy.mm.dd': $format_string = 'Y.m.d H:i'; break; + + case 'dd/mm/yyyy': $format_string = 'd/m/Y H:i'; break; + case 'mm/dd/yyyy': $format_string = 'm/d/Y H:i'; break; + case 'yyyy/mm/dd': $format_string = 'Y/m/d H:i'; break; + case 'dd-mm-yyyy': $format_string = 'd-m-Y H:i'; break; case 'mm-dd-yyyy': $format_string = 'm-d-Y H:i'; break; case 'yyyy-mm-dd': $format_string = 'Y-m-d H:i'; break; diff --git a/modules/Calendar/actions/ActivityReminder.php b/modules/Calendar/actions/ActivityReminder.php index 3d51ed4dceaaae4f77892aa85edb56e8917c4be4..b1a358bf5a44421e67a44bf13ad0e36a376e3547 100644 --- a/modules/Calendar/actions/ActivityReminder.php +++ b/modules/Calendar/actions/ActivityReminder.php @@ -17,22 +17,26 @@ class Calendar_ActivityReminder_Action extends Vtiger_Action_Controller{ public function requiresPermission(Vtiger_Request $request){ $permissions = parent::requiresPermission($request); - $mode = $request->getMode(); - if(!empty($mode)) { - switch ($mode) { - case 'getReminders': - $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); - break; - case 'postpone': - $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView', 'record_parameter' => 'record'); - break; + if (vtlib_isModuleActive($request->getModule())) { + $mode = $request->getMode(); + if (!empty($mode)) { + switch ($mode) { + case 'getReminders': + $permissions[] = ['module_parameter' => 'module', 'action' => 'DetailView']; + break; - default: - break; - } - } - return $permissions; + case 'postpone': + $permissions[] = ['module_parameter' => 'module', 'action' => 'EditView', 'record_parameter' => 'record']; + break; + + default: + break; + } + } + } + + return $permissions; } public function process(Vtiger_Request $request) { diff --git a/modules/Calendar/actions/DeleteAjax.php b/modules/Calendar/actions/DeleteAjax.php index 75310db9f1e76278f9a46a97e2e2d5c8b764b1a1..679f71bb73fcf0848633c9b76f6e6575ef8d497e 100644 --- a/modules/Calendar/actions/DeleteAjax.php +++ b/modules/Calendar/actions/DeleteAjax.php @@ -31,9 +31,9 @@ class Calendar_DeleteAjax_Action extends Vtiger_DeleteAjax_Action { $activityModulesList = array('Calendar', 'Events'); $recordEntityName = getSalesEntityType($record); - if (!in_array($recordEntityName, $activityModulesList) || !in_array($sourceModule, $activityModulesList)) { + if (!in_array($recordEntityName, $activityModulesList) || (!empty($sourceModule) && !in_array($sourceModule, $activityModulesList))) { throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + } } return true; } diff --git a/modules/Calendar/actions/DragDropAjax.php b/modules/Calendar/actions/DragDropAjax.php index 546572090cd7d291a9f7b1e875e73e13274fd393..b42597544ad66bc6d1916db1a9d6a5a6d7a5549f 100755 --- a/modules/Calendar/actions/DragDropAjax.php +++ b/modules/Calendar/actions/DragDropAjax.php @@ -251,7 +251,7 @@ class Calendar_DragDropAjax_Action extends Calendar_SaveAjax_Action { } $result['recurringRecords'] = true; } else { - $oldStartDateTime = ''; + $oldStartDateTime = array(); $oldStartDateTime[] = $record->get('date_start'); $oldStartDateTime[] = $record->get('time_start'); $oldStartDateTime = implode(' ', $oldStartDateTime); @@ -260,7 +260,7 @@ class Calendar_DragDropAjax_Action extends Calendar_SaveAjax_Action { $record->set('date_start',$parts[0]); $record->set('time_start',$parts[1]); - $oldEndDateTime = ''; + $oldEndDateTime = array(); $oldEndDateTime[] = $record->get('due_date'); $oldEndDateTime[] = $record->get('time_end'); $oldEndDateTime = implode(' ',$oldEndDateTime); diff --git a/modules/Calendar/actions/Feed.php b/modules/Calendar/actions/Feed.php index c053754e48a1480f865d2b2f600b149e4731d9ba..3df75e4b7815639e368a72cbf002b148e56f463c 100644 --- a/modules/Calendar/actions/Feed.php +++ b/modules/Calendar/actions/Feed.php @@ -53,19 +53,6 @@ class Calendar_Feed_Action extends Vtiger_BasicAjax_Action { public function _process($request) { try { - foreach ($request as $k => $v) { - if ($k == 'conditions' || $k == 'mapping') continue; - - if ($k == 'fieldname' && $v) { - $vp = explode(',', $v); - $v = array(); - foreach ($vp as $p) $v[] = $this->valForSql($p); - $request[$k] = implode(',', $v); - } else { - $request[$k] = $this->valForSql($v); - } - } - $start = $request['start']; $end = $request['end']; $type = $request['type']; diff --git a/modules/Calendar/actions/Save.php b/modules/Calendar/actions/Save.php index da5307f8bf039af0d0cb8f0287a3bf8aaca35ed1..0074aa18d452bb62a57b289d6f23fe8f36befd5c 100644 --- a/modules/Calendar/actions/Save.php +++ b/modules/Calendar/actions/Save.php @@ -144,16 +144,12 @@ class Calendar_Save_Action extends Vtiger_Save_Action { $fieldValue = $request->get($fieldName, null); // For custom time fields in Calendar, it was not converting to db insert format(sending as 10:00 AM/PM) $fieldDataType = $fieldModel->getFieldDataType(); + if($fieldValue){ + $fieldValue = Vtiger_Util_Helper::validateFieldValue($fieldValue,$fieldModel); + } if($fieldDataType == 'time' && $fieldValue !== null){ $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } - if(($fieldDataType == 'picklist' || $fieldDataType == 'multipicklist' || $fieldDataType == 'multiowner') && $fieldValue !== null){ - $fieldInfo = $fieldModel->getFieldInfo(); - $editablePicklistValues = $fieldInfo['editablepicklistvalues']; - if(!empty($editablePicklistValues) && !in_array($fieldValue, $editablePicklistValues)){ - $fieldValue = null; - } - } // End if ($fieldName === $request->get('field')) { $fieldValue = $request->get('value'); @@ -168,25 +164,29 @@ class Calendar_Save_Action extends Vtiger_Save_Action { } //Start Date and Time values - $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); - $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start')." ".$startTime); - list($startDate, $startTime) = explode(' ', $startDateTime); + if($request->get('date_start') && $request->get('time_start')) { + $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); + $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start')." ".$startTime); + list($startDate, $startTime) = explode(' ', $startDateTime); - $recordModel->set('date_start', $startDate); - $recordModel->set('time_start', $startTime); + $recordModel->set('date_start', $startDate); + $recordModel->set('time_start', $startTime); + } //End Date and Time values - $endTime = $request->get('time_end'); - $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); - - if ($endTime) { - $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); - $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date')." ".$endTime); - list($endDate, $endTime) = explode(' ', $endDateTime); - } + if($request->get('due_date')) { + $endTime = $request->get('time_end'); + $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); + + if ($endTime) { + $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); + $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date')." ".$endTime); + list($endDate, $endTime) = explode(' ', $endDateTime); + } - $recordModel->set('time_end', $endTime); - $recordModel->set('due_date', $endDate); + $recordModel->set('time_end', $endTime); + $recordModel->set('due_date', $endDate); + } $activityType = $request->get('activitytype'); if(empty($activityType)) { diff --git a/modules/Calendar/models/ListView.php b/modules/Calendar/models/ListView.php index a40705d68501e2518d196e7264f5424b13e21ded..216dda81a51e94eb759d81e154b3cecbc2a1a931 100644 --- a/modules/Calendar/models/ListView.php +++ b/modules/Calendar/models/ListView.php @@ -203,8 +203,8 @@ class Calendar_ListView_Model extends Vtiger_ListView_Model { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator)); } - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); if(empty($sortOrder)) { $sortOrder = 'DESC'; } diff --git a/modules/Calendar/models/Module.php b/modules/Calendar/models/Module.php index 4c79cd351ada8206df67288c656e40556ccb742a..adfd7ed18202e1c4030f2ce14c66174e2ac92f8f 100644 --- a/modules/Calendar/models/Module.php +++ b/modules/Calendar/models/Module.php @@ -204,7 +204,7 @@ class Calendar_Module_Model extends Vtiger_Module_Model { * Function to get export query * @return <String> query; */ - public function getExportQuery($where) { + public function getExportQuery($focus, $where) { $currentUserModel = Users_Record_Model::getCurrentUserModel(); $userId = $currentUserModel->getId(); $userGroup = new GetUserGroups(); diff --git a/modules/Documents/Documents.php b/modules/Documents/Documents.php index 1a615f67ef162e540b18f192fae1b5f290921a23..4d1319a1a31c95cf96f0610b3067138b6a441961 100644 --- a/modules/Documents/Documents.php +++ b/modules/Documents/Documents.php @@ -539,7 +539,7 @@ class Documents extends CRMEntity { /** * Function to get query for related list in Documents module */ - function get_related_list($id, $cur_tab_id, $rel_tab_id) { + function get_related_list($id, $cur_tab_id, $rel_tab_id,$actions = false) { $related_module = vtlib_getModuleNameById($rel_tab_id); $other = CRMEntity::getInstance($related_module); vtlib_setup_modulevars('Documents', $this); diff --git a/modules/Documents/models/ListView.php b/modules/Documents/models/ListView.php index 0e62f6f521218f26fa4647b4193f521087538cd4..12f2120f25dd48e1419754aea330a052597ffd4d 100644 --- a/modules/Documents/models/ListView.php +++ b/modules/Documents/models/ListView.php @@ -173,8 +173,8 @@ class Documents_ListView_Model extends Vtiger_ListView_Model { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator)); } - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); if(!empty($orderBy)){ $queryGenerator = $this->get('query_generator'); diff --git a/modules/Emails/Emails.php b/modules/Emails/Emails.php index 19316b7a2604b3654cd133694f40323ff0e60de4..e926d382f020a42d85c7067e3c3f66b7ad66c961 100644 --- a/modules/Emails/Emails.php +++ b/modules/Emails/Emails.php @@ -42,9 +42,9 @@ class Emails extends CRMEntity { 'Related to' => Array('seactivityrel' => 'parent_id'), 'Date Sent' => Array('activity' => 'date_start'), 'Time Sent' => Array('activity' => 'time_start'), - 'Assigned To' => Array('crmentity', 'smownerid'), - 'Access Count' => Array('email_track', 'access_count'), - 'Click Count' => Array('email_track','click_count'), + 'Assigned To' => Array('crmentity' => 'smownerid'), + 'Access Count' => Array('email_track' => 'access_count'), + 'Click Count' => Array('email_track' => 'click_count'), ); var $list_fields_name = Array( 'Subject' => 'subject', @@ -550,7 +550,6 @@ class Emails extends CRMEntity { $module = getTabname($tabId); } $query = $this->getNonAdminAccessQuery($module, $user, $parentRole, $userGroups); - $tableName = Vtiger_Util_Helper::validateStringForSql($tableName); $query = "create temporary table IF NOT EXISTS $tableName(id int(11) primary key, shared int(1) default 0) ignore ".$query; $db = PearDatabase::getInstance(); $result = $db->pquery($query, array()); diff --git a/modules/Emails/class.phpmailer.php b/modules/Emails/class.phpmailer.php index 12a95875702e04a663daf65433161c74204e2f1f..bdc699e1f09ebf8e63403133c36587aa5ab36c16 100755 --- a/modules/Emails/class.phpmailer.php +++ b/modules/Emails/class.phpmailer.php @@ -656,6 +656,8 @@ class PHPMailer */ public function __construct($exceptions = null) { + global $default_charset; + $this->CharSet = $default_charset; if ($exceptions !== null) { $this->exceptions = (boolean)$exceptions; } diff --git a/modules/Emails/models/Mailer.php b/modules/Emails/models/Mailer.php index e2e7c72a1cb32a81c9b082843cf5c974e2af6610..1a42c7495e9946e628fe693b8dce55c43d84e0af 100644 --- a/modules/Emails/models/Mailer.php +++ b/modules/Emails/models/Mailer.php @@ -135,6 +135,7 @@ class Emails_Mailer_Model extends Vtiger_Mailer { public static function getProcessedContent($content) { // remove script tags from whole html content $processedContent = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $content); + $processedContent = purifyHtmlEventAttributes($processedContent,TRUE); return $processedContent; } diff --git a/modules/Emails/models/Module.php b/modules/Emails/models/Module.php index 57e4ae774b9aa2d70c73f6185bb7f70e7054e221..505489aa2731d7e42c0362cdf128098e18e4a8a1 100644 --- a/modules/Emails/models/Module.php +++ b/modules/Emails/models/Module.php @@ -71,7 +71,7 @@ class Emails_Module_Model extends Vtiger_Module_Model{ $emailSupportedModulesList = $EmailsModuleModel->getEmailRelatedModules(); foreach ($emailSupportedModulesList as $module) { if ($module != 'Users' && $module != 'ModComments') { - $activeModules[] = "'".$module."'"; + $activeModules[] = $module; $activeModuleModel = Vtiger_Module_Model::getInstance($module); $moduleEmailFields = $activeModuleModel->getFieldsByType('email'); foreach ($moduleEmailFields as $fieldName => $fieldModel) { @@ -83,7 +83,7 @@ class Emails_Module_Model extends Vtiger_Module_Model{ } if ($moduleName) { - $activeModules = array("'".$moduleName."'"); + $activeModules = array($moduleName); } $query = "SELECT vtiger_emailslookup.crmid, vtiger_emailslookup.setype, vtiger_emailslookup.value, @@ -112,7 +112,7 @@ class Emails_Module_Model extends Vtiger_Module_Model{ } } $emailsResult[vtranslate($row['setype'], $row['setype'])][$row['crmid']][] = array('value' => $row['value'], - 'label' => decode_html($row['label']).' <b>('.$row['value'].')</b>', + 'label' => decode_html($row['label']).' ('.$row['value'].')', 'name' => decode_html($row['label']),); } @@ -154,7 +154,7 @@ class Emails_Module_Model extends Vtiger_Module_Model{ $emailsResult[vtranslate($moduleName, $moduleName)][$row[$moduleInstance->table_index]][] = array('value' => $emailFieldValue, 'name' => $recordLabel, - 'label' => $recordLabel . ' <b>('.$emailFieldValue.')</b>'); + 'label' => $recordLabel . ' ('.$emailFieldValue.')'); } } diff --git a/modules/Emails/models/Record.php b/modules/Emails/models/Record.php index 82c307820d7eb9774be56bab76629888cb7cbda0..7e636eb73315c643c6bbfa47b9fc0891a468bfa7 100644 --- a/modules/Emails/models/Record.php +++ b/modules/Emails/models/Record.php @@ -65,6 +65,7 @@ class Emails_Record_Model extends Vtiger_Record_Model { } } + $allEligibleEmails = array(); $toEmailInfo = array_map("unserialize", array_unique(array_map("serialize", array_map("array_unique", $toEmailInfo)))); $toFieldData = array_diff(explode(',', $this->get('saved_toid')), $emailsInfo); $toEmailsData = array(); @@ -78,7 +79,29 @@ class Emails_Record_Model extends Vtiger_Record_Model { // Merge Users module merge tags based on current user. $mergedDescription = getMergedDescription($this->get('description'), $currentUserModel->getId(), 'Users'); $mergedSubject = getMergedDescription($this->get('subject'),$currentUserModel->getId(), 'Users'); - foreach($toEmailInfo as $id => $emails) { + + // push all emails to one single array + foreach($toEmailInfo as $selectedId => $selectedEmails) { + + // Pushing all ids to one single array + if($selectedId){ + array_push($selectedIds,$selectedId); + } + + // If selected emails is not an array, then make it as array + if(!is_array($selectedEmails)){ + $selectedEmails = array($selectedEmails); + } + + // For selectedEmails check and push to emails array + foreach($selectedEmails as $selectedEmail){ + $emails=array(); + if(trim($selectedEmail)){ + array_push($emails, $selectedEmail); + } + } + } + $inReplyToMessageId = ''; $generatedMessageId = ''; $mailer->reinitialize(); @@ -127,56 +150,65 @@ class Emails_Record_Model extends Vtiger_Record_Model { $logo = true; } - foreach($emails as $email) { - $mailer->Body = $description; - if ($parentModule) { - $mailer->Body = $this->convertUrlsToTrackUrls($mailer->Body, $id);; - $mailer->Body .= $this->getTrackImageDetails($id, $this->isEmailTrackEnabled($parentModule)); - } - //Checking whether user requested to add signature or not - if($this->get('signature') == 'Yes'){ - $mailer->Signature = $currentUserModel->get('signature'); - if($mailer->Signature != '') { - $mailer->Body.= '<br><br>'.decode_html($mailer->Signature); - } - } - $mailer->Subject = decode_html(strip_tags($subject)); - - $plainBody = decode_emptyspace_html($description); - $plainBody = preg_replace(array("/<p>/i","/<br>/i","/<br \/>/i"),array("\n","\n","\n"),$plainBody); - $plainBody .= "\n\n".$currentUserModel->get('signature'); - $plainBody = utf8_encode(strip_tags($plainBody)); - $plainBody = Emails_Mailer_Model::convertToAscii($plainBody); - $plainBody = $this->convertUrlsToTrackUrls($plainBody, $id,'plain'); - $mailer->AltBody = $plainBody; - $mailer->AddAddress($email); - - //Adding attachments to mail - if(is_array($attachments)) { - foreach($attachments as $attachment) { - $fileNameWithPath = $rootDirectory.$attachment['path'].$attachment['fileid']."_".$attachment['attachment']; - if(is_file($fileNameWithPath)) { - $mailer->AddAttachment($fileNameWithPath, $attachment['attachment']); - } - } - } - if ($logo) { - $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); - $companyLogoDetails = $companyDetails->getLogo(); - //While sending email template and which has '$logo$' then it should replace with company logo - $mailer->AddEmbeddedImage($companyLogoDetails->get('imagepath'), 'companyLogo', 'attachment', 'base64', 'image/jpg'); - } - - $ccs = array_filter(explode(',',$this->get('ccmail'))); - $bccs = array_filter(explode(',',$this->get('bccmail'))); - - if(!empty($ccs)) { - foreach($ccs as $cc) $mailer->AddCC($cc); - } - if(!empty($bccs)) { - foreach($bccs as $bcc) $mailer->AddBCC($bcc); - } - } + // Adding all recipients in mail + foreach($emails as $email) { + array_push($allEligibleEmails,$email); + $mailer->AddAddress($email); + } + $mailer->Body = $description; + if ($parentModule) { + $mailer->Body = $this->convertUrlsToTrackUrls($mailer->Body, $id);; + $mailer->Body .= $this->getTrackImageDetails($id, $this->isEmailTrackEnabled($parentModule)); + } + //Checking whether user requested to add signature or not + if($this->get('signature') == 'Yes'){ + $mailer->Signature = $currentUserModel->get('signature'); + if($mailer->Signature != '') { + $mailer->Body.= '<br><br>'.decode_html($mailer->Signature); + } + } + $mailer->Subject = decode_html(strip_tags($subject)); + + $plainBody = decode_emptyspace_html($description); + $plainBody = preg_replace(array("/<p>/i","/<br>/i","/<br \/>/i"),array("\n","\n","\n"),$plainBody); + $plainBody .= "\n\n".$currentUserModel->get('signature'); + $plainBody = utf8_encode(strip_tags($plainBody)); + $plainBody = Emails_Mailer_Model::convertToAscii($plainBody); + $plainBody = $this->convertUrlsToTrackUrls($plainBody, $id,'plain'); + $mailer->AltBody = $plainBody; + $mailer->AddAddress($email); + + //Adding attachments to mail + if(is_array($attachments)) { + foreach($attachments as $attachment) { + $fileNameWithPath = $rootDirectory.$attachment['path'].$attachment['fileid']."_".$attachment['storedname']; + if(is_file($fileNameWithPath)) { + $mailer->AddAttachment($fileNameWithPath, $attachment['attachment']); + } + } + } + if ($logo) { + $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); + $companyLogoDetails = $companyDetails->getLogo(); + //While sending email template and which has '$logo$' then it should replace with company logo + $mailer->AddEmbeddedImage($companyLogoDetails->get('imagepath'), 'companyLogo', 'attachment', 'base64', 'image/jpg'); + } + + $ccs = array_filter(explode(',',$this->get('ccmail'))); + $bccs = array_filter(explode(',',$this->get('bccmail'))); + + if(!empty($ccs)) { + foreach($ccs as $cc) { + array_push($allEligibleEmails,$cc); + $mailer->AddCC($cc); + } + } + if(!empty($bccs)) { + foreach($bccs as $bcc) { + array_push($allEligibleEmails,$bcc); + $mailer->AddBCC($bcc); + } + } // to convert external css to inline css $mailer->Body = Emails_Mailer_Model::convertCssToInline($mailer->Body); //To convert image url to valid @@ -210,7 +242,6 @@ class Emails_Record_Model extends Vtiger_Record_Model { imap_append($connector->mBox, $connector->mBoxUrl.$folderName, $message, "\\Seen"); } } - } return $status; } @@ -247,9 +278,10 @@ class Emails_Record_Model extends Vtiger_Record_Model { for($i=0; $i<$numOfRows; $i++) { $attachmentsList[$i]['fileid'] = $db->query_result($attachmentRes, $i, 'attachmentsid'); $attachmentsList[$i]['attachment'] = decode_html($db->query_result($attachmentRes, $i, 'name')); + $attachmentsList[$i]['storedname'] = decode_html($db->query_result($attachmentRes, $i, 'storedname')); $path = $db->query_result($attachmentRes, $i, 'path'); $attachmentsList[$i]['path'] = $path; - $attachmentsList[$i]['size'] = filesize($path.$attachmentsList[$i]['fileid'].'_'.$attachmentsList[$i]['attachment']); + $attachmentsList[$i]['size'] = filesize($path.$attachmentsList[$i]['fileid'].'_'.$attachmentsList[$i]['storedname']); $attachmentsList[$i]['type'] = $db->query_result($attachmentRes, $i, 'type'); $attachmentsList[$i]['cid'] = $db->query_result($attachmentRes, $i, 'cid'); } @@ -299,6 +331,7 @@ class Emails_Record_Model extends Vtiger_Record_Model { $documentsList[$i]['path'] = $db->query_result($documentRes, $i, 'path'); $documentsList[$i]['fileid'] = $db->query_result($documentRes, $i, 'attachmentsid'); $documentsList[$i]['attachment'] = decode_html($db->query_result($documentRes, $i, 'name')); + $documentsList[$i]['storedname'] = decode_html($db->query_result($documentRes, $i, 'storedname')); $documentsList[$i]['type'] = $db->query_result($documentRes, $i, 'type'); } } diff --git a/modules/Emails/views/MassSaveAjax.php b/modules/Emails/views/MassSaveAjax.php index 84320a36cc1d904aa70da4515b35203b0a1745a7..8b9472efca9bfaad3a1e0741437830989d716a87 100644 --- a/modules/Emails/views/MassSaveAjax.php +++ b/modules/Emails/views/MassSaveAjax.php @@ -70,6 +70,11 @@ class Emails_MassSaveAjax_View extends Vtiger_Footer_View { $existingAttachments = $request->get('attachments',array()); if(empty($recordId)) { if(is_array($existingAttachments)) { + /** + * When no document is selected from CRM in compose mail form, the $documentIds will be an empty string and not an array + * Since $documentIds is string and here we are trying to array push string it will throw fatal error. + */ + $documentIds = $documentIds ? $documentIds : array(); foreach ($existingAttachments as $index => $existingAttachInfo) { $existingAttachInfo['tmp_name'] = $existingAttachInfo['name']; $existingAttachments[$index] = $existingAttachInfo; @@ -185,6 +190,15 @@ class Emails_MassSaveAjax_View extends Vtiger_Footer_View { $date_var = date("Y-m-d H:i:s"); if(is_array($existingAttachments)) { foreach ($existingAttachments as $index => $existingAttachInfo) { + /** + * For download or send email filename should not be in encoded format (md5) + * Ex: for PDF: if filename - abc_md5(abc).pdf then raw filename - abc.pdf + * For Normal documents: rawFileName is not exist in the attachments info. So it fallback to normal filename + */ + $rawFileName = $existingAttachInfo['storedname']; + if (!$rawFileName) { + $rawFileName = $existingAttachInfo['attachment']; + } $file_name = $existingAttachInfo['attachment']; $path = $existingAttachInfo['path']; $fileId = $existingAttachInfo['fileid']; @@ -196,7 +210,7 @@ class Emails_MassSaveAjax_View extends Vtiger_Footer_View { } $oldFilePath = $path.'/'.$oldFileName; - $binFile = sanitizeUploadFileName($file_name, $upload_badext); + $binFile = sanitizeUploadFileName($rawFileName, $upload_badext); $current_id = $adb->getUniqueID("vtiger_crmentity"); diff --git a/modules/Install/models/ConfigFileUtils.php b/modules/Install/models/ConfigFileUtils.php index b5b89fc41919dc70331407fb20d9ad06d8b75014..378d122b7cbaf26079e2daf3b5cc25d6b68b1524 100644 --- a/modules/Install/models/ConfigFileUtils.php +++ b/modules/Install/models/ConfigFileUtils.php @@ -210,9 +210,6 @@ ini_set('memory_limit','64M'); // history_max_viewed default value = 5 \$history_max_viewed = '5'; -// default_module default value = Home -\$default_module = 'Home'; - // default_action default value = index \$default_action = 'index'; diff --git a/modules/Install/views/Index.php b/modules/Install/views/Index.php index 4e20ac2fd677a496c8768b19b074e5d5f0f747c8..54a29e5f49bfd76b83e7b3f86111cdbd0e6a9003 100644 --- a/modules/Install/views/Index.php +++ b/modules/Install/views/Index.php @@ -38,15 +38,6 @@ class Install_Index_view extends Vtiger_View_Controller { $this->applyInstallFriendlyEnv(); date_default_timezone_set('Europe/London'); // to overcome the pre configuration settings - // Added to redirect to default module if already installed - $configFileName = 'config.inc.php'; - if(is_file($configFileName) && filesize($configFileName) > 0) { - $defaultModule = vglobal('default_module'); - $defaultModuleInstance = Vtiger_Module_Model::getInstance($defaultModule); - $defaultView = $defaultModuleInstance->getDefaultViewName(); - header('Location:index.php?module='.$defaultModule.'&view='.$defaultView); - exit; - } parent::preProcess($request); $viewer = $this->getViewer($request); diff --git a/modules/Leads/views/SaveConvertLead.php b/modules/Leads/views/SaveConvertLead.php index dd28a74ea8f0944b8e8d16878bf6bf89edacfb46..c050acdb0a4352c9b19e618f685a8fdb417ccd2f 100644 --- a/modules/Leads/views/SaveConvertLead.php +++ b/modules/Leads/views/SaveConvertLead.php @@ -57,10 +57,14 @@ class Leads_SaveConvertLead_View extends Vtiger_View_Controller { } elseif ($fieldModel->getFieldDataType() === 'date') { $fieldValue = DateTimeField::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'reference' && $fieldValue) { - $ids = vtws_getIdComponents($fieldValue); - if (count($ids) === 1) { - $fieldValue = vtws_getWebserviceEntityId(getSalesEntityType($fieldValue), $fieldValue); - } + if($fieldModel->get('uitype') == 77){ + $fieldValue = vtws_getWebserviceEntityId(vtws_getOwnerType($fieldValue), $fieldValue); + } else { + $ids = vtws_getIdComponents($fieldValue); + if (count($ids) === 1) { + $fieldValue = vtws_getWebserviceEntityId(getSalesEntityType($fieldValue), $fieldValue); + } + } } $entityValues['entities'][$module][$fieldName] = $fieldValue; } diff --git a/modules/Migration/models/Module.php b/modules/Migration/models/Module.php index 44cef6173231d910b14f6ff0da11d83cae193031..8f9aa4ae16296477b96284b11eec3f8b98823033 100644 --- a/modules/Migration/models/Module.php +++ b/modules/Migration/models/Module.php @@ -21,8 +21,12 @@ class Migration_Module_Model extends Vtiger_Module_Model { return $currentVersion; } - public static function getInstance() { - return new self(); + /** + * Static Function to get the instance of Vtiger Module Model for the given id or name + * @param mixed id or name of the module + */ + public static function getInstance($value) { + return new self($value); } public function getAllowedMigrationVersions(){ @@ -41,6 +45,7 @@ class Migration_Module_Model extends Vtiger_Module_Model { array('710' => '7.1.0'), array('711' => '7.1.1'), array('720' => '7.2.0'), + array('721' => '7.2.1'), ); return $versions; } diff --git a/modules/Migration/schema/660_to_700.php b/modules/Migration/schema/660_to_700.php index 0692a19241e9d871e242f67edaf94ec35f0bb86b..bbe645d9c5deddf3598961f5df9dc02813a860d5 100644 --- a/modules/Migration/schema/660_to_700.php +++ b/modules/Migration/schema/660_to_700.php @@ -432,8 +432,6 @@ if(defined('VTIGER_UPGRADE')) { if (!in_array('module', $columns)) { $db->pquery('ALTER TABLE vtiger_emailtemplates ADD COLUMN module VARCHAR(100)', array()); } - $db->pquery('UPDATE vtiger_emailtemplates SET module=? WHERE templatename IN (?,?,?) AND module IS NULL', array('Events', 'ToDo Reminder', 'Activity Reminder', 'Invite Users')); - $db->pquery('UPDATE vtiger_emailtemplates SET module=? WHERE module IS NULL', array('Contacts')); $moduleName = 'Calendar'; $reminderTemplateResult = $db->pquery('SELECT 1 FROM vtiger_emailtemplates WHERE subject=? AND systemtemplate=?', array('Reminder', '1')); @@ -1226,7 +1224,7 @@ if(defined('VTIGER_UPGRADE')) { } $modules = array(); - $ignoreModules = array('SMSNotifier', 'ModComments'); + $ignoreModules = array('SMSNotifier', 'ModComments', 'PBXManager'); $result = $db->pquery('SELECT name FROM vtiger_tab WHERE isentitytype=? AND name NOT IN ('.generateQuestionMarks($ignoreModules).')', array(1, $ignoreModules)); while ($row = $db->fetchByAssoc($result)) { $modules[] = $row['name']; @@ -2215,7 +2213,11 @@ if(defined('VTIGER_UPGRADE')) { } } } - $db->pquery("DELETE FROM $baseTableName WHERE $baseTableIndex NOT IN (SELECT crmid FROM vtiger_crmentity WHERE setype=?)", array($moduleName)); + $deleteQueryParams = array($moduleName); + if($baseTableName == 'vtiger_activity'){ + array_push($deleteQueryParams, "Emails"); + } + $db->pquery("DELETE FROM $baseTableName WHERE $baseTableIndex NOT IN (SELECT crmid FROM vtiger_crmentity WHERE setype in (". generateQuestionMarks($deleteQueryParams)."))", $deleteQueryParams); } } diff --git a/modules/Migration/schema/701_to_710.php b/modules/Migration/schema/701_to_710.php index 11070abbad7c94aa1035dc12708da33da939c9fc..7562d9775ccd0776a4a41f1f55a6605a8fea3d1c 100644 --- a/modules/Migration/schema/701_to_710.php +++ b/modules/Migration/schema/701_to_710.php @@ -81,23 +81,30 @@ if (defined('VTIGER_UPGRADE')) { //START::Tag fields are pointed to cf table for the modules Assets, Services etc.. $fieldName = 'tags'; - $moduleModels = Vtiger_Module_Model::getAll(); - foreach ($moduleModels as $moduleModel) { - $baseTableId = $moduleModel->basetableid; - if ($baseTableId) { - $baseTableName = $moduleModel->basetable; - $customTableName = $baseTableName.'cf'; - $customTableColumns = $db->getColumnNames($customTableName); - if (in_array($fieldName, $customTableColumns)) { - $fieldModel = Vtiger_Field_Model::getInstance($fieldName, $moduleModel); - $db->pquery("UPDATE vtiger_field SET tablename=? WHERE fieldid=?", array($baseTableName, $fieldModel->id)); - $db->pquery("ALTER TABLE $baseTableName ADD COLUMN $fieldName VARCHAR(1)", array()); - - $db->pquery("UPDATE $baseTableName, $customTableName SET $baseTableName.tags=$customTableName.tags WHERE $baseTableName.$baseTableId=$customTableName.$baseTableId", array()); - $db->pquery("ALTER TABLE $customTableName DROP COLUMN $fieldName", array()); - } - } - } + $moduleModels = Vtiger_Module_Model::getAll(); + $restrictedModules = array('Dashboard', 'Home', 'Rss', 'Portal', 'Webmails', 'Import'); + foreach ($moduleModels as $moduleModel) { + if(in_array($moduleModel->getName(), $restrictedModules)) { + continue; + } + $moduleClass = CRMEntity::getInstance($moduleModel->getName()); + $baseTableId = $moduleClass->table_index; + if ($baseTableId) { + $baseTableName = $moduleClass->table_name; + $customTable = $moduleClass->customFieldTable; + $customTableName = $customTable[0]; + $customTableId = $customTable[1]; + $customTableColumns = $db->getColumnNames($customTableName); + if (!empty($customTableColumns) && in_array($fieldName, $customTableColumns)) { + $fieldModel = Vtiger_Field_Model::getInstance($fieldName, $moduleModel); + $db->pquery("UPDATE vtiger_field SET tablename=? WHERE fieldid=?", array($baseTableName, $fieldModel->id)); + $db->pquery("ALTER TABLE $baseTableName ADD COLUMN $fieldName VARCHAR(1)", array()); + + $db->pquery("UPDATE $baseTableName, $customTableName SET $baseTableName.tags=$customTableName.tags WHERE $baseTableName.$baseTableId=$customTableName.$customTableId", array()); + $db->pquery("ALTER TABLE $customTableName DROP COLUMN $fieldName", array()); + } + } + } echo '<br>Succecssfully generalized tag fields<br>'; //END::Tag fields are pointed to cf table for the modules Assets, Services etc.. diff --git a/modules/Migration/schema/711_to_720.php b/modules/Migration/schema/711_to_720.php index abf2134192ac5e4cda3f6e6cb73b21587bae49ca..8ef2b7b493c6fd41c4a4f953ec57ee22a16943ee 100644 --- a/modules/Migration/schema/711_to_720.php +++ b/modules/Migration/schema/711_to_720.php @@ -13,5 +13,9 @@ if (defined('VTIGER_UPGRADE')) { $db = PearDatabase::getInstance(); // Added column storedname for vtiger_attachments to support reverse mapping. - $db->pquery('ALTER TABLE vtiger_attachments ADD COLUMN storedname varchar(255) NULL AFTER path', array()); + $columns = $db->getColumnNames('vtiger_attachments'); + $columnName = "storedname"; + if(!in_array($columnName,$columns)) { + $db->pquery('ALTER TABLE vtiger_attachments ADD COLUMN storedname varchar(255) NULL AFTER path', array()); + } } diff --git a/modules/Migration/schema/720_to_721.php b/modules/Migration/schema/720_to_721.php new file mode 100644 index 0000000000000000000000000000000000000000..0e09a716af337e332a5715e8aed74827ebc79416 --- /dev/null +++ b/modules/Migration/schema/720_to_721.php @@ -0,0 +1,140 @@ +<?php +/*+******************************************************************************** + * The contents of this file are subject to the vtiger CRM Public License Version 1.0 + * ("License"); You may not use this file except in compliance with the License + * The Original Code is: vtiger CRM Open Source + * The Initial Developer of the Original Code is vtiger. + * Portions created by vtiger are Copyright (C) vtiger. + * All Rights Reserved. + *********************************************************************************/ + +if (defined('VTIGER_UPGRADE')) { + global $current_user, $adb; + $db = PearDatabase::getInstance(); + + //Profile privileges supported for Emails Module + $actions = array('Save', 'EditView', 'Delete', 'DetailView'); + $emailsTabId = getTabid('Emails'); + + $actionIds = array(); + foreach($actions as $actionName) { + array_push($actionIds, getActionid($actionName)); + } + + $profileIdsResult = $db->pquery("SELECT DISTINCT profileid FROM vtiger_profile", array()); + $profileIdCount = $db->num_rows($profileIdsResult); + for($i = 0; $i < $profileIdCount; $i++) { + $profileId = $db->query_result($profileIdsResult, $i, 'profileid'); + foreach($actionIds as $actionId) { + $db->pquery("INSERT INTO vtiger_profile2standardpermissions VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE permissions = ?", + array($profileId, $emailsTabId, $actionId, 0, 0)); + } + echo "Emails permission for profile id :: $profileId inserted into vtiger_profile2standardpermissions table.<br>"; + } + echo 'All profiles permissions updated to Email Module'; + + $db->pquery("UPDATE vtiger_tab SET ownedby = ? WHERE tabid = ?", array(0, $emailsTabId)); + echo "ownedby value updated to 0 for Emails in vtiger_tab table.<br>"; + + vimport('~modules/Users/CreateUserPrivilegeFile.php'); + $usersResult = $db->pquery("SELECT id FROM vtiger_users", array()); + $usersCount = $db->num_rows($usersResult); + for($i = 0; $i < $usersCount; $i++) { + $userId = $db->query_result($usersResult, $i, 'id'); + createUserPrivilegesfile($userId); + createUserSharingPrivilegesfile($userId); + echo "User privilege and sharing privilege files recreated for user id :: $userId.<br>"; + } + + //Default Email reports access count column update from varchar to integer + $db->pquery('UPDATE vtiger_selectcolumn set columnname = ? where columnname=?', array('vtiger_email_track:access_count:Emails_Access_Count:access_count:I', 'vtiger_email_track:access_count:Emails_Access_Count:access_count:V')); + $db->pquery('UPDATE vtiger_relcriteria set columnname = ?, comparator = ? where columnname=?', array('vtiger_email_track:access_count:Emails_Access_Count:access_count:I', 'ny', 'vtiger_email_track:access_count:Emails_Access_Count:access_count:V')); + echo 'Email access count field data type updated to Int'; + + //References module added to Calendar parent_id field to link activites to parent record + $calendarModuleModel = Vtiger_Module_Model::getInstance('Calendar'); + $fieldModel = $calendarModuleModel->getField('parent_id'); + $fieldId = $fieldModel->getId(); + $query = "SELECT * FROM vtiger_ws_fieldtype WHERE uitype=?"; + $result = $db->pquery($query,array($fieldModel->get('uitype'))); + $fieldTypeId = $db->query_result($result,0,'fieldtypeid'); + + $qResult = $db->pquery('SELECT type FROM vtiger_ws_referencetype WHERE fieldtypeid = ?', array($fieldTypeId)); + $existingModules = array(); + for($i=0;$i<$db->num_rows($qResult);$i++) { + $existingModules[] = $db->query_result($qResult, $i ,'type'); + } + + $newModules = array('Invoice','Quotes','PurchaseOrder','SalesOrder'); + foreach($newModules as $module) { + if(!in_array($module, $existingModules)) { + $db->pquery('INSERT INTO vtiger_ws_referencetype VALUES (?,?)', array($fieldTypeId, $module)); + echo "<br>".$module.' Reference module added'; + } + } + + //#1184 => Register field delete event handler + $em = new VTEventsManager($db); + $em->registerHandler('vtiger.field.afterdelete', 'modules/Vtiger/handlers/FieldEventHandler.php', 'FieldEventHandler'); + + $db->pquery('INSERT INTO vtiger_date_format (date_format, sortorderid, presence) VALUES (?, ?, ?)', ['dd.mm.yyyy', 3, 1]); + $db->pquery('INSERT INTO vtiger_date_format (date_format, sortorderid, presence) VALUES (?, ?, ?)', ['dd/mm/yyyy', 4, 1]); + + //#1248 => updated vtiger_systems.server_password to TEXT + $db->pquery('ALTER TABLE vtiger_systems MODIFY server_password text', array()); + + $defaultEventTemplates = array('ToDo Reminder', 'Activity Reminder', 'Invite Users'); + $updateEventParams = array('Events', 'ToDo Reminder', 'Activity Reminder', 'Invite Users'); + $db->pquery('UPDATE vtiger_emailtemplates SET module=? WHERE templatename IN ('. generateQuestionMarks($defaultEventTemplates).')', $updateEventParams); + + $defaultContactTemplates = array('Support end notification before a month', 'Support end notification before a week', 'Send Portal login details to customer', 'Thanks Note', 'Customer Login Details', 'Target Crossed!', 'Follow Up', 'Address Change', 'Accept Order', 'Goods received acknowledgement', 'Acceptance Proposal', 'Pending Invoices', 'Announcement for Release'); + $updateContactParams = array('Contacts','Support end notification before a month', 'Support end notification before a week', 'Send Portal login details to customer', 'Thanks Note', 'Customer Login Details', 'Target Crossed!', 'Follow Up', 'Address Change', 'Accept Order', 'Goods received acknowledgement', 'Acceptance Proposal', 'Pending Invoices', 'Announcement for Release'); + $db->pquery('UPDATE vtiger_emailtemplates SET module=? WHERE templatename IN ('. generateQuestionMarks($defaultContactTemplates).')', $updateContactParams); + + echo 'Email templates default moduleName updated'; + + //Migrate default module data from config editor to database + $moduleModel = Settings_Vtiger_ConfigModule_Model::getInstance(); + $configFieldData = $moduleModel->getViewableData(); + $defaultModule = $configFieldData['default_module']; + if(empty($defaultModule)){ + $defaultModule = 'Home'; + } + + $moduleInstance = Vtiger_Module_Model::getInstance('Users'); + $blockInstance = Vtiger_Block::getInstance('LBL_MORE_INFORMATION', $moduleInstance); + if ($blockInstance) { + $fieldInstance = Vtiger_Field::getInstance('defaultlandingpage', $moduleInstance); + if (!$fieldInstance) { + $fieldInstance = new Vtiger_Field(); + $fieldInstance->name = 'defaultlandingpage'; + $fieldInstance->column = 'defaultlandingpage'; + $fieldInstance->label = 'Default Landing Page'; + $fieldInstance->table = 'vtiger_users'; + $fieldInstance->columntype = 'VARCHAR(100)'; + $fieldInstance->defaultvalue = $defaultModule; + $fieldInstance->typeofdata = 'V~O'; + $fieldInstance->uitype = '32'; + $fieldInstance->presence = '0'; + + $blockInstance->addField($fieldInstance); + $configModuleInstance = Settings_Vtiger_ConfigModule_Model::getInstance(); + $defaultModules = $configModuleInstance->getPicklistValues('default_module'); + $fieldInstance->setPicklistValues($defaultModules); + echo "<br> Default landing page field added <br>"; + } + } + + $allUsers = Users_Record_Model::getAll(true); + $allUserIds = array_keys($allUsers); + + $db->pquery('UPDATE vtiger_users SET defaultlandingpage = ? WHERE id in ('. generateQuestionMarks($allUserIds) .')', array($defaultModule, $allUserIds)); + echo "Default landing page updated for all active users <br>"; + + //Recalculating user-preivilege file, as defaultlandingpage and other preference changes should be updated + foreach ($allUserIds as $userId) { + createUserPrivilegesfile($userId); + createUserSharingPrivilegesfile($userId); + } + echo "Re-calculated user privilege and sharing privileges files"; +} \ No newline at end of file diff --git a/modules/PickList/PickListUtils.php b/modules/PickList/PickListUtils.php index bd5b04705bb1803bf388d1f0571459c853167e2f..2c00a7e57010e0884757d9b20924e214388985cc 100644 --- a/modules/PickList/PickListUtils.php +++ b/modules/PickList/PickListUtils.php @@ -118,7 +118,7 @@ function getAllPickListValues($fieldName,$lang = Array() ){ $arr = array(); for($i=0;$i<$count;$i++){ $pick_val = decode_html($adb->query_result($result, $i, $fieldName)); - if($lang[$pick_val] != ''){ + if(is_array($lang) && $lang[$pick_val] != ''){ $arr[$pick_val] = $lang[$pick_val]; } else{ diff --git a/modules/Portal/models/Module.php b/modules/Portal/models/Module.php index 517622b6a8dffb4d81263cf89b0f8ce3968e5757..7d8b888f4c70156b10a084afd390dea62360db61 100644 --- a/modules/Portal/models/Module.php +++ b/modules/Portal/models/Module.php @@ -21,7 +21,7 @@ class Portal_Module_Model extends Vtiger_Module_Model { return $links; } - public function saveRecord($recordId, $bookmarkName, $bookmarkUrl) { + public function saveRecord($recordId, $bookmarkName = false, $bookmarkUrl = false) { $db = PearDatabase::getInstance(); if(empty($recordId)) { $portalId = $db->getUniqueID('vtiger_portal'); diff --git a/modules/PriceBooks/PriceBooks.php b/modules/PriceBooks/PriceBooks.php index 916a3dc2e84dc4c7ca91e7ae0961201627033dd9..514e0936b2f00c75230193e7c3eb0e817269c5ba 100755 --- a/modules/PriceBooks/PriceBooks.php +++ b/modules/PriceBooks/PriceBooks.php @@ -347,7 +347,7 @@ class PriceBooks extends CRMEntity { $moduleSubject = 'bookname'; $params = array(); - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user)); + $tableName = Import_Utils_Helper::getDbTableName($obj->user); $sql = 'SELECT * FROM ' . $tableName . ' WHERE status = ? GROUP BY ?'; array_push($params, Import_Data_Action::$IMPORT_RECORD_NONE); array_push($params, $moduleSubject); diff --git a/modules/PriceBooks/models/ListView.php b/modules/PriceBooks/models/ListView.php index f34855d36b0d3d6c4a3b2d2cf78ca1132bf6a44f..c73bd68e7d1e9939cd900c7f534f4c71dd8da7ea 100644 --- a/modules/PriceBooks/models/ListView.php +++ b/modules/PriceBooks/models/ListView.php @@ -73,8 +73,8 @@ class PriceBooks_ListView_Model extends Vtiger_ListView_Model { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator)); } - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); if(!empty($orderBy)){ $queryGenerator = $this->get('query_generator'); diff --git a/modules/Products/models/ListView.php b/modules/Products/models/ListView.php index 7aa64ad15417fc3171199cd62b0f4604715a0f29..00a0e74b867ddf5ec037350832c1f49eb8e37cb9 100644 --- a/modules/Products/models/ListView.php +++ b/modules/Products/models/ListView.php @@ -43,8 +43,8 @@ class Products_ListView_Model extends Vtiger_ListView_Model { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator)); } - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); if(!empty($orderBy)){ $queryGenerator = $this->get('query_generator'); diff --git a/modules/Reports/ReportRun.php b/modules/Reports/ReportRun.php index 4eaee0d62ab6b928e00c51552e682bba94bf9424..c846d9678e63c1bae180c8045260cd4f60b4a09e 100644 --- a/modules/Reports/ReportRun.php +++ b/modules/Reports/ReportRun.php @@ -3214,8 +3214,11 @@ class ReportRun extends CRMEntity { } else { $convert_price = false; } + $originalValue = trim(str_replace(' ', '_', $value)); $value = trim($key); - $arraykey = $value . '_SUM'; + $originalkey = $value . '_SUM'; + $originalValueKey = $originalValue.'_SUM'; + $arraykey = $this->replaceSpecialChar($value) . '_SUM'; if (isset($keyhdr[$arraykey])) { if ($convert_price) { if ($operation == 'ExcelExport') { @@ -3236,12 +3239,14 @@ class ReportRun extends CRMEntity { } } } - $totalpdf[$rowcount][$arraykey] = $conv_value; + $totalpdf[$rowcount][$originalValueKey] = $conv_value; } else { - $totalpdf[$rowcount][$arraykey] = ''; + $totalpdf[$rowcount][$originalValueKey] = ''; } - $arraykey = $value . '_AVG'; + $originalkey = $value . '_AVG'; + $originalValueKey = $originalValue.'_AVG'; + $arraykey = $this->replaceSpecialChar($value) . '_AVG'; if (isset($keyhdr[$arraykey])) { if ($convert_price) { if ($operation == 'ExcelExport') { @@ -3262,12 +3267,14 @@ class ReportRun extends CRMEntity { } } } - $totalpdf[$rowcount][$arraykey] = $conv_value; + $totalpdf[$rowcount][$originalValueKey] = $conv_value; } else { - $totalpdf[$rowcount][$arraykey] = ''; + $totalpdf[$rowcount][$originalValueKey] = ''; } - $arraykey = $value . '_MIN'; + $originalkey = $value . '_MIN'; + $originalValueKey = $originalValue.'_MIN'; + $arraykey = $this->replaceSpecialChar($value) . '_MIN'; if (isset($keyhdr[$arraykey])) { if ($convert_price) { if ($operation == 'ExcelExport') { @@ -3288,12 +3295,14 @@ class ReportRun extends CRMEntity { } } } - $totalpdf[$rowcount][$arraykey] = $conv_value; + $totalpdf[$rowcount][$originalValueKey] = $conv_value; } else { - $totalpdf[$rowcount][$arraykey] = ''; + $totalpdf[$rowcount][$originalValueKey] = ''; } - $arraykey = $value . '_MAX'; + $originalkey = $value . '_MAX'; + $originalValueKey = $originalValue.'_MAX'; + $arraykey = $this->replaceSpecialChar($value) . '_MAX'; if (isset($keyhdr[$arraykey])) { if ($convert_price) { if ($operation == 'ExcelExport') { @@ -3314,9 +3323,9 @@ class ReportRun extends CRMEntity { } } } - $totalpdf[$rowcount][$arraykey] = $conv_value; + $totalpdf[$rowcount][$originalValueKey] = $conv_value; } else { - $totalpdf[$rowcount][$arraykey] = ''; + $totalpdf[$rowcount][$originalValueKey] = ''; } $rowcount++; } diff --git a/modules/Reports/ReportSharing.php b/modules/Reports/ReportSharing.php index 30fcc9daec8b9900adc04079e6f0c10bceb503ee..e29a00f3c577764ee9c223ef505a29e4498d9557 100644 --- a/modules/Reports/ReportSharing.php +++ b/modules/Reports/ReportSharing.php @@ -32,7 +32,7 @@ $report_std_filter->assign("MOD", $mod_strings); $report_std_filter->assign("APP", $app_strings); $report_std_filter->assign("IMAGE_PATH",$image_path); $report_std_filter->assign("DATEFORMAT",$current_user->date_format); -$report_std_filter->assign("JS_DATEFORMAT",parse_calendardate($app_strings['NTC_DATE_FORMAT'])); +$report_std_filter->assign('JS_DATEFORMAT', parse_calendardate()); $roleid = $current_user->column_fields['roleid']; $user_array = getAllUserName(); diff --git a/modules/Reports/actions/ChartSave.php b/modules/Reports/actions/ChartSave.php index 0268ffcf8243b56dc5ba32bbcb6ba0431e6bb47d..d14ce3e37d5450dc806ac001a04602aec729a25f 100644 --- a/modules/Reports/actions/ChartSave.php +++ b/modules/Reports/actions/ChartSave.php @@ -21,7 +21,7 @@ class Reports_ChartSave_Action extends Reports_Save_Action { } $reportModel->set('reportname', $request->get('reportname')); - $reportModel->set('folderid', $request->get('folderid')); + $reportModel->set('folderid', $request->get('reportfolderid')); $reportModel->set('description', $request->get('reports_description')); $reportModel->set('members', $request->get('members')); diff --git a/modules/Reports/actions/Save.php b/modules/Reports/actions/Save.php index c2bb8b71fe7fd54c4f6bcf99c12a77f74fa8158b..a3d98c892b9a9c7341a2588120b899bef9fd4d62 100644 --- a/modules/Reports/actions/Save.php +++ b/modules/Reports/actions/Save.php @@ -42,7 +42,7 @@ class Reports_Save_Action extends Vtiger_Save_Action { $reporttype = $request->get('reporttype'); if(empty($reporttype)) $reporttype='tabular'; $reportModel->set('reportname', $request->get('reportname')); - $reportModel->set('folderid', $request->get('folderid')); + $reportModel->set('folderid', $request->get('reportfolderid')); $reportModel->set('description', $request->get('reports_description')); $reportModel->set('reporttype', $reporttype); diff --git a/modules/Reports/models/Folder.php b/modules/Reports/models/Folder.php index a7e64d2a5db4c7bd8df02c487f8f7b6847353b19..29ade37e3760b4f3e87faf9830966114b4603aad 100644 --- a/modules/Reports/models/Folder.php +++ b/modules/Reports/models/Folder.php @@ -283,8 +283,6 @@ class Reports_Folder_Model extends Vtiger_Base_Model { public function getReportsCount() { $db = PearDatabase::getInstance(); $params = array(); - global $log; - $log->fatal('get reports count api'); // To get the report ids which are permitted for the user $query = "SELECT reportmodulesid, primarymodule from vtiger_reportmodules"; $result = $db->pquery($query, array()); @@ -340,12 +338,6 @@ class Reports_Folder_Model extends Vtiger_Base_Model { $parentRoleSeq = $currentUserModel->get('parent_role_seq').'::%'; array_push($params, $currentUserId, $currentUserId, $parentRoleSeq); } - $log->fatal('Final query params are => '); - $log->fatal($params); - $log->fatal('sql query is => '); - $log->fatal($sql); - $log->fatal('Converted query is => '); - $log->fatal($db->convert2sql($sql, $params)); $result = $db->pquery($sql, $params); return $db->query_result($result, 0, 'count'); } diff --git a/modules/Reports/models/ListView.php b/modules/Reports/models/ListView.php index 9e3e5a7c039c69d557c55f5f194181f5f25ebcb5..90fafd3fe6bf9634e1eccf8518a9f084eddde0ed 100644 --- a/modules/Reports/models/ListView.php +++ b/modules/Reports/models/ListView.php @@ -95,7 +95,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model { $reportFolderModel = Reports_Folder_Model::getInstance(); $reportFolderModel->set('folderid', $this->get('folderid')); - $orderBy = $this->get('orderby'); + $orderBy = $this->getForSql('orderby'); if (!empty($orderBy) && $orderBy === 'smownerid') { $fieldModel = Vtiger_Field_Model::getInstance('assigned_user_id', $moduleModel); if ($fieldModel->getFieldDataType() == 'owner') { @@ -104,7 +104,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model { } if(!empty($orderBy)) { $reportFolderModel->set('orderby', $orderBy); - $reportFolderModel->set('sortby', $this->get('sortorder')); + $reportFolderModel->set('sortby', $this->getForSql('sortorder')); } $reportFolderModel->set('search_params', $this->get('search_params')); diff --git a/modules/Reports/models/Record.php b/modules/Reports/models/Record.php index 86c626065d746a3a8ef796042c19311ec5f33370..36cecef0b7512e93033b8d16db4695dbf1d31511 100644 --- a/modules/Reports/models/Record.php +++ b/modules/Reports/models/Record.php @@ -578,16 +578,16 @@ class Reports_Record_Model extends Vtiger_Record_Model { $db->pquery('INSERT INTO vtiger_reportsharing(reportid, shareid, setype) VALUES (?,?,?)', array($reportId, $sharingInfo[$i]['id'], $sharingInfo[$i]['type'])); } + + //On every report save delete information from below tables and insert new to avoid + // confusion in updating + $db->pquery('DELETE FROM vtiger_report_shareusers WHERE reportid=?',array($reportId)); + $db->pquery('DELETE FROM vtiger_report_sharegroups WHERE reportid=?',array($reportId)); + $db->pquery('DELETE FROM vtiger_report_sharerole WHERE reportid=?',array($reportId)); + $db->pquery('DELETE FROM vtiger_report_sharers WHERE reportid=?',array($reportId)); $members = $this->get('members',array()); if(!empty($members)) { - //On every report save delete information from below tables and insert new to avoid - // confusion in updating - $db->pquery('DELETE FROM vtiger_report_shareusers WHERE reportid=?',array($reportId)); - $db->pquery('DELETE FROM vtiger_report_sharegroups WHERE reportid=?',array($reportId)); - $db->pquery('DELETE FROM vtiger_report_sharerole WHERE reportid=?',array($reportId)); - $db->pquery('DELETE FROM vtiger_report_sharers WHERE reportid=?',array($reportId)); - $noOfMembers = count($members); for ($i = 0; $i < $noOfMembers; ++$i) { $id = $members[$i]; @@ -770,9 +770,9 @@ class Reports_Record_Model extends Vtiger_Record_Model { * @return <String> $query (by removing all columns) */ function generateCountQuery($query){ - $from = explode(' from ' , $query, 2); + $from = preg_split("/ from /i", $query, 2); //If we select the same field in select and grouping/soring then it will include order by and query failure will happen - $fromAndWhereQuery = explode(' order by ', $from[1]); + $fromAndWhereQuery = preg_split('/ order by /i', $from[1]); $sql = "SELECT count(*) AS count FROM ".$fromAndWhereQuery[0]; return $sql; } @@ -1041,12 +1041,17 @@ class Reports_Record_Model extends Vtiger_Record_Model { $tranformedStandardFilter['comparator'] = 'bw'; $fields = explode(':',$standardFilter['columnname']); - + $standardReports = array('Last Month Activities', 'This Month Activities'); if($fields[1] == 'createdtime' || $fields[1] == 'modifiedtime' ||($fields[0] == 'vtiger_activity' && $fields[1] == 'date_start')){ - $tranformedStandardFilter['columnname'] = "$fields[0]:$fields[1]:$fields[3]:$fields[2]:DT"; - $date[] = $standardFilter['startdate'].' 00:00:00'; - $date[] = $standardFilter['enddate'].' 00:00:00'; - $tranformedStandardFilter['value'] = implode(',',$date); + if(in_array($this->get('reportname'), $standardReports)){ + $tranformedStandardFilter['columnname'] = "$fields[0]Calendar:$fields[1]:$fields[3]:$fields[2]:DT"; + $tranformedStandardFilter['comparator'] = $standardFilter['type']; + }else{ + $tranformedStandardFilter['columnname'] = "$fields[0]:$fields[1]:$fields[3]:$fields[2]:DT"; + $date[] = $standardFilter['startdate'].' 00:00:00'; + $date[] = $standardFilter['enddate'].' 00:00:00'; + $tranformedStandardFilter['value'] = implode(',',$date); + } } else{ $tranformedStandardFilter['columnname'] = "$fields[0]:$fields[1]:$fields[3]:$fields[2]:D"; $tranformedStandardFilter['value'] = $standardFilter['startdate'].','.$standardFilter['enddate']; diff --git a/modules/Reports/views/Detail.php b/modules/Reports/views/Detail.php index 08b8fabdf59842fb8da9eb948decd3246924f349..59acd44b06843d2f4314170704cb5f84f131e2ba 100644 --- a/modules/Reports/views/Detail.php +++ b/modules/Reports/views/Detail.php @@ -66,11 +66,13 @@ class Reports_Detail_View extends Vtiger_Index_View { $primaryModule = $reportModel->getPrimaryModule(); $secondaryModules = $reportModel->getSecondaryModules(); $modulesList = array($primaryModule); - if(stripos($secondaryModules, ':') >= 0){ - $secmodules = split(':', $secondaryModules); - $modulesList = array_merge($modulesList, $secmodules); - }else{ - array_push($modulesList, $secondaryModules); + if(!empty($secondaryModules)){ + if(stripos($secondaryModules, ':') >= 0){ + $secmodules = explode(':', $secondaryModules); + $modulesList = array_merge($modulesList, $secmodules); + }else{ + array_push($modulesList, $secondaryModules); + } } $currentUser = Users_Record_Model::getCurrentUserModel(); $userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId()); diff --git a/modules/Reports/views/ExportReport.php b/modules/Reports/views/ExportReport.php index 997427fe11509e3c70cfabc8348378612bcae83c..0a2e9e1c87a272fcbc953a4b9da036255f9ab380 100644 --- a/modules/Reports/views/ExportReport.php +++ b/modules/Reports/views/ExportReport.php @@ -92,11 +92,13 @@ class Reports_ExportReport_View extends Vtiger_View_Controller { $primaryModule = $reportModel->getPrimaryModule(); $secondaryModules = $reportModel->getSecondaryModules(); $modulesList = array($primaryModule); - if(stripos($secondaryModules, ':') >= 0){ - $secmodules = split(':', $secondaryModules); - $modulesList = array_merge($modulesList, $secmodules); - }else{ - array_push($modulesList, $secondaryModules); + if($secondaryModules){ + if(stripos($secondaryModules, ':') >= 0){ + $secmodules = explode(':', $secondaryModules); + $modulesList = array_merge($modulesList, $secmodules); + }else{ + array_push($modulesList, $secondaryModules); + } } $currentUser = Users_Record_Model::getCurrentUserModel(); $userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId()); diff --git a/modules/SalesOrder/actions/SaveAjax.php b/modules/SalesOrder/actions/SaveAjax.php index 333268357b26e0776a04de3bf59c7180236d634d..92d2df700f9145cd73c988e4848b6d264451ca92 100755 --- a/modules/SalesOrder/actions/SaveAjax.php +++ b/modules/SalesOrder/actions/SaveAjax.php @@ -56,16 +56,12 @@ class SalesOrder_SaveAjax_Action extends Inventory_SaveAjax_Action { } $fieldDataType = $fieldModel->getFieldDataType(); + if($fieldValue){ + $fieldValue = Vtiger_Util_Helper::validateFieldValue($fieldValue,$fieldModel); + } if ($fieldDataType == 'time' && $fieldValue !== null) { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } - if(($fieldDataType == 'picklist' || $fieldDataType == 'multipicklist' || $fieldDataType == 'multiowner') && $fieldValue !== null){ - $fieldInfo = $fieldModel->getFieldInfo(); - $editablePicklistValues = $fieldInfo['editablepicklistvalues']; - if(!empty($editablePicklistValues) && !in_array($fieldValue, $editablePicklistValues)){ - $fieldValue = null; - } - } if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); @@ -88,16 +84,12 @@ class SalesOrder_SaveAjax_Action extends Inventory_SaveAjax_Action { $fieldValue = $fieldModel->getDefaultFieldValue(); } $fieldDataType = $fieldModel->getFieldDataType(); + if($fieldValue){ + $fieldValue = Vtiger_Util_Helper::validateFieldValue($fieldValue,$fieldModel); + } if ($fieldDataType == 'time' && $fieldValue !== null) { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } - if(($fieldDataType == 'picklist' || $fieldDataType == 'multipicklist' || $fieldDataType == 'multiowner') && $fieldValue !== null){ - $fieldInfo = $fieldModel->getFieldInfo(); - $editablePicklistValues = $fieldInfo['editablepicklistvalues']; - if(!empty($editablePicklistValues) && !in_array($fieldValue, $editablePicklistValues)){ - $fieldValue = null; - } - } if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); diff --git a/modules/Settings/LayoutEditor/actions/Block.php b/modules/Settings/LayoutEditor/actions/Block.php index ea3345a8ddb7d8bc25e890aed0fddaf27632e0c2..2be978d55715dbb5a0f3afcb3f00894d8f322df9 100644 --- a/modules/Settings/LayoutEditor/actions/Block.php +++ b/modules/Settings/LayoutEditor/actions/Block.php @@ -80,8 +80,8 @@ class Settings_LayoutEditor_Block_Action extends Settings_Vtiger_Index_Action { $response = new Vtiger_Response(); $blockId = $request->get('blockid'); $checkIfFieldsExists = Vtiger_Block_Model::checkFieldsExists($blockId); - if(!$checkIfFieldsExists) { - $response->setError('502','Fields not exists for the block'); + if($checkIfFieldsExists) { + $response->setError('502','Fields exist for the block'); $response->emit(); return; } diff --git a/modules/Settings/ModuleManager/actions/Basic.php b/modules/Settings/ModuleManager/actions/Basic.php index 3f488c5052ea5343151cbf1ff75f57042f059282..717195716559021bd6661d167c6005a8dd4a4753 100644 --- a/modules/Settings/ModuleManager/actions/Basic.php +++ b/modules/Settings/ModuleManager/actions/Basic.php @@ -36,7 +36,6 @@ class Settings_ModuleManager_Basic_Action extends Settings_Vtiger_IndexAjax_View }else{ $moduleManagerModel->disableModule($moduleName); } - $response = new Vtiger_Response(); $response->emit(); } diff --git a/modules/Settings/ModuleManager/models/Module.php b/modules/Settings/ModuleManager/models/Module.php index dce27bcce2267e8e27ce4dafacba3fc3c5c2afb4..10e48528a9af51d6b9f8ecb03c6c15eafa2ea7ca 100644 --- a/modules/Settings/ModuleManager/models/Module.php +++ b/modules/Settings/ModuleManager/models/Module.php @@ -66,8 +66,14 @@ class Settings_ModuleManager_Module_Model extends Vtiger_Module_Model { * Static Function to get the instance of Vtiger Module Model for all the modules * @return <Array> - List of Vtiger Module Model or sub class instances */ - public static function getAll() { - return parent::getAll(array(0,1), self::getNonVisibleModulesList()); + public static function getAll($presence = array(), $restrictedModulesList = array(),$sequenced = false) { + if(empty($presence)){ + $presence = array(0,1); + } + if(empty($restrictedModulesList)){ + $restrictedModulesList = self::getNonVisibleModulesList(); + } + return parent::getAll($presence, $restrictedModulesList); } /** diff --git a/modules/Settings/Picklist/models/Field.php b/modules/Settings/Picklist/models/Field.php index 1af6edee6cfd3dc87c8431049901f9a0d64ecdff..f7b64bd6b702fb1320bf7560e9b2737157b88028 100644 --- a/modules/Settings/Picklist/models/Field.php +++ b/modules/Settings/Picklist/models/Field.php @@ -39,7 +39,7 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model { return Vtiger_Cache::get('PicklistRoleBasedValues',$this->getName().implode('_', $roleIdList)); } $db = PearDatabase::getInstance(); - $fieldName = Vtiger_Util_Helper::validateStringForSql($this->getName()); + $fieldName = $this->getName(); $tableName = 'vtiger_'.$fieldName; $idColName = $fieldName.'id'; $query = 'SELECT '.$fieldName; @@ -103,7 +103,6 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model { * @return type -- array of values */ public function getEditablePicklistValues($fieldName){ - $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName); $cache = Vtiger_Cache::getInstance(); $EditablePicklistValues = $cache->get('EditablePicklistValues', $fieldName); if($EditablePicklistValues) { @@ -130,7 +129,6 @@ class Settings_Picklist_Field_Model extends Vtiger_Field_Model { * @return type -- array of values */ public static function getNonEditablePicklistValues($fieldName){ - $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName); $cache = Vtiger_Cache::getInstance(); $NonEditablePicklistValues = $cache->get('NonEditablePicklistValues', $fieldName); if($NonEditablePicklistValues) { diff --git a/modules/Settings/Picklist/models/Module.php b/modules/Settings/Picklist/models/Module.php index 906484910e5c05955bc3b27204098df73d100dee..4442b0ca412f79fb318feca200754d2aefc25123 100644 --- a/modules/Settings/Picklist/models/Module.php +++ b/modules/Settings/Picklist/models/Module.php @@ -30,7 +30,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { public function addPickListValues($fieldModel, $newValue, $rolesSelected = array(), $color = '') { $db = PearDatabase::getInstance(); - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($fieldModel->getName()); + $pickListFieldName = $fieldModel->getName(); $id = $db->getUniqueID("vtiger_$pickListFieldName"); vimport('~~/include/ComboUtil.php'); $picklist_valueid = getUniquePicklistID(); @@ -74,7 +74,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { public function renamePickListValues($pickListFieldName, $oldValue, $newValue, $moduleName, $id, $rolesList = false, $color = '') { $db = PearDatabase::getInstance(); - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName); $query = 'SELECT tablename, fieldid, columnname FROM vtiger_field WHERE fieldname=? and presence IN (0,2)'; $result = $db->pquery($query, array($pickListFieldName)); $num_rows = $db->num_rows($result); @@ -90,12 +89,18 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { $db->pquery($query, array($newValue, $id)); } + $moduleInstance = Vtiger_Module_Model::getInstance($moduleName); + $fieldModel = Vtiger_Field_Model::getInstance($pickListFieldName, $moduleInstance); for ($i = 0; $i < $num_rows; $i++) { $row = $db->query_result_rowdata($result, $i); $tableName = $row['tablename']; $columnName = $row['columnname']; - $query = 'UPDATE ' . $tableName . ' SET ' . $columnName . '=? WHERE ' . $columnName . '=?'; - $db->pquery($query, array($newValue, $oldValue)); + if($fieldModel && $fieldModel->getFieldDataType() == 'multipicklist') { + $db->pquery('UPDATE '.$tableName.' SET '.$columnName.' = TRIM(BOTH " |##| " FROM REPLACE(CONCAT(" |##| ",CONCAT('.$columnName.', " |##| ")) , "|##| '.$oldValue.' |##|", "|##| '.$newValue.' |##|"))', array()); + } else { + $query = 'UPDATE ' . $tableName . ' SET ' . $columnName . '=? WHERE ' . $columnName . '=?'; + $db->pquery($query, array($newValue, $oldValue)); + } } $query = "UPDATE vtiger_field SET defaultvalue=? WHERE defaultvalue=? AND columnname=?"; @@ -129,7 +134,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { if(!is_array($valueToDeleteId)) { $valueToDeleteId = array($valueToDeleteId); } - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName); $pickListValues = array(); @@ -196,10 +200,16 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { $tableName = $row['tablename']; $columnName = $row['columnname']; - $query = 'UPDATE '.$tableName.' SET '.$columnName.'=? WHERE '.$columnName.' IN ('. generateQuestionMarks($pickListValues).')'; - $params = array($replaceValue); - array_push($params, $pickListValues); - $db->pquery($query, $params); + if($fieldModel && $fieldModel->getFieldDataType() == 'multipicklist') { + foreach($pickListValues as $key => $multipicklistValue) { + $db->pquery('UPDATE '.$tableName.' SET '.$columnName.' = TRIM(BOTH " |##| " FROM REPLACE(CONCAT(" |##| ",CONCAT('.$columnName.', " |##| ")) , " |##| '.$multipicklistValue.' |##| ", CASE WHEN INSTR(CONCAT(" |##| " ,CONCAT('.$columnName.', " |##| ")), " |##| '.$replaceValue.' |##| ") > 0 THEN " |##| " ELSE " |##| '.$replaceValue.' |##| " END))', array()); + } + } else { + $query = 'UPDATE '.$tableName.' SET '.$columnName.'=? WHERE '.$columnName.' IN ('. generateQuestionMarks($pickListValues).')'; + $params = array($replaceValue); + array_push($params, $pickListValues); + $db->pquery($query, $params); + } } $query = 'UPDATE vtiger_field SET defaultvalue=? WHERE defaultvalue IN ('. generateQuestionMarks($pickListValues) .') AND columnname=?'; @@ -226,7 +236,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { $dieOnErrorOldValue = $db->dieOnError; $db->dieOnError = false; - $picklistFieldName = Vtiger_Util_Helper::validateStringForSql($picklistFieldName); $sql = "select picklistid from vtiger_picklist where name=?"; $result = $db->pquery($sql, array($picklistFieldName)); $picklistid = $db->query_result($result,0,"picklistid"); @@ -290,7 +299,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { public function updateSequence($pickListFieldName , $picklistValues, $rolesList = false) { $db = PearDatabase::getInstance(); - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName); $paramArray = array(); $query = 'UPDATE '.$this->getPickListTableName($pickListFieldName).' SET sortorderid = CASE '; @@ -431,7 +439,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { } else { $valueToDeleteID = $valueToDelete; } - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName); $pickListDeleteValue = array(); $getPickListValueQuery = "SELECT $pickListFieldName FROM " . $this->getPickListTableName($pickListFieldName) . " WHERE $primaryKey IN (" . generateQuestionMarks($valueToDeleteID) . ")"; @@ -451,7 +458,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { */ public static function getPicklistColor($pickListFieldName, $pickListId) { $db = PearDatabase::getInstance(); - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName); $colums = $db->getColumnNames("vtiger_$pickListFieldName"); if(in_array('color',$colums)) { @@ -489,7 +495,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { */ public static function getPicklistColorMap($fieldName, $key = false) { $db = PearDatabase::getInstance(); - $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($fieldName); $colums = $db->getColumnNames("vtiger_$fieldName"); if(in_array('color',$colums)) { @@ -530,7 +535,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { */ public static function getPicklistColorByValue($fieldName, $fieldValue) { $db = PearDatabase::getInstance(); - $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName); $tableName = "vtiger_$fieldName"; if(Vtiger_Utils::CheckTable($tableName)) { $colums = $db->getColumnNames($tableName); @@ -561,7 +565,6 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { //As older look utf8 characters are pushed as html-entities,and in new utf8 characters are pushed to database //so we are checking for both the values - $pickListFieldName = Vtiger_Util_Helper::validateStringForSql($pickListFieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($pickListFieldName); if(!empty($color)) { $query = 'UPDATE ' . $this->getPickListTableName($pickListFieldName) . ' SET color = ? WHERE '.$primaryKey.' = ?'; diff --git a/modules/Settings/Profiles/models/Record.php b/modules/Settings/Profiles/models/Record.php index dcba26e06511c3114cb9c61d48fc72358da6e916..d4d5561ef44968d2f6a5056d2a8e47a4c3a18774 100644 --- a/modules/Settings/Profiles/models/Record.php +++ b/modules/Settings/Profiles/models/Record.php @@ -571,13 +571,13 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { //Standard permissions $i = 0; $count = count($actionsIdsList); - $params = array(); - $actionsInsertQuery .= 'INSERT INTO vtiger_profile2standardpermissions(profileid, tabid, operation, permissions) VALUES '; + $actionParams = array(); + $actionsInsertQuery = 'INSERT INTO vtiger_profile2standardpermissions(profileid, tabid, operation, permissions) VALUES '; foreach ($actionsIdsList as $actionId => $permission) { $actionEnabled = true; $permissionValue = $this->tranformInputPermissionValue($permission); - $actionsInsertQuery .= "(?, ?, ?, ?)"; - array_push($params, $profileId, $tabId, $actionId, $permissionValue); + $actionsInsertQuery .= '(?, ?, ?, ?)'; + array_push($actionParams, $profileId, $tabId, $actionId, $permissionValue); if ($i !== $count-1) { $actionsInsertQuery .= ', '; @@ -585,18 +585,18 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $i++; } if ($actionsIdsList) { - $db->pquery($actionsInsertQuery, array()); + $db->pquery($actionsInsertQuery, $actionParams); } //Utility permissions $i = 0; $count = count($utilityIdsList); - $params = array(); - $utilityInsertQuery .= 'INSERT INTO vtiger_profile2utility(profileid, tabid, activityid, permission) VALUES '; + $utilityParams = array(); + $utilityInsertQuery = 'INSERT INTO vtiger_profile2utility(profileid, tabid, activityid, permission) VALUES '; foreach($utilityIdsList as $actionId => $permission) { $permissionValue = $this->tranformInputPermissionValue($permission); - $utilityInsertQuery .= "(?, ?, ?, ?)"; - array_push($params, $profileId, $tabId, $actionId, $permissionValue); + $utilityInsertQuery .= '(?, ?, ?, ?)'; + array_push($utilityParams, $profileId, $tabId, $actionId, $permissionValue); if ($i !== $count-1) { $utilityInsertQuery .= ', '; @@ -604,12 +604,9 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { $i++; } if ($utilityIdsList) { - $db->pquery($utilityInsertQuery, array()); + $db->pquery($utilityInsertQuery, $utilityParams); } } - } elseif ($this->isRestrictedModule($moduleModel->getName())) { - //To check the module is restricted or not(Emails, Webmails) - $actionEnabled = true; } } else { $actionEnabled = true; @@ -798,15 +795,6 @@ class Settings_Profiles_Record_Model extends Settings_Vtiger_Record_Model { } } - /** - * Function to check whether module is restricted for to show actions and field access - * @param <String> $moduleName - * @return <boolean> true/false - */ - public function isRestrictedModule($moduleName) { - return in_array($moduleName, array('Emails')); - } - /** * Function recalculate the sharing rules */ diff --git a/modules/Settings/Roles/models/Record.php b/modules/Settings/Roles/models/Record.php index f1990bc93c9068455279b10fd5f50f0acf320050..41ebbfe890a541b19c13888f3d727a19b30d9648 100644 --- a/modules/Settings/Roles/models/Record.php +++ b/modules/Settings/Roles/models/Record.php @@ -283,7 +283,7 @@ class Settings_Roles_Record_Model extends Settings_Vtiger_Record_Model { */ public function save() { $db = PearDatabase::getInstance(); - $roleId = Vtiger_Util_Helper::validateStringForSql($this->getId()); + $roleId = $this->getId(); $mode = 'edit'; if(empty($roleId)) { diff --git a/modules/Settings/Vtiger/models/ConfigModule.php b/modules/Settings/Vtiger/models/ConfigModule.php index 158cc871cb6bee0d74a68140fd4a57ff74529fbf..f316486258d21038c1f8694c1bed63a2fc3d2f1d 100644 --- a/modules/Settings/Vtiger/models/ConfigModule.php +++ b/modules/Settings/Vtiger/models/ConfigModule.php @@ -94,23 +94,6 @@ class Settings_Vtiger_ConfigModule_Model extends Settings_Vtiger_Module_Model { * @return <Array> list of module names */ public function getPicklistValues($fieldName) { - if ($fieldName === 'default_module') { - $db = PearDatabase::getInstance(); - - $presence = array(0); - $restrictedModules = array('Webmails', 'Emails', 'Integration', 'Dashboard','ModComments'); - $query = 'SELECT name, tablabel FROM vtiger_tab WHERE presence IN (' . generateQuestionMarks($presence) . ') AND isentitytype = ? AND name NOT IN (' . generateQuestionMarks($restrictedModules) . ')'; - - $result = $db->pquery($query, array($presence, '1', $restrictedModules)); - $numOfRows = $db->num_rows($result); - - $moduleData = array('Home' => 'Home'); - for ($i = 0; $i < $numOfRows; $i++) { - $row = $db->query_result_rowdata($result, $i); - $moduleData[$db->query_result($result, $i, 'name')] = $db->query_result($result, $i, 'tablabel'); - } - return $moduleData; - } return array('true', 'false'); } @@ -123,7 +106,6 @@ class Settings_Vtiger_ConfigModule_Model extends Settings_Vtiger_Module_Model { 'HELPDESK_SUPPORT_EMAIL_ID' => array('label' => 'LBL_HELPDESK_SUPPORT_EMAILID', 'fieldType' => 'input'), 'HELPDESK_SUPPORT_NAME' => array('label' => 'LBL_HELPDESK_SUPPORT_NAME', 'fieldType' => 'input'), 'upload_maxsize' => array('label' => 'LBL_MAX_UPLOAD_SIZE', 'fieldType' => 'input'), - 'default_module' => array('label' => 'LBL_DEFAULT_MODULE', 'fieldType' => 'picklist'), 'listview_max_textlength' => array('label' => 'LBL_MAX_TEXT_LENGTH_IN_LISTVIEW', 'fieldType' => 'input'), 'list_max_entries_per_page' => array('label' => 'LBL_MAX_ENTRIES_PER_PAGE_IN_LISTVIEW', 'fieldType' => 'input') ); @@ -171,8 +153,6 @@ class Settings_Vtiger_ConfigModule_Model extends Settings_Vtiger_Module_Model { return "LBL_INVALID_EMAILID"; } else if(array_key_exists('HELPDESK_SUPPORT_NAME',$updatedFields) && preg_match ('/[\'";?><]/', $updatedFields['HELPDESK_SUPPORT_NAME'])) { return "LBL_INVALID_SUPPORT_NAME"; - } else if(array_key_exists('default_module',$updatedFields) && !preg_match ('/[a-zA-z0-9]/', $updatedFields['default_module'])) { - return "LBL_INVALID_MODULE"; } else if((array_key_exists('upload_maxsize',$updatedFields) && !filter_var(ltrim($updatedFields['upload_maxsize'],'0'), FILTER_VALIDATE_INT)) || (array_key_exists('list_max_entries_per_page',$updatedFields) && !filter_var(ltrim($updatedFields['list_max_entries_per_page'], '0'), FILTER_VALIDATE_INT)) || (array_key_exists('listview_max_textlength',$updatedFields) && !filter_var(ltrim($updatedFields['listview_max_textlength'], '0'), FILTER_VALIDATE_INT))) { diff --git a/modules/Users/Users.php b/modules/Users/Users.php index 7488c9d125aeec9675d9fdaccd06ad2d35220d22..fc81bbf7f88f8c9cd9dddd7146a45cc240c725d1 100755 --- a/modules/Users/Users.php +++ b/modules/Users/Users.php @@ -860,7 +860,7 @@ class Users extends CRMEntity { if($current_user->id == $this->id) { $_SESSION['vtiger_authenticated_user_theme'] = $fldvalue; } - } elseif($uitype == 32) { + } elseif($uitype == 32 && $fieldname == 'language') { $languageList = Vtiger_Language::getAll(); $languageList = array_keys($languageList); if(!in_array($fldvalue, $languageList) || $fldvalue == '') { @@ -1690,7 +1690,7 @@ class Users extends CRMEntity { $moduleName = $obj->module; $createdRecords = array(); - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($obj->user)); + $tableName = Import_Utils_Helper::getDbTableName($obj->user); $sql = 'SELECT * FROM '.$tableName.' WHERE status = ?'; $result = $adb->pquery($sql, array(Import_Data_Action::$IMPORT_RECORD_NONE)); $numberOfRecords = $adb->num_rows($result); diff --git a/modules/Users/actions/SaveAjax.php b/modules/Users/actions/SaveAjax.php index 942e90261e1203d8c90bde2bfed5fae3e877b6b1..61aaea6324e340447236a7129ac157c700dbfb78 100644 --- a/modules/Users/actions/SaveAjax.php +++ b/modules/Users/actions/SaveAjax.php @@ -65,6 +65,9 @@ class Users_SaveAjax_Action extends Vtiger_SaveAjax_Action { if(($fieldName == 'currency_decimal_separator' || $fieldName == 'currency_grouping_separator') && ($displayValue == ' ')) { $displayValue = vtranslate('Space', 'Users'); } + if($fieldName == 'defaultlandingpage'){ + $displayValue = vtranslate($fieldValue, $fieldValue); + } $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue); } } @@ -90,8 +93,12 @@ class Users_SaveAjax_Action extends Vtiger_SaveAjax_Action { $currentUserModel = Users_Record_Model::getCurrentUserModel(); if ($fieldName === 'is_admin' && (!$currentUserModel->isAdminUser() || !$request->get('value'))) { $recordModel->set($fieldName, 'off'); + } else if($fieldName === 'is_admin' && $currentUserModel->isAdminUser()) { + $requestValue = $request->get('value'); + $value = $requestValue==1?"on":"off"; + $recordModel->set($fieldName,$value); } - + if($fieldName == "is_owner" || $fieldName == "roleid") { $recordId = $request->get('record'); $moduleName = $request->getModule(); diff --git a/modules/Users/actions/SystemSetupSave.php b/modules/Users/actions/SystemSetupSave.php index e910c0b65cd29d362ca146e34f7ea5517169902c..287de2fccfd70ed54574347511447182a9f32e13 100644 --- a/modules/Users/actions/SystemSetupSave.php +++ b/modules/Users/actions/SystemSetupSave.php @@ -19,7 +19,7 @@ class Users_SystemSetupSave_Action extends Users_Save_Action { public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); - $packages = $request->get(packages); + $packages = $request->get('packages'); $userModuleModel = Users_Module_Model::getInstance($moduleName); $userModuleModel::savePackagesInfo($packages); header ('Location: index.php?module=Users&parent=Settings&view=UserSetup'); diff --git a/modules/Users/models/Field.php b/modules/Users/models/Field.php index c460f1c2ce6dc19e4a119c16ccad14febc408b01..036f35a8333d25a43e933e802d9258871b241fc7 100644 --- a/modules/Users/models/Field.php +++ b/modules/Users/models/Field.php @@ -74,8 +74,32 @@ class Users_Field_Model extends Vtiger_Field_Model { * @return <Array> List of picklist values if the field is of type picklist or multipicklist, null otherwise. */ public function getPicklistValues() { + $fieldName = $this->getName(); if($this->get('uitype') == 32) { - return Vtiger_Language_Handler::getAllLanguages(); + if($fieldName == 'language'){ + return Vtiger_Language_Handler::getAllLanguages(); + } else if($fieldName == 'defaultlandingpage'){ + $db = PearDatabase::getInstance(); + $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); + $presence = array(0); + $restrictedModules = array('Webmails', 'Emails', 'Integration', 'Dashboard','ModComments'); + $query = 'SELECT name, tablabel, tabid FROM vtiger_tab WHERE presence IN (' . generateQuestionMarks($presence) . ') AND isentitytype = ? AND name NOT IN (' . generateQuestionMarks($restrictedModules) . ')'; + + $result = $db->pquery($query, array($presence, '1', $restrictedModules)); + $numOfRows = $db->num_rows($result); + + $moduleData = array('Home' => vtranslate('Home','Home')); + for ($i = 0; $i < $numOfRows; $i++) { + $tabId = $db->query_result($result, $i, 'tabid'); + // check the module access permission, if user has permission then show it in default module list + if($currentUserPriviligesModel->hasModulePermission($tabId)){ + $moduleName = $db->query_result($result, $i, 'name'); + $moduleLabel = $db->query_result($result, $i, 'tablabel'); + $moduleData[$moduleName] = vtranslate($moduleLabel,$moduleName); + } + } + return $moduleData; + } } else if ($this->get('uitype') == '115') { $db = PearDatabase::getInstance(); @@ -114,7 +138,7 @@ class Users_Field_Model extends Vtiger_Field_Model { * @param <String> $value - value which need to be converted to display value * @return <String> - converted display value */ - public function getDisplayValue($value, $recordId = false) { + public function getDisplayValue($value, $recordId = false,$recordInstance=false) { if($this->get('uitype') == 32){ return Vtiger_Language_Handler::getLanguageLabel($value); diff --git a/modules/Users/models/ListView.php b/modules/Users/models/ListView.php index f8515992c0d348089087fb02ca59fa2b33228dee..b2fc6be574af91ab9dde13c9a5f1ad94c5f30c21 100644 --- a/modules/Users/models/ListView.php +++ b/modules/Users/models/ListView.php @@ -68,6 +68,7 @@ class Users_ListView_Model extends Vtiger_ListView_Model { public function getQuery() { $listQuery = parent::getQuery(); $searchKey = $this->get('search_key'); + $db = PearDatabase::getInstance(); if(!empty($searchKey)) { $listQueryComponents = explode(" WHERE vtiger_users.status='Active' AND", $listQuery); @@ -78,10 +79,11 @@ class Users_ListView_Model extends Vtiger_ListView_Model { // Impose non-admin restrictions. $user = vglobal('current_user'); if(!is_admin($user)){ - $listQuery .= " AND vtiger_users.id = {$user->id}"; + $listQuery .= " AND vtiger_users.id = ?"; + $param[] = $user->id; //TODO: Consider user based on Role-heirarchy } - return $listQuery; + return $db->convert2Sql($listQuery, $param); } /** diff --git a/modules/Users/models/Record.php b/modules/Users/models/Record.php index c12abc18b48181843b476cffe4b02a2c391be203..b2996ec79343aefe7e2d03c11521e6ea21f66b99 100644 --- a/modules/Users/models/Record.php +++ b/modules/Users/models/Record.php @@ -399,13 +399,16 @@ class Users_Record_Model extends Vtiger_Record_Model { //decode_html - added to handle UTF-8 characters in file names $imageOriginalName = urlencode(decode_html($imageName)); + if($url) { + $url = $site_URL.$url; + } $imageDetails[] = array( 'id' => $imageId, 'orgname' => $imageOriginalName, 'path' => $imagePath.$imageId, 'name' => $imageName, - 'url' => $site_URL.$url + 'url' => $url ); } return $imageDetails; @@ -738,8 +741,8 @@ class Users_Record_Model extends Vtiger_Record_Model { $noOfUsers = $db->num_rows($result); $users = array(); if($noOfUsers > 0) { - $focus = new Users(); for($i=0; $i<$noOfUsers; ++$i) { + $focus = new Users(); $userId = $db->query_result($result, $i, 'id'); $focus->id = $userId; $focus->retrieve_entity_info($userId, 'Users'); diff --git a/modules/Users/views/Import.php b/modules/Users/views/Import.php index 8da395dd48ece8b8ef692e897d92d43acdb4fdf5..55a715cdcafb9a12b2bb1b18efc3a79fdfbd94f3 100644 --- a/modules/Users/views/Import.php +++ b/modules/Users/views/Import.php @@ -44,7 +44,7 @@ class Users_Import_View extends Vtiger_Import_View { $moduleName = $request->getModule(); $user = Users_Record_Model::getCurrentUserModel(); - $dbTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($user)); + $dbTableName = Import_Utils_Helper::getDbTableName($user); $query = "SELECT recordid FROM $dbTableName WHERE status = ? AND recordid IS NOT NULL"; $result = $db->pquery($query, array(Import_Data_Action::$IMPORT_RECORD_CREATED)); diff --git a/modules/Users/views/UserSetup.php b/modules/Users/views/UserSetup.php index 03bca8c0e2fa7a08b1eef7f7516bdb7388a2929c..a1b0421de56f30bf4fb7c5e4e99ec0ce09b3fe19 100644 --- a/modules/Users/views/UserSetup.php +++ b/modules/Users/views/UserSetup.php @@ -14,7 +14,7 @@ class Users_UserSetup_View extends Vtiger_Index_View { return array(); } - public function preProcess(Vtiger_Request $request) { + public function preProcess(Vtiger_Request $request, $display=true) { return true; } diff --git a/modules/Vtiger/CRMEntity.php b/modules/Vtiger/CRMEntity.php index 78fe1b62e32648eb4aa4da2eb4407a39496a7bb0..f6e02223f8f2b5b3c7b803489221bda1e2e5f3ce 100644 --- a/modules/Vtiger/CRMEntity.php +++ b/modules/Vtiger/CRMEntity.php @@ -27,7 +27,7 @@ class Vtiger_CRMEntity extends CRMEntity { function __construct() { global $log; $this->column_fields = getColumnFields(get_class($this)); - $this->db = new PearDatabase(); + $this->db = PearDatabase::getInstance(); $this->log = $log; } diff --git a/modules/Vtiger/actions/Mass.php b/modules/Vtiger/actions/Mass.php index cb2a11c2de69d8c438623a3601b0de68bd10410c..b1d1ef888900a5d01caad93a13c4569d6cc8f912 100644 --- a/modules/Vtiger/actions/Mass.php +++ b/modules/Vtiger/actions/Mass.php @@ -32,7 +32,30 @@ abstract class Vtiger_Mass_Action extends Vtiger_Action_Controller { return $selectedIds; } } + $tagParams = $request->get('tag_params'); + $tag = $request->get('tag'); + $listViewSessionKey = $module.'_'.$cvId; + if(!empty($tag)) { + $listViewSessionKey .='_'.$tag; + } + + $orderParams = Vtiger_ListView_Model::getSortParamsSession($listViewSessionKey); + if(!empty($tag) && empty($tagParams)){ + $tagParams = $orderParams['tag_params']; + } + + if(empty($tagParams)){ + $tagParams = array(); + } + + $searchParams = $request->get('search_params'); + if(empty($searchParams) || !is_array($searchParams)){ + $searchParams = array(); + } + + $searchAndTagParams = array_merge($searchParams, $tagParams); + $customViewModel = CustomView_Record_Model::getInstanceById($cvId); if($customViewModel) { $searchKey = $request->get('search_key'); @@ -53,7 +76,7 @@ abstract class Vtiger_Mass_Action extends Vtiger_Action_Controller { $customViewModel->set('folder_value', $request->get('folder_value')); } - $customViewModel->set('search_params',$request->get('search_params')); + $customViewModel->set('search_params',$searchAndTagParams); return $customViewModel->getRecordIds($excludedIds,$module); } } diff --git a/modules/Vtiger/actions/MentionedUsers.php b/modules/Vtiger/actions/MentionedUsers.php index ae906ccdc52fac558b81b3e43796919eb03d28df..4f71393f7fff004afc97d9580dc76c3fd3f782d7 100644 --- a/modules/Vtiger/actions/MentionedUsers.php +++ b/modules/Vtiger/actions/MentionedUsers.php @@ -20,6 +20,7 @@ class Vtiger_MentionedUsers_Action extends Vtiger_Action_Controller { } public function process(Vtiger_Request $request) { + $mentionedUsers = []; $commentId = $request->get('crmid'); $commentRecord = Vtiger_Record_Model::getInstanceById($commentId, Vtiger_Module_Model::getInstance('ModComments')); $commentOwnerId = $commentRecord->get('creator'); diff --git a/modules/Vtiger/actions/Save.php b/modules/Vtiger/actions/Save.php index d106ec7400e153fa19496a52aaaadc5e98ea3c8e..4e3ac8e5ca92a0323d131877b1f8792933d7b071 100644 --- a/modules/Vtiger/actions/Save.php +++ b/modules/Vtiger/actions/Save.php @@ -19,7 +19,6 @@ class Vtiger_Save_Action extends Vtiger_Action_Controller { $moduleParameter = 'source_module'; } $record = $request->get('record'); - // Child class permission check support - DragDropAjax $recordId = $request->get('id'); if (!$record) { $recordParameter = ''; @@ -161,13 +160,6 @@ class Vtiger_Save_Action extends Vtiger_Action_Controller { if($fieldDataType == 'time' && $fieldValue !== null){ $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } - if(($fieldDataType == 'picklist' || $fieldDataType == 'multipicklist' || $fieldDataType == 'multiowner') && $fieldValue !== null){ - $fieldInfo = $fieldModel->getFieldInfo(); - $editablePicklistValues = $fieldInfo['editablepicklistvalues']; - if(!empty($editablePicklistValues) && !in_array($fieldValue, $editablePicklistValues)){ - $fieldValue = null; - } - } if($fieldValue !== null) { if(!is_array($fieldValue) && $fieldDataType != 'currency') { $fieldValue = trim($fieldValue); diff --git a/modules/Vtiger/actions/SaveAjax.php b/modules/Vtiger/actions/SaveAjax.php index 829cf8b1486dbde64e9b125a36737dd51727905f..49ec727dac8c4cbea38a539dc8272d587e736ca4 100644 --- a/modules/Vtiger/actions/SaveAjax.php +++ b/modules/Vtiger/actions/SaveAjax.php @@ -102,18 +102,10 @@ class Vtiger_SaveAjax_Action extends Vtiger_Save_Action { }else if($fieldName === $request->get('field')){ $fieldValue = $request->get('value'); } - $fieldDataType = $fieldModel->getFieldDataType(); if ($fieldDataType == 'time' && $fieldValue !== null) { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } - if(($fieldDataType == 'picklist' || $fieldDataType == 'multipicklist' || $fieldDataType == 'multiowner') && $fieldValue !== null){ - $fieldInfo = $fieldModel->getFieldInfo(); - $editablePicklistValues = $fieldInfo['editablepicklistvalues']; - if(!empty($editablePicklistValues) && !in_array($fieldValue, $editablePicklistValues)){ - $fieldValue = null; - } - } if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); @@ -139,8 +131,11 @@ class Vtiger_SaveAjax_Action extends Vtiger_Save_Action { } else { $fieldValue = $fieldModel->getDefaultFieldValue(); } + if($fieldValue){ + $fieldValue = Vtiger_Util_Helper::validateFieldValue($fieldValue,$fieldModel); + } $fieldDataType = $fieldModel->getFieldDataType(); - if ($fieldDataType == 'time') { + if ($fieldDataType == 'time' && $fieldValue !== null) { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } if ($fieldValue !== null) { diff --git a/modules/Vtiger/helpers/Util.php b/modules/Vtiger/helpers/Util.php index 23b7f18e71a61e4dac0b0a3f55f1f35a1e33481b..bda04b35c004b2248d21758fd945123d3aa39e43 100644 --- a/modules/Vtiger/helpers/Util.php +++ b/modules/Vtiger/helpers/Util.php @@ -326,7 +326,6 @@ class Vtiger_Util_Helper { } $db = PearDatabase::getInstance(); - $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName); $primaryKey = Vtiger_Util_Helper::getPickListId($fieldName); $query = 'SELECT '.$primaryKey.', '.$fieldName.' FROM vtiger_'.$fieldName.' order by sortorderid'; $values = array(); @@ -362,7 +361,6 @@ class Vtiger_Util_Helper { } $db = PearDatabase::getInstance(); - $fieldName = Vtiger_Util_Helper::validateStringForSql($fieldName); $query = "SELECT $fieldName FROM vtiger_$fieldName INNER JOIN vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_$fieldName.picklist_valueid @@ -610,12 +608,12 @@ class Vtiger_Util_Helper { //Request will be having in terms of AM and PM but the database will be having in 24 hr format so converting //Database format - if($fieldInfo->getFieldDataType() == "time") { + if($fieldInfo && $fieldInfo->getFieldDataType() == "time") { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } $specialDateTimeConditions = Vtiger_Functions::getSpecialDateTimeCondtions(); - if($fieldName == 'date_start' || $fieldName == 'due_date' || $fieldInfo->getFieldDataType() == "datetime" && !in_array($operator, $specialDateTimeConditions) ) { + if($fieldName == 'date_start' || $fieldName == 'due_date' || ($fieldInfo && $fieldInfo->getFieldDataType() == "datetime") && !in_array($operator, $specialDateTimeConditions) ) { $dateValues = explode(',', $fieldValue); //Indicate whether it is fist date in the between condition $isFirstDate = true; @@ -635,7 +633,10 @@ class Vtiger_Util_Helper { $fieldValue = implode(',',$dateValues); } - $advFilterFieldInfoFormat['columnname'] = $fieldInfo->getCustomViewColumnName(); + if ($fieldInfo) { + $columnName = $fieldInfo->getCustomViewColumnName(); + } + $advFilterFieldInfoFormat['columnname'] = $columnName; $advFilterFieldInfoFormat['comparator'] = $operator; $advFilterFieldInfoFormat['value'] = $fieldValue; $advFilterFieldInfoFormat['column_condition'] = $groupConditionGlue; @@ -1250,4 +1251,24 @@ class Vtiger_Util_Helper { } return $encryptedFileName; } + + public static function validateFieldValue($fieldValue,$fieldModel){ + $fieldDataType = $fieldModel->getFieldDataType(); + $fieldInfo = $fieldModel->getFieldInfo(); + $editablePicklistValues = $fieldInfo['editablepicklistvalues']; + if($fieldValue && $fieldDataType == 'picklist'){ + if(!empty($editablePicklistValues) && !isset($editablePicklistValues[$fieldValue])){ + $fieldValue = null; + } + }elseif(count($fieldValue) > 0 && $fieldDataType == 'multipicklist'){ + if(!empty($editablePicklistValues)){ + foreach($fieldValue as $key => $value){ + if(!isset($editablePicklistValues[$fieldValue])){ + unset($fieldValue[$key]); + } + } + } + } + return $fieldValue; + } } diff --git a/modules/Vtiger/models/Field.php b/modules/Vtiger/models/Field.php index 27324065da7e76b1863589afe9acbff96a766e0e..df0987285df9cc5e23579da26505dc883fecebcf 100644 --- a/modules/Vtiger/models/Field.php +++ b/modules/Vtiger/models/Field.php @@ -583,6 +583,13 @@ class Vtiger_Field_Model extends Vtiger_Field { $this->fieldInfo['picklistColors'] = $picklistColors; } } + + if($fieldDataType == "documentsFolder"){ + $documentFolders = $this->getDocumentFolders(); + if(!empty($documentFolders)) { + $this->fieldInfo['documentFolders'] = $documentFolders; + } + } if($fieldDataType === 'currencyList'){ $currencyList = $this->getCurrencyList(); diff --git a/modules/Vtiger/models/FindDuplicate.php b/modules/Vtiger/models/FindDuplicate.php index 4a46af94e09a02044f2b933d8f9e110c3c390b89..1664644efec1a58f37f03267a799e2e36cd00280 100644 --- a/modules/Vtiger/models/FindDuplicate.php +++ b/modules/Vtiger/models/FindDuplicate.php @@ -80,6 +80,7 @@ class Vtiger_FindDuplicate_Model extends Vtiger_Base_Model { $paging->set('nextPageExists', false); } $rows = count($entries); + $paging->recordCount = $rows; for ($i=0; $i<$rows; $i++) { $row = $entries[$i]; diff --git a/modules/Vtiger/models/ListView.php b/modules/Vtiger/models/ListView.php index f218a9e9474cff67a9363c929b3f93cc5cf5aae8..420319a7abb9a256eefae67abfbcd20efb9fd0fb 100644 --- a/modules/Vtiger/models/ListView.php +++ b/modules/Vtiger/models/ListView.php @@ -206,8 +206,8 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator)); } - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); if(!empty($orderBy)){ $queryGenerator = $this->get('query_generator'); @@ -238,8 +238,7 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model { if($orderBy == 'roleid' && $moduleName == 'Users'){ $listQuery .= ' ORDER BY vtiger_role.rolename '.' '. $sortOrder; } else { - $listQuery .= ' ORDER BY ? '.$sortOrder; - array_push($paramArray, $queryGenerator->getOrderByColumn($orderBy)); + $listQuery .= ' ORDER BY '.$queryGenerator->getOrderByColumn($orderBy).' '.$sortOrder; } if ($orderBy == 'first_name' && $moduleName == 'Users') { diff --git a/modules/Vtiger/models/Module.php b/modules/Vtiger/models/Module.php index 71880524dbe7ddc80f85a1580f619daeee5dda50..ec888f683bdd5fb234f8c907ec89df6be32c8fca 100644 --- a/modules/Vtiger/models/Module.php +++ b/modules/Vtiger/models/Module.php @@ -889,8 +889,10 @@ class Vtiger_Module_Model extends Vtiger_Module { * @param <String> $where * @return <String> export query */ - public function getExportQuery($where) { - $focus = CRMEntity::getInstance($this->getName()); + public function getExportQuery($focus, $where) { + if(!$focus) { + $focus = CRMEntity::getInstance($this->getName()); + } $query = $focus->create_export_query($where); return $query; } @@ -1274,14 +1276,14 @@ class Vtiger_Module_Model extends Vtiger_Module { if($moduleName === "Calendar"){ $basicLinks[] = array( 'linktype' => 'BASIC', - 'linklabel' => 'LBL_ADD_TASK', - 'linkurl' => $this->getCreateTaskRecordUrl(), + 'linklabel' => 'LBL_ADD_EVENT', + 'linkurl' => $this->getCreateEventRecordUrl(), 'linkicon' => 'fa-plus' ); - $basicLinks[] = array( + $basicLinks[] = array( 'linktype' => 'BASIC', - 'linklabel' => 'LBL_ADD_EVENT', - 'linkurl' => $this->getCreateEventRecordUrl(), + 'linklabel' => 'LBL_ADD_TASK', + 'linkurl' => $this->getCreateTaskRecordUrl(), 'linkicon' => 'fa-plus' ); } else { @@ -1466,14 +1468,11 @@ class Vtiger_Module_Model extends Vtiger_Module { * @return <Array of Vtiger_Record_Model> */ public function searchRecord($searchValue, $parentId=false, $parentModule=false, $relatedModule=false) { - global $log; - $log->fatal('search record api is triggered => '); $searchFields = array('crmid','label','setype'); if(!empty($searchValue) && empty($parentId) && empty($parentModule)) { $matchingRecords = Vtiger_Record_Model::getSearchResult($searchValue, $this->getName()); } else if($parentId && $parentModule) { $db = PearDatabase::getInstance(); - $log->fatal('call getSearchRecordsQuery api'); $result = $db->pquery($this->getSearchRecordsQuery($searchValue,$searchFields, $parentId, $parentModule), array()); $noOfRows = $db->num_rows($result); diff --git a/modules/Vtiger/models/Record.php b/modules/Vtiger/models/Record.php index c6d9a683f1242d36afbde66365623087ea41629d..f67c7b1b15163f31768378973b800a00edc43d17 100644 --- a/modules/Vtiger/models/Record.php +++ b/modules/Vtiger/models/Record.php @@ -416,14 +416,17 @@ class Vtiger_Record_Model extends Vtiger_Base_Model { $url = \Vtiger_Functions::getFilePublicURL($imageId, $imageName); //decode_html - added to handle UTF-8 characters in file names $imageOriginalName = urlencode(decode_html($imageName)); - + if($url) { + $url = $site_URL.$url; + } + if(!empty($imageName)){ $imageDetails[] = array( 'id' => $imageId, 'orgname' => $imageOriginalName, 'path' => $imagePath.$imageId, 'name' => $imageName, - 'url' => $site_URL.$url + 'url' => $url ); } } diff --git a/modules/Vtiger/models/Tag.php b/modules/Vtiger/models/Tag.php index bb0a01c4daf70565226b73d9784c13b4f1025def..ac37f0577a85494fc4134f42815cf8b2b9af5da7 100644 --- a/modules/Vtiger/models/Tag.php +++ b/modules/Vtiger/models/Tag.php @@ -299,6 +299,43 @@ class Vtiger_Tag_Model extends Vtiger_Base_Model { $result = $db->pquery($checkQuery, array($tagId, $userIdToExclude)); return $db->num_rows($result) > 0 ? true : false; } + + /** + * Function used to return tags for list for records + * @param <Array> $records - record ids + * @return <Array> tags + */ + public static function getAllAccessibleTags($records) { + $tagsList = array(); + if(count($records) == 0) return $tagsList; + + $currentUser = Users_Record_Model::getCurrentUserModel(); + + $db = PearDatabase::getInstance(); + $query = "SELECT tag,object_id FROM vtiger_freetags + INNER JOIN vtiger_freetagged_objects ON vtiger_freetags.id = vtiger_freetagged_objects.tag_id + WHERE (vtiger_freetagged_objects.tagger_id = ? OR vtiger_freetags.visibility='public') + AND vtiger_freetagged_objects.object_id IN + (" . generateQuestionMarks($records) . ")"; + $params = array($currentUser->getId()); + $params = array_merge($params, $records); + + $result = $db->pquery($query , $params); + $num_rows = $db->num_rows($result); + + + for($i=0; $i<$num_rows; $i++) { + $tagName = decode_html($db->query_result($result, $i, 'tag')); + $record = decode_html($db->query_result($result, $i, 'object_id')); + + if(empty($tagsList[$record])) { + $tagsList[$record] = $tagName; + } else { + $tagsList[$record] .= ','.$tagName; + } + } + return $tagsList; + } } ?> diff --git a/modules/Vtiger/uitypes/Boolean.php b/modules/Vtiger/uitypes/Boolean.php index bcd6e5d9b25c1f3c7be7170131701f6f9caabcb0..e2f29f8f07fcab5ba9b305f04005f0e667e83186 100644 --- a/modules/Vtiger/uitypes/Boolean.php +++ b/modules/Vtiger/uitypes/Boolean.php @@ -23,7 +23,7 @@ class Vtiger_Boolean_UIType extends Vtiger_Base_UIType { * @param <Object> $value * @return <Object> */ - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { if($value == 1 || $value == '1' || strtolower($value) == 'on') { return Vtiger_Language_Handler::getTranslatedString('LBL_YES', $this->get('field')->getModuleName()); } diff --git a/modules/Vtiger/uitypes/Currency.php b/modules/Vtiger/uitypes/Currency.php index acf655b9e04f3e136966685ddf973dcca60196b5..c39b03abed186d592dc5a33f5972d22bdfd27d81 100644 --- a/modules/Vtiger/uitypes/Currency.php +++ b/modules/Vtiger/uitypes/Currency.php @@ -23,7 +23,7 @@ class Vtiger_Currency_UIType extends Vtiger_Base_UIType { * @param <Object> $value * @return <Object> */ - public function getDisplayValue($value, $skipConversion = false) { + public function getDisplayValue($value, $skipConversion = false, $recordInstance=false) { $uiType = $this->get('field')->get('uitype'); if ($value) { if ($uiType == 72) { diff --git a/modules/Vtiger/uitypes/Datetime.php b/modules/Vtiger/uitypes/Datetime.php index 1c1d8dd240349cfba28ccedd8a40006fd1482191..51a233043c846a1f1252ed3f0293d0420cb5e385 100644 --- a/modules/Vtiger/uitypes/Datetime.php +++ b/modules/Vtiger/uitypes/Datetime.php @@ -23,7 +23,7 @@ class Vtiger_Datetime_UIType extends Vtiger_Date_UIType { * @param <Object> $value * @return <Object> */ - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { $dateValue = '--'; if ($value != '') { diff --git a/modules/Vtiger/uitypes/Email.php b/modules/Vtiger/uitypes/Email.php index 3cf39170bf63e2e5347213a48f078dd1c83e5467..31cd3dc60f6ff7fed6d452396e70000728dd28fe 100644 --- a/modules/Vtiger/uitypes/Email.php +++ b/modules/Vtiger/uitypes/Email.php @@ -18,7 +18,7 @@ class Vtiger_Email_UIType extends Vtiger_Base_UIType { return 'uitypes/Email.tpl'; } - public function getDisplayValue($value, $recordId) { + public function getDisplayValue($value, $recordId = false, $recordInstance=false) { $currentUser = Users_Record_Model::getCurrentUserModel(); $internalMailer = $currentUser->get('internal_mailer'); if($value){ diff --git a/modules/Vtiger/uitypes/Owner.php b/modules/Vtiger/uitypes/Owner.php index f62578842a886146430de2858c9bb247125ac289..9c9661a6d4241682783581f8e98d48e89c553924 100644 --- a/modules/Vtiger/uitypes/Owner.php +++ b/modules/Vtiger/uitypes/Owner.php @@ -23,7 +23,7 @@ class Vtiger_Owner_UIType extends Vtiger_Base_UIType { * @param <Object> $value * @return <Object> */ - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { if (self::getOwnerType($value) === 'User') { $userModel = Users_Record_Model::getCleanInstance('Users'); $userModel->set('id', $value); diff --git a/modules/Vtiger/uitypes/Picklist.php b/modules/Vtiger/uitypes/Picklist.php index 14eaa9847c160106c89c0421c3b9fc0ee6a52662..8bf9e05682715e3d7b4989b41b725a31817cc9e4 100644 --- a/modules/Vtiger/uitypes/Picklist.php +++ b/modules/Vtiger/uitypes/Picklist.php @@ -23,7 +23,7 @@ class Vtiger_Picklist_UIType extends Vtiger_Base_UIType { * @param <Object> $value * @return <Object> */ - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { return Vtiger_Language_Handler::getTranslatedString($value, $this->get('field')->getModuleName()); } diff --git a/modules/Vtiger/uitypes/Reference.php b/modules/Vtiger/uitypes/Reference.php index af07437e76ba9c11b0dc2af040e0093d20b8550d..3ac8f7e77494f1eaa18a0ebd3a7cb288fbdc94a7 100644 --- a/modules/Vtiger/uitypes/Reference.php +++ b/modules/Vtiger/uitypes/Reference.php @@ -40,7 +40,7 @@ class Vtiger_Reference_UIType extends Vtiger_Base_UIType { * @param <Integer> crmid of record * @return <String> */ - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { $referenceModule = $this->getReferenceModule($value); if($referenceModule && !empty($value)) { $referenceModuleName = $referenceModule->get('name'); @@ -54,7 +54,7 @@ class Vtiger_Reference_UIType extends Vtiger_Base_UIType { $fieldModel = $this->get('field'); $entityNames = getEntityName($referenceModuleName, array($value)); $linkValue = "<a href='index.php?module=$referenceModuleName&view=".$referenceModule->getDetailViewName()."&record=$value' - title='".vtranslate($fieldModel->get('label'), $referenceModuleName).":". $entityNames[$value] ."' " + title='".vtranslate($referenceModuleName, $referenceModuleName).":". $entityNames[$value] ."' " . "data-original-title='".vtranslate($referenceModuleName, $referenceModuleName)."'>$entityNames[$value]</a>"; return $linkValue; } diff --git a/modules/Vtiger/uitypes/Text.php b/modules/Vtiger/uitypes/Text.php index abca8ea22e261482b2dcd361a9a0edcca9b3095e..074f19d29550e961d1ea61f30beb9c5934a6191f 100644 --- a/modules/Vtiger/uitypes/Text.php +++ b/modules/Vtiger/uitypes/Text.php @@ -15,7 +15,7 @@ class Vtiger_Text_UIType extends Vtiger_Base_UIType { * @param <Object> $value * @return <Object> */ - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { return nl2br($value); } diff --git a/modules/Vtiger/uitypes/Time.php b/modules/Vtiger/uitypes/Time.php index 801e65f9c1f1840e3d5350f0d8f22153d27302cc..1f59d8156e8684f4984cbb93eaa31ef9507a4ae9 100644 --- a/modules/Vtiger/uitypes/Time.php +++ b/modules/Vtiger/uitypes/Time.php @@ -23,7 +23,7 @@ class Vtiger_Time_UIType extends Vtiger_Base_UIType { * @param <String> time * @return <String> time */ - public static function getDisplayTimeValue($time) { + public static function getDisplayTimeValue($time, $record=false, $recordInstance=false) { $date = new DateTimeField($time); return $date->getDisplayTime(); } diff --git a/modules/Vtiger/uitypes/Url.php b/modules/Vtiger/uitypes/Url.php index 8d0beebd0849d9a9c1aa608929c04054c343985a..5d30391abfcdb89beb5f55298e1f7fff236d0d3b 100644 --- a/modules/Vtiger/uitypes/Url.php +++ b/modules/Vtiger/uitypes/Url.php @@ -18,7 +18,7 @@ class Vtiger_Url_UIType extends Vtiger_Base_UIType { return 'uitypes/Url.tpl'; } - public function getDisplayValue($value) { + public function getDisplayValue($value, $record=false, $recordInstance=false) { $matchPattern = "^[\w]+:\/\/^"; preg_match($matchPattern, $value, $matches); if(!empty ($matches[0])) { diff --git a/modules/Vtiger/uitypes/UserRole.php b/modules/Vtiger/uitypes/UserRole.php index 423e6ac74e718b663fdfd31971d99adc0440bc40..3d30d24fca78023b96fa561783cf2145ed8063f3 100644 --- a/modules/Vtiger/uitypes/UserRole.php +++ b/modules/Vtiger/uitypes/UserRole.php @@ -36,7 +36,7 @@ class Vtiger_UserRole_UIType extends Vtiger_Base_UIType { * @param <Number> $recordId * @return <String> display value */ - public function getDisplayValue($value, $recordId) { + public function getDisplayValue($value, $recordId=false, $recordInstance=false) { $displayValue = $this->getEditViewDisplayValue($value); $currentUserModel = Users_Record_Model::getCurrentUserModel(); if ($currentUserModel->isAdminUser()) { diff --git a/modules/Vtiger/views/ComposeEmail.php b/modules/Vtiger/views/ComposeEmail.php index f06c1375eed8cea67ad1072c4a7f737cbac5c453..5e832f4b60c0cc280e03f96037a472153eb21099 100644 --- a/modules/Vtiger/views/ComposeEmail.php +++ b/modules/Vtiger/views/ComposeEmail.php @@ -273,6 +273,27 @@ class Vtiger_ComposeEmail_View extends Vtiger_Footer_View { $cvId = $request->get('viewname'); $selectedIds = $request->get('selected_ids'); $excludedIds = $request->get('excluded_ids'); + $tagParams = $request->get('tag_params'); + $tag = $request->get('tag'); + $listViewSessionKey = $moduleName.'_'.$cvId; + + if(!empty($tag)) { + $listViewSessionKey .='_'.$tag; + } + + $orderParams = Vtiger_ListView_Model::getSortParamsSession($listViewSessionKey); + if(!empty($tag) && empty($tagParams)){ + $tagParams = $orderParams['tag_params']; + } + + if(empty($tagParams)){ + $tagParams = array(); + } + + if(!is_array($tagParams)) + { + $tagParams = array($tagParams); + } if(!empty($selectedIds) && $selectedIds != 'all') { if(!empty($selectedIds) && count($selectedIds) > 0) { @@ -280,6 +301,11 @@ class Vtiger_ComposeEmail_View extends Vtiger_Footer_View { } } + $searchParams = $request->get('search_params'); + if(empty($searchParams) && !is_array($searchParams)){ + $searchParams = array(); + } + $searchAndTagParams = array_merge($searchParams, $tagParams); $sourceRecord = $request->get('sourceRecord'); $sourceModule = $request->get('sourceModule'); if ($sourceRecord && $sourceModule) { @@ -297,7 +323,7 @@ class Vtiger_ComposeEmail_View extends Vtiger_Footer_View { $customViewModel->set('search_key', $searchKey); $customViewModel->set('search_value', $searchValue); } - $customViewModel->set('search_params', $request->get('search_params')); + $customViewModel->set('search_params', $searchAndTagParams); return $customViewModel->getRecordIds($excludedIds); } return array(); diff --git a/modules/Vtiger/views/Detail.php b/modules/Vtiger/views/Detail.php index 4d4d85539b9f8a099e0f3d4cb3246fdbd9ab226a..6ef1158c0a80ccb5b3c4031217b569fbdf09b016 100644 --- a/modules/Vtiger/views/Detail.php +++ b/modules/Vtiger/views/Detail.php @@ -436,6 +436,16 @@ class Vtiger_Detail_View extends Vtiger_Index_View { $recordModel = Vtiger_Record_Model::getInstanceById($parentRecordId); $viewer = $this->getViewer($request); $viewer->assign('SOURCE',$recordModel->get('source')); + $recentActivities = ModTracker_Record_Model::getUpdates($parentRecordId, $pagingModel,$moduleName); + + $totalCount = ModTracker_Record_Model::getTotalRecordCount($parentRecordId); + $pageLimit = $pagingModel->getPageLimit(); + $pageCount = ceil((int) $totalCount / (int) $pageLimit); + if($pageCount - $pagingModel->getCurrentPage() == 0) { + $pagingModel->set('nextPageExists', false); + } else { + $pagingModel->set('nextPageExists', true); + } $viewer->assign('RECENT_ACTIVITIES', $recentActivities); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('PAGING_MODEL', $pagingModel); diff --git a/modules/Vtiger/views/EmailsRelatedModulePopupAjax.php b/modules/Vtiger/views/EmailsRelatedModulePopupAjax.php index 8257330559c2bba89c24c2f961f8e8f49d8082e4..21ccf782b9727b4b44217f1148ed2652af976dc1 100644 --- a/modules/Vtiger/views/EmailsRelatedModulePopupAjax.php +++ b/modules/Vtiger/views/EmailsRelatedModulePopupAjax.php @@ -22,19 +22,20 @@ class Vtiger_EmailsRelatedModulePopupAjax_View extends Vtiger_EmailsRelatedModul } function postProcess(Vtiger_Request $request) { - return true; + return true; } function process (Vtiger_Request $request) { - $mode = $request->get('mode'); + $mode = $request->get('mode'); if(!empty($mode)) { - $this->invokeExposedMethod($mode, $request); + $this->invokeExposedMethod($mode, $request); return; } $viewer = $this->getViewer ($request); - $moduleName = $request->getModule(); + $moduleName = $request->getModule(); - $this->initializeListViewContents($request, $viewer); + $viewer->assign('MODULE_NAME',$moduleName); + $this->initializeListViewContents($request, $viewer); echo $viewer->view('PopupContents.tpl', $moduleName, true); } diff --git a/modules/Vtiger/views/FindDuplicates.php b/modules/Vtiger/views/FindDuplicates.php index 1f994c947d7761dcd05cb5d1cb1d513be1492790..7d3c6631fa2c6cb575f08c42da09ae235e321b86 100644 --- a/modules/Vtiger/views/FindDuplicates.php +++ b/modules/Vtiger/views/FindDuplicates.php @@ -13,7 +13,7 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { function preProcess(Vtiger_Request $request, $display = true) { $viewer = $this->getViewer ($request); $this->initializeListViewContents($request, $viewer); - parent::preProcess($request, $display); + parent::preProcess($request, $display); } public function preProcessTplName(Vtiger_Request $request) { @@ -80,10 +80,13 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { if(empty($pageNumber)){ $pageNumber = '1'; } - $pagingModel = new Vtiger_Paging_Model(); - $pagingModel->set('page', $pageNumber); - $pageLimit = $pagingModel->getPageLimit(); - + if (!$this->pagingModel) { + $pagingModel = new Vtiger_Paging_Model(); + $this->pagingModel = $pagingModel; + } else { + $pagingModel = $this->pagingModel; + } + $pagingModel->set('page', $pageNumber); $duplicateSearchFields = $request->get('fields'); $dataModelInstance = Vtiger_FindDuplicate_Model::getInstance($module); $dataModelInstance->set('fields', $duplicateSearchFields); @@ -104,19 +107,9 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { $this->rows = $dataModelInstance->getRecordCount(); $viewer->assign('TOTAL_COUNT', $this->rows); } - - $rowCount = 0; - foreach($this->listViewEntries as $group) { - foreach($group as $row) { - $rowCount++; - } - } - //for calculating the page range - for($i=0; $i<$rowCount; $i++) $dummyListEntries[] = $i; - $pagingModel->calculatePageRange($dummyListEntries); - + $viewer->assign('IGNORE_EMPTY', $ignoreEmpty); - $viewer->assign('LISTVIEW_ENTRIES_COUNT', $rowCount); + $viewer->assign('LISTVIEW_ENTRIES_COUNT', $pagingModel->recordCount); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); $viewer->assign('PAGING_MODEL', $pagingModel); @@ -154,4 +147,4 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { $response->setResult($result); $response->emit(); } -} \ No newline at end of file +} diff --git a/modules/Vtiger/views/Import.php b/modules/Vtiger/views/Import.php index 21a619a079f379f0270805dc0bf12d2176387fe1..076a7109ba869f7857156b82a789df40705b8908 100644 --- a/modules/Vtiger/views/Import.php +++ b/modules/Vtiger/views/Import.php @@ -247,7 +247,7 @@ class Vtiger_Import_View extends Vtiger_Index_View { $ownerId = $request->get('foruser'); $user = Users_Record_Model::getCurrentUserModel(); - $dbTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($user)); + $dbTableName = Import_Utils_Helper::getDbTableName($user); if(!$user->isAdminUser() && $user->id != $ownerId) { $viewer->assign('MESSAGE', vtranslate('LBL_PERMISSION_DENIED')); diff --git a/modules/Vtiger/views/IndexAjax.php b/modules/Vtiger/views/IndexAjax.php index f85075f52c966c42811291af8201001b54150aa1..cd8472df5a1eba4e15a9d00a28a2c5e08c0a8029 100644 --- a/modules/Vtiger/views/IndexAjax.php +++ b/modules/Vtiger/views/IndexAjax.php @@ -15,7 +15,7 @@ class Vtiger_IndexAjax_View extends Vtiger_Index_View { $this->exposeMethod('showActiveRecords'); } - function preProcess(Vtiger_Request $request) { + function preProcess(Vtiger_Request $request, $display=true) { return true; } diff --git a/modules/Vtiger/views/MassActionAjax.php b/modules/Vtiger/views/MassActionAjax.php index 9073a7810e802f68974a0f969a3dbd2c97d91ed7..e954da59b85276e5754b6c7d415950a949aa412d 100644 --- a/modules/Vtiger/views/MassActionAjax.php +++ b/modules/Vtiger/views/MassActionAjax.php @@ -71,6 +71,10 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $cvId = $request->get('viewname'); $selectedIds = $request->get('selected_ids'); $excludedIds = $request->get('excluded_ids'); + $tagParams = $request->get('tag_params'); + if(empty($tagParams)){ + $tagParams = array(); + } $viewer = $this->getViewer($request); @@ -96,6 +100,7 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $viewer->assign('CVID', $cvId); $viewer->assign('SELECTED_IDS', $selectedIds); $viewer->assign('EXCLUDED_IDS', $excludedIds); + $viewer->assign('TAG_PARAMS', $tagParams); $viewer->assign('VIEW_SOURCE','MASSEDIT'); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('MODULE_MODEL',$moduleModel); @@ -129,6 +134,10 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $cvId = $request->get('viewname'); $selectedIds = $request->get('selected_ids'); $excludedIds = $request->get('excluded_ids'); + $tagParams = $request->get('tag_params'); + if(empty($tagParams)){ + $tagParams = array(); + } $viewer = $this->getViewer($request); $viewer->assign('SOURCE_MODULE', $sourceModule); @@ -136,6 +145,7 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $viewer->assign('CVID', $cvId); $viewer->assign('SELECTED_IDS', $selectedIds); $viewer->assign('EXCLUDED_IDS', $excludedIds); + $viewer->assign('TAG_PARAMS', $tagParams); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $modCommentsModel = Vtiger_Module_Model::getInstance($moduleName); @@ -175,6 +185,10 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $excludedIds = $request->get('excluded_ids'); $step = $request->get('step'); $relatedLoad = $request->get('relatedLoad'); + $tagParams = $request->get('tag_params'); + if(empty($tagParams)){ + $tagParams = array(); + } $emailFieldsInfo = $this->getEmailFieldsInfo($request); $viewer = $this->getViewer($request); @@ -184,6 +198,7 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $viewer->assign('VIEWNAME', $cvId); $viewer->assign('SELECTED_IDS', $selectedIds); $viewer->assign('EXCLUDED_IDS', $excludedIds); + $viewer->assign('TAG_PARAMS', $tagParams); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('SELECTED_EMAIL_SOURCE_MODULE', $sourceModule); @@ -398,6 +413,27 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { return $selectedIds; } } + $tagParams = $request->get('tag_params'); + $tag = $request->get('tag'); + $listViewSessionKey = $module.'_'.$cvId; + + if(!empty($tag)) { + $listViewSessionKey .='_'.$tag; + } + + $orderParams = Vtiger_ListView_Model::getSortParamsSession($listViewSessionKey); + if(!empty($tag) && empty($tagParams)){ + $tagParams = $orderParams['tag_params']; + } + + if(empty($tagParams)){ + $tagParams = array(); + } + $searchParams = $request->get('search_params'); + if(empty($searchParams) && !is_array($searchParams)){ + $searchParams = array(); + } + $searchAndTagParams = array_merge($searchParams, $tagParams); $sourceRecord = $request->get('sourceRecord'); $sourceModule = $request->get('sourceModule'); @@ -416,7 +452,7 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $customViewModel->set('search_key', $searchKey); $customViewModel->set('search_value', $searchValue); } - $customViewModel->set('search_params', $request->get('search_params')); + $customViewModel->set('search_params', $searchAndTagParams); return $customViewModel->getRecordIds($excludedIds,$module); } } diff --git a/modules/com_vtiger_workflow/VTWorkflowManager.inc b/modules/com_vtiger_workflow/VTWorkflowManager.inc index eed58701890b278f6bfb9cceb26296ba02e05f36..e5c9d972ba8f5a162157cb2e7f8b866651c350cc 100644 --- a/modules/com_vtiger_workflow/VTWorkflowManager.inc +++ b/modules/com_vtiger_workflow/VTWorkflowManager.inc @@ -111,7 +111,8 @@ class VTWorkflowManager{ * @return int */ function getMaxAllowedScheduledWorkflows() { - return 10; + global $max_scheduled_workflows; + return $max_scheduled_workflows; } function getWorkflowsForModule($moduleName){ @@ -122,7 +123,7 @@ class VTWorkflowManager{ } else { //my changes $result=$adb->getColumnNames("com_vtiger_workflows"); - if(in_array(defaultworkflow,$result)){ + if(in_array('defaultworkflow',$result)){ $result = $adb->pquery("select workflow_id, module_name, summary, test, execution_condition, defaultworkflow, type, filtersavedinnew from com_vtiger_workflows where module_name=? and status=?",array($moduleName,1)); } diff --git a/modules/com_vtiger_workflow/edittask.php b/modules/com_vtiger_workflow/edittask.php index 0c8dc2f69b0d6ac63fe6a310d0541b84ef478bf9..2f598d9866dcec854c2d28adfd510d7f025bca58 100644 --- a/modules/com_vtiger_workflow/edittask.php +++ b/modules/com_vtiger_workflow/edittask.php @@ -115,7 +115,7 @@ require_once("VTWorkflowUtils.php"); return_module_language($current_language, 'Calendar'), return_module_language($current_language, $module->name))); $smarty->assign("APP", $app_strings); - $smarty->assign("dateFormat", parse_calendardate($app_strings['NTC_DATE_FORMAT'])); + $smarty->assign('dateFormat', parse_calendardate()); $smarty->assign("IMAGE_PATH",$image_path); $smarty->assign("THEME", $theme); $smarty->assign("MODULE_NAME", $module->label); diff --git a/packages/vtiger/mandatory/Import.zip b/packages/vtiger/mandatory/Import.zip index f54c3f4150a1bd912cdd9b1f66d5cd98b04a9957..b3d569065f946c59524c08c4bb7bbbef1b9911f2 100644 Binary files a/packages/vtiger/mandatory/Import.zip and b/packages/vtiger/mandatory/Import.zip differ diff --git a/packages/vtiger/mandatory/MailManager.zip b/packages/vtiger/mandatory/MailManager.zip index d271460f3bc9d6c3de6c75c47555087fe7a50a1a..01f2c9e565bdc87c8c0703d79b8d0c397e30b142 100644 Binary files a/packages/vtiger/mandatory/MailManager.zip and b/packages/vtiger/mandatory/MailManager.zip differ diff --git a/packages/vtiger/mandatory/Mobile.zip b/packages/vtiger/mandatory/Mobile.zip index 2311c6cefffd2381ae83184ef8801685d1c0e5f1..1ef3101211b22d12e3aabc798904f1004003d84b 100644 Binary files a/packages/vtiger/mandatory/Mobile.zip and b/packages/vtiger/mandatory/Mobile.zip differ diff --git a/packages/vtiger/mandatory/ModTracker.zip b/packages/vtiger/mandatory/ModTracker.zip index 9ec120c1651b7f95837a721163480706894cf608..0546f0bfd1ea4178ec4db3095023619a751eba0d 100644 Binary files a/packages/vtiger/mandatory/ModTracker.zip and b/packages/vtiger/mandatory/ModTracker.zip differ diff --git a/packages/vtiger/mandatory/PBXManager.zip b/packages/vtiger/mandatory/PBXManager.zip index af08bd71464808c42d33956cf88c425d018aa666..b2285d8680aa86b5c61fa7be664f85bf60541518 100644 Binary files a/packages/vtiger/mandatory/PBXManager.zip and b/packages/vtiger/mandatory/PBXManager.zip differ diff --git a/packages/vtiger/mandatory/ServiceContracts.zip b/packages/vtiger/mandatory/ServiceContracts.zip index 5053520885a4041540aec076d57277a5ea6b0044..6653adf62703bf5415b626ef4676da1749408257 100644 Binary files a/packages/vtiger/mandatory/ServiceContracts.zip and b/packages/vtiger/mandatory/ServiceContracts.zip differ diff --git a/packages/vtiger/mandatory/Services.zip b/packages/vtiger/mandatory/Services.zip index 88e18feae69c9e004f828a33f535bc8456ba651c..84401271c8cb05020fbb3924f85d1d79f5ac0e9b 100644 Binary files a/packages/vtiger/mandatory/Services.zip and b/packages/vtiger/mandatory/Services.zip differ diff --git a/packages/vtiger/mandatory/WSAPP.zip b/packages/vtiger/mandatory/WSAPP.zip index 24dbdf17294b0af4d8d1ca5d945b2304a9f6d02a..e1afa35b74c5bc2bb825a1874bd0bbf4d224896c 100644 Binary files a/packages/vtiger/mandatory/WSAPP.zip and b/packages/vtiger/mandatory/WSAPP.zip differ diff --git a/packages/vtiger/marketplace/ExtensionStore.zip b/packages/vtiger/marketplace/ExtensionStore.zip index 0b380603945b0e61e9796cffe0dfa36b002bb899..4cb27871dc3dc2f5ce8abc618a074cb2568d3e69 100644 Binary files a/packages/vtiger/marketplace/ExtensionStore.zip and b/packages/vtiger/marketplace/ExtensionStore.zip differ diff --git a/packages/vtiger/optional/Assets.zip b/packages/vtiger/optional/Assets.zip index 8e0ec347b21d361b1f9ba7b6629006e55636c0d4..13226a5e4a7c377534e6983d8d904f58fa80c2a0 100644 Binary files a/packages/vtiger/optional/Assets.zip and b/packages/vtiger/optional/Assets.zip differ diff --git a/packages/vtiger/optional/CustomerPortal.zip b/packages/vtiger/optional/CustomerPortal.zip index cd990a65970f49c51b1452305d146cf8bbbe8c17..eefca139d6de758a50804ceae069f7c1f42918cf 100644 Binary files a/packages/vtiger/optional/CustomerPortal.zip and b/packages/vtiger/optional/CustomerPortal.zip differ diff --git a/packages/vtiger/optional/EmailTemplates.zip b/packages/vtiger/optional/EmailTemplates.zip index bdde0b312e233b066f2eecaac11174958caafc8a..79e2f98b4f6641defa99b658226efc74668e691b 100644 Binary files a/packages/vtiger/optional/EmailTemplates.zip and b/packages/vtiger/optional/EmailTemplates.zip differ diff --git a/packages/vtiger/optional/Google.zip b/packages/vtiger/optional/Google.zip index 1da9c19d29ca1f15dec1ec79b045ce8e5f0e0b7b..aa9b6bede75e6dc9d7b638bb8e8614b61c20983c 100644 Binary files a/packages/vtiger/optional/Google.zip and b/packages/vtiger/optional/Google.zip differ diff --git a/packages/vtiger/optional/ModComments.zip b/packages/vtiger/optional/ModComments.zip index e0410edafd6605c6eb89b54c6dd404381257238b..4dd6cf47a20001315c969f5234c1331e089382a0 100644 Binary files a/packages/vtiger/optional/ModComments.zip and b/packages/vtiger/optional/ModComments.zip differ diff --git a/packages/vtiger/optional/Projects.zip b/packages/vtiger/optional/Projects.zip index c38ca829d839b7eb1f23894cb3796bce1d71a04c..6c75b1dedecbcf7e03b6543e22099e6056bd2427 100644 Binary files a/packages/vtiger/optional/Projects.zip and b/packages/vtiger/optional/Projects.zip differ diff --git a/packages/vtiger/optional/RecycleBin.zip b/packages/vtiger/optional/RecycleBin.zip index 8953d7d3bff4ee98cca6108dbcaac02f84960149..4f3185ef3283bd897637630d31ec42ff5729a4b0 100644 Binary files a/packages/vtiger/optional/RecycleBin.zip and b/packages/vtiger/optional/RecycleBin.zip differ diff --git a/packages/vtiger/optional/SMSNotifier.zip b/packages/vtiger/optional/SMSNotifier.zip index b16574a0e3abe73bb1de9693b7606d6e8f1f292d..a9e3a23c577e96299214cd0542f4c802ca10a18e 100644 Binary files a/packages/vtiger/optional/SMSNotifier.zip and b/packages/vtiger/optional/SMSNotifier.zip differ diff --git a/packages/vtiger/optional/Webforms.zip b/packages/vtiger/optional/Webforms.zip index 78e9e89a91cadb9bc4a2e948b5281c2b7ec034d0..8647799b0617afabb6b5a15e6371b06f37ffa462 100644 Binary files a/packages/vtiger/optional/Webforms.zip and b/packages/vtiger/optional/Webforms.zip differ diff --git a/pkg/vtiger/modules/Assets/modules/Assets/Assets.php b/pkg/vtiger/modules/Assets/modules/Assets/Assets.php index ba4c6b8e26914aebdfeb6a319060be3a2607266a..817ed14412f8fd645c51cf96e83d9422550ae0ca 100644 --- a/pkg/vtiger/modules/Assets/modules/Assets/Assets.php +++ b/pkg/vtiger/modules/Assets/modules/Assets/Assets.php @@ -374,13 +374,13 @@ class Assets extends CRMEntity { $assetLabel = 'Assets'; $accountInstance = Vtiger_Module::getInstance('Accounts'); - $accountInstance->setRelatedlist($assetInstance,$assetLabel,array(ADD),'get_dependents_list'); + $accountInstance->setRelatedlist($assetInstance,$assetLabel,array('ADD'),'get_dependents_list'); $productInstance = Vtiger_Module::getInstance('Products'); - $productInstance->setRelatedlist($assetInstance,$assetLabel,array(ADD),'get_dependents_list'); + $productInstance->setRelatedlist($assetInstance,$assetLabel,array('ADD'),'get_dependents_list'); $InvoiceInstance = Vtiger_Module::getInstance('Invoice'); - $InvoiceInstance->setRelatedlist($assetInstance,$assetLabel,array(ADD),'get_dependents_list'); + $InvoiceInstance->setRelatedlist($assetInstance,$assetLabel,array('ADD'),'get_dependents_list'); $result = $adb->pquery("SELECT 1 FROM vtiger_modentity_num WHERE semodule = ? AND active = 1", array($moduleName)); if (!($adb->num_rows($result))) { diff --git a/pkg/vtiger/modules/CustomerPortal/layouts/v7/modules/Settings/CustomerPortal/resources/CustomerPortal.js b/pkg/vtiger/modules/CustomerPortal/layouts/v7/modules/Settings/CustomerPortal/resources/CustomerPortal.js index 431ffa807bebc2b6e13dce6a2611c9f77772cef0..25eab0d973e0bae78c99d19a1e2a236ff7d1c401 100644 --- a/pkg/vtiger/modules/CustomerPortal/layouts/v7/modules/Settings/CustomerPortal/resources/CustomerPortal.js +++ b/pkg/vtiger/modules/CustomerPortal/layouts/v7/modules/Settings/CustomerPortal/resources/CustomerPortal.js @@ -125,6 +125,9 @@ Vtiger.Class('Settings_Customer_Portal_Js', {}, { var returnFormData = true; var message = ''; jQuery.each(portalModules, function (index, element) { + if(!jQuery(element).find('.enabledModules').is(':checked')){ + return; + } var mandatoryFields = []; var list = element.attributes; var moduleName = list['data-module'].value; diff --git a/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php b/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php index 8fdc5bd75d856f5149c305fc56a010dd5edd9b02..1fec60387d0d0abf284bc87d229f8b2c80179019 100644 --- a/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php +++ b/pkg/vtiger/modules/CustomerPortal/modules/CustomerPortal/CustomerPortal.php @@ -33,12 +33,12 @@ class CustomerPortal { $tabId = $adb->query_result($tabIdResult, 0, 'tabid'); if($tabId) { ++$i; - $adb->query("INSERT INTO vtiger_customerportal_tabs (tabid,visible,sequence) VALUES (?, ?, ?)", array($tabId,1,$i)); - $adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array($tabId,'showrelatedinfo',1)); + $adb->pquery("INSERT INTO vtiger_customerportal_tabs(tabid,visible,sequence) VALUES (?, ?, ?)", array($tabId,1,$i)); + $adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array($tabId,'showrelatedinfo',1)); } } - $adb->query("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array(0,'userid',1)); + $adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array(0,'userid',1)); $adb->pquery("INSERT INTO vtiger_customerportal_prefs(tabid,prefkey,prefvalue) VALUES (?, ?, ?)", array(0,'defaultassignee',1)); // Mark the module as Standard module diff --git a/pkg/vtiger/modules/EmailTemplates/layouts/v7/modules/EmailTemplates/resources/List.js b/pkg/vtiger/modules/EmailTemplates/layouts/v7/modules/EmailTemplates/resources/List.js index 6e6af01d242aeff231c9fc8c47cd056e669bcfd3..3c560bf8c2a5dfee675c171f7fab988445914758 100644 --- a/pkg/vtiger/modules/EmailTemplates/layouts/v7/modules/EmailTemplates/resources/List.js +++ b/pkg/vtiger/modules/EmailTemplates/layouts/v7/modules/EmailTemplates/resources/List.js @@ -222,40 +222,6 @@ Vtiger_List_Js("EmailTemplates_List_Js", { }); }, - /** - * Function to prompt before deleting the template - */ - registerPromptTemplateDeleteEvent: function () { - var thisInstance = this; - jQuery('#listViewContent').on('click', '.fa-trash', function (e) { - var templateId = jQuery(e.currentTarget).attr('data-value'); - var message = app.vtranslate('JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE'); - app.helper.showConfirmationBox({message: message}).then(function(e){ - thisInstance.registerTemplateDeleteEvent(templateId); - }, function (error, err) { - // if error occurred - }); - }); - }, - - /** - * Function to delete the template - */ - registerTemplateDeleteEvent: function (templateId) { - var params = { - 'module': "EmailTemplates", - 'action': "Delete", - 'record': templateId, - 'ajaxDelete': true, - }; - app.request.post({data:params}).then(function (error,data) { - if (data) { - window.location.href = data; - } - }); - }, - - loadListViewRecords : function(urlParams) { var self = this; var aDeferred = jQuery.Deferred(); @@ -276,7 +242,7 @@ Vtiger_List_Js("EmailTemplates_List_Js", { app.helper.hideProgress(); self.markSelectedIdsCheckboxes(); self.registerDynamicListHeaders(); - + self.registerDeleteRecordClickEvent(); self.registerDynamicDropdownPosition(); self.registerDropdownPosition();//for every ajax request more-drop down in listview }); @@ -330,7 +296,6 @@ Vtiger_List_Js("EmailTemplates_List_Js", { this.registerAccordionClickEvent(); this.registerViewType(); this.registerThumbnailHoverActionEvent(); - this.registerPromptTemplateDeleteEvent(); this.registerTemplateDuplicationEvent(); this.registerTemplateEditEvent(); this.registerPreviewTemplateEvent(); diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/actions/MassDelete.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/actions/MassDelete.php index 9475702e6a836fcd303149ba49536c5a92122e8b..2b1f23b9a02cbf1a924961ac5db85eb12bcd5bda 100644 --- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/actions/MassDelete.php +++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/actions/MassDelete.php @@ -45,12 +45,20 @@ class EmailTemplates_MassDelete_Action extends Vtiger_Mass_Action { $recordIds = $this->getRecordsListFromRequest($request, $recordModel); foreach($recordIds as $recordId) { $recordModel = EmailTemplates_Record_Model::getInstanceById($recordId); - $recordModel->delete(); + if($recordModel->isSystemTemplate()) { + $systemTemplate = true; + } else { + $recordModel->delete(); + } } } $response = new Vtiger_Response(); - $response->setResult(array('module'=>$moduleName)); + if($systemTemplate) { + $response->setError('502', vtranslate('LBL_NO_PERMISSIONS_TO_DELETE_SYSTEM_TEMPLATE', $moduleName)); + } else { + $response->setResult(array('module'=>$moduleName)); + } $response->emit(); } diff --git a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php index 0de1652ab0377b215ddcce5275ab0910ebd502a7..41a328d98a8fe1391bafc39d3d0419983091f07b 100644 --- a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php +++ b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php @@ -196,7 +196,7 @@ class Import_Data_Action extends Vtiger_Action_Controller { $createdRecords = array(); $entityData = array(); - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($this->user)); + $tableName = Import_Utils_Helper::getDbTableName($this->user); $params = array(); $sql = 'SELECT * FROM '.$tableName.' WHERE status = ?'; array_push($params, Import_Data_Action::$IMPORT_RECORD_NONE); @@ -710,9 +710,21 @@ class Import_Data_Action extends Vtiger_Action_Controller { } $userDateFormat = $current_user->column_fields['date_format']; - if ($userDateFormat == 'dd-mm-yyyy') { + if ('dd.mm.yyyy' === $userDateFormat) { + $dateFormat = 'd.m.Y'; + } else if ('mm.dd.yyyy' === $userDateFormat) { + $dateFormat = 'm.d.Y'; + } else if ('yyyy.mm.dd' === $userDateFormat) { + $dateFormat = 'Y.m.d'; + } else if ('dd/mm/yyyy' === $userDateFormat) { + $dateFormat = 'd/m/Y'; + } else if ('mm/dd/yyyy' === $userDateFormat) { + $dateFormat = 'm/d/Y'; + } else if ('yyyy/mm/dd' === $userDateFormat) { + $dateFormat = 'Y/m/d'; + } else if ('dd-mm-yyyy' === $userDateFormat) { $dateFormat = 'd-m-Y'; - } else if ($userDateFormat == 'mm-dd-yyyy') { + } else if ('mm-dd-yyyy' === $userDateFormat) { $dateFormat = 'm-d-Y'; } else { $dateFormat = 'Y-m-d'; @@ -825,7 +837,7 @@ class Import_Data_Action extends Vtiger_Action_Controller { public function getImportStatusCount() { $adb = PearDatabase::getInstance(); - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($this->user)); + $tableName = Import_Utils_Helper::getDbTableName($this->user); $focus = CRMEntity::getInstance($this->module); if ($focus && method_exists($focus, 'getGroupQuery')) { diff --git a/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php b/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php index ba3fdd45f285f8312a8a0d1279a4922c6779edf9..abcd9762f16242b61a63f2b2463fed31de08a9d2 100644 --- a/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php +++ b/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php @@ -121,7 +121,7 @@ class Import_Utils_Helper { public static function isUserImportBlocked($user) { $adb = PearDatabase::getInstance(); - $tableName = Vtiger_Util_Helper::validateStringForSql(self::getDbTableName($user)); + $tableName = self::getDbTableName($user); if(Vtiger_Utils::CheckTable($tableName)) { $result = $adb->pquery('SELECT 1 FROM '.$tableName.' WHERE status = ?', array(Import_Data_Action::$IMPORT_RECORD_NONE)); diff --git a/pkg/vtiger/modules/Import/modules/Import/models/ListView.php b/pkg/vtiger/modules/Import/modules/Import/models/ListView.php index d8b005752839f922b2810590ef8a98b9e87504a0..ab2d5c8d0c8621474e708e528754ab97a6f56734 100644 --- a/pkg/vtiger/modules/Import/modules/Import/models/ListView.php +++ b/pkg/vtiger/modules/Import/modules/Import/models/ListView.php @@ -62,8 +62,8 @@ class Import_ListView_Model extends Vtiger_ListView_Model { $queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => 'c')); } - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); if(!empty($orderBy)) { $queryGenerator = $this->get('query_generator'); $fieldModels = $queryGenerator->getModuleFields(); @@ -171,7 +171,7 @@ class Import_ListView_Model extends Vtiger_ListView_Model { $db = PearDatabase::getInstance(); $user = Users_Record_Model::getCurrentUserModel(); - $userDBTableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($user)); + $userDBTableName = Import_Utils_Helper::getDbTableName($user); $result = $db->pquery('SELECT recordid FROM '.$userDBTableName.' WHERE status NOT IN (?,?) AND recordid IS NOT NULL',Array(Import_Data_Action::$IMPORT_RECORD_FAILED, Import_Data_Action::$IMPORT_RECORD_SKIPPED)); $noOfRecords = $db->num_rows($result); diff --git a/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php b/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php index 52f5b3f53c6291c108b48754bfc465ca5a87cea1..3897eeaa2e674094006b1ad1b7a3dae09e467895 100644 --- a/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php +++ b/pkg/vtiger/modules/Import/modules/Import/readers/FileReader.php @@ -102,7 +102,7 @@ class Import_FileReader_Reader { public function createTable() { $db = PearDatabase::getInstance(); - $tableName = Vtiger_Util_Helper::validateStringForSql(Import_Utils_Helper::getDbTableName($this->user)); + $tableName = Import_Utils_Helper::getDbTableName($this->user); $fieldMapping = $this->request->get('field_mapping'); $moduleFields = $this->moduleModel->getFields(); diff --git a/pkg/vtiger/modules/MailManager/modules/MailManager/views/Folder.php b/pkg/vtiger/modules/MailManager/modules/MailManager/views/Folder.php index 83e4ca0f0e444537747f7b1cf123a7a79720f52d..9e59d3d8e4de431967ac634a6116aef6edd63af8 100644 --- a/pkg/vtiger/modules/MailManager/modules/MailManager/views/Folder.php +++ b/pkg/vtiger/modules/MailManager/modules/MailManager/views/Folder.php @@ -62,7 +62,7 @@ class MailManager_Folder_View extends MailManager_Abstract_View { $viewer->assign('FOLDER', $folder); $viewer->assign('FOLDERLIST', $folderList); $viewer->assign('SEARCHOPTIONS' ,self::getSearchOptions()); - $viewer->assign("JS_DATEFORMAT",parse_calendardate(getTranslatedString('NTC_DATE_FORMAT'))); + $viewer->assign('JS_DATEFORMAT', parse_calendardate()); $viewer->assign('USER_DATE_FORMAT', $currentUserModel->get('date_format')); $viewer->assign('MODULE', $moduleName); $response->setResult($viewer->view( 'FolderOpen.tpl', $moduleName, true )); diff --git a/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php b/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php index b5e7feecda33cd3f5b0ab66c404e547d60638bf8..94f853b97a5b167f37c7250bc01e9572b886337f 100644 --- a/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php +++ b/pkg/vtiger/modules/ModComments/modules/ModComments/actions/SaveAjax.php @@ -73,7 +73,6 @@ class ModComments_SaveAjax_Action extends Vtiger_SaveAjax_Action { */ public function getRecordModelFromRequest(Vtiger_Request $request) { $recordModel = parent::getRecordModelFromRequest($request); - $recordModel->set('commentcontent', $request->getRaw('commentcontent')); $recordModel->set('is_private', $request->get('is_private')); diff --git a/pkg/vtiger/modules/ModComments/modules/ModComments/models/Record.php b/pkg/vtiger/modules/ModComments/modules/ModComments/models/Record.php index 0a02da7f8c7f47c76ef8950ba740be242a4f828e..aee0a319d4997af101f280ee5a9473cbfc9938d8 100644 --- a/pkg/vtiger/modules/ModComments/modules/ModComments/models/Record.php +++ b/pkg/vtiger/modules/ModComments/modules/ModComments/models/Record.php @@ -139,7 +139,7 @@ class ModComments_Record_Model extends Vtiger_Record_Model { * @param <Integer> $record * @return ModComment_Record_Model */ - public static function getInstanceById($record) { + public static function getInstanceById($record, $module=null) { $db = PearDatabase::getInstance(); $result = $db->pquery('SELECT vtiger_modcomments.*, vtiger_crmentity.smownerid, vtiger_crmentity.createdtime, vtiger_crmentity.modifiedtime FROM vtiger_modcomments diff --git a/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTrackerHandler.php b/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTrackerHandler.php index d89a94b5707160dbdec7c34168bdf2d2243ff654..dc9849a147b34cbff74ce2a68028bcf4d17aec55 100644 --- a/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTrackerHandler.php +++ b/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTrackerHandler.php @@ -13,7 +13,11 @@ require_once 'data/VTEntityDelta.php'; class ModTrackerHandler extends VTEventHandler { function handleEvent($eventName, $data) { - global $adb, $current_user; + global $adb; + $current_user_id=$_SESSION["authenticated_user_id"]; + $current_user = Users_Record_Model::getInstanceById($current_user_id, 'Users'); + $curid=$current_user->get('id'); + global $current_user; $moduleName = $data->getModuleName(); $isTrackingEnabled = ModTracker::isTrackingEnabledForModule($moduleName); if(!$isTrackingEnabled) { @@ -47,7 +51,7 @@ class ModTrackerHandler extends VTEventHandler { } $adb->pquery('INSERT INTO vtiger_modtracker_basic(id, crmid, module, whodid, changedon, status) VALUES(?,?,?,?,?,?)', Array($this->id, $recordId, $moduleName, - $current_user->id, $changedOn, $status)); + $curid, $changedOn, $status)); $inserted = true; } $adb->pquery('INSERT INTO vtiger_modtracker_detail(id,fieldname,prevalue,postvalue) VALUES(?,?,?,?)', @@ -62,7 +66,7 @@ class ModTrackerHandler extends VTEventHandler { $columnFields = $data->getData(); $id = $adb->getUniqueId('vtiger_modtracker_basic'); $adb->pquery('INSERT INTO vtiger_modtracker_basic(id, crmid, module, whodid, changedon, status) - VALUES(?,?,?,?,?,?)', Array($id, $recordId, $moduleName, $current_user->id, date('Y-m-d H:i:s',time()), ModTracker::$DELETED)); + VALUES(?,?,?,?,?,?)', Array($id, $recordId, $moduleName, $curid, date('Y-m-d H:i:s',time()), ModTracker::$DELETED)); } if($eventName == 'vtiger.entity.afterrestore') { @@ -70,7 +74,7 @@ class ModTrackerHandler extends VTEventHandler { $columnFields = $data->getData(); $id = $adb->getUniqueId('vtiger_modtracker_basic'); $adb->pquery('INSERT INTO vtiger_modtracker_basic(id, crmid, module, whodid, changedon, status) - VALUES(?,?,?,?,?,?)', Array($id, $recordId, $moduleName, $current_user->id, date('Y-m-d H:i:s',time()), ModTracker::$RESTORED)); + VALUES(?,?,?,?,?,?)', Array($id, $recordId, $moduleName, $curid, date('Y-m-d H:i:s',time()), ModTracker::$RESTORED)); } } } diff --git a/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Relation.php b/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Relation.php index 28219de3aa56a2b80b7e9134088d833bd7a45191..dcf11bba45e5c30183284396b021fd99db15a3d7 100644 --- a/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Relation.php +++ b/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Relation.php @@ -24,6 +24,9 @@ class ModTracker_Relation_Model extends Vtiger_Record_Model { $targetId = $this->get('targetid'); $targetModule = $this->get('targetmodule'); + if(!Users_Privileges_Model::isPermitted($targetModule, 'DetailView', $targetId)) { + return false; + } $query = 'SELECT * FROM vtiger_crmentity WHERE crmid = ?'; $params = array($targetId); $result = $db->pquery($query, $params); diff --git a/pkg/vtiger/modules/PBXManager/modules/PBXManager/models/Record.php b/pkg/vtiger/modules/PBXManager/modules/PBXManager/models/Record.php index a84b38329978fb752c6920a9849c835aaeb422db..6c9a106c59c6b0d3940ae15b21603633f4fa3783 100644 --- a/pkg/vtiger/modules/PBXManager/modules/PBXManager/models/Record.php +++ b/pkg/vtiger/modules/PBXManager/modules/PBXManager/models/Record.php @@ -14,7 +14,7 @@ class PBXManager_Record_Model extends Vtiger_Record_Model{ const lookuptableName = 'vtiger_pbxmanager_phonelookup'; const entitytableName = 'vtiger_crmentity'; - static function getCleanInstance(){ + static function getCleanInstance($moduleName = ''){ return new self; } @@ -26,7 +26,7 @@ class PBXManager_Record_Model extends Vtiger_Record_Model{ $db = PearDatabase::getInstance(); $query = 'SELECT * FROM '.self::moduletableName.' AS module_table INNER JOIN '.self::entitytableName.' AS entity_table WHERE module_table.callstatus IN(?,?) AND module_table.direction=? AND module_table.pbxmanagerid=entity_table.crmid AND entity_table.deleted=0'; $result = $db->pquery($query,array('ringing','in-progress','inbound')); - $recordModels = array(); + $recordModels = $recordIds = array(); $rowCount = $db->num_rows($result); for($i=0; $i<$rowCount; $i++) { $rowData = $db->query_result_rowdata($result, $i); @@ -114,7 +114,7 @@ class PBXManager_Record_Model extends Vtiger_Record_Model{ return true; } - public static function getInstanceById($phonecallsid){ + public static function getInstanceById($phonecallsid, $module=null){ $db = PearDatabase::getInstance(); $record = new self(); $query = 'SELECT * FROM '.self::moduletableName.' WHERE pbxmanagerid=?'; diff --git a/pkg/vtiger/modules/PBXManager/templates/DetailViewHeaderTitle.tpl b/pkg/vtiger/modules/PBXManager/templates/DetailViewHeaderTitle.tpl index 6b45a82f0cf1aed60c6bb348e8f027503fd99e7d..16648e7752a4ad7b98690aec2c463886ec1751e5 100644 --- a/pkg/vtiger/modules/PBXManager/templates/DetailViewHeaderTitle.tpl +++ b/pkg/vtiger/modules/PBXManager/templates/DetailViewHeaderTitle.tpl @@ -18,8 +18,8 @@ {assign var=IMAGE_DETAILS value=$MODULE_INSTANCE->getImageDetails()} {if $IMAGE_DETAILS} {foreach key=ITER item=IMAGE_INFO from=$IMAGE_DETAILS} - {if !empty($IMAGE_INFO.path)} - <img src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" > + {if !empty($IMAGE_INFO.url)} + <img src="{$IMAGE_INFO.url}" alt="{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" > {else} <img src="{vimage_path('summary_Contact.png')}" class="summaryImg"/> {/if} diff --git a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php index bbf2864aa2adfcba7b57cbb48e83b70c0de17ddc..8b8a0a11cfd6adbe607f3cbeb3f19d5996a1b1ce 100644 --- a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php +++ b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/ListView.php @@ -48,8 +48,8 @@ class RecycleBin_ListView_Model extends Vtiger_ListView_Model { $queryGenerator = $this->get('query_generator'); $listViewContoller = $this->get('listview_controller'); - $orderBy = $this->get('orderby'); - $sortOrder = $this->get('sortorder'); + $orderBy = $this->getForSql('orderby'); + $sortOrder = $this->getForSql('sortorder'); $searchParams = $this->get('search_params'); if(empty($searchParams)) { diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/manifest.xml b/pkg/vtiger/translations/ItalianLanguagePack_it_it/manifest.xml index ddffd173b41b59e76b7db421dbe3eb23e208f17a..ac04a2458cb760768ebb0502d3c17c8f377f23dd 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/manifest.xml +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/manifest.xml @@ -4,7 +4,7 @@ <name>Italian</name> <label>IT Italian</label> <prefix>it_it</prefix> - <version>5.1.1</version> + <version>6.1.1</version> <dependencies> <vtiger_version>6.0.0rc</vtiger_version> <vtiger_max_version>7.*</vtiger_max_version> @@ -18,9 +18,9 @@ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License. ******************************************************************************** - * Language : Italiano + * Language : Italiano9 * Version : 5.1 - * Author : traduttori di vtiger italia info@vtiger-italia.net + * Author : traduttori di vtiger italia info@vtiger-italia.net, Massimiliano Vessi (maxint@tiscali.it) ******************************************************************************** ]]></inline> </license> diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Accounts.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Accounts.php index 478c9d5ccac200347114c911e92f84447b4470a5..84f93dad9d070331e65cd838e3ed1acc1b23e71e 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Accounts.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Accounts.php @@ -10,7 +10,7 @@ $languageStrings = array( 'Accounts' => 'Aziende' , 'SINGLE_Accounts' => 'Azienda' , - 'LBL_ADD_RECORD' => 'Add Organization' , + 'LBL_ADD_RECORD' => 'Aggiungi Azienda' , 'LBL_RECORDS_LIST' => 'Lista Aziende' , 'LBL_ACCOUNT_INFORMATION' => 'Informazioni Azienda' , 'LBL_SHOW_ACCOUNT_HIERARCHY' => 'Mostra gerarchia Aziende' , @@ -21,7 +21,7 @@ $languageStrings = array( 'Ticker Symbol' => 'Simbolo Ticker' , 'Member Of' => 'Membro di' , 'Employees' => 'Impiegati' , - 'Ownership' => 'Proprietà' , + 'Ownership' => 'Proprietà ' , 'SIC Code' => 'Codice SIC' , 'Other Email' => 'Altra Email' , 'Analyst' => 'Analista' , @@ -35,11 +35,11 @@ $languageStrings = array( 'Type' => 'Tipo' , 'LBL_START_DATE' => 'Data Inizio' , 'LBL_END_DATE' => 'Data Fine' , - 'LBL_DUPLICATES_EXIST' => 'Organization Name already exists', - 'LBL_COPY_SHIPPING_ADDRESS' => 'Indirizzo Copy spedizione' , // TODO: Review + 'LBL_DUPLICATES_EXIST' => 'Nome azienda già esistente', + 'LBL_COPY_SHIPPING_ADDRESS' => 'Copia Indirizzo spedizione' , // TODO: Review 'LBL_COPY_BILLING_ADDRESS' => 'Copia indirizzo di fatturazione' , // TODO: Review - 'LBL_IMAGE_INFORMATION' => 'Picture Profile', - 'Organization Image' => 'Organizzazione Immagine', + 'LBL_IMAGE_INFORMATION' => 'Immagine Profilo', + 'Organization Image' => 'Immagine Azienda', 'Other Phone' => 'Telefono Secondario', 'Phone' => 'Telefono Principale', @@ -47,10 +47,10 @@ $languageStrings = array( ); $jsLanguageStrings = array( - 'LBL_RELATED_RECORD_DELETE_CONFIRMATION' => 'Are you sure you want to Delete?', - 'LBL_DELETE_CONFIRMATION' => 'Deleting this Organization will remove its related Opportunities & Quotes. Are you sure you want to delete this Organization?', - 'LBL_MASS_DELETE_CONFIRMATION' => 'Deleting this Organization will remove its related Opportunities & Quotes. Are you sure you want to delete this Organization?', + 'LBL_RELATED_RECORD_DELETE_CONFIRMATION' => 'Sei sicuro che vuoi cancellarla?', + 'LBL_DELETE_CONFIRMATION' => 'Cancellando questa Azienda, cancellerai anche le sue oppertunità e preventivi. Sei sicuro di volercancellare questa Azienda?', + 'LBL_MASS_DELETE_CONFIRMATION' => 'Cancellando questa Azienda, cancellerai anche le sue oppertunità e preventivi. Sei sicuro di volercancellare questa Azienda?', - 'JS_DUPLICATE_CREATION_CONFIRMATION' => 'Organizzazione Nome Esiste già .Vuoi creare un record duplicato?', + 'JS_DUPLICATE_CREATION_CONFIRMATION' => 'Nome dell\'Azienda già esistente. Vuoi creare un record duplicato?', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Assets.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Assets.php index ab8507b12b8d835b9a30d98343d384834e32cae0..4b2926bf08ccc1e1489e47f6b1239abc9a2aa713 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Assets.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Assets.php @@ -8,24 +8,24 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'SINGLE_Assets' => 'Asset' , - 'LBL_ADD_RECORD' => 'Add Assets' , - 'LBL_RECORDS_LIST' => 'Assets List' , - 'LBL_ASSET_INFORMATION' => 'Assest Details' , - 'Asset No' => 'Asset No' , - 'Serial Number' => 'Serial Number' , - 'Date Sold' => 'Date Sold' , - 'Date in Service' => 'Date in Service' , + 'SINGLE_Assets' => 'Reso' , + 'LBL_ADD_RECORD' => 'Aggiungi reso' , + 'LBL_RECORDS_LIST' => 'Lista resi' , + 'LBL_ASSET_INFORMATION' => 'Dettagli reso' , + 'Asset No' => 'N. reso' , + 'Serial Number' => 'Numero di serie' , + 'Date Sold' => 'Data venduto' , + 'Date in Service' => 'Data in Servizio' , 'Tag Number' => 'Tag Number' , - 'Invoice Name' => 'Invoice Name' , - 'Shipping Method' => 'Shipping Method' , - 'Shipping Tracking Number' => 'Shipping Tracking Number' , - 'Asset Name' => 'Asset Name' , + 'Invoice Name' => 'Nome fattura' , + 'Shipping Method' => 'Metodo di spedizione' , + 'Shipping Tracking Number' => 'Tracking Number spedizione' , + 'Asset Name' => 'Nome reso' , 'Customer Name' => 'Nome del Cliente' , - 'Notes' => 'Notes' , - 'In Service' => 'In Service' , - 'Out-of-service' => 'Out-of-service' , + 'Notes' => 'Note' , + 'In Service' => 'In Servizio' , + 'Out-of-service' => 'Fuori Servizio' , - 'Assets' => 'Attività ', + 'Assets' => 'Resi', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Calendar.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Calendar.php index 20f6b6a966cd4aa0ed07552dc48d343e941be096..d4673be98e7ebdbf82bf5b481094986bde768e6f 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Calendar.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Calendar.php @@ -8,24 +8,24 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'Calendar' => 'Calendar' , - 'SINGLE_Calendar' => 'Compito' , - 'LBL_ADD_TASK' => 'Add Compito' , + 'Calendar' => 'Calendario' , + 'SINGLE_Calendar' => 'Compito' , + 'LBL_ADD_TASK' => 'Add Compito' , 'LBL_ADD_EVENT' => 'Aggiungi Evento' , 'LBL_RECORDS_LIST' => 'Vista per Lista' , 'LBL_EVENTS' => 'Eventi' , 'LBL_TODOS' => 'Compito' , - 'LBL_CALENDAR_SETTINGS' => 'Calendar Settings' , // TODO: Review - 'LBL_CALENDAR_SHARING' => 'Calendar Sharing' , // TODO: Review - 'LBL_DEFAULT_EVENT_DURATION' => 'Default Event Duration' , // TODO: Review - 'LBL_CALL' => 'Call' , // TODO: Review - 'LBL_OTHER_EVENTS' => 'Other Events' , // TODO: Review - 'LBL_MINUTES' => 'Minutes' , // TODO: Review - 'LBL_SELECT_USERS' => 'Select Users' , // TODO: Review - 'LBL_EVENT_OR_TASK' => 'Evento / Compito' , + 'LBL_CALENDAR_SETTINGS' => 'Impostazioni Calendario' , + 'LBL_CALENDAR_SHARING' => 'Condivisione Calendario' , + 'LBL_DEFAULT_EVENT_DURATION' => 'Durata Evento standard' , + 'LBL_CALL' => 'Chiamata' , + 'LBL_OTHER_EVENTS' => 'Altri eventi' , + 'LBL_MINUTES' => 'Minuti' , + 'LBL_SELECT_USERS' => 'Seleziona utenti' , + 'LBL_EVENT_OR_TASK' => 'Evento / Compito' , 'LBL_TASK_INFORMATION' => 'Compito Informazione' , 'LBL_EVENT_INFORMATION' => 'Dettagli evento' , - 'Subject' => 'Soggetto' , + 'Subject' => 'Oggetto' , 'Start Date & Time' => 'Orario e data inizio' , 'Activity Type' => 'Tipo Attività' , 'Send Notification' => 'Manda Notifica' , @@ -35,10 +35,10 @@ $languageStrings = array( 'Recurrence' => 'Ricorrenza', 'Private' => 'Privato', 'Public' => 'Pubblico', - 'LBL_ACTIVITY_TYPES' => 'Activity Types' , + 'LBL_ACTIVITY_TYPES' => 'Tipo attività ' , 'LBL_CONTACTS_SUPPORT_END_DATE' => 'Data Fine Supporto' , - 'LBL_CONTACTS_BIRTH_DAY' => 'Date of Birth' , - 'LBL_ADDED_CALENDARS' => 'Added Calendars' , // TODO: Review + 'LBL_CONTACTS_BIRTH_DAY' => 'Data di nascita' , + 'LBL_ADDED_CALENDARS' => 'Calendari aggiunti' , // TODO: Review 'Call' => 'Chiamata' , 'Meeting' => 'Riunione' , 'Task' => 'Compito' , // TODO: Review @@ -54,23 +54,23 @@ $languageStrings = array( 'LBL_EVENT' => 'Evento' , 'LBL_TASK' => 'Compito' , 'LBL_TASKS' => 'Compito', - 'LBL_CALENDAR_VIEW' => 'Calendar View' , - 'LBL_SHARED_CALENDAR' => 'Shared Calendar' , // TODO: Review - 'LBL_DAY0' => 'Sunday' , // TODO: Review - 'LBL_DAY1' => 'Monday' , // TODO: Review - 'LBL_DAY2' => 'Tuesday' , // TODO: Review - 'LBL_DAY3' => 'Wednesday' , // TODO: Review - 'LBL_DAY4' => 'Thursday' , // TODO: Review - 'LBL_DAY5' => 'Friday' , // TODO: Review - 'LBL_DAY6' => 'Saturday' , // TODO: Review - 'first' => 'First' , // TODO: Review - 'last' => 'Last' , // TODO: Review - 'LBL_DAY_OF_THE_MONTH' => 'day of the month' , // TODO: Review + 'LBL_CALENDAR_VIEW' => 'Vista Calendario' , + 'LBL_SHARED_CALENDAR' => 'Calendario Condiviso' , // TODO: Review + 'LBL_DAY0' => 'Domenica' , // TODO: Review + 'LBL_DAY1' => 'Lunedì' , // TODO: Review + 'LBL_DAY2' => 'Martedì' , // TODO: Review + 'LBL_DAY3' => 'Mercoledì' , // TODO: Review + 'LBL_DAY4' => 'Giovedì' , // TODO: Review + 'LBL_DAY5' => 'Venerdì' , // TODO: Review + 'LBL_DAY6' => 'Sabato' , // TODO: Review + 'first' => 'Primo' , // TODO: Review + 'last' => 'Ultimo' , // TODO: Review + 'LBL_DAY_OF_THE_MONTH' => 'giorno del mese' , // TODO: Review 'LBL_ON' => 'on' , // TODO: Review - 'Daily' => 'Day(s)' , // TODO: Review - 'Weekly' => 'Week(s)' , // TODO: Review - 'Monthly' => 'Month(s)' , // TODO: Review - 'Yearly' => 'Year' , // TODO: Review + 'Daily' => 'Giorni' , // TODO: Review + 'Weekly' => 'Settimane' , // TODO: Review + 'Monthly' => 'Mesi' , // TODO: Review + 'Yearly' => 'Anno' , // TODO: Review 'LBL_DEFAULT_STATUS_TYPE' => 'Predefinito Stato e tipo' , 'LBL_STATUS' => 'Stato' , 'LBL_TYPE' => 'Tipo' , @@ -152,84 +152,84 @@ $languageStrings = array( 'LBL_TOTAL_TASKS_DUPLICATED' => 'Numero di Task duplicati saltato', ); $jsLanguageStrings = array( - 'LBL_ADD_EVENT_TASK' => 'Add Event / Compito' , - 'JS_TASK_IS_SUCCESSFULLY_ADDED_TO_YOUR_CALENDAR' => 'Compito is successfully added to your Calendar', // TODO: Review - 'LBL_CANT_SELECT_CONTACT_FROM_LEADS' => 'Impossibile selezionare i contatti correlati per cavi', // TODO: Review - 'JS_FUTURE_EVENT_CANNOT_BE_HELD' => 'Non possiamo essere ritenuti Per Futuro', + 'LBL_ADD_EVENT_TASK' => 'Aggiungi Evento / Compito' , + 'JS_TASK_IS_SUCCESSFULLY_ADDED_TO_YOUR_CALENDAR' => 'Il Compito è stato aggiunto con successo al tuo Calendario', + 'LBL_CANT_SELECT_CONTACT_FROM_LEADS' => 'Impossibile selezionare i contatti correlati per Opportunità ', + 'JS_FUTURE_EVENT_CANNOT_BE_HELD' => 'Gli eventi futuri non possono essere mantenuti', //Calendar view label translation - 'LBL_MONTH' => 'Month', - 'LBL_TODAY' => 'Today', - 'LBL_DAY' => 'Day', - 'LBL_WEEK' => 'Week', + 'LBL_MONTH' => 'Mese', + 'LBL_TODAY' => 'Oggi', + 'LBL_DAY' => 'Giorno', + 'LBL_WEEK' => 'Settimana', - 'LBL_SUNDAY' => 'Sunday', - 'LBL_MONDAY' => 'Monday', - 'LBL_TUESDAY' => 'Tuesday', - 'LBL_WEDNESDAY' => 'Wednesday', - 'LBL_THURSDAY' => 'Thursday', - 'LBL_FRIDAY' => 'Friday', - 'LBL_SATURDAY' => 'Saturday', + 'LBL_SUNDAY' => 'Domenica', + 'LBL_MONDAY' => 'Lunedì', + 'LBL_TUESDAY' => 'Martedì', + 'LBL_WEDNESDAY' => 'Mercoledì', + 'LBL_THURSDAY' => 'Giovedì', + 'LBL_FRIDAY' => 'Venerdì', + 'LBL_SATURDAY' => 'Sabatp', - 'LBL_SUN' => 'Sun', - 'LBL_MON' => 'Mon', - 'LBL_TUE' => 'Tue', - 'LBL_WED' => 'Wed', - 'LBL_THU' => 'Thu', - 'LBL_FRI' => 'Fri', - 'LBL_SAT' => 'Sat', + 'LBL_SUN' => 'Dom', + 'LBL_MON' => 'Lun', + 'LBL_TUE' => 'Mar', + 'LBL_WED' => 'Mer', + 'LBL_THU' => 'Gio', + 'LBL_FRI' => 'Ven', + 'LBL_SAT' => 'Sab', - 'LBL_JANUARY' => 'January', - 'LBL_FEBRUARY' => 'February', - 'LBL_MARCH' => 'March', - 'LBL_APRIL' => 'April', - 'LBL_MAY' => 'May', - 'LBL_JUNE' => 'June', - 'LBL_JULY' => 'July', - 'LBL_AUGUST' => 'August', - 'LBL_SEPTEMBER' => 'September', - 'LBL_OCTOBER' => 'October', - 'LBL_NOVEMBER' => 'November', - 'LBL_DECEMBER' => 'December', + 'LBL_JANUARY' => 'Gennaio', + 'LBL_FEBRUARY' => 'Febbraio', + 'LBL_MARCH' => 'Marzo', + 'LBL_APRIL' => 'Aprile', + 'LBL_MAY' => 'Maggio', + 'LBL_JUNE' => 'Giugno', + 'LBL_JULY' => 'Luglio', + 'LBL_AUGUST' => 'Agosto', + 'LBL_SEPTEMBER' => 'Settembre', + 'LBL_OCTOBER' => 'Ottobre', + 'LBL_NOVEMBER' => 'Novembre', + 'LBL_DECEMBER' => 'Dicembre', - 'LBL_JAN' => 'Jan', + 'LBL_JAN' => 'Gen', 'LBL_FEB' => 'Feb', 'LBL_MAR' => 'Mar', 'LBL_APR' => 'Apr', - 'LBL_MAY' => 'May', - 'LBL_JUN' => 'Jun', - 'LBL_JUL' => 'Jul', - 'LBL_AUG' => 'Aug', - 'LBL_SEP' => 'Sep', - 'LBL_OCT' => 'Oct', + 'LBL_MAY' => 'Mag', + 'LBL_JUN' => 'Giu', + 'LBL_JUL' => 'Lug', + 'LBL_AUG' => 'Ago', + 'LBL_SEP' => 'Set', + 'LBL_OCT' => 'Ott', 'LBL_NOV' => 'Nov', - 'LBL_DEC' => 'Dec', + 'LBL_DEC' => 'Dic', - 'LBL_ALL_DAY' => 'All-Day', + 'LBL_ALL_DAY' => 'Tutto il giorno', //End //Fixing colors for Shared Calendar and My Calendar - 'JS_CALENDAR_VIEW_COLOR_UPDATED_SUCCESSFULLY' => 'Vista calendario colore aggiornato con successo', - 'JS_CALENDAR_VIEW_DELETE_CONFIRMATION' => 'Sei sicuro di voler eliminare questo punto di vista Calendar?', - 'JS_CALENDAR_VIEW_ADDED_SUCCESSFULLY' => 'Calendar View aggiunto con successo', - 'JS_CALENDAR_VIEW_DELETED_SUCCESSFULLY' => 'Calendario Vista eliminata correttamente', - 'JS_NO_CALENDAR_VIEWS_TO_ADD' => 'No Calendar View per aggiungere', + 'JS_CALENDAR_VIEW_COLOR_UPDATED_SUCCESSFULLY' => 'Vista colori calendario aggiornato con successo', + 'JS_CALENDAR_VIEW_DELETE_CONFIRMATION' => 'Sei sicuro di voler eliminare questo Vista del Calendario?', + 'JS_CALENDAR_VIEW_ADDED_SUCCESSFULLY' => 'Vista Calendario aggiunta con successo', + 'JS_CALENDAR_VIEW_DELETED_SUCCESSFULLY' => 'Vista Calendario eliminata correttamente', + 'JS_NO_CALENDAR_VIEWS_TO_ADD' => 'Nessuna Vista Calendario da aggiungere', 'JS_EDIT_CALENDAR' => 'Modifica Calendario', 'LBL_TOMORROW' => 'Domani', 'JS_EVENT_UPDATED' => 'Evento Aggiornato', 'JS_NO_EVENTS_F0R_THE_DAY' => 'Nessun evento per il giorno', 'LBL_AGENDA' => 'Agenda', - 'JS_CALENDAR_VIEW_YOU_ARE_EDITING_NOT_FOUND' => 'Visualizzazione del calendario non trovato', + 'JS_CALENDAR_VIEW_YOU_ARE_EDITING_NOT_FOUND' => 'Vista Calendario non trovata', 'JS_DELETE' => 'Eliminare', 'JS_EDIT' => 'Modifica', - 'JS_MARK_AS_HELD' => 'Marco tenuta', + 'JS_MARK_AS_HELD' => 'Segna come sospesa', 'JS_CREATE_FOLLOW_UP' => 'Creare follow-up', 'JS_RECURRING_EVENT' => 'Evento ricorrente', - 'JS_DETAILS' => 'Più Dettagli', + 'JS_DETAILS' => 'Più Dettagli', 'JS_CHECK_START_AND_END_DATE' => 'Fine-Data e Ora deve essere maggiore o uguale alla Data di Inizio e Ora', 'JS_CHECK_START_AND_END_DATE_SHOULD_BE_GREATER' => 'Fine-Data e Ora dovrebbe essere maggiore di Data di Inizio e Ora', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php index 639226a90fb487a220dc45ca0a9d5c030e086926..9447e119dcc780597d77867a9d8d04ba18001d3a 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php @@ -10,8 +10,8 @@ $languageStrings = array( 'Campaigns' => 'Campagne' , 'SINGLE_Campaigns' => 'Campagna' , - 'LBL_ADD_RECORD' => 'Add Campaign' , - 'LBL_RECORDS_LIST' => 'Campaigns List' , + 'LBL_ADD_RECORD' => 'Aggiungi Campagna' , + 'LBL_RECORDS_LIST' => 'Lista Campaigne' , 'LBL_CAMPAIGN_INFORMATION' => 'Informazioni Campagna' , 'LBL_EXPECTATIONS_AND_ACTUALS' => 'Previsti & Effettivi' , 'Campaign Name' => 'Nome Campagna' , @@ -35,7 +35,7 @@ $languageStrings = array( 'Actual ROI' => 'ROI Effettivo' , 'Webinar' => 'Webinar' , 'Referral Program' => 'Programma di Riferimento' , - 'Advertisement' => 'Pubblicità' , + 'Advertisement' => 'Pubblicità ' , 'Banner Ads' => 'Banner' , 'Direct Mail' => 'Mail Diretta' , 'Telemarketing' => 'Telemarketing' , @@ -49,11 +49,11 @@ $languageStrings = array( 'Average' => 'Medio' , 'Poor' => 'Scarso' , '--None--' => '--Nessuno--' , - 'Contacted - Successful' => 'Contacted - Successful' , - 'Contacted - Unsuccessful' => 'Contacted - Unsuccessful' , - 'Contacted - Never Contact Again' => 'Contacted - Never Contact Again', + 'Contacted - Successful' => 'Contattati - Con Successo' , + 'Contacted - Unsuccessful' => 'Contattati - Senza Successo' , + 'Contacted - Never Contact Again' => 'Contattati - Non contattare più', ); $jsLanguageStrings = array( 'JS_APPENDED_TO_EXISTING_LIST' => "%s dalla lista selezionata verrà allegato con l'elenco esistente.", -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Contacts.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Contacts.php index 93bdd09d489d3703eb171b216414b6300d91c598..c3bace91e3ac4a8cdb6c54906ce97e63978ec887 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Contacts.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Contacts.php @@ -10,13 +10,13 @@ $languageStrings = array( 'Contacts' => 'Contatti' , 'SINGLE_Contacts' => 'Contatto' , - 'LBL_ADD_RECORD' => 'Add Contact' , - 'LBL_RECORDS_LIST' => 'Contacts List' , + 'LBL_ADD_RECORD' => 'Aggiungi Contatto' , + 'LBL_RECORDS_LIST' => 'Lista Contatti' , 'LBL_CONTACT_INFORMATION' => 'Informazioni Contatto' , 'LBL_CUSTOMER_PORTAL_INFORMATION' => 'Informazioni Portale Clienti', 'LBL_IMAGE_INFORMATION' => 'Informazioni Immagine Contatto:', - 'LBL_COPY_OTHER_ADDRESS' => 'Copia Altro indirizzo' , // TODO: Review - 'LBL_COPY_MAILING_ADDRESS' => 'Copia Indirizzo postale' , // TODO: Review + 'LBL_COPY_OTHER_ADDRESS' => 'Copia Altro indirizzo' , + 'LBL_COPY_MAILING_ADDRESS' => 'Copia Indirizzo postale' , 'Office Phone' => 'Telefono Ufficio' , 'Home Phone' => 'Telefono Casa' , 'Title' => 'Titolo' , @@ -29,13 +29,13 @@ $languageStrings = array( 'Reference' => 'Riferimento' , 'Portal User' => 'Utente Portale' , 'Mailing Street' => 'Via (spedizione)' , - 'Mailing City' => 'Città (spedizione)' , + 'Mailing City' => 'Città (spedizione)' , 'Mailing State' => 'Provincia (spedizione)' , 'Mailing Zip' => 'CAP (spedizione)' , 'Mailing Country' => 'Stato (spedizione)' , 'Mailing Po Box' => 'Casella postale di mailing' , 'Other Street' => 'Altra Via' , - 'Other City' => 'Altra Città' , + 'Other City' => 'Altra Città ' , 'Other State' => 'Altra Provincia' , 'Other Zip' => 'Altro CAP' , 'Other Country' => 'Altro Stato' , @@ -48,8 +48,8 @@ $languageStrings = array( 'Prof.' => 'Prof.' , 'User List' => 'Lista Utente' , 'Contact Id' => 'Contatto Id', - 'Support Start Date' => 'Supporto Data di inizio' , - 'Support End Date' => 'Data di supporto End' , + 'Support Start Date' => 'Inizio Data di supporto' , + 'Support End Date' => 'Fine Data di supporto' , 'LBL_TRANSACTIONS' => 'Transazioni', 'Other Phone' => 'Telefono Secondario', @@ -58,4 +58,4 @@ $languageStrings = array( ); $jsLanguageStrings = array( -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Documents.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Documents.php index 65d608acafd185fd857a5c6bca3542b4544aa508..acb25a3cc5281bbc4d3a3b7d93d406542cd11c0d 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Documents.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Documents.php @@ -9,9 +9,9 @@ ************************************************************************************/ $languageStrings = array( 'SINGLE_Documents' => 'Documento' , - 'Documents' => 'Documents' , // TODO: Review + 'Documents' => 'Documenti' , 'LBL_ADD_RECORD' => 'Add Document' , - 'LBL_RECORDS_LIST' => 'Documents List' , + 'LBL_RECORDS_LIST' => 'Lista Documenti' , 'LBL_NOTE_INFORMATION' => 'Informazioni Base' , 'LBL_FILE_INFORMATION' => 'Informazioni file' , 'LBL_DESCRIPTION' => 'Descrizione' , @@ -26,25 +26,25 @@ $languageStrings = array( 'Download Count' => 'Conteggio download' , 'Folder Name' => 'Nome cartella' , 'Document No' => '>Numero documento' , - 'Last Modified By' => 'Last Modified By' , - 'LBL_FOLDER_HAS_DOCUMENTS' => 'Please move documents from folder before deleting', + 'Last Modified By' => 'Ultima Modifica di' , + 'LBL_FOLDER_HAS_DOCUMENTS' => 'Per favore spostare i documenti dalla cartella prima di eliminarli', 'LBL_DOWNLOAD_FILE' => 'Download file' , 'LBL_CHECK_FILE_INTEGRITY' => 'Controllo di integrità ' , 'LBL_INTERNAL' => 'Interno' , 'LBL_EXTERNAL' => 'Esterno' , - 'LBL_MAX_UPLOAD_SIZE' => 'Maximum upload size' , + 'LBL_MAX_UPLOAD_SIZE' => 'Massima dimensione per i caricamenti' , 'LBL_MOVE' => 'Muovi' , 'LBL_ADD_FOLDER' => 'Aggiungi cartella' , - 'LBL_FOLDERS_LIST' => 'Folders List' , - 'LBL_FOLDERS' => 'Folders' , - 'LBL_DOCUMENTS_MOVED_SUCCESSFULLY' => 'Documents Moved Successfully', - 'LBL_DENIED_DOCUMENTS' => 'Denied Documents' , + 'LBL_FOLDERS_LIST' => 'Lista cartelle' , + 'LBL_FOLDERS' => 'Cartelle' , + 'LBL_DOCUMENTS_MOVED_SUCCESSFULLY' => 'Documenti Spostati con Successo', + 'LBL_DENIED_DOCUMENTS' => 'Documenti Negati' , 'MB' => 'MB' , 'LBL_ADD_NEW_FOLDER' => 'Aggiungi cartella' , 'LBL_FOLDER_NAME' => 'Nome cartella' , - 'LBL_FOLDER_DESCRIPTION' => 'Folder Description' , - 'LBL_FILE_AVAILABLE' => 'File is available for download', - 'LBL_FILE_NOT_AVAILABLE' => 'This Document is not available for Download', + 'LBL_FOLDER_DESCRIPTION' => 'Descrizione Cartella' , + 'LBL_FILE_AVAILABLE' => 'File disponibile per scaricamento', + 'LBL_FILE_NOT_AVAILABLE' => 'Questo documento non è disponibile per scaricamento', 'LBL_VIEW_FILE' => 'Visualizza File', 'LBL_PREVIEW_NOT_AVAILABLE' => 'Anteprima non disponibile', 'LBL_VIEW_FILE' => 'Visualizza File', @@ -77,21 +77,21 @@ $languageStrings = array( 'LBL_SELECT_A_FOLDER_TO_MOVE' => 'Si prega di selezionare una cartella di muoversi', ); $jsLanguageStrings = array( - 'JS_NEW_FOLDER' => 'New Folder' , - 'JS_MOVE_DOCUMENTS' => 'Move Documents' , - 'JS_ARE_YOU_SURE_YOU_WANT_TO_MOVE_DOCUMENTS_TO' => 'Are you sure you want to move the file(s) to', - 'JS_FOLDER' => 'folder' , - 'JS_OPERATION_DENIED' => 'Operation Denied' , - 'JS_FOLDER_IS_NOT_EMPTY' => 'Si prega Elimina / Sposta tutti i documenti contenuti nella cartella corrente prima di cancellarla', + 'JS_NEW_FOLDER' => 'Nuova Cartella' , + 'JS_MOVE_DOCUMENTS' => 'Sposta Documenti' , + 'JS_ARE_YOU_SURE_YOU_WANT_TO_MOVE_DOCUMENTS_TO' => 'Sei sicuro che vuoi spostare i file in', + 'JS_FOLDER' => 'cartella' , + 'JS_OPERATION_DENIED' => 'Operazione Negata' , + 'JS_FOLDER_IS_NOT_EMPTY' => 'Si prega Eliminare / Spostare tutti i documenti contenuti nella cartella corrente prima di cancellarla', 'JS_SPECIAL_CHARACTERS' => 'Caratteri speciali come', 'JS_NOT_ALLOWED' => 'non sono ammessi', - 'JS_DELETE_AND_TRASH_FILE_IN_DRIVE' => 'Eliminare file e trash in auto', + 'JS_DELETE_AND_TRASH_FILE_IN_DRIVE' => 'Eliminare file e cestino in Drive', 'JS_FAILED_TO_UPLOAD_FILE' => 'Impossibile caricare il file', 'JS_ARE_YOU_SURE_TO_REVOKE_ACCESS' => 'Sei sicuro di voler revocare l\'accesso?', 'JS_ACCESS_REVOKED' => 'Accesso revocato', - 'JS_DELETE_AND_TRASH_FILE_IN_DROPBOX' => 'Eliminare file e trash in dropbox', + 'JS_DELETE_AND_TRASH_FILE_IN_DROPBOX' => 'Eliminare file e cestino in dropbox', 'JS_UPLOAD_SUCCESSFUL' => 'Caricato con successo File', 'JS_UPLOAD_FAILED' => 'File Upload non riuscito', 'JS_DOCUMENT_CREATED' => 'Documento creato', 'JS_DOCUMENT_CREATION_FAILED' => 'La creazione di documenti fallita', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/EmailTemplates.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/EmailTemplates.php index 9d345dbfa978c1a86a9e7f4e94daa0ed0692dce1..df799e24dd8a531a4850c1d5a2976ea78ec6bda3 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/EmailTemplates.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/EmailTemplates.php @@ -8,25 +8,25 @@ * All Rights Reserved. *************************************************************************************/ $languageStrings = array( - 'Email Templates' => 'Email Template', - 'LBL_ADD_RECORD' => 'Add Email Template', - 'SINGLE_EmailTemplates' => 'Email Template', - 'LBL_EMAIL_TEMPLATES'=> 'Email Templates', - 'LBL_EMAIL_TEMPLATE' => 'Email Template', + 'Email Templates' => 'Modelli Email', + 'LBL_ADD_RECORD' => 'Aggiungi Modello Email', + 'SINGLE_EmailTemplates' => 'Modello Email', + 'LBL_EMAIL_TEMPLATES'=> 'Modelli Email', + 'LBL_EMAIL_TEMPLATE' => 'Modello Email', - 'LBL_TEMPLATE_NAME' => 'Template name', - 'LBL_DESCRIPTION' => 'Description', - 'LBL_SUBJECT' => 'Subject', - 'LBL_GENERAL_FIELDS' => 'General Fields', - 'LBL_SELECT_FIELD_TYPE' => 'Selezionare Module & Field', + 'LBL_TEMPLATE_NAME' => 'Nome Modello', + 'LBL_DESCRIPTION' => 'Descrizione', + 'LBL_SUBJECT' => 'Oggetto', + 'LBL_GENERAL_FIELDS' => 'Campi Generali', + 'LBL_SELECT_FIELD_TYPE' => 'Selezionare Modulo & Campo', 'LBL_MODULE_NAME' => 'Nome del modulo', - 'LBL_EMAIL_TEMPLATE_DESCRIPTION'=>'Manage templates for E-Mail module', - 'LBL_NO_PERMISSIONS_TO_DELETE_SYSTEM_TEMPLATE' => 'Non ci sono autorizzazioni per eliminare sistema Template', + 'LBL_EMAIL_TEMPLATE_DESCRIPTION'=>'Gestici modelli per modulo Email', + 'LBL_NO_PERMISSIONS_TO_DELETE_SYSTEM_TEMPLATE' => 'Non ci sono autorizzazioni per eliminare il Modello di Sistema', 'LBL_RECORD_ID' => 'ID record' , ); $jsLanguageStrings = array( - 'LBL_CUTOMER_LOGIN_DETAILS_TEMPLATE_DELETE_MESSAGE' => 'Non sarà in grado di inviare portale clienti dati d\'accesso al contatto se si elimina "Area Clienti Dettagli" template. Vuoi continuare?', - 'JS_REQUIRED_FIELD' => '* È necessaria messaggio', + 'LBL_CUTOMER_LOGIN_DETAILS_TEMPLATE_DELETE_MESSAGE' => 'Non sarà in grado di inviare portale clienti dati d\'accesso al contatto se si elimina il modello "Area Clienti Dettagli". Vuoi continuare?', + 'JS_REQUIRED_FIELD' => '* È un campo necessario', ); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Emails.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Emails.php index 0e8b06ecb4c3ceafc3be2fe65f71e0d9a9aff095..dd01e0609853ded5975d7e9919120a3a4595c1f4 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Emails.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Emails.php @@ -8,43 +8,43 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'SINGLE_Emails' => 'Email' , // TODO: Review - 'Emails' => 'Emails' , // TODO: Review - 'LBL_SELECT_EMAIL_IDS' => 'Select Email Addresses' , - 'LBL_SUBJECT' => 'Soggetto' , + 'SINGLE_Emails' => 'Email' , + 'Emails' => 'Le Email' , + 'LBL_SELECT_EMAIL_IDS' => 'Seleziona Indirizzo Email' , + 'LBL_SUBJECT' => 'Oggetto' , 'LBL_ATTACHMENT' => 'Allegato' , 'LBL_BROWSE_CRM' => 'Browse CRM' , 'LBL_SEND' => 'Invia' , - 'LBL_SAVE_AS_DRAFT' => 'Save as Draft' , - 'LBL_GO_TO_PREVIEW' => 'Go to Preview' , // TODO: Review + 'LBL_SAVE_AS_DRAFT' => 'Salva come Bozza' , + 'LBL_GO_TO_PREVIEW' => 'Vai all\'Anteprima' , 'LBL_SELECT_EMAIL_TEMPLATE' => 'Seleziona un Template Email' , 'LBL_COMPOSE_EMAIL' => 'Componi e-mail' , - 'LBL_TO' => 'To' , // TODO: Review + 'LBL_TO' => 'A' , 'LBL_CC' => 'CC :' , 'LBL_BCC' => 'CCN:' , - 'LBL_ADD_CC' => 'Add Cc' , - 'LBL_ADD_BCC' => 'Add Bcc' , - 'LBL_MAX_UPLOAD_SIZE' => 'Maximum upload size is' , - 'LBL_EXCEEDED' => 'Exceeded' , - 'LBL_FORWARD' => 'Forward' , // TODO: Review - 'LBL_PRINT' => 'Print' , // TODO: Review - 'LBL_DESCRIPTION' => 'Description' , // TODO: Review - 'LBL_FROM' => 'From' , // TODO: Review - 'LBL_INFO' => 'Info' , // TODO: Review - 'LBL_DRAFTED_ON' => 'Drafted on' , // TODO: Review - 'LBL_SENT_ON' => 'Sent on' , // TODO: Review - 'LBL_OWNER' => 'Owner' , // TODO: Review - 'Date & Time Sent' => 'Date Sent' , // TODO: Review - 'Time Start' => 'misit' , - 'LBL_EMAIL_INFORMATION' => 'E-mail Informazione', - 'LBL_EMAILTEMPLATE_WARNING' => 'Sono l unione-tag correggere', + 'LBL_ADD_CC' => 'Aggiungi Cc' , + 'LBL_ADD_BCC' => 'Aggiungi Ccn' , + 'LBL_MAX_UPLOAD_SIZE' => 'Massima dimensione per Upload è' , + 'LBL_EXCEEDED' => 'Troppo grande' , + 'LBL_FORWARD' => 'Inoltra' , + 'LBL_PRINT' => 'Stampa' , + 'LBL_DESCRIPTION' => 'Descrizione' , + 'LBL_FROM' => 'Da' , + 'LBL_INFO' => 'Info' , + 'LBL_DRAFTED_ON' => 'Bozza il' , + 'LBL_SENT_ON' => 'Spedita il' , + 'LBL_OWNER' => 'Proprietario' , + 'Date & Time Sent' => 'Data invio' , + 'Time Start' => 'Iniziato' , + 'LBL_EMAIL_INFORMATION' => 'Informazione E-mail', + 'LBL_EMAILTEMPLATE_WARNING' => 'Sono l\'unione-tag correggere', 'LBL_EMAILTEMPLATE_WARNING_CONTENT' => 'Si prega di assicurarsi che il modello selezionato dispone di unire-tag relativi al record destinatario. -                                            Se si invia una mail a piombo, ma l unione-tag appartieni Modulo di contatto (es: $contacts-lastname$), +                                            Se si invia una mail a un\'opportunità , ma l\'unione-tag appartiene al Modulo di contatto (es: $contacts-lastname$),                                             quindi non verranno uniti i valori.', 'Draft' => 'Bozza' , - 'Parent ID' => 'Parent Record', + 'Parent ID' => 'Record Padre', ); $jsLanguageStrings = array( 'JS_WARNING' => 'avviso', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Events.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Events.php index d2d411aa53232f4a114bcc369c8b63ab27802fea..b166a2bbcf1ff9f7e92150d7c53ba8219a027090 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Events.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Events.php @@ -10,24 +10,24 @@ $languageStrings = array( 'Events' => 'Eventi' , 'SINGLE_Events' => 'Evento' , - 'LBL_ADD_RECORD' => 'Add Event' , - 'LBL_RECORDS_LIST' => 'List View' , + 'LBL_ADD_RECORD' => 'Aggiungi Evento' , + 'LBL_RECORDS_LIST' => 'Vista Lista' , 'LBL_EVENTS' => 'Eventi' , 'LBL_TODOS' => 'Compito' , 'LBL_HOLD_FOLLOWUP_ON' => 'Tenere Followup On' , - 'LBL_CREATE_FOLLOWUP_EVENT' => 'Crea Follow Up Event' , + 'LBL_CREATE_FOLLOWUP_EVENT' => 'Crea Follow Up Evento' , 'LBL_EVENT_INFORMATION' => 'Dettagli evento' , - 'LBL_RECURRENCE_INFORMATION' => 'Recurrence Details' , - 'LBL_RELATED_TO' => 'Related To' , // TODO: Review + 'LBL_RECURRENCE_INFORMATION' => 'Dettagli Ricorrenza' , + 'LBL_RELATED_TO' => 'Relativo a' , 'Related To' => 'Relativi a' , 'Start Date & Time' => 'Data e Ora inizio' , 'Recurrence' => 'Ricorrenza' , - 'Send Notification' => 'Send Notification' , - 'Location' => 'Location' , - 'Send Reminder' => 'Send Reminder' , + 'Send Notification' => 'Invia Notifica' , + 'Location' => 'Luogo' , + 'Send Reminder' => 'Invia Promemoria' , 'End Date & Time' => 'Data e Ora Fine' , - 'End Date' => 'Data e Ora Fine' , - 'Activity Type' => 'Tipo Attività' , + 'End Date' => 'Data Fine' , + 'Activity Type' => 'Tipo Attività ' , 'Visibility' => 'Visibilità ' , 'Private' => 'Privato' , 'Public' => 'Pubblico' , @@ -36,42 +36,42 @@ $languageStrings = array( 'Planned' => 'Pianificato' , 'Held' => 'Tenuto' , 'Not Held' => 'Non Tenuto' , - 'LBL_DAYS' => 'Days' , - 'LBL_HOURS' => 'Hours' , - 'LBL_DAYS_TYPE' => 'Day(s)' , // TODO: Review - 'LBL_WEEKS_TYPE' => 'Week(s)' , // TODO: Review - 'LBL_MONTHS_TYPE' => 'Month(s)' , // TODO: Review - 'LBL_YEAR_TYPE' => 'Year' , // TODO: Review - 'LBL_FIRST' => 'First' , // TODO: Review - 'LBL_LAST' => 'Last' , // TODO: Review - 'LBL_SM_SUN' => 'Sun' , // TODO: Review - 'LBL_SM_MON' => 'Mon' , // TODO: Review - 'LBL_SM_TUE' => 'Tue' , // TODO: Review - 'LBL_SM_WED' => 'Wed' , // TODO: Review - 'LBL_SM_THU' => 'Thr' , // TODO: Review - 'LBL_SM_FRI' => 'Fri' , // TODO: Review - 'LBL_SM_SAT' => 'Sat' , // TODO: Review - 'LBL_DAY0' => 'Sunday' , // TODO: Review - 'LBL_DAY1' => 'Monday' , // TODO: Review - 'LBL_DAY2' => 'Tuesday' , // TODO: Review - 'LBL_DAY3' => 'Wednesday' , // TODO: Review - 'LBL_DAY4' => 'Thursday' , // TODO: Review - 'LBL_DAY5' => 'Friday' , // TODO: Review - 'LBL_DAY6' => 'Saturday' , // TODO: Review - 'Daily' => 'Day(s)' , // TODO: Review - 'Weekly' => 'Week(s)' , // TODO: Review - 'Monthly' => 'Month(s)' , // TODO: Review - 'Yearly' => 'Year' , // TODO: Review - 'LBL_REPEATEVENT' => 'Una volta ogni' , // TODO: Review - 'LBL_UNTIL' => 'Until' , // TODO: Review - 'LBL_DAY_OF_THE_MONTH' => 'day of the month' , // TODO: Review - 'LBL_ON' => 'on' , // TODO: Review - 'LBL_CALENDAR_VIEW' => 'Calendar View' , - 'LBL_INVITE_USER_BLOCK' => 'Invite' , // TODO: Review - 'LBL_INVITE_USERS' => 'Invite Users' , // TODO: Review + 'LBL_DAYS' => 'Giorni' , + 'LBL_HOURS' => 'Ore' , + 'LBL_DAYS_TYPE' => 'Giorni' , + 'LBL_WEEKS_TYPE' => 'Settimane' , + 'LBL_MONTHS_TYPE' => 'Mesi' , + 'LBL_YEAR_TYPE' => 'Anno' , + 'LBL_FIRST' => 'Primo' , + 'LBL_LAST' => 'Ultimo' , + 'LBL_SM_SUN' => 'Dom' , + 'LBL_SM_MON' => 'Lun' , + 'LBL_SM_TUE' => 'Mar' , + 'LBL_SM_WED' => 'Mer' , + 'LBL_SM_THU' => 'Gio' , + 'LBL_SM_FRI' => 'Ven' , + 'LBL_SM_SAT' => 'Sab' , + 'LBL_DAY0' => 'Domenica' , + 'LBL_DAY1' => 'Lunedì' , + 'LBL_DAY2' => 'Martedì' , + 'LBL_DAY3' => 'Mercoledì' , + 'LBL_DAY4' => 'Giovedì' , + 'LBL_DAY5' => 'Venerdì' , + 'LBL_DAY6' => 'Sabato' , + 'Daily' => 'Giorni' , + 'Weekly' => 'Settimane' , + 'Monthly' => 'Mesi' , + 'Yearly' => 'Anno' , + 'LBL_REPEATEVENT' => 'Una volta ogni' , + 'LBL_UNTIL' => 'Fino' , + 'LBL_DAY_OF_THE_MONTH' => 'giorno del mese' , + 'LBL_ON' => 'il' , + 'LBL_CALENDAR_VIEW' => 'Vista Calendario' , + 'LBL_INVITE_USER_BLOCK' => 'Invita' , + 'LBL_INVITE_USERS' => 'Invita Utenti' , 'LBL_INVITE_PEOPLE' => 'Invita persone', 'INVITATION' => ' Invito ', 'Busy' => 'Occupato', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Faq.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Faq.php index 381a3bbf7854c1f7d4fb613e9d8c0c1130d66439..a632e0080633d84079e8616009aa524924ef787d 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Faq.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Faq.php @@ -10,17 +10,17 @@ $languageStrings = array( 'Faq' => 'FAQ' , 'SINGLE_Faq' => 'Faq' , - 'LBL_RECORDS_LIST' => 'FAQs List' , - 'LBL_ADD_RECORD' => 'Add FAQ' , + 'LBL_RECORDS_LIST' => 'Lista FAQ' , + 'LBL_ADD_RECORD' => 'Aggiungi FAQ' , 'LBL_FAQ_INFORMATION' => 'Informazione Faq' , 'LBL_COMMENT_INFORMATION' => 'Informazioni Commento' , 'Question' => 'Domanda' , 'Answer' => 'Risposta' , 'Comments' => 'Commenti' , - 'Faq No' => 'No. Faq' , + 'Faq No' => 'N. Faq' , 'General' => 'Generale' , 'Draft' => 'Bozza' , 'Published' => 'Pubblicato' , 'Obsolete' => 'Obsoleto' , 'LBL_SOLUTION' => 'SOLUZIONE' , -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Google.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Google.php index 33b5acdecf8390586df62f37a866ccbd46c4ba23..5747cb37f14169dd889fc749f64a8dde2bcc9a42 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Google.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Google.php @@ -10,8 +10,8 @@ $languageStrings = array( 'Map' => "Mappa", 'EXTENTIONNAME' => "Google", - 'LBL_UPDATES_CRM' => "Aggiornamenti in CRM", - 'LBL_UPDATES_GOOGLE' => "Aggiornamenti di Google", + 'LBL_UPDATES_CRM' => "Aggiornamenti CRM", + 'LBL_UPDATES_GOOGLE' => "Aggiornamenti Google", 'LBL_UPDATED' => "Aggiornato", 'LBL_ADDED' => "Aggiunto", 'LBL_DELETED' => "Soppresso", @@ -39,10 +39,10 @@ $languageStrings = array( 'LBL_PHONE' => 'Telefono', 'LBL_URL' => 'Url', 'LBL_CUSTOM' => 'Abitudine', - 'LBL_SELECT_SYNC_DIRECTION' => 'Selezionare Sync Direction', + 'LBL_SELECT_SYNC_DIRECTION' => 'Selezionare Direzione Sincronizzazione', 'LBL_BI_DIRECTIONAL_SYNC' => 'Sincronizza in entrambe le direzioni', - 'LBL_ONLY_SYNC_FROM_GOOGLE_TO_VTIGER' => 'Da Google a Vtiger solo', - 'LBL_ONLY_SYNC_FROM_VTIGER_TO_GOOGLE' => 'Da Vtiger a Google solo', + 'LBL_ONLY_SYNC_FROM_GOOGLE_TO_VTIGER' => 'Solo da Google a Vtiger', + 'LBL_ONLY_SYNC_FROM_VTIGER_TO_GOOGLE' => 'Solo da Vtiger a Google', 'Job Title' => 'Titolo', 'Company' => 'Azienda', 'Birthday' => 'Compleanno', @@ -62,23 +62,23 @@ $languageStrings = array( 'profile' => 'Profilo', 'blog' => 'Blog', 'home-page' => 'Homepage', - 'CALENDAR_SYNC_SETTINGS' => 'Calendario impostazioni di sincronizzazione', + 'CALENDAR_SYNC_SETTINGS' => 'Impostazioni Sincronizzazione Calendario', 'LBL_SELECT_GOOGLE_CALENDAR_TO_SYNC' => 'Seleziona Google Calendar', - 'LBL_SAVE_AND_START_SYNC' => 'Salvare e Start Sync', + 'LBL_SAVE_AND_START_SYNC' => 'Salvare e Cominciare Sincronizzazione', 'LBL_PRIMARY' => 'Primario', - 'LBL_SYNC_FROM_GOOGLE_TO_VTIGER' => 'Sync da google a vtiger', - 'LBL_SYNC_FROM_VTIGER_TO_GOOGLE' => 'Sincronizza dal vtiger to google', + 'LBL_SYNC_FROM_GOOGLE_TO_VTIGER' => 'Sincronizza da google a vtiger', + 'LBL_SYNC_FROM_VTIGER_TO_GOOGLE' => 'Sincronizza da vtiger a google', 'LBL_GOOGLE_CONNECT_MSG' => 'Connettersi a un account Google per recuperare', 'LBL_SIGN_IN_WITH_GOOGLE' => 'Accedi con Google', - 'LBL_GOOGLE_ACCOUNT_DETAILS' => 'Google Account Details', + 'LBL_GOOGLE_ACCOUNT_DETAILS' => 'Dettagli Account Google', 'LBL_GOOGLE_ACCOUNT_SYNCED_WITH' => 'Google Account sincronizzati con', 'LBL_CHANGE_USER' => 'Cambia utente', 'LBL_SAVE_AND_IMPORT' => 'Salvare e Importare', - 'LBL_IMPORT_RESULTS_GOOGLE' => 'Google Importazione risultati', + 'LBL_IMPORT_RESULTS_GOOGLE' => 'Importazione risultati Google', 'LBL_REDIRECT_URL' => 'URL di reindirizzamento', - 'LBL_REDIRECT_URL_MESSAGE' => 'Copiare il seguente URL di reindirizzamento e incollare nel vostro progetto di autenticazione di Google come spettacoli di immagini', + 'LBL_REDIRECT_URL_MESSAGE' => 'Copiare il seguente URL di reindirizzamento e incollare nel vostro progetto di autenticazione di Google come mostra l\'immagine', ); $jsLanguageStrings = array( 'LBL_SYNC_BUTTON' => "Sincronizzare Ora", diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/HelpDesk.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/HelpDesk.php index 86ccff2b9a0496736552ddb580346249362814d6..ea447350d6eade6b5286f62124a733000a447f25 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/HelpDesk.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/HelpDesk.php @@ -10,18 +10,18 @@ $languageStrings = array( 'HelpDesk' => 'Assistenza Clienti' , 'SINGLE_HelpDesk' => 'Ticket' , - 'LBL_ADD_RECORD' => 'Add Ticket' , - 'LBL_RECORDS_LIST' => 'Ticket List' , + 'LBL_ADD_RECORD' => 'Aggiungi Ticket' , + 'LBL_RECORDS_LIST' => 'Lista Ticket' , 'LBL_TICKET_INFORMATION' => 'Informazioni Ticket' , 'LBL_TICKET_RESOLUTION' => 'Informazioni Soluzione' , - 'Ticket No' => 'Biglietto n.' , + 'Ticket No' => 'Ticket n.' , 'Severity' => 'Importanza' , 'Update History' => 'Storico Aggiornamenti' , 'Hours' => 'Orario' , 'Days' => 'Giorni' , 'Title' => 'Titolo' , 'Solution' => 'Soluzione' , - 'From Portal' => 'From Portal' , + 'From Portal' => 'Dal Portale' , 'Big Problem' => 'Grosso Problema' , 'Small Problem' => 'Piccolo Problema' , 'Other Problem' => 'Altro Problema' , @@ -37,21 +37,21 @@ $languageStrings = array( 'Closed' => 'Chiuso' , 'LBL_STATUS' => 'Stato' , 'LBL_SEVERITY' => 'Importanza' , - 'LBL_CONVERT_FAQ' => 'Convert to FAQ' , + 'LBL_CONVERT_FAQ' => 'Converti in FAQ' , 'LBL_RELATED_TO' => 'Relazionato a' , 'Related To' => 'Relativi a' , //added to support i18n in ticket mails 'Hi' => 'Salve', - 'Dear' => 'Gentile', - 'LBL_PORTAL_BODY_MAILINFO' => 'Il ticket è', + 'Dear' => 'Egr.', + 'LBL_PORTAL_BODY_MAILINFO' => 'Il ticket è', 'LBL_DETAIL' => 'i dettagli sono :', 'LBL_REGARDS' => 'Cordiali saluti', 'LBL_TEAM' => 'Gruppo Assistenza Clienti', 'LBL_TICKET_DETAILS' => 'Dettaglio ticket', 'created' => 'creato', 'replied' => 'risposto', - 'reply' => 'C'è una risposta a ', + 'reply' => 'C\'è una risposta a ', 'customer_portal' => 'nel Portale Clienti di vTiger', 'link' => 'Puoi usare il seguente link per visualizzare le risposte date:', 'Thanks' => 'Grazie', @@ -59,8 +59,8 @@ $languageStrings = array( //This label for customerportal. 'LBL_STATUS_CLOSED' => 'Closed',//Do not convert this label. This is used to check the status. If the status 'Closed' is changed in vtigerCRM server side then you have to change in customerportal language file also. - 'LBL_STATUS_UPDATE' => 'Lo stato del Ticket è aggiornato a', - 'LBL_COULDNOT_CLOSED' => 'Non è stato possibile chiudere il Ticket', + 'LBL_STATUS_UPDATE' => 'Lo stato del Ticket è aggiornato a', + 'LBL_COULDNOT_CLOSED' => 'Non è stato possibile chiudere il Ticket', 'LBL_CUSTOMER_COMMENTS' => 'Il Cliente ha fornito le seguenti informazioni aggiuntive alla tua risposta:', 'LBL_RESPOND' => 'Per cortesia rispondi al Ticket qui sopra il prima possibile.', 'LBL_SUPPORT_ADMIN' => 'Amministratore del Supporto Clienti', @@ -68,15 +68,15 @@ $languageStrings = array( 'LBL_RESPONSE_TO_TICKET_NUMBER' => 'Risposta al biglietto numero', 'LBL_CUSTOMER_PORTAL' => 'sul Portale Clienti - URGENTE', 'LBL_LOGIN_DETAILS' => 'Di seguito, i dettagli del tuo Login al Portale Clienti:', - 'LBL_MAIL_COULDNOT_SENT' => 'Non è stato possibile inviare la Mail', + 'LBL_MAIL_COULDNOT_SENT' => 'Non è stato possibile inviare la Mail', 'LBL_USERNAME' => 'Nome Utente :', 'LBL_PASSWORD' => 'Password :', 'LBL_SUBJECT_PORTAL_LOGIN_DETAILS' => 'Relativamente ai dettagli del tuo Login al Portale Clienti', 'LBL_GIVE_MAILID' => 'Prego inserire il tuo indirizzo e-mail', 'LBL_CHECK_MAILID' => 'Per cortesia controlla la tua e-mail per il Portale Clienti', - 'LBL_LOGIN_REVOKED' => 'Il tuo login è stato revocato. Si prega di contattare l'amministratore.', - 'LBL_MAIL_SENT' => 'Una mail è stata inviata al tuo indirizzo di posta con i dettagli del tuo Login al Portale Clienti', - 'LBL_ALTBODY' => 'Questo è il corpo del messaggio in testo semplice per client di posta non-HTML', + 'LBL_LOGIN_REVOKED' => 'Il tuo login è stato revocato. Si prega di contattare l\'amministratore.', + 'LBL_MAIL_SENT' => 'Una mail è stata inviata al tuo indirizzo di posta con i dettagli del tuo Login al Portale Clienti', + 'LBL_ALTBODY' => 'Questo è il corpo del messaggio in testo semplice per client di posta non-HTML', 'LBL_TICKET_NUMBER' => 'Numero Ticket', 'Contact Name' => 'Nome Del Contatto', @@ -90,4 +90,4 @@ $languageStrings = array( 'LBL_OPEN_TICKETS' => 'Biglietti Aperto', 'LBL_CREATE_TICKET' => 'Creare Biglietto', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Home.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Home.php index bd8f613ce08184dd01eace3e1450816e8a3f2100..0041789059b5c8c079753898508396b46d661de5 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Home.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Home.php @@ -12,7 +12,7 @@ $languageStrings = array( 'PLVT' => 'Migliori Opportunità ' , 'QLTQ' => 'Migliori Preventivi' , 'CVLVT' => 'Indici chiave' , - 'HLT' => 'Top Support Tickets' , + 'HLT' => 'Migliori Ticket di Supporto' , 'GRT' => 'I miei Gruppi' , 'OLTSO' => 'Ordini di Vendita Importanti', 'ILTI' => 'Fatture Importanti' , @@ -25,10 +25,10 @@ $languageStrings = array( 'LBL_SAVE_ORDER' => 'Salvare L\'Ordine', 'LBL_ADD_NEW_DASHBOARD' => 'Aggiungere un nuovo pannello', - 'LBL_MAX_CHARACTERS_ALLOWED_DASHBOARD' => 'Massimo 30 caratteri sono consentiti per il nome cruscotto.', + 'LBL_MAX_CHARACTERS_ALLOWED_DASHBOARD' => 'Sono consentiti Massimo 30 caratteri per il nome del cruscotto.', ); $jsLanguageStrings = array( 'JS_TAB_NAME_SHOULD_NOT_BE_EMPTY' => 'nome cruscotto non può non essere vuoto', 'JS_NO_DATA_AVAILABLE' => 'Nessun dato disponibile', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Import.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Import.php index bdad579cc9f8ad37cdf75cbaf569af3c2ffeba73..d3331dc4fee3061e6960408c6fa8d0247d5c1f12 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Import.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Import.php @@ -8,67 +8,67 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_IMPORT_STEP_1' => 'Step 1' , - 'LBL_IMPORT_STEP_1_DESCRIPTION' => 'Select File' , - 'LBL_IMPORT_SUPPORTED_FILE_TYPES' => ' Supported File Type(s): .CSV, .VCF', - 'LBL_IMPORT_STEP_2' => 'Step 2' , - 'LBL_IMPORT_STEP_2_DESCRIPTION' => 'Specify Format' , - 'LBL_FILE_TYPE' => 'File Type' , - 'LBL_CHARACTER_ENCODING' => 'Character Encoding' , + 'LBL_IMPORT_STEP_1' => 'Passo 1' , + 'LBL_IMPORT_STEP_1_DESCRIPTION' => 'Seleziona il File' , + 'LBL_IMPORT_SUPPORTED_FILE_TYPES' => 'Formati file supportati: .CSV, .VCF', + 'LBL_IMPORT_STEP_2' => 'Passo 2' , + 'LBL_IMPORT_STEP_2_DESCRIPTION' => 'Specificare il Formato' , + 'LBL_FILE_TYPE' => 'Tipo File' , + 'LBL_CHARACTER_ENCODING' => 'Codifica Caratteri' , 'LBL_DELIMITER' => 'Delimitatore:' , 'LBL_HAS_HEADER' => 'Ha un Header (Intestazione)' , - 'LBL_IMPORT_STEP_3' => 'Step 3' , - 'LBL_IMPORT_STEP_3_DESCRIPTION' => 'Duplicate Record Handling' , - 'LBL_IMPORT_STEP_3_DESCRIPTION_DETAILED' => 'Select this option to enable and set duplicate merge criteria', - 'LBL_SPECIFY_MERGE_TYPE' => 'Select how duplicate records should be handled', - 'LBL_SELECT_MERGE_FIELDS' => 'Select the matching fields to find duplicate records', + 'LBL_IMPORT_STEP_3' => 'Passo 3' , + 'LBL_IMPORT_STEP_3_DESCRIPTION' => 'Gestione Duplicati' , + 'LBL_IMPORT_STEP_3_DESCRIPTION_DETAILED' => 'Seleziona questa opzione per abilitare e impostare come gestire i duplicati', + 'LBL_SPECIFY_MERGE_TYPE' => 'Seleziona come dovrebbero essere gestiti i Duplicati', + 'LBL_SELECT_MERGE_FIELDS' => 'Seleziona i campi da incrociare per trovare i duplicati', 'LBL_AVAILABLE_FIELDS' => 'Campi disponibili' , 'LBL_SELECTED_FIELDS' => 'Campi su cui effettuare la corrispondenza', 'LBL_NEXT_BUTTON_LABEL' => 'Prossimo' , - 'LBL_IMPORT_STEP_4' => 'Step 4' , - 'LBL_IMPORT_STEP_4_DESCRIPTION' => 'Map the Columns to Module Fields', - 'LBL_FILE_COLUMN_HEADER' => 'Header' , - 'LBL_ROW_1' => 'Row 1' , - 'LBL_CRM_FIELDS' => 'CRM Fields' , - 'LBL_DEFAULT_VALUE' => 'Default Value' , - 'LBL_SAVE_AS_CUSTOM_MAPPING' => 'Save as Custom Mapping ' , + 'LBL_IMPORT_STEP_4' => 'Passo 4' , + 'LBL_IMPORT_STEP_4_DESCRIPTION' => 'Associare le Colonne ai Campi dei Moduli', + 'LBL_FILE_COLUMN_HEADER' => 'Intestazione' , + 'LBL_ROW_1' => 'Riga 1' , + 'LBL_CRM_FIELDS' => 'Campi CRM' , + 'LBL_DEFAULT_VALUE' => 'Valore di Default' , + 'LBL_SAVE_AS_CUSTOM_MAPPING' => 'Salva come Associazione personalizzata ' , 'LBL_IMPORT_BUTTON_LABEL' => 'Importa' , - 'LBL_RESULT' => 'Result' , - 'LBL_TOTAL_RECORDS_IMPORTED' => 'Records successfully imported', - 'LBL_NUMBER_OF_RECORDS_CREATED' => 'Records created' , - 'LBL_NUMBER_OF_RECORDS_UPDATED' => 'Records overwritten' , - 'LBL_NUMBER_OF_RECORDS_SKIPPED' => 'Records skipped' , - 'LBL_NUMBER_OF_RECORDS_MERGED' => 'Records merged' , - 'LBL_TOTAL_RECORDS_FAILED' => 'Records failed importing' , - 'LBL_IMPORT_MORE' => 'Importa di più' , - 'LBL_VIEW_LAST_IMPORTED_RECORDS' => 'Last Imported Records' , - 'LBL_UNDO_LAST_IMPORT' => 'Annulla la scorsa importazione', + 'LBL_RESULT' => 'Risultato' , + 'LBL_TOTAL_RECORDS_IMPORTED' => 'Record impostati con Successo', + 'LBL_NUMBER_OF_RECORDS_CREATED' => 'Record creati' , + 'LBL_NUMBER_OF_RECORDS_UPDATED' => 'Record sovrascritti' , + 'LBL_NUMBER_OF_RECORDS_SKIPPED' => 'Record saltati' , + 'LBL_NUMBER_OF_RECORDS_MERGED' => 'Record uniti' , + 'LBL_TOTAL_RECORDS_FAILED' => 'Record importazione fallita' , + 'LBL_IMPORT_MORE' => 'Importa di più' , + 'LBL_VIEW_LAST_IMPORTED_RECORDS' => 'Gli ultimi record Importati' , + 'LBL_UNDO_LAST_IMPORT' => 'Annulla l\'ultima importazione', 'LBL_FINISH_BUTTON_LABEL' => 'Fine' , - 'LBL_UNDO_RESULT' => 'Undo Import Result' , - 'LBL_TOTAL_RECORDS' => 'Total Number of Records' , - 'LBL_NUMBER_OF_RECORDS_DELETED' => 'Number of records deleted' , + 'LBL_UNDO_RESULT' => 'Annulla il risultato dell\'importazione' , + 'LBL_TOTAL_RECORDS' => 'Numero Totale di Record' , + 'LBL_NUMBER_OF_RECORDS_DELETED' => 'Numero di Record Cancellati' , 'LBL_OK_BUTTON_LABEL' => 'Ok' , - 'LBL_IMPORT_SCHEDULED' => 'Import Scheduled' , - 'LBL_RUNNING' => 'Running' , - 'LBL_CANCEL_IMPORT' => 'Cancel Import' , + 'LBL_IMPORT_SCHEDULED' => 'Importazione Programmata' , + 'LBL_RUNNING' => 'In Corso' , + 'LBL_CANCEL_IMPORT' => 'Cancella Importazione' , 'LBL_ERROR' => 'Errore:' , - 'LBL_CLEAR_DATA' => 'Clear Data' , - 'ERR_UNIMPORTED_RECORDS_EXIST' => 'Unable to import more data in this batch. Please start a new import.', - 'ERR_IMPORT_INTERRUPTED' => 'Current Import has been interrupted. Please try again later', - 'ERR_FAILED_TO_LOCK_MODULE' => 'Failed to lock the module for import. Re-try again later', - 'LBL_SELECT_SAVED_MAPPING' => 'Select Saved Mapping' , - 'LBL_IMPORT_ERROR_LARGE_FILE' => 'Import Error Large file ' , // TODO: Review - 'LBL_FILE_UPLOAD_FAILED' => 'File Upload Failed' , // TODO: Review - 'LBL_IMPORT_CHANGE_UPLOAD_SIZE' => 'Import Change Upload Size' , // TODO: Review - 'LBL_IMPORT_DIRECTORY_NOT_WRITABLE' => 'Import Directory is not writable', // TODO: Review - 'LBL_IMPORT_FILE_COPY_FAILED' => 'Import File copy failed' , // TODO: Review - 'LBL_INVALID_FILE' => 'Invalid File' , // TODO: Review - 'LBL_NO_ROWS_FOUND' => 'No rows found' , // TODO: Review - 'LBL_SCHEDULED_IMPORT_DETAILS' => 'Your import has been scheduled and will start within 15 minutes. You will receive an email after import is completed. <br> <br> - Please make sure that the Outgoing server and your email address is configured to receive email notification', // TODO: Review - 'LBL_DETAILS' => 'Details' , // TODO: Review - 'skipped' => 'Skipped Records' , // TODO: Review - 'failed' => 'Failed Records' , // TODO: Review + 'LBL_CLEAR_DATA' => 'Cancella i dati' , + 'ERR_UNIMPORTED_RECORDS_EXIST' => 'Incapace di importare altri dati in questa sessione. Per favore comincia un\'altra importazione.', // 'Unable to import more data in this batch. Please start a new import.', + 'ERR_IMPORT_INTERRUPTED' => 'L\'importazione corrente è stata interrotta. Per favore prova più tardi.', + 'ERR_FAILED_TO_LOCK_MODULE' => 'Non sono riuscito a bloccare il Modulo per l\'importazione. Prova più tardi.', + 'LBL_SELECT_SAVED_MAPPING' => 'Selezione un\'associazione salvata' , + 'LBL_IMPORT_ERROR_LARGE_FILE' => 'Errore: file di importazione troppo grande ' , + 'LBL_FILE_UPLOAD_FAILED' => 'Upload Fallito' , + 'LBL_IMPORT_CHANGE_UPLOAD_SIZE' => 'Cambia grandezza file da importare' , // TODO: Review + 'LBL_IMPORT_DIRECTORY_NOT_WRITABLE' => 'La cartella per l\'importazione non ha i permessi di scrittura', + 'LBL_IMPORT_FILE_COPY_FAILED' => 'Copia File Import Fallita' , // TODO: Review + 'LBL_INVALID_FILE' => 'File non Valido' , + 'LBL_NO_ROWS_FOUND' => 'Nessuna riga trovata' , + 'LBL_SCHEDULED_IMPORT_DETAILS' => 'La tua importazione è stata programmata a cominciare entro 15 minuti. Ricevera un\'emal quando sarà completata. <br> <br> + Controlla che la configurazione del Server per l\'invio della posta e il tuo indirizzo siano impostati correttamente.', // TODO: Review + 'LBL_DETAILS' => 'Dettagli' , + 'skipped' => 'Record saltati' , + 'failed' => 'Record falliti' , 'LBL_IMPORT_LINEITEMS_CURRENCY'=> 'Valuta (voci)', @@ -92,7 +92,7 @@ $languageStrings = array( 'LBL_IMPORT_COMPLETED' => 'Importazione Completata', 'LBL_IMPORT_SUMMARY' => 'Riepilogo di importazione', 'LBL_DELETION_COMPLETED' => 'La Cancellazione Completata', - 'LBL_TOTAL_RECORDS_SCANNED' => 'Totale record acquisita', + 'LBL_TOTAL_RECORDS_SCANNED' => 'Totale record acquisiti', 'LBL_SKIP_BUTTON' => 'Saltare', 'LBL_DUPLICATE_RECORD_HANDLING' => 'Duplica il record di movimentazione', 'LBL_IMPORT_FROM_VCF_FILE' => 'Importazione da file VCF', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Invoice.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Invoice.php index 58a7c0cc1f835e72794b61de0a6ab3dc04a55456..1aa9dc3de494feafffdb925cc385aaeb6432794b 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Invoice.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Invoice.php @@ -11,8 +11,8 @@ $languageStrings = array( 'Invoice' => 'Fatture' , 'SINGLE_Invoice' => 'Fattura' , 'LBL_EXPORT_TO_PDF' => 'Esporta in PDF' , - 'LBL_SEND_MAIL_PDF' => 'Send Email with PDF' , // TODO: Review - 'LBL_ADD_RECORD' => 'Add Invoice' , + 'LBL_SEND_MAIL_PDF' => 'Invia Email con PDF' , + 'LBL_ADD_RECORD' => 'Aggiungi Fattura' , 'LBL_RECORDS_LIST' => 'Lista fatture' , 'LBL_INVOICE_INFORMATION' => 'Informazioni Fattura' , 'Sales Order' => 'Ordine di Vendita' , @@ -21,19 +21,19 @@ $languageStrings = array( 'Purchase Order' => 'Ordine di Acquisto' , 'Sales Commission' => 'Commissioni Vendita' , 'Invoice No' => 'Fattura Numero' , - 'LBL_RECEIVED' => 'Received' , // TODO: Review - 'LBL_BALANCE' => 'Balance' , // TODO: Review + 'LBL_RECEIVED' => 'Ricevuta' , + 'LBL_BALANCE' => 'Saldo' , 'Sent' => 'Spedito' , 'Credit Invoice' => 'Fattura di Accredito' , 'Paid' => 'Pagato' , - 'AutoCreated' => 'AutoCreated' , + 'AutoCreated' => 'AutoCreato' , 'Cancel' => 'Annulla' , - 'LBL_NOT_A_BUNDLE' => 'Non � un Bundle', + 'LBL_NOT_A_BUNDLE' => 'Non è un Bundle', 'LBL_SUB_PRODUCTS' => 'Prodotti Sub', 'LBL_ACTION' => 'Azione', 'LBL_THIS' => 'Questo', - 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema.si prega di rimuovere o sostituire questo elemento', - 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema,si prega di rimuovere questa riga di elementi', + 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema. Si prega di rimuovere o sostituire questo elemento', + 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema, si prega di rimuovere questa riga di elementi', ); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Leads.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Leads.php index 0fc9fc5af418fedb35b8ae1cf2891dfaa0f37860..bd05a73c591c00866edccc168cc89a3f759e2f3f 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Leads.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Leads.php @@ -11,10 +11,10 @@ $languageStrings = array( 'Leads' => 'Leads' , 'SINGLE_Leads' => 'Lead' , 'LBL_RECORDS_LIST' => 'Leads List' , - 'LBL_ADD_RECORD' => 'Add Lead' , + 'LBL_ADD_RECORD' => 'Aggiungi Lead' , 'LBL_LEAD_INFORMATION' => 'Informazioni Lead' , - 'Lead No' => 'No. Lead' , - 'Company' => 'Società' , + 'Lead No' => 'N. Lead' , + 'Company' => 'Società ' , 'Designation' => 'Designazione' , 'Website' => 'Sito Web' , 'Industry' => 'Settore' , @@ -38,13 +38,13 @@ $languageStrings = array( 'Qualified' => 'Qualificato' , 'Warm' => 'Caldo' , 'LBL_CONVERT_LEAD' => 'Converti Lead:' , - 'LBL_TRANSFER_RELATED_RECORD' => 'Transfer related record to' , - 'LBL_CONVERT_LEAD_ERROR' => 'You have to enable either Organization or Contact to convert the Lead', - 'LBL_LEADS_FIELD_MAPPING_INCOMPLETE' => 'Leads Field Mapping is incomplete(Settings > Module Manager > Leads > Leads Field Mapping)', + 'LBL_TRANSFER_RELATED_RECORD' => 'Trasferisci recordo collegato a' , + 'LBL_CONVERT_LEAD_ERROR' => 'Devi aver abilitato o Aziende o Contatti per convertire il Lead', + 'LBL_LEADS_FIELD_MAPPING_INCOMPLETE' => 'La mappatura dei campi Leads è incompleta (Impostazioni > Module Manager > Leads > Leads Field Mapping)', 'LBL_LEADS_FIELD_MAPPING' => 'Leads Field Mapping' , - 'LBL_CUSTOM_FIELD_MAPPING' => 'Piombo Mappatura conversione dati' , - 'LBL_IMAGE_INFORMATION' => 'Foto di profilo', - 'Lead Image' => 'Immagine di piombo', + 'LBL_CUSTOM_FIELD_MAPPING' => 'Mappatura personalizzata dei dati Lead' , + 'LBL_IMAGE_INFORMATION' => 'Foto del profilo', + 'Lead Image' => 'Immagine del Lead', 'Phone' => 'Telefono Principale', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/MailManager.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/MailManager.php index 7054c6ed6f98f5041bde58d71efa2fbfe317fc69..432b7602268a3b4143bcacf07000d3c205684c25 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/MailManager.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/MailManager.php @@ -11,9 +11,9 @@ $languageStrings = array( 'MailManager' => 'Mail Manager', 'LBL_Folders' => 'Cartelle', - 'LBL_Newer' => 'Newer', + 'LBL_Newer' => 'Nuovi', 'LBL_Older' => 'Maggiore', - 'LBL_No_Mails_Found' => 'Nessun mails trovato.', + 'LBL_No_Mails_Found' => 'Nessun email trovata.', 'LBL_Go_Back' => 'Indietro', 'LBL_Reply_All' => 'Rispondi a tutti', 'LBL_Reply' => 'Rispondere', @@ -24,7 +24,7 @@ $languageStrings = array( 'LBL_Mailbox' => 'Cassetta della posta', 'LBL_Outbox' => 'CRM uscita', 'LBL_Like' => 'come', - 'LBL_Mail_Server' => 'Mail Nome server o indirizzo IP', + 'LBL_Mail_Server' => 'Nome server mail o indirizzo IP', 'LBL_Refresh' => 'Aggiorna', 'LBL_Cancel' => 'Cancellare', 'LBL_Send' => 'Inviare', @@ -32,13 +32,13 @@ $languageStrings = array( 'LBL_Forward' => 'Avanti', 'LBL_Remove' => 'Rimuovere', 'LBL_Associate' => 'Associate', - 'LBL_Create_Contact' => 'Creazione di contatto', + 'LBL_Create_Contact' => 'Creazione contatto', 'LBL_No_Matching_Record_Found' => 'Non ha prodotto risultati.', 'LBL_ACTIONS' => 'Azioni', 'LBL_Search' => 'Ricerca', 'LBL_Delete' => 'Cancellare', 'LBL_Username' => 'Nome utente', - 'LBL_Your_Mailbox_Account' => 'il tuo account di cassetta postale', + 'LBL_Your_Mailbox_Account' => 'il tuo account mail', 'LBL_Password' => 'Password', 'LBL_Account_Password' => "password dell'account", 'LBL_Protocol' => 'Protocollo', @@ -55,21 +55,21 @@ $languageStrings = array( 'LBL_FROM' => 'Da', 'LBL_TO' => 'a', 'LBL_CC' => 'CC', - 'LBL_BCC' => 'BCC', + 'LBL_BCC' => 'CCN', 'LBL_Date' => 'Data', 'LBL_Attachments' => 'Allegati', - 'LBL_EMAIL_TEMPLATES_LIST' => 'Email Templates', - 'LBL_SELECT_EMAIL_TEMPLATE' => 'Selezionare Email template', + 'LBL_EMAIL_TEMPLATES_LIST' => 'Modelli Email', + 'LBL_SELECT_EMAIL_TEMPLATE' => 'Selezionare Modello Email', 'LBL_ATTACHMENTS' => 'Allegato:', 'LBL_SELECT_DOCUMENTS' => 'Selezionare Documenti', 'LBL_IN' => 'in', 'LBL_FIND' => 'Trovare', - 'LBL_SAVE_NOW' => 'Save Now', - 'LBL_Drafts' => 'Dama', - 'LBL_NO_EMAILS_SELECTED' => 'Nessuna e-mail selezionate.', - 'LBL_SUBJECT' => 'Soggetto', + 'LBL_SAVE_NOW' => 'Salva adesso', + 'LBL_Drafts' => 'Bozza', + 'LBL_NO_EMAILS_SELECTED' => 'Nessuna e-mail selezionata.', + 'LBL_SUBJECT' => 'Oggetto', 'LBL_WRITE_ACCESS_FOR' => 'Accesso in scrittura per', - 'LBL_READ_ACCESS_FOR' => 'Leggi accesso', + 'LBL_READ_ACCESS_FOR' => 'Accesso in lettura per', 'LBL_MODULE_DENIED' => 'Modulo negato!', 'LBL_REFRESH_TIME' => 'Aggiorna Ora', 'LBL_NONE' => 'Nessuno', @@ -77,9 +77,9 @@ $languageStrings = array( 'LBL_10_MIN' => '10 Minuti', 'LBL_MOVE_TO' => 'Sposta in ...', 'LBL_MAILMANAGER_ADD_Contacts' => 'Aggiungi contatto', - 'LBL_MAILMANAGER_ADD_Accounts' => 'Aggiungi Organization', - 'LBL_MAILMANAGER_ADD_Leads' => 'Aggiungi piombo', - 'LBL_MAILMANAGER_ADD_Calendar' => 'Aggiungi evento / To Do', + 'LBL_MAILMANAGER_ADD_Accounts' => 'Aggiungi Azienda', + 'LBL_MAILMANAGER_ADD_Leads' => 'Aggiungi Lead', + 'LBL_MAILMANAGER_ADD_Calendar' => 'Aggiungi evento / Attività ', 'LBL_MAILMANAGER_ADD_HelpDesk' => 'Aggiungi Ticket', 'LBL_MAILMANAGER_ADD_Emails' => 'Allega Email', 'LBL_MAILMANAGER_ADD_ModComments' => 'Aggiungi un commento', @@ -98,12 +98,12 @@ $languageStrings = array( 'LBL_MAILBOX_DETAILS' => 'Aggiungi il tuo commento qui ...', 'LBL_DELETE_Mailbox' => 'Elimina cassetta postale', 'LBL_ACCOUNT_TYPE' => 'Tipo di account', - 'LBL_MODULE_DESCRIPTION' => "Mail Manager è un client di posta elettronica integrato che consente agli utenti di eseguire azioni relative CRM on-mail in arrivo. Esso consente di creare contatti, Contatti, Organizzazioni, Trouble Ticket e Attività dalle e-mail che si ricevono nella tua casella di posta. Dovrebbe email partita id del mittente con un record in vtiger CRM, è possibile eseguire altre azioni come, Montaggio e-mail, l'aggiunta di attività , il commento e biglietteria. Inoltre, è possibile gestire la composizione, rispondere, inoltrare messaggi di posta elettronica etc.", + 'LBL_MODULE_DESCRIPTION' => "Mail Manager è un client di posta elettronica integrato che consente agli utenti di eseguire azioni relative al CRM sulle email in arrivo. Esso ti aiuta creare Contatti, Aziende, Ticket di supporto e Attività dalle e-mail che si ricevono nella tua casella di posta. L'email del mittente dovrebbe coincidere con quella inserita nei record di VTiger CRM, è possibile eseguire altre azioni come: allegare e-mail, l'aggiunta di attività , il commento e supporto. Inoltre, è possibile gestire la composizione, rispondere, inoltrare messaggi di posta elettronica etc.", 'LBL_CHOOSE_EXISTING_FOLDER' => 'Scegli una cartella esistente', - 'LBL_CHOOSE_FOLDER_DESC' => 'Copie delle mail inviate per questo account verranno salvate nel predefinito <b> Posta inviata </ ​​b> cartella. <br> Se si desidera modificare il valore predefinito inviato cartella di posta, dopo aver creato la casella di posta clicca su < b> Impostazioni </ b> e <b> Modifica </ b> la cassetta postale.', + 'LBL_CHOOSE_FOLDER_DESC' => 'Copie delle mail inviate per questo account verranno salvate nella cartella predefinita <b> Posta inviata </ ​​b>. <br> Se si desidera modificare il valore predefinito della cartella Posta inviata, dopo aver creato la casella di posta clicca su < b> Impostazioni </ b> e <b> Modifica </ b> la cassetta postale.', 'LBL_CHOOSE_FOLDER' => 'Copie delle mail inviate per questo account verranno salvati in questa cartella.', 'LBL_SELECTED_FOLDER' => 'Cartella selezionata', - 'LBL_MAILMANAGER_ADD_Potentials' => 'Aggiungi Opportunity', + 'LBL_MAILMANAGER_ADD_Potentials' => 'Aggiungi Opportunità ', 'LBL_EDIT_MAILBOX' => 'Modifica Casella Postale', 'LBL_SELECT_ACCOUNT' => 'Selezionare Account', @@ -116,28 +116,28 @@ $languageStrings = array( 'LBL_NO_MAIL_SELECTED_DESC' => 'Nessun messaggio selezionato. Fare clic su posta elettronica per l\'anteprima.', 'LBL_FILES' => 'file', 'LBL_CC_SMALL' => 'Cc', - 'LBL_BCC_SMALL' => 'Bcc', + 'LBL_BCC_SMALL' => 'Ccn', 'LBL_MARK_AS_READ' => 'Segna come già letti', 'LBL_ADD_CALENDAR' => 'Aggiungi Attività ', 'LBL_ADD_EVENTS' => 'Aggiungi Evento', 'JSLBL_ENTER_VALID_EMAIL_ADDRESS' => 'Si prega di inserire un indirizzo email valido.', - 'JSLBL_MAILS_DELETED' => 'Mail(s eliminato con successo.', - 'JSLBL_MAILS_MARKED_UNREAD' => 'Mail(s contrassegnati come non letti.', - 'JSLBL_MAILS_MARKED_READ' => 'Mail(s contrassegnati come letti.', + 'JSLBL_MAILS_DELETED' => 'Email eliminata con successo.', + 'JSLBL_MAILS_MARKED_UNREAD' => 'Email contrassegnati come non letti.', + 'JSLBL_MAILS_MARKED_READ' => 'Email contrassegnati come letti.', 'LBL_MAILMANAGER_ADD_Cases' => 'Aggiungere Caso', ); $jsLanguageStrings = array( 'JSLBL_Body_Cannot_Be_Empty' => 'Corpo non può essere vuoto', - 'JSLBL_Loading_Please_Wait' => 'Loading Attendere prego', + 'JSLBL_Loading_Please_Wait' => 'Caricamento Attendere prego', 'JSLBL_Loading' => 'Caricamento', 'JSLBL_Settings' => 'Impostazioni', 'JSLBL_Opening' => 'Apertura', 'JSLBL_Deleting' => 'Eliminazione', 'JSLBL_Updating' => 'Aggiornamento', 'JSLBL_Associating' => 'Associare', - 'JSLBL_Saving_And_Verifying' => 'Saving & Verifica', + 'JSLBL_Saving_And_Verifying' => 'Salvare & Verificare', 'JSLBL_Failed_To_Open_Mail' => 'Impossibile aprire la posta', 'JSLBL_Finding_Relation' => 'Trovare relazione', 'JSLBL_Find_Relation_Now' => 'Trova rapporto ora', @@ -146,7 +146,7 @@ $jsLanguageStrings = array( 'JSLBL_Sending' => 'Invio', 'JSLBL_Replied' => 'Risposto', 'JSLBL_Failed_To_Send_Mail' => 'Impossibile inviare la posta', - 'JSLBL_Recepient_Cannot_Be_Empty' => 'Destinatario (To) non può essere vuoto', + 'JSLBL_Recepient_Cannot_Be_Empty' => 'Destinatario (A) non può essere vuoto', 'JSLBL_Subject_Cannot_Be_Empty' => 'Oggetto non può essere vuoto', 'JSLBL_Removing' => 'Rimozione', 'JSLBL_Choose_Server_Type' => 'Scegli il tipo di server', @@ -166,15 +166,15 @@ $jsLanguageStrings = array( 'JSLBL_UPLOAD_DROPFILES' => 'Drop dei file da caricare qui', 'JSLBL_UPLOAD_FILE' => 'Caricare', 'JSLBL_UPLOAD_DELETE' => '[X]', - 'JSLBL_UPLOAD_FAILED' => 'Mancato', + 'JSLBL_UPLOAD_FAILED' => 'Fallito', 'JSLBL_FILEUPLOAD_LIMIT_EXCEEDED' => 'File Upload Limite superato!', 'JSLBL_MAIL_SENT' => 'Posta inviata', 'JSLBL_EMAIL_FORMAT_INCORRECT' => 'Si prega di fornire indirizzo email corretto', - 'JSLBL_Saving' => 'Risparmio', - 'JSLBL_SaveWith_EmptySubject' => 'Risparmia con oggetto vuoto?', + 'JSLBL_Saving' => 'Salvataggio', + 'JSLBL_SaveWith_EmptySubject' => 'Salva con senza oggetto?', 'JSLBL_Delete' => 'Cancellare', - 'JSLBL_Drafts' => 'Dama', - 'JSLBL_PASSWORD_CANNOT_BE_EMPTY' => 'La password non può essere vuoto', + 'JSLBL_Drafts' => 'Bozza', + 'JSLBL_PASSWORD_CANNOT_BE_EMPTY' => 'La password non può essere vuota', 'JSLBL_SERVERNAME_CANNOT_BE_EMPTY' => 'Nome server non può essere vuoto', 'JSLBL_USERNAME_CANNOT_BE_EMPTY' => 'Nome utente non può essere vuoto', 'JSLBL_ACCOUNTNAME_CANNOT_EMPTY' => 'Nome organizzazione non può essere vuoto', @@ -184,30 +184,30 @@ $jsLanguageStrings = array( 'JSLBL_TO' => 'A:', 'JSLBL_CC' => 'Cc:', 'JSLBL_FORWARD_MESSAGE_TEXT' => '---------- Messaggio inoltrato ----------', - 'JSLBL_PLEASE_SELECT_ATLEAST_ONE_MAIL' => 'Si prega di selezionare almeno una posta', + 'JSLBL_PLEASE_SELECT_ATLEAST_ONE_MAIL' => 'Si prega di selezionare almeno un indirizzo email', 'JSLBL_PLEASE_SELECT_ATLEAST_ONE_RECORD' => 'Si prega di selezionare almeno un record', - 'JSLBL_MAIL_MOVED' => 'Mail (s) si è trasferito', - 'JSLBL_MOVING' => 'Posta Muoversi (s)', + 'JSLBL_MAIL_MOVED' => 'Email spostata', + 'JSLBL_MOVING' => 'Spostando le email', 'JSLBL_LOADING_FOLDERS' => 'Caricamento cartelle ..', 'JSLBL_ADD_COMMENT' => 'Aggiungi un commento', 'JSLBL_Yahoo' => 'Yahoo', 'JSLBL_CANNOT_ADD_EMPTY_COMMENT' => 'Il commento non può essere vuoto', 'JSLBL_NO_EMAILS_SELECTED' => 'Nessuna e-mail selezionate.', 'JSLBL_ENTER_SOME_VALUE' => 'Inserisci qualche stringa da cercare', - 'JSLBL_DRAFT_MAIL_SAVED' => 'Mail viene salvato in Bozze', - 'JS_FUTURE_EVENT_CANNOT_BE_HELD' => 'Non possiamo essere ritenuti Per Futuro', - 'LBL_DELETE_CONFIRMATION' => "Sei sicuro di voler cancellare l'e-mail (s) in modo permanente?", + 'JSLBL_DRAFT_MAIL_SAVED' => 'Email salvata in Bozze', + 'JS_FUTURE_EVENT_CANNOT_BE_HELD' => 'Gli eventi futuri non possono essere tenuti', + 'LBL_DELETE_CONFIRMATION' => "Sei sicuro di voler cancellare l'e-mail in modo permanente?", 'JS_DELETE_MAILBOX_SETTINGS_CONFIRMATION' => 'Sei sicuro di voler eliminare?', - 'JSLBL_NO_MAIL_SELECTED_DESC' => 'Nessun messaggio selezionato. Clicca su posta elettronica per l\'anteprima.', + 'JSLBL_NO_MAIL_SELECTED_DESC' => 'Nessun messaggio selezionato. Clicca su email per l\'anteprima.', 'JSLBL_FAILED_ADDING_COMMENT' => 'Impossibile aggiungere commento', 'MailManager' => 'Gestore Di Posta Elettronica', 'JSLBL_ENTER_VALID_EMAIL_ADDRESS' => 'Si prega di inserire un indirizzo email valido.', - 'JSLBL_MAILS_DELETED' => 'Mail(s eliminato con successo.', - 'JSLBL_MAILS_MARKED_UNREAD' => 'Mail(s contrassegnati come non letti.', - 'JSLBL_MAILS_MARKED_READ' => 'Mail(s contrassegnati come letti.', + 'JSLBL_MAILS_DELETED' => 'Mail eliminata con successo.', + 'JSLBL_MAILS_MARKED_UNREAD' => 'Mail contrassegnati come non letti.', + 'JSLBL_MAILS_MARKED_READ' => 'Mail contrassegnati come letti.', ); //Special Handling: Mix of language strings are used. -$languageStrings = array_merge($languageStrings, $jsLanguageStrings); \ No newline at end of file +$languageStrings = array_merge($languageStrings, $jsLanguageStrings); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Migration.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Migration.php index 7f2ef4bf95d1700f718a64685578e03a2c586528..78394f0545d9bd241a3080cbf3a36a69557f76b2 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Migration.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Migration.php @@ -8,12 +8,12 @@ * All Rights Reserved. *************************************************************************************/ $languageStrings = array( - 'LBL_VTIGER_MIGRATION' => 'Benvenuti in materia di migrazione Vtiger', - 'LBL_MIGRATION_COMPLETED' => 'Migrazione Completato', + 'LBL_VTIGER_MIGRATION' => 'Benvenuti in migrazione Vtiger', + 'LBL_MIGRATION_COMPLETED' => 'Migrazione Completata', 'LBL_MIGRATION_WIZARD' => 'Migrazione guidata', - 'LBL_PRIDE_BEING_ASSOCIATED' => 'Siamo orgogliosi di essere associati con voi.', - 'LBL_TALK_TO_US_AT_FORUMS' => 'Hai delle domande? Trova aiuto su Vtiger <a href="http://forums.vtiger.com" target="_blank"> Discussioni </a><br>', - 'LBL_DISCUSS_WITH_US_AT_BLOGS' => 'Per saperne di più su Vtiger seguici nostra <a href="http://blogs.vtiger.com" target="_blank">Blog</a>', + 'LBL_PRIDE_BEING_ASSOCIATED' => 'Siamo orgogliosi di essere associati a voi.', + 'LBL_TALK_TO_US_AT_FORUMS' => 'Hai delle domande? Trova aiuto su Vtiger <a href="http://forums.vtiger.com" target="_blank"> Forum </a><br>', + 'LBL_DISCUSS_WITH_US_AT_BLOGS' => 'Per saperne di più su Vtiger seguici sul <a href="http://blogs.vtiger.com" target="_blank">Blog</a>', 'LBL_CRM_DOCUMENTATION' => 'Vtiger6 Aiuto - <a href="http://wiki.vtiger.com/vtiger6" target="_blank">Documentaion</a> , <a href="http://www.youtube.com/vtiger" target="_blank">Video</a> <BR>', 'LBL_THANKS' => 'Grazie per aver utilizzato <b>vtiger CRM</b>', 'LBL_WE_AIM_TO_BE_BEST' => 'Miriamo ad essere - semplicemente il migliore', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ModComments.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ModComments.php index b98d446bf09f3b561d60bc0343a2879565aa0188..a5ecb9ef905484f333247f4c865804c76b1f4e25 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ModComments.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ModComments.php @@ -8,14 +8,14 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'SINGLE_ModComments' => 'Comment' , - 'LBL_RECORDS_LIST' => 'Comments List' , - 'LBL_MODCOMMENTS_INFORMATION' => 'Comments' , - 'LBL_OTHER_INFORMATION' => 'Other Information' , - 'LBL_ADDING_COMMENT' => 'Adding Comment' , - 'LBL_WRITE_YOUR_COMMENT_HERE' => 'Enter comments here' , - 'Comment' => 'Comment' , - 'Creator' => 'Creator' , + 'SINGLE_ModComments' => 'Commento' , + 'LBL_RECORDS_LIST' => 'Lista commenti' , + 'LBL_MODCOMMENTS_INFORMATION' => 'Commenti' , + 'LBL_OTHER_INFORMATION' => 'Altre informazioni' , + 'LBL_ADDING_COMMENT' => 'Aggiungi Commento' , + 'LBL_WRITE_YOUR_COMMENT_HERE' => 'Inserisci i commenti qui' , + 'Comment' => 'Commento' , + 'Creator' => 'Creatore' , 'Related To Comments' => 'Relazionato a' , 'LBL_COMMENTED_AT' => 'Ha commentato a' , ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PBXManager.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PBXManager.php index a6b1c5f45be734f83b63f81feaa41de05fe151a0..b5a4bfffb006dd9a507dd0055ad4b8552c3ea45a 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PBXManager.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PBXManager.php @@ -8,10 +8,10 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'Asterisk' => 'Asterisk' , + 'Asterisk' => 'Asterisco' , 'PBXManager' => 'Gestione chiamate' , 'SINGLE_PBXManager' => 'Gestione chiamate' , - 'LBL_CALL_INFORMATION' => 'Call Details' , + 'LBL_CALL_INFORMATION' => 'Dettagli chiamata' , 'Call From' => 'Chiamata da' , 'Call To' => 'Chiamata verso' , 'Time Of Call' => 'Durata chiamata' , diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Portal.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Portal.php index dc92aaf070a78b97dcd4007a881cd732e1cbeb53..22a0a7050fb41f380b31bd7843fc3df293f2ca64 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Portal.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Portal.php @@ -10,22 +10,22 @@ $languageStrings = array( 'Portal' => 'I nostri siti', 'LBL_ADD_BOOKMARK' => 'Aggiungi segnalibro', - 'LBL_BOOKMARK_NAME' => 'Bookmark Nome', - 'LBL_BOOKMARK_URL' => 'Bookmark Url', + 'LBL_BOOKMARK_NAME' => 'Nome Segnalibro', + 'LBL_BOOKMARK_URL' => 'Url Segnalibro', 'LBL_CREATED_ON' => 'Creato il', 'SINGLE_Portal' => 'Il nostro sito', - 'LBL_EDIT_BOOKMARK' => 'Edit Bookmark', - 'LBL_ENTER_BOOKMARK_NAME' => 'Inserisci Bookmark Nome', + 'LBL_EDIT_BOOKMARK' => 'Modifica Segnalibro', + 'LBL_ENTER_BOOKMARK_NAME' => 'Inserisci Nome Segnalibro', 'LBL_ENTER_URL' => 'Inserisci Url (www.example.com)', 'LBL_ADD_NEW_BOOKMARK' => 'Aggiungi nuovo segnalibro', - 'LBL_BOOKMARK_SAVED_SUCCESSFULLY' => 'Bookmark salvato con successo', + 'LBL_BOOKMARK_SAVED_SUCCESSFULLY' => 'Segnalibro salvato con successo', 'LBL_RECORD_DELETED_SUCCESSFULLY' => 'Record eliminato correttamente', 'LBL_OUR_SITES_LIST' => 'La nostra Lista Siti', 'LBL_BOOKMARKS_LIST' => 'Lista dei segnalibri', 'LBL_BOOKMARKS_DELETED_SUCCESSFULLY' => 'Segnalibri eliminati correttamente', - 'LBL_BOOKMARK' => 'Bookmark', + 'LBL_BOOKMARK' => 'Segnalibro', 'LBL_BOOKMARKS' => 'Segnalibri', - 'HTTP_ERROR' => 'Il sito che si sta tentando di aprire non è sicuro e potrebbe non aprire. Se si desidera comunque visualizzare la pagina web quindi è possibile fare clic sul bloccante contenuto nella barra degli indirizzi e abilitarlo.', + 'HTTP_ERROR' => 'Il sito che si sta tentando di aprire non è sicuro e potrebbe non aprirsi. Se si desidera comunque visualizzare la pagina web è possibile fare clic sul blocco contenuto nella barra degli indirizzi e abilitarlo.', ); $jsLanguageStrings = array( diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Potentials.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Potentials.php index 07ccf6139bea9e8b974903ea22ffbf1b1dccaa56..1dc7dd983e6f2ac589553c90317ade3841c013e6 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Potentials.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Potentials.php @@ -8,29 +8,29 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'Potentials' => 'Opportunita\'' , - 'SINGLE_Potentials' => 'Opportunità' , - 'LBL_ADD_RECORD' => 'Add Opportunity' , - 'LBL_RECORDS_LIST' => 'Opportunities List' , - 'LBL_OPPORTUNITY_INFORMATION' => 'Informazioni Opportunità', - 'Potential No' => 'No. Opportunità' , + 'Potentials' => 'Opportunità ' , + 'SINGLE_Potentials' => 'Opportunità ' , + 'LBL_ADD_RECORD' => 'Aggiungi opportunità ' , + 'LBL_RECORDS_LIST' => 'Lista opportunità ' , + 'LBL_OPPORTUNITY_INFORMATION' => 'Informazioni Opportunità ', + 'Potential No' => 'N. Opportunità ' , 'Amount' => 'Ammontare' , 'Next Step' => 'Step successivo' , 'Sales Stage' => 'Stadio di vendita' , - 'Probability' => 'Probabilità (%)' , + 'Probability' => 'Probabilità (%)' , 'Campaign Source' => 'Fonte Campagna' , - 'Forecast Amount' => 'Entrate Weighted' , - 'Funnel' => 'Sales Funnel' , - 'Potentials by Stage' => 'Opportunities by Stage' , - 'Total Revenue' => 'Revenue by Salesperson' , - 'Top Potentials' => 'Top Opportunities' , - 'Forecast' => 'Sales Forecast' , + 'Forecast Amount' => 'Entrate Stimate' , + 'Funnel' => 'Funnel Vendite' , + 'Potentials by Stage' => 'Opportunità per stadio' , + 'Total Revenue' => 'Ritorno per Venditore' , + 'Top Potentials' => 'Migliori Opportunità ' , + 'Forecast' => 'Previsione Vendite' , 'Prospecting' => 'In Prospettiva' , 'Qualification' => 'Qualificazione' , 'Needs Analysis' => 'Da Analizzare' , - 'Value Proposition' => 'Proposto il valore' , + 'Value Proposition' => 'Valore proposto' , 'Id. Decision Makers' => 'Potere decisionale' , - 'Perception Analysis' => 'Analisi di percezione' , + 'Perception Analysis' => 'Analisi della percezione' , 'Proposal/Price Quote' => 'Proposta/Preventivo Prezzo' , 'Negotiation/Review' => 'Trattativa/Revisione' , 'Closed Won' => 'Chiuso VINTO' , @@ -38,26 +38,26 @@ $languageStrings = array( '--None--' => '--Nessuno--' , 'Existing Business' => 'Business Esistente' , 'New Business' => 'Nuovo Business' , - 'LBL_EXPECTED_CLOSE_DATE_ON' => 'Expected to close on' , - 'LBL_RELATED_CONTACTS' => 'Related Contacts' , // TODO: Review - 'LBL_RELATED_PRODUCTS' => 'Related Products' , // TODO: Review - 'Related To' => 'Nome organizzazione' , + 'LBL_EXPECTED_CLOSE_DATE_ON' => 'Stima chiusura entro' , + 'LBL_RELATED_CONTACTS' => 'Contatti collegati' , + 'LBL_RELATED_PRODUCTS' => 'Prodotti collegati' , + 'Related To' => 'Nome Azienda' , 'Type' => 'Tipo' , //Convert Potentials 'LBL_CONVERT_POTENTIAL' => 'Convertire Opportunità ', - 'LBL_POTENTIALS_FIELD_MAPPING' => 'Opportunità Mapping Campo', - 'LBL_CONVERT_POTENTIALS_ERROR' => 'Devi abilitare progetto per convertire il Opportunity', + 'LBL_POTENTIALS_FIELD_MAPPING' => 'Mappatura Campo Opportunità ', + 'LBL_CONVERT_POTENTIALS_ERROR' => 'Devi abilitare Progetti per convertire l\'Opportunità ', 'LBL_POTENTIALS_FIELD_MAPPING_INCOMPLETE' => 'Opportunità campo Mapping è incompleta (Impostazioni> Gestione moduli> Opportunità > Opportunità campo Mapping)', 'LBL_CREATE_PROJECT' => 'Crea progetto', //Potentials Custom Field Mapping - 'LBL_CUSTOM_FIELD_MAPPING'=> 'Possibilità di progetto di mappatura', + 'LBL_CUSTOM_FIELD_MAPPING'=> 'Modifica la Mappatura dei Campi', 'Contact Name' => 'Nome Del Contatto', ); $jsLanguageStrings = array( - 'JS_SELECT_PROJECT_TO_CONVERT_LEAD' => 'La conversione richiede la selezione di progetti', + 'JS_SELECT_PROJECT_TO_CONVERT_LEAD' => 'Conversione richiede la selezione di Progetti', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PriceBooks.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PriceBooks.php index d28588fd848739a568aea603145bf9128fa35250..5f7537838704e53122e610b6fbc11dc76f6cf346 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PriceBooks.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PriceBooks.php @@ -10,12 +10,12 @@ $languageStrings = array( 'PriceBooks' => 'Listini' , 'SINGLE_PriceBooks' => 'Listino' , - 'LBL_ADD_RECORD' => 'Add Price Book' , - 'LBL_RECORDS_LIST' => 'Price Books List' , + 'LBL_ADD_RECORD' => 'Aggiungi Listino' , + 'LBL_RECORDS_LIST' => 'Lista Listini' , 'LBL_PRICEBOOK_INFORMATION' => 'Informazioni Listino:' , - 'LBL_EDIT_LIST_PRICE' => 'Edit List Price' , + 'LBL_EDIT_LIST_PRICE' => 'Modifica Listino' , 'Price Book Name' => 'Nome Listino' , - 'PriceBook No' => 'No Listino' , + 'PriceBook No' => 'N. Listino' , 'LBL_UNIT_PRICE' => 'Prezzo unitario', 'LBL_ADD_TO' => 'Aggiungere a', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Products.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Products.php index f6e1dbedd15aa88195e57febf5e80dbf290f3551..96e28708db6131f0631461283b14a06641a58f8a 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Products.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Products.php @@ -11,17 +11,17 @@ $languageStrings = array( 'Products' => 'Prodotti' , 'SINGLE_Products' => 'Prodotto' , 'LBL_ADD_RECORD' => 'Aggiungi Prodotto' , - 'LBL_RECORDS_LIST' => 'Products List' , + 'LBL_RECORDS_LIST' => 'Lista Prodotti' , 'LBL_PRODUCT_INFORMATION' => 'Informazioni Prodotto' , 'LBL_IMAGE_INFORMATION' => 'Informazioni Immagine Prodotto:', - 'LBL_STOCK_INFORMATION' => 'Informazioni Stock:' , + 'LBL_STOCK_INFORMATION' => 'Informazioni Magazzino:' , 'LBL_MORE_CURRENCIES' => 'Altre valute' , 'LBL_PRICES' => 'Prezzo prodotti' , 'LBL_PRICE' => 'Prezzo' , 'LBL_RESET_PRICE' => 'Annulla prezzo' , 'LBL_RESET' => 'Annulla' , - 'LBL_ADD_TO_PRICEBOOKS' => 'Add to PriceBooks' , - 'Product No' => 'No. prodotto' , + 'LBL_ADD_TO_PRICEBOOKS' => 'Aggiungi ai listini' , + 'Product No' => 'N. prodotto' , 'Part Number' => 'Numero di serie' , 'Product Active' => 'Prodotto Attivo' , 'Manufacturer' => 'Produttore' , @@ -29,19 +29,19 @@ $languageStrings = array( 'Website' => 'Sito Web' , 'Mfr PartNo' => 'Numero di Serie Produttore' , 'Vendor PartNo' => 'Numero di Serie Fornitore' , - 'Usage Unit' => 'Unità Utilizzo' , + 'Usage Unit' => 'Unità utilizzata' , 'Handler' => 'Responsabile' , 'Reorder Level' => 'Livello Riordino' , 'Tax Class' => 'Classe di Tasse' , 'Serial No' => 'Numero di Serie' , - 'Qty In Stock' => 'Quantità in Stock' , + 'Qty In Stock' => 'Quantità in Stock' , 'Product Sheet' => 'Specifiche Prodotto' , - 'Qty In Demand' => 'Quantità in richiesta', + 'Qty In Demand' => 'Quantità in richiesta', 'GL Account' => 'Codice Contabile' , 'Product Image' => 'Immagine Prodotto' , 'Unit Price' => 'Prezzo Unitario' , 'Commission Rate' => 'Tasso commissione (%)' , - 'Qty/Unit' => 'Quantità/Unità', + 'Qty/Unit' => 'Quantità e Unità ', '--None--' => '--Nessuno--' , 'Hardware' => 'Hardware' , 'Software' => 'Software' , @@ -71,11 +71,11 @@ $languageStrings = array( 'Sheet' => 'Foglio' , 'Spiral Binder' => 'Raccoglitore a spirale ' , 'Sq Ft' => 'Sq Ft' , - 'LBL_CONVERSION_RATE' => 'Conversion Rate' , // TODO: Review - 'LBL_PRODUCTSMOD_DISABLED' => 'Abilita Prodotti Modulo per visualizzare i prodotti', - 'LBL_SHOW_BUNDLE_IN_INVENTORY' => 'Mostra articoli fascio di fattura/Quotes/Sales Order/Ordine di Acquisto', + 'LBL_CONVERSION_RATE' => 'Tasso di conversione' , // TODO: Review + 'LBL_PRODUCTSMOD_DISABLED' => 'Abilita Prodotti per visualizzare i prodotti', + 'LBL_SHOW_BUNDLE_IN_INVENTORY' => 'Mostra articoli Bundle in Fattura/Preventivi/Vendite/Acquisti', 'LBL_BUNDLE_TOTAL_COST' => 'Costo totale del Bundle', - 'LBL_UPDATE_BUNDLE_PRICE' => 'Aggiornamento Bundle Prezzo', + 'LBL_UPDATE_BUNDLE_PRICE' => 'Aggiornamento Prezzo Bundle', 'LBL_PRODUCT_NAME' => 'Nome Del Prodotto', 'LBL_PRICE_QUANTITY' => 'Prezzo x Quantità ', @@ -83,8 +83,8 @@ $languageStrings = array( ); $jsLanguageStrings = array( - 'JS_SUB_PRODUCTS_WILL_BE_SHOWN_IN_INVENTORY' => 'Prodotti Sub verranno visualizzati nell"inventario', - 'JS_SUB_PRODUCTS_WILL_NOT_BE_SHOWN_IN_INVENTORY' => 'Prodotti secondari non verranno visualizzati nell"inventario', + 'JS_SUB_PRODUCTS_WILL_BE_SHOWN_IN_INVENTORY' => 'Prodotti Sub verranno visualizzati nel\'inventario', + 'JS_SUB_PRODUCTS_WILL_NOT_BE_SHOWN_IN_INVENTORY' => 'Prodotti secondari non verranno visualizzati nell\'inventario', 'JS_SUCCESSFULLY_CHANGED_BUNDLE_COST' => 'Costo totale cambiata con successo del fascio', - 'JS_DELETION_OR_IN_ACTIVATION_CHILD_PRODUCT_MESSAGE' => 'Questo prodotto fa parte di un pacchetto di prodotti. Il prezzo del pacchetto rimane invariato quando un elemento fascio viene eliminato o inattivato. Sei sicuro di voler continuare?', + 'JS_DELETION_OR_IN_ACTIVATION_CHILD_PRODUCT_MESSAGE' => 'Questo prodotto fa parte di un pacchetto di prodotti. Il prezzo del pacchetto rimane invariato quando un elemento Bundle viene eliminato o inattivato. Sei sicuro di voler continuare?', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Project.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Project.php index 135b7aafaec9e27e8d39d2e9ff0fad830b079b18..a945619f5183f1c4b87d9aaeeb5273167698d8f3 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Project.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Project.php @@ -10,42 +10,42 @@ $languageStrings = array( 'Project' => 'Progetto' , 'SINGLE_Project' => 'Progetto' , - 'LBL_ADD_RECORD' => 'Add Project' , - 'LBL_RECORDS_LIST' => 'Projects List' , + 'LBL_ADD_RECORD' => 'Aggiungi progetto' , + 'LBL_RECORDS_LIST' => 'Lista Progetti' , 'LBL_PROJECT_INFORMATION' => 'Informationi Progetto' , 'Project Name' => 'Nome Progetto' , 'Start Date' => 'Data di Inizio' , - 'Target End Date' => 'Target End Date' , - 'Actual End Date' => 'Actual End Date' , - 'Project No' => 'Project Number' , - 'Target Budget' => 'Target Budget' , - 'Project Url' => 'Project Url' , - 'Progress' => 'Progress' , + 'Target End Date' => 'Data finale obiettivo' , + 'Actual End Date' => 'Data finale effettiva' , + 'Project No' => 'N. Progetto' , + 'Target Budget' => 'Budget obiettivo' , + 'Project Url' => 'Url Progetto' , + 'Progress' => 'Progresso' , 'Type' => 'Tipo' , 'Related to' => 'Relativi a' , - 'LBL_TASKS_OPEN' => 'Tasks Open' , - 'LBL_TASKS_DUE' => 'Tasks Due' , - 'LBL_TASKS_COMPLETED' => 'Tasks Completed' , - 'LBL_PEOPLE' => 'People' , - 'LBL_CHARTS' => 'Charts' , - 'LBL_TASKS_LIST' => 'Tasks List' , // TODO: Review - 'LBL_MILESTONES' => 'Milestones' , // TODO: Review - 'LBL_TASKS' => 'Tasks' , // TODO: Review - 'LBL_STATUS_IS' => 'Status is' , // TODO: Review - 'LBL_STATUS' => 'Status' , // TODO: Review - 'LBL_TICKET_PRIORITY' => 'Priority' , // TODO: Review - 'LBL_DOWNLOAD_FILE' => 'Download File' , // TODO: Review - 'LBL_MILESTONES_LIST' => 'Lista Milestones' , + 'LBL_TASKS_OPEN' => 'Attività aperte' , + 'LBL_TASKS_DUE' => 'Attività Scadute' , + 'LBL_TASKS_COMPLETED' => 'Attività Completate' , + 'LBL_PEOPLE' => 'Persone' , + 'LBL_CHARTS' => 'Diagrammi' , + 'LBL_TASKS_LIST' => 'Lista Attività ' , + 'LBL_MILESTONES' => 'Stadio' , + 'LBL_TASKS' => 'Attività ' , + 'LBL_STATUS_IS' => 'Stato è' , + 'LBL_STATUS' => 'Stato' , + 'LBL_TICKET_PRIORITY' => 'Priorità ' , + 'LBL_DOWNLOAD_FILE' => 'Scarica File' , + 'LBL_MILESTONES_LIST' => 'Lista Stadi' , 'LBL_TASKS_HIGH' => 'Alta priorità ' , 'LBL_TASKS_NORMAL' => 'Priorità normale' , 'LBL_TASKS_LOW' => 'Bassa priorità ' , 'LBL_TASKS_OTHER' => 'Altre priorità ' , - 'LBL_SELECT_PROGRESS' => 'Progress - Tutti', + 'LBL_SELECT_PROGRESS' => 'Progresso - Tutti', 'LBL_SELECT_STATUS' => 'Stato - Tutto', //picklist values - 'prospecting' => 'Prospezione', - 'in progress' => 'In Progress', + 'prospecting' => 'Prospetti', + 'in progress' => 'In corso', 'initiated' => 'Avviato', 'waiting for feedback' => 'In attesa di un commento', 'on hold' => 'In attesa', @@ -67,10 +67,10 @@ $languageStrings = array( 'LBL_END_DATE' => 'data di fine', 'LBL_DURATION' => 'durata', 'LBL_INFO' => 'Info', - 'LBL_GANTT_INFO1' => 'Far scorrere sul lato destro del compito di ampliare la durata', - 'LBL_GANTT_INFO2' => 'Trascinare sul centro del compito sinistra o per cambiare iniziale e quella finale.', - 'LBL_EDIT_PROJECT_TASK_STATUS_COLOR' => 'Modifica del progetto Task Colore Stato', - 'LBL_SELECT_PROJECT_TASK_STATUS_COLOR' => 'Selezionare Progetto Task Colore Stato', + 'LBL_GANTT_INFO1' => 'Far scorrere sul lato destro dell\'attività per ampliare la durata', + 'LBL_GANTT_INFO2' => 'Spostare la sinistra o il centro dell\'attività per cambiare la data iniziale o finale.', + 'LBL_EDIT_PROJECT_TASK_STATUS_COLOR' => 'Modifica del Colore dello stato dell\'attività del Progetto', + 'LBL_SELECT_PROJECT_TASK_STATUS_COLOR' => 'Seleziona il colore dello stato dell\'attività del Progetto', 'LBL_SELECT_STATUS' => 'Selezionare Stato', 'LBL_EDIT_COLOR' => 'Modifica colore', ); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectMilestone.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectMilestone.php index 0c72ded4350ac2580b68a9256d5d069d15c3d210..5785c03d1b1c4cfa488f36b22565c3c366076c37 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectMilestone.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectMilestone.php @@ -8,16 +8,16 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'SINGLE_ProjectMilestone' => "Progetto Milestone", - 'LBL_ADD_RECORD' => "Aggiungi Milestone Progetto", - 'LBL_RECORDS_LIST' => "Progetto Lista Milestones", + 'SINGLE_ProjectMilestone' => "Progetto Stadio", + 'LBL_ADD_RECORD' => "Aggiungi Stadio Progetto", + 'LBL_RECORDS_LIST' => "Lista Stadi Progetto", 'LBL_PROJECTS_LIST' => "Lista Progetti", - 'LBL_TASKS_LIST' => "List Tasks", - 'LBL_MILESTONES_LIST' => "Lista Milestones", - 'LBL_PROJECT_MILESTONE_INFORMATION' => "Progetto Milestone Dettagli", - 'Project Milestone Name' => "Progetto Milestone Nome", - 'Milestone Date' => "Milestone Data", - 'Project Milestone No' => "Progetto Numero Milestone", + 'LBL_TASKS_LIST' => "List Attività ", + 'LBL_MILESTONES_LIST' => "Lista Stadi", + 'LBL_PROJECT_MILESTONE_INFORMATION' => "Dettagli Stadio del Progetto", + 'Project Milestone Name' => "Nome stadio del Progetto", + 'Milestone Date' => "Data Stadio", + 'Project Milestone No' => "N. Stadio del Progetto", 'Type' => 'Tipo' , //picklist values 'administrative' => 'Amministrativo', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php index 97af8c00dcd7e4c360b0e0cf8047a23cd421856d..d98e6039fdc352e6f59a1dd55ae613e540c850ea 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php @@ -8,19 +8,19 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'SINGLE_ProjectTask' => "Compito del progetto", + 'SINGLE_ProjectTask' => "Attività del progetto", 'LBL_ADD_RECORD' => "Aggiungi attività di progetto", - 'LBL_RECORDS_LIST' => "Progetto Elenco attività ", - 'LBL_PROJECT_TASK_INFORMATION' => "Progetto Task Dettagli", + 'LBL_RECORDS_LIST' => "Elenco Attività del Progetto", + 'LBL_PROJECT_TASK_INFORMATION' => "Dettagli Attività del Progetto", 'LBL_PROJECTS_LIST' => "Lista Progetti", - 'LBL_TASKS_LIST' => "List Tasks", - 'LBL_MILESTONES_LIST' => "Lista Milestones", - 'Project Task Name' => "Progetto Nome attività ", - 'Project Task No' => "Progetto Task No", - 'Project Task Number' => "Progetto Numero Task", + 'LBL_TASKS_LIST' => "List Attività ", + 'LBL_MILESTONES_LIST' => "Lista Stadi", + 'Project Task Name' => "Nome attività del Progetto", + 'Project Task No' => "Attività del Progetto N.", + 'Project Task Number' => "Numero Attività del Progetto", 'Status' => "Stato", 'Priority' => "Priorità ", - 'Progress' => "Progress", + 'Progress' => "Progresso", 'Type' => "Tipo", 'Worked Hours' => "Ore lavorate", 'Start Date' => "Data di inizio", @@ -33,15 +33,15 @@ $languageStrings = array( 'normal' => 'Normale', 'high' => 'Alto', 'Created Time' => "Tempo di creazione", - 'Modified Time' => "Tempo Modified", + 'Modified Time' => "Tempo Modifica", 'description' => "Descrizione", 'Assigned To' => "Assegnato a", 'Open' => "Aprire", - 'In Progress' => "In Progress", + 'In Progress' => "In corso", 'Completed' => "Completato", 'Deferred' => "Differite", 'Canceled' => "Cancellato", - 'LBL_NO_DATE_VALUE_MSG' => 'o Attività di progetto non hanno inizio e Data / o Fine', + 'LBL_NO_DATE_VALUE_MSG' => 'o Attività del Progetto non hanno Data di Inizio e/o Fine', 'Canceled ' => 'Annullata', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PurchaseOrder.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PurchaseOrder.php index ad5121f8a6b6d100d799405941faacadea06c6b5..6a13ef2c6e42c4c5374b1360981ec579e6eb081c 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PurchaseOrder.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/PurchaseOrder.php @@ -11,35 +11,33 @@ $languageStrings = array( 'PurchaseOrder' => 'Ordini d\'acquisto' , 'SINGLE_PurchaseOrder' => 'Ordini d\'acquisto' , 'LBL_EXPORT_TO_PDF' => 'Esporta in PDF' , - 'LBL_SEND_MAIL_PDF' => 'Send Email with PDF' , // TODO: Review + 'LBL_SEND_MAIL_PDF' => 'Invia Email con PDF' , 'LBL_ADD_RECORD' => 'Add Purchase Order' , 'LBL_RECORDS_LIST' => 'Lista Ordini Acquisto' , - 'LBL_COPY_SHIPPING_ADDRESS' => 'Indirizzo Copy spedizione' , // TODO: Review - 'LBL_COPY_BILLING_ADDRESS' => 'Copia indirizzo di fatturazione' , // TODO: Review + 'LBL_COPY_SHIPPING_ADDRESS' => 'Copia Indirizzo di spedizione' , + 'LBL_COPY_BILLING_ADDRESS' => 'Copia indirizzo di fatturazione' , 'LBL_PO_INFORMATION' => 'Informazione Ordine di Acquisto ', 'PurchaseOrder No' => 'Numero Ordine di Acquisto' , 'Requisition No' => 'Numero Richiesta' , 'Tracking Number' => 'Numero Tracking' , 'Sales Commission' => 'Commissioni Vendita' , - 'LBL_PAID' => 'Paid' , // TODO: Review - 'LBL_BALANCE' => 'Balance' , // TODO: Review + 'LBL_PAID' => 'Pagato' , + 'LBL_BALANCE' => 'Saldo' , S 'Received Shipment' => 'Spedizione Ricevuta' , 'LBL_LIST_PRICE' => 'Prezzo di listino', 'List Price' => 'Prezzo di listino', - 'LBL_COPY_COMPANY_ADDRESS' => 'Copia Company Indirizzo', - 'LBL_COPY_ACCOUNT_ADDRESS' => 'Copia Organizzazione Indirizzo', - - 'LBL_COPY_ACCOUNT_ADDRESS' => 'Copy Organization Address', - 'LBL_SELECT_ADDRESS_OPTION' => 'Selezionare Indirizzo per copiare', + 'LBL_COPY_COMPANY_ADDRESS' => 'Copia Indirizzo Azienda', + 'LBL_COPY_ACCOUNT_ADDRESS' => 'Copia Indirizzo Organizzazione', //TO review, Company vs Organization + 'LBL_SELECT_ADDRESS_OPTION' => 'Selezionare Indirizzo da copiare', 'LBL_BILLING_ADDRESS' => 'Indirizzo di fatturazione', - 'LBL_COMPANY_ADDRESS' => 'Azienda Indirizzo', - 'LBL_ACCOUNT_ADDRESS' => 'Organizzazione Indirizzo', - 'LBL_VENDOR_ADDRESS' => 'Venditore Indirizzo', - 'LBL_CONTACT_ADDRESS' => 'Contatto Indirizzo', + 'LBL_COMPANY_ADDRESS' => 'Indirizzo Azienda', + 'LBL_ACCOUNT_ADDRESS' => 'Indirizzo Organizzazione', + 'LBL_VENDOR_ADDRESS' => 'Indirizzo Fornitore', + 'LBL_CONTACT_ADDRESS' => 'Indirizzo Contatto', 'LBL_THIS' => 'Questo', - 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema.si prega di rimuovere o sostituire questo elemento', - 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema,si prega di rimuovere questa riga di elementi', + 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema. Si prega di rimuovere o sostituire questo elemento', + 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema, si prega di rimuovere questa riga di elementi', ); @@ -48,11 +46,11 @@ $jsLanguageStrings = array( 'JS_ORGANIZATION_NOT_FOUND_MESSAGE'=> "Si prega di selezionare una organizzazione prima di copiare l'indirizzo", 'JS_ACCOUNT_NOT_FOUND' => 'Organizzazione vuoto!!', 'JS_ACCOUNT_NOT_FOUND_MESSAGE' => "Seleziona una organizzazione prima di copiare l'indirizzo", - 'JS_VENDOR_NOT_FOUND' => 'Venditore vuoto', + 'JS_VENDOR_NOT_FOUND' => 'Fornitore vuoto', 'JS_VENDOR_NOT_FOUND_MESSAGE' => "Si prega di selezionare un fornitore prima di copiare l'indirizzo", 'JS_CONTACT_NOT_FOUND' => 'Contatto vuoto', 'JS_CONTACT_NOT_FOUND_MESSAGE' => "Si prega di selezionare un contatto prima di copiare l'indirizzo", - 'JS_PLEASE_REMOVE_LINE_ITEM_THAT_IS_DELETED' => 'Si prega di rimuovere la voce che viene eliminato', + 'JS_PLEASE_REMOVE_LINE_ITEM_THAT_IS_DELETED' => 'Si prega di rimuovere la riga di prodotto che viene eliminata', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Quotes.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Quotes.php index 440923127add791752eaf4d1c468cae322ddbcd4..7dcbb2956816f4a274c5b8ff72592ca5d5c84bfa 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Quotes.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Quotes.php @@ -11,11 +11,11 @@ $languageStrings = array( 'Quotes' => 'Preventivo' , 'SINGLE_Quotes' => 'Preventivo' , 'LBL_EXPORT_TO_PDF' => 'Esporta in PDF' , - 'LBL_SEND_MAIL_PDF' => 'Send Email with PDF' , // TODO: Review - 'LBL_ADD_RECORD' => 'Add Quote' , + 'LBL_SEND_MAIL_PDF' => 'Invia Email con PDF' , + 'LBL_ADD_RECORD' => 'Aggiungi Preventivo' , 'LBL_RECORDS_LIST' => 'Lista Preventivi' , 'LBL_QUOTE_INFORMATION' => 'Informazioni Preventivo' , - 'Quote No' => 'No. Preventivo' , + 'Quote No' => 'N. Preventivo' , 'Quote Stage' => 'Stadio Preventivo' , 'Valid Till' => 'Valido fino a' , 'Inventory Manager' => 'Responsabile inventario' , @@ -24,7 +24,7 @@ $languageStrings = array( 'Related To' => 'Relativi a' , 'LBL_THIS' => 'Questo', - 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema.si prega di rimuovere o sostituire questo elemento', - 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema,si prega di rimuovere questa riga di elementi', + 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema. Si prega di rimuovere o sostituire questo elemento', + 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema, si prega di rimuovere questa riga di elementi', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/RecycleBin.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/RecycleBin.php index a06c34ab662a2614eb8a03c4184c3335840e9022..d83f78e50ce3a009c9b0a3fbec36801a5d4331b8 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/RecycleBin.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/RecycleBin.php @@ -8,22 +8,22 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'Recycle Bin' => 'Recycle Bin' , // TODO: Review - 'RecycleBin' => 'Recycle Bin' , // TODO: Review - 'LBL_SELECT_MODULE' => 'Select Module' , // TODO: Review - 'LBL_EMPTY_RECYCLEBIN' => 'Empty Recycle Bin' , // TODO: Review - 'LBL_RESTORE' => 'Restore' , // TODO: Review - 'LBL_NO_PERMITTED_MODULES' => 'No permitted modules available', // TODO: Review - 'LBL_RECORDS_LIST' => 'Recycle Bin List' , // TODO: Review - 'LBL_NO_RECORDS_FOUND' => 'No records found to Restore in module', // TODO: Review + 'Recycle Bin' => 'Cestino' , + 'RecycleBin' => 'Cestino' , + 'LBL_SELECT_MODULE' => 'Seleziona Modulo' , + 'LBL_EMPTY_RECYCLEBIN' => 'Svuota Cestino' , + 'LBL_RESTORE' => 'Ripristina' , + 'LBL_NO_PERMITTED_MODULES' => 'Nessun modulo abilitato disponibile', + 'LBL_RECORDS_LIST' => 'Lista del Cestino' , + 'LBL_NO_RECORDS_FOUND' => 'Nessuno record trovato da ripristinare nel Modulo', ); $jsLanguageStrings = array( - 'JS_MSG_EMPTY_RB_CONFIRMATION' => 'Are you sure you want to permanently remove all the deleted records from your database?', // TODO: Review - 'JS_LBL_RESTORE_RECORDS_CONFIRMATION' => 'Are you sure you want to restore the records?', // TODO: Review + 'JS_MSG_EMPTY_RB_CONFIRMATION' => 'Sei sicuro di voler rimuovere permanentemente tutti i record cancellati dal tuo database?', + 'JS_LBL_RESTORE_RECORDS_CONFIRMATION' => 'Sei sicuro di voler ripristinare i record?', 'JS_LBL_RESTORE_RECORD_CONFIRMATION' => 'Sei sicuro di voler ripristinare il record?', 'JS_RESTORING_RECORD' => 'Ripristino Record', 'JS_RESTORE_AND_UNTRASH_FILE_IN_DRIVE' => 'Ripristino in Vtiger and Drive', - 'JS_RESTORING_RECORDS' => 'Il ripristino di record', + 'JS_RESTORING_RECORDS' => 'Il ripristino dei record', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Reports.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Reports.php index b7f2583580993b95d560b56662150220d87d5615..749bf58dd405c5ebee598590baa3242fcb7195f9 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Reports.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Reports.php @@ -8,65 +8,65 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'Reports' => 'Reports' , // TODO: Review - 'SINGLE_Reports' => 'Report' , // TODO: Review - 'LBL_FOLDER_NOT_EMPTY' => 'Folder is not empty' , + 'Reports' => 'i Report' , + 'SINGLE_Reports' => 'Report' , + 'LBL_FOLDER_NOT_EMPTY' => 'La Cartella non è vuota' , 'LBL_MOVE_REPORT' => 'Sposta Report' , 'LBL_CUSTOMIZE' => 'Personalizza' , 'LBL_REPORT_EXPORT_EXCEL' => 'Export Excel' , 'LBL_REPORT_PRINT' => 'Stampa' , - 'LBL_STEP_1' => 'Step 1' , - 'LBL_STEP_2' => 'Step 2' , - 'LBL_STEP_3' => 'Step 3' , + 'LBL_STEP_1' => 'Passo 1' , + 'LBL_STEP_2' => 'Passo 2' , + 'LBL_STEP_3' => 'Passo 3' , 'LBL_REPORT_DETAILS' => 'Dettagli Report' , 'LBL_SELECT_COLUMNS' => 'Seleziona Colonne' , 'LBL_FILTERS' => 'Filtri' , - 'LBL_FOLDERS' => 'Folders' , + 'LBL_FOLDERS' => 'Cartelle' , 'LBL_ADD_NEW_FOLDER' => 'Aggiungi una Nuova Cartella' , - 'LBL_FOLDER_NAME' => 'Folder Name' , - 'LBL_FOLDER_DESCRIPTION' => 'Folder Description' , - 'LBL_WRITE_YOUR_DESCRIPTION_HERE' => 'Enter Description' , - 'LBL_DUPLICATES_EXIST' => 'Duplicate Exists' , - 'LBL_FOLDERS_LIST' => 'Folders List' , - 'LBL_DENIED_REPORTS' => 'Denied Reports' , - 'LBL_NO_OF_RECORDS' => 'Total Records : ' , // TODO: Review - 'LBL_MORE_RECORDS_TXT'=>'Only 500 records are shown below. Please export to see all Records', - 'LBL_ADD_RECORD' => 'Add Report' , - 'LBL_ADD_FOLDER' => 'Add Folder' , - 'LBL_REPORT_DELETE_DENIED' => 'Permission denied to delete the Report', - 'LBL_FOLDER_CAN_NOT_BE_DELETED' => 'This folder can not be deleted', - 'LBL_REPORTS_LIST' => 'Reports list' , + 'LBL_FOLDER_NAME' => 'Nome Cartella' , + 'LBL_FOLDER_DESCRIPTION' => 'Descrizione Cartella' , + 'LBL_WRITE_YOUR_DESCRIPTION_HERE' => 'Inserire Descrizione' , + 'LBL_DUPLICATES_EXIST' => 'Esiste Duplicato' , + 'LBL_FOLDERS_LIST' => 'Lista Cartelle' , + 'LBL_DENIED_REPORTS' => 'Report Negato' , + 'LBL_NO_OF_RECORDS' => 'Totare record : ' , + 'LBL_MORE_RECORDS_TXT'=>'Sono mostrati solo 500 record qui di seguito. Per favore fai l\'esportazione per vederli tutti.', + 'LBL_ADD_RECORD' => 'Aggiungi Report' , + 'LBL_ADD_FOLDER' => 'Aggiungi Cartella' , + 'LBL_REPORT_DELETE_DENIED' => 'Permesso negato per cancellare il Report', + 'LBL_FOLDER_CAN_NOT_BE_DELETED' => 'Questa cartella non può essere cancellata', + 'LBL_REPORTS_LIST' => 'Lista Report' , 'LBL_REPORT_NAME' => 'Nome Report' , 'LBL_REPORT_FOLDER' => 'Cartella Report' , 'LBL_DESCRIPTION' => 'Descrizione' , - 'PRIMARY_MODULE' => 'Primary Module' , - 'LBL_SELECT_RELATED_MODULES' => 'Select Related Modules' , + 'PRIMARY_MODULE' => 'Modulo Primario' , + 'LBL_SELECT_RELATED_MODULES' => 'Seleziona il Modulo Collegato' , 'LBL_MAX' => 'Massimo' , 'LBL_NEXT' => 'Prossimo' , - 'LBL_REPORTS' => 'Reports List' , - 'LBL_GROUP_BY' => 'Group By' , - 'LBL_SORT_ORDER' => 'Sort Order' , + 'LBL_REPORTS' => 'Lista Report' , + 'LBL_GROUP_BY' => 'Raggruppati da' , + 'LBL_SORT_ORDER' => 'Ordinamento' , 'LBL_ASCENDING' => 'Ascendente' , 'LBL_DESCENDING' => 'Discendente' , 'LBL_CALCULATIONS' => 'Calcoli' , 'LBL_COLUMNS' => 'Colonne' , 'LBL_SUM_VALUE' => 'Somma' , 'LBL_AVERAGE' => 'Media' , - 'LBL_LOWEST_VALUE' => 'Valore più basso' , - 'LBL_HIGHEST_VALUE' => 'Highest Value' , + 'LBL_LOWEST_VALUE' => 'Valore più basso' , + 'LBL_HIGHEST_VALUE' => 'Valore più alto' , 'LBL_GENERATE_REPORT' => 'Salva e Genera rapporto' , 'LBL_SUM' => 'Somma' , 'LBL_AVG' => 'Media' , 'LBL_MIN' => 'Minimo' , 'LBL_FIELD_NAMES' => 'Nomi dei Campi' , - 'LBL_REPORT_CSV' => 'Export CSV' , - 'LBL_VIEW_DETAILS' => 'View Details' , - 'LBL_GENERATE_NOW' => 'Generate now' , // TODO: Review + 'LBL_REPORT_CSV' => 'Esporta in CSV' , + 'LBL_VIEW_DETAILS' => 'Vedi i dettagli' , + 'LBL_GENERATE_NOW' => 'Genera adesso' , 'Report Name' => 'Nome Report' , 'Account and Contact Reports' => 'Report Aziende e Contatti' , 'Lead Reports' => 'Report Lead' , - 'Potential Reports' => 'Report Opportunità' , - 'Activity Reports' => 'Report Attività' , + 'Potential Reports' => 'Report Opportunità ' , + 'Activity Reports' => 'Report Attività ' , 'HelpDesk Reports' => 'Report Ticket di Assistenza Clienti', 'Product Reports' => 'Report Prodotti' , 'Quote Reports' => 'Report Preventivi' , @@ -76,17 +76,17 @@ $languageStrings = array( 'Campaign Reports' => 'Report Campagne' , 'Contacts by Accounts' => 'Contatti per Aziende' , 'Contacts without Accounts' => 'Contatti senza Aziende' , - 'Contacts by Potentials' => 'Contatti per Opportunità', + 'Contacts by Potentials' => 'Contatti per Opportunità ', 'Contacts related to Accounts' => 'Contatti collegati alle Aziende', 'Contacts not related to Accounts' => 'Contatti non collegati alle Aziende', - 'Contacts related to Potentials' => 'Contatti collegati alle Opportunità', + 'Contacts related to Potentials' => 'Contatti collegati alle Opportunità ', 'Lead by Source' => 'Lead per Fonte' , 'Lead Status Report' => 'Report Lead per Stato' , - 'Potential Pipeline' => 'Andamento Opportunità', - 'Closed Potentials' => 'Opportunità Chiuse' , - 'Potential that have Won' => 'Opportunità Vinte' , + 'Potential Pipeline' => 'Andamento Opportunità ', + 'Closed Potentials' => 'Opportunità Chiuse' , + 'Potential that have Won' => 'Opportunità Vinte' , 'Tickets by Products' => 'Ticket per Prodotti' , - 'Tickets by Priority' => 'Ticket per Priorità' , + 'Tickets by Priority' => 'Ticket per Priorità ' , 'Open Tickets' => 'Ticket Aperti' , 'Tickets related to Products' => 'Ticket collegati ai Prodotti', 'Tickets that are Open' => 'Ticket Aperti' , @@ -101,30 +101,30 @@ $languageStrings = array( 'PurchaseOrder Detailed Report' => 'Report Ordini di Acquisto Dettagliato', 'PurchaseOrder related to Contacts' => 'Ordini di Acquisto Collegati ai Contatti', 'Invoice Detailed Report' => 'Report Fatture Dettagliato' , - 'Last Month Activities' => 'Attività del Mese Scorso', - 'This Month Activities' => 'Attività di Questo Mese', + 'Last Month Activities' => 'Attività del Mese Scorso', + 'This Month Activities' => 'Attività di Questo Mese', 'Campaign Expectations and Actuals' => 'Valori Attesi ed Effettivi delle Campagne', 'SalesOrder Detailed Report' => 'Report Ordini di Vendita Dettagliato', 'Email Reports' => 'Email Reports' , - 'Contacts Email Report' => 'Contacts Email Report' , - 'Accounts Email Report' => 'Organizations Email Report' , - 'Leads Email Report' => 'Leads Email Report' , - 'Vendors Email Report' => 'Vendors Email Report' , - 'Emails sent to Contacts' => 'Emails sent to Contacts' , - 'Emails sent to Organizations' => 'Emails sent to Organizations', - 'Emails sent to Leads' => 'Emails sent to Leads' , - 'Emails sent to Vendors' => 'Emails sent to Vendors' , - 'LBL_PRINT_REPORT' => 'Print Report' , // TODO: Review - 'LBL_RECORDS' => 'Records' , // TODO: Review - 'LBL_LIMIT_EXCEEDED' => 'Only 1000 + records are displayed. Use CSV or Excel Export to see all the records', // TODO: Review - 'LBL_TOP' => 'Top' , // TODO: Review - 'LBL_ALL_REPORTS' => 'All Reports' , // TODO: Review - 'LBL_CALCULATION_CONVERSION_MESSAGE' => 'Il calcolo si basa sulle preferenze valuta del vostro CRM Mia', // TODO: Review + 'Contacts Email Report' => 'Report delle email dei contatti' , + 'Accounts Email Report' => 'Report delle email delle Aziende' , + 'Leads Email Report' => 'Report delle email dei Lead' , + 'Vendors Email Report' => 'Report delle email dei Fornitori' , + 'Emails sent to Contacts' => 'Email inviate ai Contatti' , + 'Emails sent to Organizations' => 'Email inviate alle Aziende', + 'Emails sent to Leads' => 'Email inviate ai Lead' , + 'Emails sent to Vendors' => 'Email inviate ai Fornitori' , + 'LBL_PRINT_REPORT' => 'Stampa Report' , + 'LBL_RECORDS' => 'Records' , + 'LBL_LIMIT_EXCEEDED' => 'Solo 1000 + records sono mostrati. Use l\'esportazione CSV o Excel per vedere tutti i record', + 'LBL_TOP' => 'Migliori' , // TODO: Review + 'LBL_ALL_REPORTS' => 'Tutti i Reports' , + 'LBL_CALCULATION_CONVERSION_MESSAGE' => 'Il calcolo si basa sulle preferenze valuta del vostro CRM', //Schedule Reports 'LBL_CREATING_REPORT' => 'Creazione di report', - 'LBL_EDITING_REPORT' => 'Editing Rapporto', - 'LBL_SCHEDULE_REPORTS' => 'Rapporti Pianificazione', + 'LBL_EDITING_REPORT' => 'Editing Report', + 'LBL_SCHEDULE_REPORTS' => 'Pianificazione Report', 'LBL_AT_TIME' => 'Al tempo', 'LBL_DAILY' => 'Quotidiano', 'LBL_WEEKLY' => 'Settimanale', @@ -136,7 +136,7 @@ $languageStrings = array( 'LBL_SELECT_MONTH_AND_DAY' => 'Selezionare Mese e Data', 'LBL_SELECTED_DATES' => 'Date selezionate', 'LBL_EXCEEDING_MAXIMUM_LIMIT' => 'Limite massimo superato', - 'LBL_NEXT_TRIGGER_TIME' => 'Tempo di trigger su Avanti', + 'LBL_NEXT_TRIGGER_TIME' => 'Tempo Prossimo trigger', 'LBL_RUN_REPORT' => 'Esegui rapporto', 'LBL_SELECT_RECIEPIENTS' => 'Seleziona destinatari', 'LBL_SPECIFIC_EMAIL_ADDRESS' => 'Invia a e-mail specifico', @@ -144,7 +144,7 @@ $languageStrings = array( //Summary/Pivot Reports 'LBL_CREATING_PIVOT_REPORT' => 'Crea Pivot rapporto', 'LBL_EDITING_PIVOT_REPORT' => 'Modifica report Pivot', - 'LBL_SELECT_PIVOT_FIELDS' => 'Selezionare Pivot Fields', + 'LBL_SELECT_PIVOT_FIELDS' => 'Selezionare i campi Pivot', 'LBL_SELECT_ROWS' => 'Selezionare Righe', 'LBL_SELECT_DATA_FIELDS' => 'Selezionare Campi dati', 'LBL_ADD_ROWS' => 'Aggiungere righe', @@ -152,14 +152,14 @@ $languageStrings = array( 'LBL_ADD_DATA_FIELDS' => 'Aggiungere campi dati', 'LBL_PIVOT_FIELDS' => 'Selezionato Pivot Fields', 'LBL_RECORD_COUNT' => 'Conteggio Record', - 'LBL_SELECT_PIVOT_FIELDS_WARNING' => 'Attenzione: Si prega di selezionare almeno un campo Row, campo Colonna e Campo dati', - 'LBL_PIVOT_DATA_FIELDS_WARNING' => 'Attenzione: Nella colonna di dati - funzioni di aggregazione (somma, media, min e max) non dovrebbero ripetere.', + 'LBL_SELECT_PIVOT_FIELDS_WARNING' => 'Attenzione: Si prega di selezionare almeno un campo Riga, un campo Colonna e un Campo dati', + 'LBL_PIVOT_DATA_FIELDS_WARNING' => 'Attenzione: Nella colonna di dati - funzioni di aggregazione (somma, media, min e max) non dovrebbero ripetersi.', 'LBL_MODIFY_CONDITIONS' => 'Modificare le condizioni', - 'LBL_PIVOT_PREVIEW_EX' => 'Pivot Anteprima di report (esempio)', + 'LBL_PIVOT_PREVIEW_EX' => 'Anteprima Report Pivot (esempio)', //charts labels 'LBL_SELECT_CHART_TYPE' => 'Selezionare il tipo di grafico', - 'LBL_CLICK_THROUGH_NOT_AVAILABLE' => 'Fare clic through non disponibile come avete selezionato più di un modulo', + 'LBL_CLICK_THROUGH_NOT_AVAILABLE' => 'Il clic through non è disponibile se avete selezionato più di un modulo', 'LBL_TOTAL_SUM_OF' => 'Somma totale di %s', 'LBL_AVG_OF' => 'Medio di %s', 'LBL_MIN_OF' => 'Minimo di %s', @@ -176,10 +176,10 @@ $languageStrings = array( 'LBL_SELECT_GROUP_BY_FIELD' => 'Seleziona gruppo da campo', 'LBL_SELECT_DATA_FIELD' => 'Selezionare Campi dati', 'LBL_MODIFY_CONDITION' => 'Modificare le condizioni', - 'LBL_PLEASE_SELECT_ATLEAST_ONE_GROUP_FIELD_AND_DATA_FIELD' => 'Si prega di selezionare almeno un campo Groupby e un campo di dati.', + 'LBL_PLEASE_SELECT_ATLEAST_ONE_GROUP_FIELD_AND_DATA_FIELD' => 'Si prega di selezionare almeno un campo Group by e un campo di dati.', 'LBL_FOR_BAR_GRAPH_AND_LINE_GRAPH_SELECT_3_MAX_DATA_FIELDS' => 'Per bar e Linea grafico, è possibile selezionare fino a 3 campi di dati.', 'LBL_DETAIL_REPORT' => 'Report dettaglio', - 'LBL_PIVOT_REPORT' => 'Pivot Rapporto', + 'LBL_PIVOT_REPORT' => 'Rapporto Pivot', 'LBL_CHARTS' => 'Grafici', //Schedule Reports - Mail Content 'LBL_AUTO_GENERATED_REPORT_EMAIL' => 'Questa è una mail generata automaticamente inviata a nome di un report pianificato.', @@ -187,9 +187,9 @@ $languageStrings = array( 'LBL_FILE_FORMAT' => 'Formato di file', 'Report Type' => 'Tipo di rapporto', - 'tabular' => 'Dettaglio', - 'summary' => 'Dettaglio', - 'pivot' => 'Perno', + 'tabular' => 'Tabulare', + 'summary' => 'Sommario', + 'pivot' => 'Pivot', 'chart' => 'Grafico', 'LBL_REPORTS_MOVED_SUCCESSFULLY'=>'Rapporti spostato con successo.', 'LBL_SAME_SOURCE_AND_TARGET_FOLDER'=>'Cartella di destinazione è la stessa cartella di origine.', @@ -198,7 +198,7 @@ $languageStrings = array( 'LBL_UNPIN_CHART_FROM_DASHBOARD' => 'Sblocca grafico da cruscotto', 'LBL_SAME_LEVEL_ROLES' => 'Stesso Livello Di Ruoli', - 'LBL_SUBORDINATE_ROLES' => 'Subordinato Ruoli', + 'LBL_SUBORDINATE_ROLES' => 'Ruoli Subordinati', 'LBL_SHARE_REPORT' => 'Condividere Report', 'LBL_SHARED_REPORTS' => 'Ha Condiviso Con Me', 'LBL_PINNED' => 'Appuntato', @@ -209,14 +209,14 @@ $languageStrings = array( ); $jsLanguageStrings = array( - 'JS_DUPLICATE_RECORD' => 'Duplicate Report' , // TODO: Review - 'JS_CALCULATION_LINE_ITEM_FIELDS_SELECTION_LIMITATION' => 'Limitation: Line Item fields(List Price, Discount & Quantity) can only be used when other calculation fields are not selected.', // TODO: Review - 'JS_CHART_PINNED_TO_DASHBOARD' => 'Grafico appuntato ad DashBoard', - 'JS_CHART_ALREADY_PINNED_TO_DASHBOARD' => 'Grafico già appuntato ad DashBoard', + 'JS_DUPLICATE_RECORD' => 'Duplica Report' , + 'JS_CALCULATION_LINE_ITEM_FIELDS_SELECTION_LIMITATION' => 'Limitazione: i campi riga del prodotto (listino, sconto e Quantità ) possono essere usati solo quando altri campi di calcolo non sono selezionati.', + 'JS_CHART_PINNED_TO_DASHBOARD' => 'Grafico appuntato su DashBoard', + 'JS_CHART_ALREADY_PINNED_TO_DASHBOARD' => 'Grafico già appuntato su DashBoard', 'JS_MOVE_REPORTS'=>'Spostare Reports', 'JS_SCHEDULED_DATE_TIME_ERROR' => 'Data e orario programmati dovrebbero essere maggiore di data e ora correnti', - 'JSLBL_PIN_CHART_TO_DASHBOARD' => 'Grafico Pin a Dashboard', - 'JSLBL_UNPIN_CHART_FROM_DASHBOARD' => 'Sblocca grafico da cruscotto', + 'JSLBL_PIN_CHART_TO_DASHBOARD' => 'Grafico Pin su Dashboard', + 'JSLBL_UNPIN_CHART_FROM_DASHBOARD' => 'Sblocca grafico da cruscotto', //DashBoard o Cruscotto? 'JS_CHART_REMOVED_FROM_DASHBOARD' => 'Grafico rimosso dal cruscotto', 'JS_NO_CHART_DATA_AVAILABLE' => 'I dati non sono disponibili, si prega di verificare i campi selezionati', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Rss.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Rss.php index 36855dc6bb6f896c5610e1ba6f87ff7b06a3e80a..41db19f2fc56eb0550cea238993072e14d93fc7b 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Rss.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Rss.php @@ -10,12 +10,12 @@ $languageStrings = Array( 'LBL_RSS_FEED_SOURCES' => 'Fonti Feed Rss', - 'LBL_ADD_FEED_SOURCE' => 'Aggiungere fonte di alimentazione', + 'LBL_ADD_FEED_SOURCE' => 'Aggiungere Feed RSS', 'LBL_FEEDS_LIST_FROM' => 'Feed List Da', 'LBL_SET_AS_DEFAULT' => 'Imposta come predefinito', 'LBL_SENDER' => 'trasmettitore', - 'LBL_FEED_SOURCE' => 'fonte di alimentazione', - 'LBL_ENTER_FEED_SOURCE' => 'Inserisci fonte di alimentazione', + 'LBL_FEED_SOURCE' => 'origine Feed', + 'LBL_ENTER_FEED_SOURCE' => 'Inserisci Feed', 'SINGLE_Rss' => 'di feed RSS', 'Rss' => 'Rss', @@ -24,8 +24,8 @@ $languageStrings = Array( $jsLanguageStrings = array( 'JS_RSS_SUCCESSFULLY_SAVED' => 'Rss con successo salvati', - 'JS_INVALID_RSS_URL' => 'Non valido Rss Url', - 'JS_RSS_MADE_AS_DEFAULT' => 'Rss Fatto come predefinito', + 'JS_INVALID_RSS_URL' => 'URL Rss Non valido', + 'JS_RSS_MADE_AS_DEFAULT' => 'Rss impostato come predefinito', 'JS_NO_RECORDS' => 'Nessun Record', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SMSNotifier.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SMSNotifier.php index 7c66d96186718274a291aaca455341cfaf5576fd..c9debe55316b58dc67df5a2288f03f08271cf3da 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SMSNotifier.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SMSNotifier.php @@ -8,16 +8,16 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_SEND_SMS_TO_SELECTED_NUMBERS' => 'Send SMS to the selected numbers', - 'LBL_STEP_1' => 'Step 1' , - 'LBL_STEP_2' => 'Step 2' , - 'LBL_SELECT_THE_PHONE_NUMBER_FIELDS_TO_SEND' => 'Select the phone number fields to send', - 'LBL_TYPE_THE_MESSAGE' => 'Type the message' , - 'LBL_WRITE_YOUR_MESSAGE_HERE' => 'write your message here' , - 'LBL_ADD_MORE_FIELDS' => 'Add more fields' , - 'LBL_SERVER_CONFIG' => 'Server Configuration' , - 'LBL_CHECK_STATUS' => 'Check Status' , - 'message' => 'Message' , - 'LBL_SMSNOTIFIER_INFORMATION' => 'SMS Information' , - 'SINGLE_SMSNotifier' => 'SMS Notifier' , // TODO: Review + 'LBL_SEND_SMS_TO_SELECTED_NUMBERS' => 'Invia SMS ai numeri selezionati', + 'LBL_STEP_1' => 'Passo 1' , + 'LBL_STEP_2' => 'Passo 2' , + 'LBL_SELECT_THE_PHONE_NUMBER_FIELDS_TO_SEND' => 'Seleziona i campi dei numero di telefono per l\'invio', + 'LBL_TYPE_THE_MESSAGE' => 'Tipo di messaggio' , + 'LBL_WRITE_YOUR_MESSAGE_HERE' => 'Scrivi il tuo messaggio qui' , + 'LBL_ADD_MORE_FIELDS' => 'Aggiungi più campi' , + 'LBL_SERVER_CONFIG' => 'Configurazione Server' , + 'LBL_CHECK_STATUS' => 'Controlla stato' , + 'message' => 'Messaggio' , + 'LBL_SMSNOTIFIER_INFORMATION' => 'Informazione SMS' , + 'SINGLE_SMSNotifier' => 'Notificatore SMS' , // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SalesOrder.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SalesOrder.php index 0e5af056923fe804ad9a524c0b948a48bbc3d26e..e54165e8b52f31ff2f12e0989b2e296f9fa6cc3c 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SalesOrder.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/SalesOrder.php @@ -11,11 +11,11 @@ $languageStrings = array( 'SalesOrder' => 'Ordini di vendita' , 'SINGLE_SalesOrder' => 'Ordine di Vendita' , 'LBL_EXPORT_TO_PDF' => 'Esporta in PDF' , - 'LBL_SEND_MAIL_PDF' => 'Send Email with PDF' , // TODO: Review - 'LBL_ADD_RECORD' => 'Add Sales Order' , + 'LBL_SEND_MAIL_PDF' => 'Invia email con PDF' , // TODO: Review + 'LBL_ADD_RECORD' => 'Aggiongi Ordine di Vendita' , 'LBL_RECORDS_LIST' => 'Lista Ordini di Vendita' , 'LBL_SO_INFORMATION' => 'Informazioni Ordine di Vendita', - 'SalesOrder No' => 'No. Ordini di Vendita' , + 'SalesOrder No' => 'N. Ordini di Vendita' , 'Quote Name' => 'Nome Preventivo' , 'Customer No' => 'Numero cliente' , 'Requisition No' => 'Numero Richiesta' , @@ -23,7 +23,7 @@ $languageStrings = array( 'Sales Commission' => 'Commissione Vendita' , 'Purchase Order' => 'Ordine di acquisto' , 'Vendor Terms' => 'Condizioni fornitore' , - 'Pending' => 'Pendente' , + 'Pending' => 'In attesa' , 'Enable Recurring' => 'Abilita ricorrenza' , 'Frequency' => 'Frequenza' , 'Start Period' => 'Inizio Periodo' , @@ -31,13 +31,13 @@ $languageStrings = array( 'Payment Duration' => 'Durata pagamento' , 'Invoice Status' => 'Stato fattura' , 'Sub Total' => 'Sub totale' , - 'AutoCreated' => 'AutoCreated' , - 'Sent' => 'Sent' , - 'Credit Invoice' => 'Credit Invoice' , - 'Paid' => 'Paid' , + 'AutoCreated' => 'AutoCreato' , + 'Sent' => 'Inviato' , + 'Credit Invoice' => 'Nota di Credito' , + 'Paid' => 'Pagato' , 'LBL_THIS' => 'Questo', - 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema.si prega di rimuovere o sostituire questo elemento', + 'LBL_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_OR_REPLACE_THIS_ITEM' => 'viene eliminato dal sistema. Si prega di rimuovere o sostituire questo elemento', 'LBL_THIS_LINE_ITEM_IS_DELETED_FROM_THE_SYSTEM_PLEASE_REMOVE_THIS_LINE_ITEM' => 'Questo elemento viene eliminato dal sistema,si prega di rimuovere questa riga di elementi', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ServiceContracts.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ServiceContracts.php index cce5d38eb7de157c4c1842277e60ca00836e0e56..353e39b145f1f698436b572cfeae19ff72528cd8 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ServiceContracts.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ServiceContracts.php @@ -10,14 +10,14 @@ $languageStrings = array( 'ServiceContracts' => 'Contratti di servizio' , 'SINGLE_ServiceContracts' => 'Contratto di servizio' , - 'LBL_ADD_RECORD' => 'Add Service Contract' , - 'LBL_RECORDS_LIST' => 'Service Contracts List' , + 'LBL_ADD_RECORD' => 'Aggiungi Contratto di Servizio' , + 'LBL_RECORDS_LIST' => 'Lista Contratti di Servizio' , 'LBL_SERVICE_CONTRACT_INFORMATION' => 'Informazioni contratto di servizio', 'Contract No' => 'Numero contratto' , - 'Start Date' => 'Data di inzio' , + 'Start Date' => 'Data di inizio' , 'End Date' => 'Data di fine' , 'Tracking Unit' => 'Unità di monitoraggio' , - 'Total Units' => 'UInità totali' , + 'Total Units' => 'Unità totali' , 'Used Units' => 'Unità utilizzate' , 'Progress' => 'Progresso (in %)' , 'Planned Duration' => 'Durata pianificata (in Giorni)', @@ -31,7 +31,7 @@ $languageStrings = array( 'Support' => 'Supporto', 'Administrative' => 'Amministrativo', 'Undefined' => 'Indefinito', - 'In Planning' => 'In Planning', + 'In Planning' => 'In Programmazione', 'On Hold' => 'In Attesa', 'Complete' => 'Completo', 'Archived' => 'Archiviati', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Services.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Services.php index dff2056223af4e0ade4dd04b9bb98750678c71fe..72af89fcae5b2675fa69e690c644787fb389c7ee 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Services.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Services.php @@ -11,23 +11,23 @@ $languageStrings = array( 'Services' => 'Servizi' , 'SINGLE_Services' => 'Servizi' , 'LBL_ADD_RECORD' => 'Aggiungi Servizio' , - 'LBL_RECORDS_LIST' => 'Services List' , + 'LBL_RECORDS_LIST' => 'Lista Servizi' , 'LBL_SERVICE_INFORMATION' => 'Informazioni servizio' , 'LBL_MORE_CURRENCIES' => 'Altre valute' , - 'LBL_PRICES' => 'Service Prices' , + 'LBL_PRICES' => 'Prezzi Servizi' , 'LBL_PRICE' => 'Prezzo' , 'LBL_RESET_PRICE' => 'Annulla prezzo' , 'LBL_RESET' => 'Annulla' , - 'LBL_ADD_TO_PRICEBOOKS' => 'Add to PriceBooks' , + 'LBL_ADD_TO_PRICEBOOKS' => 'Aggiungi a listino' , 'Service Name' => 'Nome servizio' , 'Service Active' => 'Attivo' , 'Service Category' => 'Categoria' , 'Service No' => 'Numero servizio' , - 'Owner' => 'Propietario' , - 'No of Units' => 'Non per unità ' , + 'Owner' => 'Proprietario' , + 'No of Units' => 'N. di unità ' , 'Commission Rate' => 'Commissione (%)' , 'Price' => 'Prezzo' , - 'Usage Unit' => 'Unità di utilizzo' , + 'Usage Unit' => 'Uso Unità ' , 'Tax Class' => 'Classe di tasse' , 'Website' => 'Sito web' , ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CronTasks.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CronTasks.php index 6ba11eeb0f83f0f1147758e547d98063a485511b..5b6de5a89e4876d69447b851e2ae58f984b1e00a 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CronTasks.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CronTasks.php @@ -8,16 +8,16 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'CronTasks' => 'Scheduler' , // TODO: Review + 'CronTasks' => 'Programmazione' , // TODO: Review 'Id' => 'Id' , // TODO: Review 'Cron Job' => 'Cron Job' , // TODO: Review - 'Frequency' => 'Frequency' , // TODO: Review - 'Status' => 'Status' , // TODO: Review - 'Last Start' => 'Last scan started' , // TODO: Review - 'Last End' => 'Last scan ended' , // TODO: Review - 'Sequence' => 'Sequence' , // TODO: Review - 'LBL_COMPLETED' => 'Completed' , // TODO: Review - 'LBL_RUNNING' => 'Running' , // TODO: Review - 'LBL_ACTIVE' => 'Active' , // TODO: Review - 'LBL_INACTIVE' => 'In Active' , // TODO: Review + 'Frequency' => 'Frequenza' , // TODO: Review + 'Status' => 'Stato' , // TODO: Review + 'Last Start' => 'L\'ultima scansione avviata' , // TODO: Review + 'Last End' => 'L\'ultima scansione finita' , // TODO: Review + 'Sequence' => 'Sequenza' , // TODO: Review + 'LBL_COMPLETED' => 'Completato' , // TODO: Review + 'LBL_RUNNING' => 'In corso' , // TODO: Review + 'LBL_ACTIVE' => 'Attivo' , // TODO: Review + 'LBL_INACTIVE' => 'Non attivo' , // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Currency.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Currency.php index 59bf1426289a4717295c70b54fe5abcd688ea332..3fabf1310839435c67d150307e6a1841e3cd819a 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Currency.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Currency.php @@ -8,17 +8,17 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_ADD_RECORD' => 'Add Currency' , // TODO: Review - 'LBL_EDIT_CURRENCY' => 'Edit Currency' , // TODO: Review - 'LBL_ADD_NEW_CURRENCY' => 'Add New Currency' , // TODO: Review - 'LBL_CURRENCY_NAME' => 'Currency Name' , // TODO: Review - 'LBL_CURRENCY_CODE' => 'Currency Code' , // TODO: Review - 'LBL_CURRENCY_SYMBOL' => 'Symbol' , // TODO: Review - 'LBL_CONVERSION_RATE' => 'Conversion Rate' , // TODO: Review - 'LBL_ENTER_CONVERSION_RATE' => 'Enter Conversion Rate' , // TODO: Review - 'LBL_CURRENCY_STATUS_DESC' => 'Enable checkbox to make currency Active', // TODO: Review - 'LBL_TRANSFER_CURRENCY' => 'Transfer Currency' , // TODO: Review - 'LBL_CURRENT_CURRENCY' => 'Current Currency' , // TODO: Review + 'LBL_ADD_RECORD' => 'Aggiungi Valuta' , // TODO: Review + 'LBL_EDIT_CURRENCY' => 'Modifica Valuat' , // TODO: Review + 'LBL_ADD_NEW_CURRENCY' => 'Aggiungi nuova Valuta' , // TODO: Review + 'LBL_CURRENCY_NAME' => 'Nome Valuta' , // TODO: Review + 'LBL_CURRENCY_CODE' => 'Codice Valuta' , // TODO: Review + 'LBL_CURRENCY_SYMBOL' => 'Simbolo' , // TODO: Review + 'LBL_CONVERSION_RATE' => 'Tasso di conversione' , // TODO: Review + 'LBL_ENTER_CONVERSION_RATE' => 'Inserisci tasso di conversione' , // TODO: Review + 'LBL_CURRENCY_STATUS_DESC' => 'Abilita casella di controllo per attivare la valuta', // TODO: Review + 'LBL_TRANSFER_CURRENCY' => 'Trasferisci Valuta' , // TODO: Review + 'LBL_CURRENT_CURRENCY' => 'Valuta Corrente' , // TODO: Review 'Albania, Leke' => 'Albania, Leke' , // TODO: Review 'Argentina, Pesos' => 'Argentina, Pesos' , // TODO: Review 'Aruba, Guilders' => 'Aruba, Guilders' , // TODO: Review @@ -151,6 +151,6 @@ $languageStrings = array( 'Moroccan, Dirham' => 'Moroccan, Dirham' , // TODO: Review ); $jsLanguageStrings = array( - 'JS_CURRENCY_DETAILS_SAVED' => 'Currency Details Saved' , // TODO: Review - 'JS_CURRENCY_DELETED_SUEESSFULLY' => 'Currency Deleted Successfully', // TODO: Review + 'JS_CURRENCY_DETAILS_SAVED' => 'Dettagli Valuta Salvati' , // TODO: Review + 'JS_CURRENCY_DELETED_SUEESSFULLY' => 'Valuta cancella con successo', // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CustomerPortal.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CustomerPortal.php index c8b39bfb625f8dd03f400c63ca7721ca6792f5a3..3bf7ed47722e1c382ec8e1aaceec90e840145981 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CustomerPortal.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/CustomerPortal.php @@ -8,46 +8,46 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'CustomerPortal' => 'Customer Portal' , // TODO: Review - 'LBL_PORTAL_DESCRIPTION' => 'Setup Privileges of Portal User', // TODO: Review - 'LBL_PRIVILEGES' => 'Privileges' , // TODO: Review - 'LBL_DEFAULT_ASSIGNEE' => 'Default Assignee' , // TODO: Review - 'LBL_PORTAL_URL' => 'Portal Url' , // TODO: Review - 'LBL_MODULE_NAME' => 'Module Name' , // TODO: Review - 'LBL_ENABLE_MODULE' => 'Enable Module' , // TODO: Review - 'LBL_VIEW_ALL_RECORDS' => 'See Records across Organization', // TODO: Review - 'LBL_PREVILEGES_MESSAGE' => 'This User\'s privileges will be applied to the Portal User.', // TODO: Review - 'LBL_DEFAULT_ASSIGNEE_MESSAGE' => 'Casi / biglietti saranno ceduto al titolare scelto dal default Gruppo / utente dal Portale clienti.', // TODO: Review - 'LBL_PORTAL_URL_MESSAGE' => 'This is URL for the Portal where your contacts can login to submit/track tickets, access knowledge base and do more. Contacts will be sent the login details when Portal access is enabled from Contact details page.', // TODO: Review - 'LBL_DRAG_AND_DROP_MESSAGE' => 'Drag and Drop modules to reorder in the Customer Portal', // TODO: Review + 'CustomerPortal' => 'Portale Clienti' , // TODO: Review + 'LBL_PORTAL_DESCRIPTION' => 'Imposta Privilegi al portale per utente', // TODO: Review + 'LBL_PRIVILEGES' => 'Privilegi' , // TODO: Review + 'LBL_DEFAULT_ASSIGNEE' => 'Assegnatario standard' , // TODO: Review + 'LBL_PORTAL_URL' => 'Url Portale' , // TODO: Review + 'LBL_MODULE_NAME' => 'Nome Modulo' , // TODO: Review + 'LBL_ENABLE_MODULE' => 'Attiva Modulo' , // TODO: Review + 'LBL_VIEW_ALL_RECORDS' => 'Mostrare i record attraverso l\'azienda', // TODO: Review + 'LBL_PREVILEGES_MESSAGE' => 'I privilegi di questo utente saranno applicati all\'utente del portale', // TODO: Review + 'LBL_DEFAULT_ASSIGNEE_MESSAGE' => 'Casi / Ticket saranno ceduto al titolare scelto dal Gruppo default / utente default dal Portale clienti.', // TODO: Review + 'LBL_PORTAL_URL_MESSAGE' => 'Questo è l\'Url per il Portale dove i tuoi contatti possono loggarsi e inviare e controllare i Ticket, avere accesso alla documentazione e altro ancora. I contatti riceveranno i dettagli per il login quando l\'accesso al portale sarà attivo dalla pagina dettagli dei contatti.', // TODO: Review + 'LBL_DRAG_AND_DROP_MESSAGE' => 'Trascina e rilascia i moduli da riordinare nel portale clienti', // TODO: Review "LBL_CONTACTS_ENABLE_MESSAGE"=>"Contatti saranno inviati i dati di accesso quando l'accesso Portal è attivato dalla pagina dei dettagli di contatto.", - "LBL_SUPPORT_NOTIFY_MESSAGE"=>"Supporto avviso rinnovo del contratto viene notificato sul portale clienti in base al numero di giorni immessi.", + "LBL_SUPPORT_NOTIFY_MESSAGE"=>"L\'avviso di rinnovo del supporto è notificato sul portale clienti in base al numero di giorni immessi.", "LBL_ADD_DOCUMENT"=>"Aggiungi documento", - "LBL_OPEN_TICKETS"=>"Biglietti aperte", + "LBL_OPEN_TICKETS"=>"Ticket aperti", "LBL_CREATE_TICKET"=>"Crea Ticket", - "LBL_ADD_SHORTCUT"=>"Aggiungi Shortcut", - "OpenTicketsByPriority"=>"Biglietti aperti per priorità ", - "TicketsClosureTimeByPriority"=>"Biglietti tempo di chiusura per priorità ", - "OpenTicketsBySeverity"=>"Biglietti aperti di gravità ", - "TicketsClosureTimeBySeverity"=>"Biglietti tempo di chiusura in base alla gravità ", + "LBL_ADD_SHORTCUT"=>"Aggiungi Scorciatoia", + "OpenTicketsByPriority"=>"Ticket aperti per priorità ", + "TicketsClosureTimeByPriority"=>"Tempo di chiusura dei Ticket per priorità ", + "OpenTicketsBySeverity"=>"Ticket aperti per gravità ", + "TicketsClosureTimeBySeverity"=>"tempo di chiusura dei Ticket per gravità ", "Announcement"=>"Annuncio", "Activity Stream"=>"Flusso di attività ", "Fields and privilege"=>"Campi e privilegi", - "onlymine"=>"Mostra solo %s legato a contattarci", - "all"=>"Visualizza %s collegati direttamente al contatto e organizzazione", + "onlymine"=>"Mostra solo %s legato ai contattati", + "all"=>"Visualizza %s collegati direttamente al contatto e Azienda", "products_or_services"=>"Mostra tutto %s", "faq"=>"Mostra tutti pubblicato %s", "LBL_LAYOUT_HEADER"=>"Portal Navbar", "LBL_HOME"=>"Casa", "LBL_CONTACT_NOTIFICATION"=>"Contattare il supporto di notifica", "LBL_DAYS_BEFORE"=>"Giorni prima", - "LBL_HOME_LAYOUT"=>"Portal Casa layout", + "LBL_HOME_LAYOUT"=>"Aspetto della home del portale", "LBL_RELATED_INFORMATION"=>"Informazioni correlate", - "LBL_RECORD_VISIBILITY"=>"Records Visibilità ", + "LBL_RECORD_VISIBILITY"=>"Visibilità dei Record", "LBL_ADD_FIELDS"=>"Aggiungi campi", "LBL_READ_AND_WRITE"=>"Leggere e scrivere", "LBL_READ_ONLY"=>"Solo lettura", - "LBL_PORTAL_FIELDS_PRIVILEGES"=>"Campi portale e privilegi", + "LBL_PORTAL_FIELDS_PRIVILEGES"=>"Campi e privilegi del portale", "LBL_RECENT"=>"Recente", "LBL_REC_WIDGET"=>"Record Widget", "LBL_CHARTS"=>"Grafici", @@ -69,12 +69,12 @@ $languageStrings = array( $jsLanguageStrings = array( 'JS_PORTAL_INFO_SAVED' => 'Impostazioni del portale clienti salvate.', // TODO: Review "LBL_ADD_DOCUMENT"=>"Aggiungi documento", - "LBL_OPEN_TICKETS"=>"Biglietti aperte", + "LBL_OPEN_TICKETS"=>"Ticket aperti", "LBL_CREATE_TICKET"=>"Crea Ticket", "JS_SELECT_SHORTCUT"=>"Selezionare un collegamento", "JS_ADD_FIELD"=>"Aggiungere campi", "JS_SHOW"=>"Visibile", "JS_HIDE"=>"Nascondere", "JS_NUMBERS"=>"Accetta solo numero intero positivo con fino a quattro cifre.", - "JS_MANDATORY_FIELDS_MISSING"=>"I campi non possono essere saved.Please selezionare tutti i campi obbligatori." + "JS_MANDATORY_FIELDS_MISSING"=>"I campi non possono essere salvati. Selezionare tutti i campi obbligatori." ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/EmailTemplate.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/EmailTemplate.php index a948fba5515dc96147d5b7a49ffbfa09d2aaa6ca..9a8d6f7c6c6e4be1f7cce8c2ea6199856b0c51ed 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/EmailTemplate.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/EmailTemplate.php @@ -8,8 +8,8 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'EmailTemplate' => 'Email Template' , // TODO: Review - 'LBL_TEMPLATE_NAME' => 'Template name' , + 'EmailTemplate' => 'Modello Email' , // TODO: Review + 'LBL_TEMPLATE_NAME' => 'Nome Modello' , 'LBL_DESCRIPTION' => 'Descrizione' , - 'LBL_SUBJECT' => 'Subject' , // TODO: Review + 'LBL_SUBJECT' => 'Oggetto' , // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ExtensionStore.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ExtensionStore.php index 9307da7c0f074e8c79391c9c53adffffb5b70154..a301c76570cca6cbfcbd040a1cdd700aa6d5d2ae 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ExtensionStore.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ExtensionStore.php @@ -26,23 +26,23 @@ $languageStrings = array( 'LBL_INSTALLATION_LOG' => 'Registro di installazione' , 'LBL_UPDATED_MODULE' => ' modulo è stato aggiornato con successo.', 'LBL_UPDATING_MODULE' => 'Modulo di aggiornamento' , - 'LBL_VTIGER_EXTENSION_STORE' => 'Vtiger Extension Store' , + 'LBL_VTIGER_EXTENSION_STORE' => 'Negozio estensioni Vtiger' , 'LBL_SEARCH_FOR_AN_EXTENSION' => 'Ricercare un\'estensione...' , 'LBL_DOWNLOADS' => 'Download' , - 'LBL_NO_EXTENSIONS_FOUND' => 'Senza estensioni trovate' , + 'LBL_NO_EXTENSIONS_FOUND' => 'Nessuna estensione trovata' , 'LBL_REGISTER_TO_MARKET_PLACE' => 'Registrati al Marketplace' , 'LBL_MARKETPLACE_REGISTRATION' => 'Registrazione Marketplace' , - 'LBL_MARKETPLACE_LOGIN' => 'Mercato Login' , - 'LBL_NEW_TO_MARKETPLCAE' => 'Nuovo mercato?' , + 'LBL_MARKETPLACE_LOGIN' => 'Login Marketplace' , + 'LBL_NEW_TO_MARKETPLCAE' => 'Sei Nuovo del Marketplace?' , 'LBL_CREATE_AN_ACCOUNT' => 'Creare un nuovo account' , 'LBL_SETUP_CARD_DETAILS' => 'Installazione scheda dettagli', 'LBL_SETUP_CARD' => 'Scheda di configurazione' , 'LBL_CARD_NUMBER' => 'Numero di carta' , - 'LBL_EXP_MONTH' => 'Mese di exp' , - 'LBL_EXP_YEAR' => 'Exp anno' , + 'LBL_EXP_MONTH' => 'Mese di scad.' , + 'LBL_EXP_YEAR' => 'Anno di scad.' , 'LBL_CVC_CODE' => 'Codice CVC' , 'LBL_RESET' => 'Reset' , - 'LBL_EXTENSION_STORE' => 'Extension Store' , + 'LBL_EXTENSION_STORE' => 'Negozio estensioni' , 'LBL_INSTALLED' => 'Installato' , 'LBL_UPDATE_CARD_DETAILS' => 'Aggiornamento scheda dettagli', 'LBL_BY' => 'di' , @@ -73,18 +73,18 @@ $languageStrings = array( 'LBL_EMAIL_ADDRESS' => 'Indirizzo email' , 'LBL_FIRST_NAME' => 'Nome' , 'LBL_LAST_NAME' => 'Cognome' , - 'LBL_COMPANY_NAME' => 'Nome Comapany' , + 'LBL_COMPANY_NAME' => 'Nome Azienda' , 'LBL_PASSWORD' => 'Password' , 'LBL_CONFIRM_PASSWORD' => 'Conferma password' , 'LBL_REGISTER' => 'Registro' , - 'LBL_EXTENSION_STORE_LOGIN' => 'Extensionstore Login' , + 'LBL_EXTENSION_STORE_LOGIN' => 'Logine negozio estensioni' , 'LBL_REMEMBER_ME' => 'Ricordati di me' , 'LBL_TRY_IT' => 'Provalo' , - 'LBL_TRIAL_INSTALLED' => 'Prova installato' , + 'LBL_TRIAL_INSTALLED' => 'Prova installata' , 'LBL_BUY' => 'Acquista ' , 'LBL_LOGIN_TO_MARKET_PLACE' => 'Accedere al Marketplace' , 'LBL_LOGIN' => 'Login' , - 'LBL_PHP_EXTENSION_LOADER_IS_NOT_AVAIABLE' => 'Si prega di installare il caricatore di estensione', + 'LBL_PHP_EXTENSION_LOADER_IS_NOT_AVAIABLE' => 'Si prega di installare il caricatore di estensione PHP', 'LBL_INSTALL_EXTENSION_LOADER' => 'Installare l\'estensione Loader', 'LBL_TO_CONTINUE_USING_EXTENSION_STORE' => 'To continue using Extension Store please install ', 'LBL_DOWNLOAD' => 'Scarica' , @@ -110,14 +110,14 @@ $languageStrings = array( $jsLanguageStrings = array( 'JS_PLEASE_SETUP_CARD_DETAILS_TO_INSTALL_THIS_EXTENSION' => 'Prego impostare i dettagli della carta di installare questa estensione', 'JS_UPDATE_CARD_DETAILS' => 'Aggiornamento scheda dettagli', - 'JS_ON' => 'on' , - 'JS_RATINGS' => 'Ratings' , + 'JS_ON' => 'il' , + 'JS_RATINGS' => 'Valutazioni' , 'JS_INSTALLED' => 'Installato' , - 'JS_TRIAL_INSTALLED' => 'Trial Installed' , - 'JS_PLEASE_INSTALL_EXTENSION_LOADER_TO_INSTALL_THIS_EXTENSION_FROM_BELOW_LINK' => 'Si prega di installare loader prolunga per installare questa estensione dal basso di collegamento', + 'JS_TRIAL_INSTALLED' => 'Prova installata' , + 'JS_PLEASE_INSTALL_EXTENSION_LOADER_TO_INSTALL_THIS_EXTENSION_FROM_BELOW_LINK' => 'Si prega di installare questa estensione dal collegamento qui di sotto', 'JS_PLEASE_LOGIN_TO_MARKETPLACE_FOR_INSTALLING_EXTENSION' => 'Effettua il login al marketplace per l\'installazione di estensione', - 'JS_PLEASE_SETUP_CARD_DETAILS_TO_INSTALL_EXTENSION' => 'Please setup card details to install extension', - 'JS_PLEASE_LOGIN_TO_MARKETPLACE_FOR_UNINSTALLING_EXTENSION' => 'Effettua il login al marketplace per la disinstallazione di estensione', - 'JS_CARD_DETAILS_UPDATED' => 'Card details updated!' , + 'JS_PLEASE_SETUP_CARD_DETAILS_TO_INSTALL_EXTENSION' => 'Inserire i detagli della carta per installa l\'estensione', + 'JS_PLEASE_LOGIN_TO_MARKETPLACE_FOR_UNINSTALLING_EXTENSION' => 'Effettua il login al marketplace per la disinstallazione dell\'estensione', + 'JS_CARD_DETAILS_UPDATED' => 'Dettagli carta aggiornati!' , 'JS_PASSWORDS_MISMATCH' => 'Le password non corrispondono!', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Groups.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Groups.php index 2ebfeb3d12e0094b36199d2ad1558b8af67d1224..959c7ad97781f69a390b5c02ff53c044dd46510c 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Groups.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Groups.php @@ -8,21 +8,21 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_TRANSFORM_OWNERSHIP' => 'Transfer ownership' , - 'SINGLE_Groups' => 'Group' , // TODO: Review - 'LBL_TO_OTHER_GROUP' => 'To Other Group ' , - 'LBL_ADD_RECORD' => 'Add Group' , // TODO: Review - 'LBL_GROUP_NAME' => 'Group Name' , // TODO: Review - 'LBL_GROUP_MEMBERS' => 'Group Members' , // TODO: Review - 'LBL_ADD_USERS_ROLES' => 'Add Users, Roles...' , // TODO: Review - 'LBL_ROLEANDSUBORDINATE' => 'Role and Subordinates' , // TODO: Review - 'RoleAndSubordinates' => 'Role and Subordinates' , // TODO: Review + 'LBL_TRANSFORM_OWNERSHIP' => 'Trasferisci proprietà ' , + 'SINGLE_Groups' => 'Gruppo' , // TODO: Review + 'LBL_TO_OTHER_GROUP' => 'ad altro gruppo ' , + 'LBL_ADD_RECORD' => 'Aggiungi Gruppo' , // TODO: Review + 'LBL_GROUP_NAME' => 'Nome Gruppo' , // TODO: Review + 'LBL_GROUP_MEMBERS' => 'Membri Gruppo' , // TODO: Review + 'LBL_ADD_USERS_ROLES' => 'Aggiungi Utenti, Ruoli...' , // TODO: Review + 'LBL_ROLEANDSUBORDINATE' => 'Ruolo e subordinati' , // TODO: Review + 'RoleAndSubordinates' => 'Ruolo e subordinati' , // TODO: Review 'LBL_DUPLICATES_EXIST' => 'Il Nome del gruppo Esiste già ', ); $jsLanguageStrings = array( - 'JS_PLEASE_SELECT_ATLEAST_ONE_MEMBER_FOR_A_GROUP' => 'Please select atleast one member for a group', // TODO: Review - 'JS_RECORD_DELETED_SUCCESSFULLY' => 'Group deleted successfully' , // TODO: Review - 'JS_COMMA_NOT_ALLOWED_GROUP' => 'Caratteri speciali come ,"<> non sono ammessi in Nome gruppo.', + 'JS_PLEASE_SELECT_ATLEAST_ONE_MEMBER_FOR_A_GROUP' => 'Seleziona almeno un membro per un gruppo', // TODO: Review + 'JS_RECORD_DELETED_SUCCESSFULLY' => 'Gruppo cancellato con successoì' , // TODO: Review + 'JS_COMMA_NOT_ALLOWED_GROUP' => 'Caratteri speciali come ,"<> non sono ammessi nel Nome gruppo.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/LayoutEditor.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/LayoutEditor.php index acb7644f9ad0cfd7c57dfe9bbcf7735f9b38d65a..60ca12ce44f9b5b06567a94e417a9c5aba36ad5c 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/LayoutEditor.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/LayoutEditor.php @@ -79,7 +79,7 @@ $languageStrings = array( 'LBL_RELATION_SHIPS' => 'Relazioni' , '1-1' => 'One to One' , '1-N' => 'Uno a Molti' , - 'N-1' => 'Molti di One' , + 'N-1' => 'Molti a uno' , 'N-N' => 'Molti a molti' , 'LBL_FIELD_TYPES' => 'Tipi di campo' , 'LBL_RELATION_ADDED_SUCCESS' => 'Relazione aggiunto con successo', @@ -88,8 +88,8 @@ $languageStrings = array( 'TAB_IN_PRIMARY_MODULE' => 'Tabella / linguetta in %s' , 'TAB_IN_RELATED_MODULE' => 'Tabella / linguetta in %s' , 'LBL_ADDING_RELATIONSHIP' => 'Aggiunta relazione %s' , - 'LBL_DETAIL_VIEW' => 'Detail View' , - 'LBL_EXPANDED' => 'Expanded' , + 'LBL_DETAIL_VIEW' => 'Vista dettagliata' , + 'LBL_EXPANDED' => 'Espanso' , 'LBL_COLLAPSED' => 'Compresso' , 'LBL_FILED_IN_PRIMARY_HELP_TEXT' => 'Campo di riferimento del modulo %s', 'LBL_TAB_IN_PRIMARY_HELP_TEXT' => 'Tabella / linguetta del modulo %s', @@ -110,12 +110,12 @@ $languageStrings = array( 'LBL_RELATED_MODULE' => 'Relative Al Modulo', 'LBL_SELECTED_RELATED_MODULE' => 'Selezionare relativi moduli', 'LBL_SELECTED_RELATION_TYPE' => 'Selezionare il tipo di relazione', - 'ONE_ONE_AND_MANY_ONE_RELATIONSHIP' => 'Uno-E-Relazioni', - 'ONE_MANY_RELATIONSHIP' => 'Uno-molti e Molti-molti Rapporti', + 'ONE_ONE_AND_MANY_ONE_RELATIONSHIP' => 'Relazioni uno a uno e molti a uno', + 'ONE_MANY_RELATIONSHIP' => 'Relazioni Uno-molti e Molti-molti', 'LBL_NO_RELATED_INFO' => 'Non esiste alcuna Relazione', 'LBL_ADD_NEW_FIELD_HERE' => 'Aggiungi un nuovo campo qui', 'LBL_SAVE_LAYOUT' => 'Salvare Il Layout', - 'LBL_SHOW_FIELD' => 'Show', + 'LBL_SHOW_FIELD' => 'Mostra', 'LBL_ENABLE_OR_DISABLE_FIELD_PROP' => 'Abilitare / Disabilitare le proprietà del campo', 'LBL_PROP_MANDATORY' => 'obbligatorio', 'LBL_DEFAULT_VALUE_NOT_SET' => 'Valore di Default non è impostato', @@ -136,9 +136,9 @@ $languageStrings = array( 'LBL_DETAIL_HEADER' => 'Record di intestazione', 'LBL_HEADER_FIELD' => 'La Visualizzazione Dell\'Intestazione', - 'LBL_DUPLICATE_HANDLING' => 'Prevenzione Duplicate', + 'LBL_DUPLICATE_HANDLING' => 'Prevenzione Duplicati', 'LBL_DUPLICATE_CHECK' => 'Abilita controllo duplicato', - 'LBL_DUPLICATION_INFO_MESSAGE' => 'Duplicare funzione di prevenzione impedisce solo i nuovi record duplicati da sempre creati dagli utenti e le applicazioni esterne. Record creati da Import', + 'LBL_DUPLICATION_INFO_MESSAGE' => 'L\'opzione di prevenzione dei duplicati impedisce solo che gli utenti o applicazioni esterne creino dei duplicati. Record creati da Import no', 'LBL_SELECT_FIELDS_FOR_DUPLICATION' => 'Selezionare i campi unici sui quali devono essere controllati i record duplicati', 'LBL_SELECT_FIELDS' => 'selezionare i campi', 'LBL_MAX_3_FIELDS' => 'Max 3 campi', @@ -149,7 +149,9 @@ $languageStrings = array( 'LBL_PREFER_LATEST_RECORD' => 'Preferisco ultimo disco', 'LBL_PREFER_INTERNAL_RECORD' => 'Preferisco record interno', 'LBL_PREFER_EXTERNAL_RECORD' => 'Preferisco record esterno', - 'LBL_SYNC_TOOLTIP_MESSAGE' => "Preferisco ultimo disco - registrare i dati di recente modificate saranno mantenute <br> Preferisco record interno - esistente record sarà trattenuto in quanto è <br> Preferisco record esterno - Dati dall'applicazione esterna verranno copiati", + 'LBL_SYNC_TOOLTIP_MESSAGE' => "Preferire ultimo record - i dati più recenti saranno mantenuti + <br> Preferisco record interno - il record esistente sarà lasciato come è + <br> Preferisco record esterno - Dati dall'applicazione esterna verranno sempre copiati", ); $jsLanguageStrings = array( 'JS_BLOCK_VISIBILITY_SHOW' => 'Visualizza blocco attivato' , @@ -169,7 +171,7 @@ $jsLanguageStrings = array( 'JS_NO_HIDDEN_FIELDS_EXISTS' => 'Nessun campo inattivo' , 'JS_SPECIAL_CHARACTERS' => 'Caratteri speciali come' , 'JS_NOT_ALLOWED' => 'non sono ammessi' , - 'JS_FIELD_SEQUENCE_UPDATED' => 'Field Sequence Updated' , + 'JS_FIELD_SEQUENCE_UPDATED' => 'Sequenza campo aggiornata' , 'JS_DUPLICATES_VALUES_FOUND' => 'Valori duplicati trovati' , 'JS_FIELD_IN_RELATED_MODULE' => 'Campo Rapporto in %s' , 'JS_TAB_IN_RELATED_MODULE' => 'Tabella / linguetta in %s' , diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Leads.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Leads.php index 87b78eb645ae6cd861b67b3ecc24b0f9bdc53662..d59e87eb777e4c8ebf3d7deb3095d9dcc1289623 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Leads.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Leads.php @@ -8,10 +8,10 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_CONVERT_LEAD_FIELD_MAPPING' => 'Convert Lead Mapping' , // TODO: Review - 'LBL_ORGANIZATIONS' => 'Organizations' , // TODO: Review - 'LBL_CONTACTS' => 'Contacts' , // TODO: Review - 'LBL_OPPURTUNITIES' => 'Oppurtunities' , // TODO: Review + 'LBL_CONVERT_LEAD_FIELD_MAPPING' => 'Converti Mappatura Lead' , // TODO: Review + 'LBL_ORGANIZATIONS' => 'Aziende' , // TODO: Review + 'LBL_CONTACTS' => 'Contatti' , // TODO: Review + 'LBL_OPPURTUNITIES' => 'Opportunità ' , // TODO: Review ); $jsLanguageStrings = array( ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/MailConverter.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/MailConverter.php index 033acb72ac1359de74549217c7786a8dd7222910..2f677ae917794544a11da4ca1f3cb3ec8a88adad 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/MailConverter.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/MailConverter.php @@ -73,18 +73,18 @@ $languageStrings = array( 'LBL_RULE_DELETION_FAILED' => "Regole di cancellazione non è riuscita", 'LBL_SAVED_SUCCESSFULLY' => "Salvato con successo", 'LBL_SCANED_SUCCESSFULLY' => "Acquisita correttamente", - 'LBL_IS_IN_RUNNING_STATE' => "in posizione di regime", - 'LBL_FOLDERS_INFO_IS_EMPTY' => "Informazioni Folders è vuoto", - 'LBL_RULES_SEQUENCE_INFO_IS_EMPTY' => "Regole informazioni sequnce è vuoto", + 'LBL_IS_IN_RUNNING_STATE' => "in stato di in esecuzione", + 'LBL_FOLDERS_INFO_IS_EMPTY' => "Informazioni delle cartelle è vuoto", + 'LBL_RULES_SEQUENCE_INFO_IS_EMPTY' => "Regole informazioni sequenza è vuoto", 'LBL_UPDATE_FOLDERS' => "Aggiornare cartelle", 'fromaddress' => "Da", 'toaddress' => "A", - 'subject' => "Soggetto", + 'subject' => "Oggetto", 'body' => "Corpo", - 'matchusing' => "Fiammifero", + 'matchusing' => "Usa come corrispondenza", 'action' => "Azioni", 'LBL_PRIORITY' => "Priorità ", - 'PRIORITISE_MESSAGE' => "Trascinare e rilasciare i blocchi di dare priorità alla regola", + 'PRIORITISE_MESSAGE' => "Trascinare e rilasciare i blocchi per dare priorità alla regola", 'LBL_ALL_CONDITIONS' => "Tutte le Condizioni", 'LBL_ANY_CONDITIOn' => "Qualsiasi", 'Contains' => "Contiene", @@ -99,17 +99,17 @@ $languageStrings = array( 'CREATE_HelpDeskNoContact_FROM' => 'Crea Ticket (senza contatto)', 'UPDATE_HelpDesk_SUBJECT' => "Aggiornamento Ticket", 'LINK_Contacts_FROM' => "Aggiungi alla rubrica [DA]", - 'LINK_Contacts_TO' => "Aggiungi alla rubrica [TO]", - 'LINK_Accounts_FROM' => "Aggiungi a Organizzazione [DA]", - 'LINK_Accounts_TO' => "Aggiungi a Organizzazione [TO]", - 'LINK_Leads_FROM' => "Aggiungi a piombo [DA]", - 'LINK_Leads_TO' => "Aggiungi a piombo [TO]", - 'CREATE_Potentials_SUBJECT' => 'Crea Opportunity (con contatto)', + 'LINK_Contacts_TO' => "Aggiungi alla rubrica [A]", + 'LINK_Accounts_FROM' => "Aggiungi a Azienda [DA]", + 'LINK_Accounts_TO' => "Aggiungi a Aziende [A]", + 'LINK_Leads_FROM' => "Aggiungi a Lead [DA]", + 'LINK_Leads_TO' => "Aggiungi a Lead [A]", + 'CREATE_Potentials_SUBJECT' => 'Crea Opportunità (con contatto)', 'CREATE_PotentialsNoContact_SUBJECT' => 'Creare Opportunità (senza contatto)', - 'LINK_Potentials_FROM' => 'Aggiungi a Opportunity [FROM]', - 'LINK_Potentials_TO' => 'Aggiungi a Opportunity [TO]', - 'LINK_HelpDesk_FROM' => 'Aggiungi alla biglietteria [FROM]', - 'LINK_HelpDesk_TO' => 'Aggiungi alla biglietteria [TO]', + 'LINK_Potentials_FROM' => 'Aggiungi a Opportunità [DA]', + 'LINK_Potentials_TO' => 'Aggiungi a Opportunità [A]', + 'LINK_HelpDesk_FROM' => 'Aggiungi a Ticket [DA]', + 'LINK_HelpDesk_TO' => 'Aggiungi a Ticket [A]', 'LBL_UPDATE_FOLDERS' => "Aggiornare cartelle", 'LBL_UNSELECT_ALL' => "Deseleziona tutto", 'LBL_CONVERT_EMAILS_TO_RESPECTIVE_RECORDS' => "Convertire le email a rispettivi record", @@ -118,7 +118,7 @@ $languageStrings = array( 'LBL_PRIORITY' => "Priorità ", 'LBL_DELETE_RULE' => "Elimina regola", 'LBL_BODY' => "Corpo", - 'LBL_MATCH' => "Fiammifero", + 'LBL_MATCH' => "Corrispondenza", 'LBL_ACTION' => "Azione", 'LBL_FROM' => "Da", 'LBL_EDIT_RULE' => 'Modifica regola', @@ -130,16 +130,16 @@ $languageStrings = array( 'YESTERDAY' => 'Ieri', 'LBL_AUTOFILL_VALUES_FROM_EMAIL_BODY' => 'I valori Riempimento automatico da corpo-mail', 'LBL_DELIMITER' => 'Delimitatore', - 'LBL_COLON' => ': (Colon)', + 'LBL_COLON' => ': (due punti)', 'LBL_SEMICOLON' => '; (Punto e virgola)', 'LBL_DASH' => '- (Trattino)', 'LBL_EQUAL' => '= (Uguale)', 'LBL_GREATER_THAN' => '> (Maggiore di)', - 'LBL_COLON_DASH' => ':- (Colon-Hyphen)', - 'LBL_COLON_EQUAL' => ':= (Colon-Equals)', - 'LBL_SEMICOLON_DASH' => ';- (Virgola-Hyphen)', - 'LBL_SEMICOLON_EQUAL' => ';= (Punto e virgola Equals)', - 'LBL_EQUAL_GREATER_THAN' => '=> (Uguale-Greater Than)', + 'LBL_COLON_DASH' => ':- (due punti trattino)', + 'LBL_COLON_EQUAL' => ':= (due punti uguale)', + 'LBL_SEMICOLON_DASH' => ';- (Virgola trattino)', + 'LBL_SEMICOLON_EQUAL' => ';= (Punto e virgola uguale)', + 'LBL_EQUAL_GREATER_THAN' => '=> (Uguale maggiore di)', 'LBL_OTHER' => 'Altro', 'LBL_DELIMITER_INFO' => 'Selezionare il delimitatore che separa i valori di etichette nel vostro corpo e-mail', 'LBL_EMAIL_BODY_INFO' => 'Copiare testo da un messaggio del campione da sottoporre a scansione nella casella qui sotto. Vtiger CRM cercherà di individuare i valori e aiutare a mappare i campi di CRM.', @@ -149,9 +149,9 @@ $languageStrings = array( 'LBL_CRM_FIELDS' => 'Campi CRM', 'LBL_MAP_TO_CRM_FIELDS' => 'Mappa valori a Campi CRM', 'SELECT_FIELD' => 'Seleziona campo', - 'LBL_SAVE_MAPPING_INFO' => 'Risparmio regola corpo per una regola Converter posta esistente sovrascriverà regola organo esistente per quella regola.', + 'LBL_SAVE_MAPPING_INFO' => 'Salvare una regola per il corpo per una regola Converter di posta esistente sovrascriverà regola corpo esistente con quella regola.', 'LBL_MULTIPLE_FIELDS_MAPPED' => 'Non è possibile mappare un campo CRM con più campi', - 'LBL_BODY_RULE' => 'Regola Corpo Definito', + 'LBL_BODY_RULE' => 'Regola Corpo Definita', 'LBL_MAIL_SCANNER_INACTIVE' => 'Questa Mailbox è in stato inattivo', 'LBL_NO_RULES' => 'Non ci sono regole definite per questa cassetta postale', 'LBL_SCANNERNAME_ALPHANUMERIC_ERROR' => 'Scanner Nome accetta solo valore alfanumerico. Non sono ammessi caratteri speciali.', @@ -170,11 +170,11 @@ $languageStrings = array( $jsLanguageStrings = array( 'JS_MAILBOX_DELETED_SUCCESSFULLY' => "Cassetta postale eliminata con successo", 'JS_MAILBOX_LOADED_SUCCESSFULLY' => "Posta caricato correttamente", - 'JS_SELECT_ATLEAST_ONE' => 'Si prega di mappare atleast un campo', + 'JS_SELECT_ATLEAST_ONE' => 'Si prega di mappare almeno un campo', 'JS_SERVER_NAME' => 'Immettere il nome del server', 'JS_TIMEZONE' => 'Fuso orario Mail Server', 'JS_SCAN_FROM' => 'Mail Scansione dal', 'JS_TIMEZONE_INFO' => 'Seleziona il fuso orario in cui si trova il server di posta. Selezione fuso orario sbagliato potrebbe saltare alcune poste dalla scansione.', - 'JS_SCAN_FROM_INFO' => 'Questo campo decide se tutte le mail nella casella postale devono essere controllati o mail che ha sbarcato nella tua mailbox ieri o poi devono essere controllati. Questo campo è applicabile solo per la configurazione prima volta o quando si seleziona una nuova cartella per la scansione.', + 'JS_SCAN_FROM_INFO' => 'Questo campo decide se tutte le mail nella casella postale devono essere controllati o email arrivate nella tua mailbox ieri o più tardi devono essere controllati. Questo campo è applicabile solo per la configurazione per prima volta o quando si seleziona una nuova cartella per la scansione.', 'JS_SELECT_ONE_FOLDER' => 'È necessario selezionare, almeno una cartella.', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ModuleManager.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ModuleManager.php index 424a1563328507cd7ffe52d5563cf13570c32477..28a3bb4804e2b716866ca343c17d6d32a1d6f5bf 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ModuleManager.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/ModuleManager.php @@ -8,37 +8,37 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_IMPORT_MODULE' => 'Import Module' , // TODO: Review + 'LBL_IMPORT_MODULE' => 'Importa Modulo' , // TODO: Review 'LBL_VTIGER_EXTENSION_STORE' => 'Vtiger Extension Store' , // TODO: Review - 'LBL_PUBLISHER' => 'Publisher' , // TODO: Review - 'LBL_LICENSE' => 'License' , // TODO: Review - 'LBL_PUBLISHED_ON' => 'Published on' , // TODO: Review - 'LBL_INSTALL' => 'Install' , // TODO: Review - 'LBL_UPGRADE' => 'Upgrade' , // TODO: Review - 'LBL_VERSION' => 'Version' , // TODO: Review - 'LBL_DECLINE' => 'Decline' , // TODO: Review - 'LBL_ACCEPT_AND_INSTALL' => 'Accept and Install' , // TODO: Review - 'LBL_ALREADY_EXISTS' => 'Already Exists' , // TODO: Review + 'LBL_PUBLISHER' => 'Editore' , // TODO: Review + 'LBL_LICENSE' => 'Licenza' , // TODO: Review + 'LBL_PUBLISHED_ON' => 'Pubblicato il' , // TODO: Review + 'LBL_INSTALL' => 'Installa' , // TODO: Review + 'LBL_UPGRADE' => 'Aggiorna' , // TODO: Review + 'LBL_VERSION' => 'Versione' , // TODO: Review + 'LBL_DECLINE' => 'Rifiuta' , // TODO: Review + 'LBL_ACCEPT_AND_INSTALL' => 'Accetta e Installa' , // TODO: Review + 'LBL_ALREADY_EXISTS' => 'Già esiste' , // TODO: Review 'LBL_OK' => 'OK' , // TODO: Review - 'LBL_EXTENSION_NOT_COMPATABLE' => 'Extension is not Vtiger Compatable', // TODO: Review - 'LBL_INVALID_FILE' => 'Invalid File' , // TODO: Review - 'LBL_NO_LICENSE_PROVIDED' => 'No License Provided' , // TODO: Review - 'LBL_INSTALLATION' => 'Installation' , // TODO: Review - 'LBL_FAILED' => 'Failed' , // TODO: Review - 'LBL_SUCCESSFULL' => 'Successfull' , // TODO: Review - 'LBL_INSTALLATION_LOG' => 'Installation Log' , // TODO: Review + 'LBL_EXTENSION_NOT_COMPATABLE' => 'l\'estensione con è compatibile con VTiger', // TODO: Review + 'LBL_INVALID_FILE' => 'File non valido' , // TODO: Review + 'LBL_NO_LICENSE_PROVIDED' => 'Nessuna licenza fornita' , // TODO: Review + 'LBL_INSTALLATION' => 'Installazione' , // TODO: Review + 'LBL_FAILED' => 'Fallita' , // TODO: Review + 'LBL_SUCCESSFULL' => 'Con successo' , // TODO: Review + 'LBL_INSTALLATION_LOG' => 'Registro installazione' , // TODO: Review //Extension Store translations - 'LBL_VTIGER_EXTENSION_STORE' => 'Vtiger Extension Negozio', - 'LBL_SEARCH_FOR_EXTENSION' => 'Cerca Extension', + 'LBL_VTIGER_EXTENSION_STORE' => 'Vtiger Extension Market', + 'LBL_SEARCH_FOR_EXTENSION' => 'Cerca Estensione', 'LBL_DOWNLOADS' => 'Download', - 'LBL_NO_EXTENSIONS_FOUND' => 'Nessun Estensioni trovato', - 'LBL_REGISTER_USER' => 'Registrati utente', + 'LBL_NO_EXTENSIONS_FOUND' => 'Nessun Estensione trovata', + 'LBL_REGISTER_USER' => 'Registrazione utente', 'LBL_SETUP_CARD_DETAILS' => 'Dettagli di installazione di schede', 'LBL_SETUP_CARD' => 'Impostazione scheda', 'LBL_CARD_NUMBER' => 'Numero di carta', - 'LBL_EXP_MONTH' => 'Exp Mese', - 'LBL_EXP_YEAR' => 'Exp Anno', + 'LBL_EXP_MONTH' => 'Mese scad.', + 'LBL_EXP_YEAR' => 'Anno scad.', 'LBL_CVC_CODE' => 'CVC 3 cifre del codice', 'LBL_RESET' => 'Reset', 'LBL_EXTENSION_STORE' => 'Negozio Extension', @@ -55,20 +55,20 @@ $languageStrings = array( 'LBL_CUSTOMER_RATINGS' => 'Voti', 'LBL_CUSTOMER_REVIEWS' => 'Recensioni del cliente', 'LBL_WRITE_A_REVIEW' => 'Scrivi una recensione', - 'LBL_CUSTOMER_REVIEW' => 'Customer Review', + 'LBL_CUSTOMER_REVIEW' => 'Recensioni clienti', 'LBL_REVIEW' => 'Recensione', 'LBL_CUSTOMERS_REVIEWED' => 'Clienti su', 'LBL_SINGLE_CUSTOMER_REVIEWED' => 'Singolo cliente Recensito', 'LBL_INSTALLATION_FAILED' => 'Installazione non riuscita', - 'LBL_SUCCESSFULL_INSTALLATION' => 'Installazione Successfull', + 'LBL_SUCCESSFULL_INSTALLATION' => 'Installazione avventua con successo', 'Install' => 'Installare', 'Upgrade' => 'Aggiornamento', 'LBL_RATE_IT' => 'Vota', ); $jsLanguageStrings = array( - 'JS_PLEASE_SETUP_CARD_DETAILS_TO_INSTALL_THIS_EXTENSION' => 'Si prega dati della carta di setup per installare questa estensione', + 'JS_PLEASE_SETUP_CARD_DETAILS_TO_INSTALL_THIS_EXTENSION' => 'Si prega di inserire i dati della carta per installare questa estensione', 'JS_UPDATE_CARD_DETAILS' => 'Dettagli Aggiornamento Carta', 'JS_ON' => 'su', 'JS_RATINGS' => 'Valutazioni', - 'JS_PLEASE_INSTALL_EXTENSION_LOADER_TO_INSTALL_THIS_EXTENSION_FROM_BELOW_LINK' => 'Si prega di installare lestensione loader per installare questa estensione da sotto il collegamento', + 'JS_PLEASE_INSTALL_EXTENSION_LOADER_TO_INSTALL_THIS_EXTENSION_FROM_BELOW_LINK' => 'Si prega di installare l\'estensione da link qui sotto', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/PickListDependency.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/PickListDependency.php index 00f68c79f8325d6ad50465da778475f67eb130b5..6d920bdb2663cc0a1c549df739524427db92cc0d 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/PickListDependency.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/PickListDependency.php @@ -8,20 +8,20 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_ADD_RECORD' => 'Add Picklist Dependency' , // TODO: Review - 'LBL_PICKLIST_DEPENDENCY' => 'Picklist Dependency' , // TODO: Review - 'LBL_SELECT_MODULE' => 'Module' , // TODO: Review - 'LBL_SOURCE_FIELD' => 'Source Field' , // TODO: Review - 'LBL_TARGET_FIELD' => 'Target Field' , // TODO: Review - 'LBL_SELECT_FIELD' => 'Select field' , // TODO: Review - 'LBL_CONFIGURE_DEPENDENCY_INFO' => 'Click on the respective cell to change the mapping for picklist values of target field', // TODO: Review - 'LBL_CONFIGURE_DEPENDENCY_HELP_1' => 'Only mapped picklist values of the Source field will be shown below (except for first time)', // TODO: Review - 'LBL_CONFIGURE_DEPENDENCY_HELP_2' => 'If you want to see or change the mapping for the other picklist values of Source field, <br/> - then you can select the values by clicking on <b>\'Select Source values\'</b> button on the right side', // TODO: Review - 'LBL_CONFIGURE_DEPENDENCY_HELP_3' => 'Selected values of the Target field values, are highlighted as', // TODO: Review - 'LBL_SELECT_SOURCE_VALUES' => 'Select Source Values' , // TODO: Review - 'LBL_SELECT_SOURCE_PICKLIST_VALUES' => 'Select Source Picklist Values', // TODO: Review - 'LBL_ERR_CYCLIC_DEPENDENCY' => 'This dependency setup is not allowed as it ends up in some cyclic dependency', // TODO: Review + 'LBL_ADD_RECORD' => 'Aggiungi dipendenza menu' , // TODO: Review + 'LBL_PICKLIST_DEPENDENCY' => 'Dipendenza menu a tendina' , // TODO: Review + 'LBL_SELECT_MODULE' => 'Modulo' , // TODO: Review + 'LBL_SOURCE_FIELD' => 'Origine campo' , // TODO: Review + 'LBL_TARGET_FIELD' => 'Campo destinazione' , // TODO: Review + 'LBL_SELECT_FIELD' => 'Seleziona campo' , // TODO: Review + 'LBL_CONFIGURE_DEPENDENCY_INFO' => 'Clicca sulla rispettiva cella per cambiare i valori del menu del campo destinazione', // TODO: Review + 'LBL_CONFIGURE_DEPENDENCY_HELP_1' => 'Solo i valori mappati dell\'origine saranno mostrati qui di seguito (ad eccetto della prima volta)', // TODO: Review + 'LBL_CONFIGURE_DEPENDENCY_HELP_2' => 'Se vuoi vedere o cambiare la mappatura per gli altri valori del campo di origine, + puoi selezionarli cliccando sul pulsante <b> Seleziona valori di origine</b> a destra', // TODO: Review + 'LBL_CONFIGURE_DEPENDENCY_HELP_3' => 'I valori selezionati del campo destinazione sono evidenziati come', // TODO: Review + 'LBL_SELECT_SOURCE_VALUES' => 'Seleziona valori di origine' , // TODO: Review + 'LBL_SELECT_SOURCE_PICKLIST_VALUES' => 'Seleziona valori di origine dei menu a tendina', // TODO: Review + 'LBL_ERR_CYCLIC_DEPENDENCY' => 'Questa dipendenza non è permessa, perchè creerebbe una dipendenza circolare', // TODO: Review 'LBL_SELECT_ALL_VALUES' => 'Seleziona tutto', 'LBL_UNSELECT_ALL_VALUES' => 'Deseleziona tutto', 'LBL_CYCLIC_DEPENDENCY_ERROR' => 'Potrebbe finire in ridondanza ciclico come campo %s è già configurato per il campo %s', @@ -30,10 +30,10 @@ $languageStrings = array( ); $jsLanguageStrings = array( - 'JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE' => 'Are you sure you want to delete this picklist dependency?', // TODO: Review - 'JS_DEPENDENCY_DELETED_SUEESSFULLY' => 'Dependency deleted successfully', // TODO: Review - 'JS_PICKLIST_DEPENDENCY_SAVED' => 'Picklist Dependency Saved' , // TODO: Review - 'JS_DEPENDENCY_ATLEAST_ONE_VALUE' => 'You need to select atleast one value for', // TODO: Review - 'JS_SOURCE_AND_TARGET_FIELDS_SHOULD_NOT_BE_SAME' => 'Source field and Target field should not be same', // TODO: Review - 'JS_SELECT_SOME_VALUE' => 'Select some value' , // TODO: Review + 'JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE' => 'Sei sicuro che vuoi cancellare questa dipendenza di menu a tendina?', // TODO: Review + 'JS_DEPENDENCY_DELETED_SUEESSFULLY' => 'Dipendenza cancellata con successo', // TODO: Review + 'JS_PICKLIST_DEPENDENCY_SAVED' => 'Dipendenza menu salvata' , // TODO: Review + 'JS_DEPENDENCY_ATLEAST_ONE_VALUE' => 'Devi selezionare almeno un valore per', // TODO: Review + 'JS_SOURCE_AND_TARGET_FIELDS_SHOULD_NOT_BE_SAME' => 'I campi origine e destinazione non devono essere lo stesso campo', // TODO: Review + 'JS_SELECT_SOME_VALUE' => 'Seleziona qualche valore' , // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Picklist.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Picklist.php index c04bcc3ce594310ab123e4086247ee7f855511c9..6486c7b645f1c46402b6c106aa95f547452507db 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Picklist.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Picklist.php @@ -8,55 +8,55 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_SELECT_PICKLIST_IN' => 'Select Picklist in' , // TODO: Review - 'LBL_ADD_VALUE' => 'Add Value' , // TODO: Review - 'LBL_RENAME_VALUE' => 'Rename Value' , // TODO: Review - 'LBL_DELETE_VALUE' => 'Delete Value' , // TODO: Review - 'LBL_ITEMS' => 'Values' , // TODO: Review - 'LBL_DRAG_ITEMS_TO_RESPOSITION' => 'Drag items to reposition them', // TODO: Review - 'LBL_SELECT_AN_ITEM_TO_RENAME_OR_DELETE' => 'Select an item to rename or delete', // TODO: Review - 'LBL_TO_DELETE_MULTIPLE_HOLD_CONTROL_KEY' => 'To Delete multiple items hold Ctrl key down while selecting items', // TODO: Review - 'LBL_ADD_ITEM_TO' => 'Add Item to' , // TODO: Review - 'LBL_ITEM_VALUE' => 'Item value' , // TODO: Review - 'LBL_ITEM_TO_RENAME' => 'Item to rename' , // TODO: Review - 'LBL_ENTER_NEW_NAME' => 'Enter new Name' , // TODO: Review - 'LBL_RENAME_PICKLIST_ITEM' => 'Rename PickList Item' , // TODO: Review - 'LBL_DELETE_PICKLIST_ITEMS' => 'Delete PickList Items' , // TODO: Review - 'LBL_ITEMS_TO_DELETE' => 'Items to Delete' , // TODO: Review - 'LBL_REPLACE_IT_WITH' => 'Replace it with' , // TODO: Review - 'LBL_ASSIGN_TO_ROLE' => 'Assign to Role' , // TODO: Review - 'LBL_ALL_ROLES' => 'All Roles' , // TODO: Review - 'LBL_CHOOSE_ROLES' => 'Choose Roles' , // TODO: Review - 'LBL_ALL_VALUES' => 'All values' , // TODO: Review - 'LBL_VALUES_ASSIGNED_TO_A_ROLE' => 'Values assigned to a role' , // TODO: Review - 'LBL_ASSIGN_VALUE' => 'Assign Value' , // TODO: Review - 'LBL_SAVE_ORDER' => 'Save Order' , // TODO: Review - 'LBL_ROLE_NAME' => 'Role name' , // TODO: Review - 'LBL_SELECTED_VALUES_MESSGAE' => 'will appear for the user with this role', // TODO: Review - 'LBL_ENABLE/DISABLE_MESSGAE' => 'Click on value to Enable/Disable it.After done click on save', // TODO: Review - 'LBL_ASSIGN_VALUES_TO_ROLES' => 'Assign Values to Roles' , // TODO: Review - 'LBL_SELECTED_VALUES' => 'Selected Values' , // TODO: Review - 'NO_PICKLIST_FIELDS' => 'do not have any picklist fields', // TODO: Review - 'LBL_EDIT_PICKLIST_ITEM' => 'Modifica Picklist Voce', + 'LBL_SELECT_PICKLIST_IN' => 'Seleziona un valore dal lista' , // TODO: Review + 'LBL_ADD_VALUE' => 'Aggiungi Valore' , // TODO: Review + 'LBL_RENAME_VALUE' => 'Rinomina Valore' , // TODO: Review + 'LBL_DELETE_VALUE' => 'Cancella Valore' , // TODO: Review + 'LBL_ITEMS' => 'Valori' , // TODO: Review + 'LBL_DRAG_ITEMS_TO_RESPOSITION' => 'Trascina gli oggetti per riposizionarli', // TODO: Review + 'LBL_SELECT_AN_ITEM_TO_RENAME_OR_DELETE' => 'Seleziona un oggetto per rinominarlo o cancellarlo', // TODO: Review + 'LBL_TO_DELETE_MULTIPLE_HOLD_CONTROL_KEY' => 'Per cancellare più oggetti contemporaneamente, tieni Ctrl premuto mentre selezioni gli oggetti', // TODO: Review + 'LBL_ADD_ITEM_TO' => 'Aggiungi oggetto a' , // TODO: Review + 'LBL_ITEM_VALUE' => 'Valore oggetto' , // TODO: Review + 'LBL_ITEM_TO_RENAME' => 'Oggetto da rinominare' , // TODO: Review + 'LBL_ENTER_NEW_NAME' => 'Inserisci nuovo nome' , // TODO: Review + 'LBL_RENAME_PICKLIST_ITEM' => 'Rinomina oggetto lista' , // TODO: Review + 'LBL_DELETE_PICKLIST_ITEMS' => 'Cancella oggetto lista' , // TODO: Review + 'LBL_ITEMS_TO_DELETE' => 'Oggetti da cancellare' , // TODO: Review + 'LBL_REPLACE_IT_WITH' => 'Sostituisci con' , // TODO: Review + 'LBL_ASSIGN_TO_ROLE' => 'Assegna al Ruolo' , // TODO: Review + 'LBL_ALL_ROLES' => 'Tutti i ruoli' , // TODO: Review + 'LBL_CHOOSE_ROLES' => 'Scegli Ruoli' , // TODO: Review + 'LBL_ALL_VALUES' => 'Tutti i valori' , // TODO: Review + 'LBL_VALUES_ASSIGNED_TO_A_ROLE' => 'Valori assegnati al ruolo' , // TODO: Review + 'LBL_ASSIGN_VALUE' => 'Assegna Valore' , // TODO: Review + 'LBL_SAVE_ORDER' => 'Salva ordine' , // TODO: Review + 'LBL_ROLE_NAME' => 'Nome ruolo' , // TODO: Review + 'LBL_SELECTED_VALUES_MESSGAE' => 'apparirà all\'utente con questo ruolo', // TODO: Review + 'LBL_ENABLE/DISABLE_MESSGAE' => 'Clicca su un valore per ablitarlo/disabilitarlo. Dopo aver fatto clicca su salva', // TODO: Review + 'LBL_ASSIGN_VALUES_TO_ROLES' => 'Assegna valori a ruoli' , // TODO: Review + 'LBL_SELECTED_VALUES' => 'Valori selezionati' , // TODO: Review + 'NO_PICKLIST_FIELDS' => 'non hai alcun campodi tipo menù a tendina', // TODO: Review + 'LBL_EDIT_PICKLIST_ITEM' => 'Modifica Voce Menu', //Translation for module - 'Calendar' => 'Compito', + 'Calendar' => 'Calendario', - 'LBL_NON_EDITABLE_PICKLIST_VALUES' => 'Non I Valori Modificabili', + 'LBL_NON_EDITABLE_PICKLIST_VALUES' => 'I Valori non Modificabili', ); $jsLanguageStrings = array( - 'JS_ITEM_RENAMED_SUCCESSFULLY' => 'Item Renamed Successfully' , // TODO: Review - 'JS_ITEM_ADDED_SUCCESSFULLY' => 'Item added Successfully' , // TODO: Review - 'JS_NO_ITEM_SELECTED' => 'No item Selected' , // TODO: Review - 'JS_MORE_THAN_ONE_ITEM_SELECTED' => 'More than one Item selected' , // TODO: Review - 'JS_ITEMS_DELETED_SUCCESSFULLY' => 'Items Deleted Successfully' , // TODO: Review - 'JS_YOU_CANNOT_DELETE_ALL_THE_VALUES' => 'You cannot delete all the values', // TODO: Review - 'JS_ALL_ROLES_SELECTED' => 'All Roles Selected' , // TODO: Review - 'JS_LIST_UPDATED_SUCCESSFULLY' => 'List updated Successfully' , // TODO: Review - 'JS_SEQUENCE_UPDATED_SUCCESSFULLY' => 'Sequence updated successfully', // TODO: Review - 'JS_VALUE_ASSIGNED_SUCCESSFULLY' => 'Value assigned successfully' , // TODO: Review - 'JS_PLEASE_SELECT_MODULE' => 'Please seelct module' , // TODO: Review + 'JS_ITEM_RENAMED_SUCCESSFULLY' => 'Oggetto rinominato con successo' , // TODO: Review + 'JS_ITEM_ADDED_SUCCESSFULLY' => 'Oggetto aggiunto con successo' , // TODO: Review + 'JS_NO_ITEM_SELECTED' => 'Nessun oggetto selezionato' , // TODO: Review + 'JS_MORE_THAN_ONE_ITEM_SELECTED' => 'Selezionato più di un oggetto' , // TODO: Review + 'JS_ITEMS_DELETED_SUCCESSFULLY' => 'Oggetti cancellati con successo' , // TODO: Review + 'JS_YOU_CANNOT_DELETE_ALL_THE_VALUES' => 'Tu non puoi cancellare tutti i valori', // TODO: Review + 'JS_ALL_ROLES_SELECTED' => 'Tutti i ruoli selezionati' , // TODO: Review + 'JS_LIST_UPDATED_SUCCESSFULLY' => 'Lista aggiornata con successo' , // TODO: Review + 'JS_SEQUENCE_UPDATED_SUCCESSFULLY' => 'Sequenza aggiornata con successo', // TODO: Review + 'JS_VALUE_ASSIGNED_SUCCESSFULLY' => 'Valore assegnato con successo' , // TODO: Review + 'JS_PLEASE_SELECT_MODULE' => 'Seleziona un modulo' , // TODO: Review 'JS_SPECIAL_CHARACTERS' => 'I Caratteri speciali, come', 'JS_NOT_ALLOWED' => 'non sono ammessi', diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Potentials.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Potentials.php index b734962c62820651c25dbcecc59500fc2ff919c4..4ab653e2c4a1060c4809fb9d111061322ee59d92 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Potentials.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Potentials.php @@ -8,6 +8,6 @@ * All Rights Reserved. *************************************************************************************/ $languageStrings = array( - 'LBL_POTENTIAL_FIELD_MAPPING' => 'Opportunità Mapping Campo', + 'LBL_POTENTIAL_FIELD_MAPPING' => 'Mappatura Campi Opportunità ', ); ?> \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Profiles.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Profiles.php index 74e5157d94881c02f5f5560b5b2336e3df21019d..6a4cee690e4ddf41af27ced6f5ab6e75197fc2de 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Profiles.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Profiles.php @@ -10,40 +10,40 @@ $languageStrings = array( 'Profiles' => 'Profili' , 'SINGLE_Profiles' => 'Profilo' , - 'LBL_ADD_RECORD' => 'Add Profile' , - 'LBL_CREATE_PROFILE' => 'Create Profile' , // TODO: Review - 'LBL_PROFILE_NAME' => 'Profile name' , // TODO: Review - 'LBL_DESCRIPTION' => 'Description' , // TODO: Review - 'LBL_EDIT_PRIVILIGES_FOR_THIS_PROFILE' => 'Edit priviliges for this profile', // TODO: Review - 'LBL_MODULES' => 'Modules' , // TODO: Review - 'LBL_PROFILE_VIEW' => 'Profile view' , // TODO: Review - 'LBL_FIELDS' => 'Fields' , // TODO: Review - 'LBL_TOOLS' => 'Tools' , // TODO: Review - 'LBL_FIELD_AND_TOOL_PRIVILEGES' => 'Campo e utensili privilegi' , // TODO: Review - 'LBL_EDIT_RECORD' => 'Edit' , // TODO: Review - 'LBL_DUPLICATE_RECORD' => 'Duplicate' , // TODO: Review - 'LBL_DELETE_RECORD' => 'Delete' , // TODO: Review + 'LBL_ADD_RECORD' => 'Aggiungi Profilo' , + 'LBL_CREATE_PROFILE' => 'Crea Profilo' , // TODO: Review + 'LBL_PROFILE_NAME' => 'Nome Profilo' , // TODO: Review + 'LBL_DESCRIPTION' => 'Descrizione' , // TODO: Review + 'LBL_EDIT_PRIVILIGES_FOR_THIS_PROFILE' => 'Modifica i privilegi di questo profilo', // TODO: Review + 'LBL_MODULES' => 'Moduli' , // TODO: Review + 'LBL_PROFILE_VIEW' => 'Vista profilo' , // TODO: Review + 'LBL_FIELDS' => 'Campi' , // TODO: Review + 'LBL_TOOLS' => 'Strumenti' , // TODO: Review + 'LBL_FIELD_AND_TOOL_PRIVILEGES' => 'Privilegi Campi e strumenti' , // TODO: Review + 'LBL_EDIT_RECORD' => 'Modifica' , // TODO: Review + 'LBL_DUPLICATE_RECORD' => 'Duplica' , // TODO: Review + 'LBL_DELETE_RECORD' => 'Cancella' , // TODO: Review 'LBL_VIEW_PRVILIGE' => 'Visualizza' , 'LBL_EDIT_PRVILIGE' => 'Crea/Modifica' , 'LBL_DELETE_PRVILIGE' => 'Elimina' , - 'LBL_INIVISIBLE' => 'Invisible' , // TODO: Review - 'LBL_READ_ONLY' => 'Read only' , // TODO: Review - 'LBL_WRITE' => 'Write' , // TODO: Review - 'LBL_DELETE_PROFILE' => 'Delete Profile' , // TODO: Review - 'LBL_TRANSFER_ROLES_TO_PROFILE' => 'Transfer roles to profile' , // TODO: Review - 'LBL_PROFILES' => 'Profiles' , // TODO: Review - 'LBL_CHOOSE_PROFILES' => 'Choose Profiles' , // TODO: Review - 'LBL_GLOBAL_PERMISSION_WARNING' => 'Attenzione: gli utenti associati a questo profilo può accedere a tutti i record nel CRM', + 'LBL_INIVISIBLE' => 'Invisibile' , // TODO: Review + 'LBL_READ_ONLY' => 'Sola lettura' , // TODO: Review + 'LBL_WRITE' => 'Scrittura' , // TODO: Review + 'LBL_DELETE_PROFILE' => 'Cancella profilo' , // TODO: Review + 'LBL_TRANSFER_ROLES_TO_PROFILE' => 'Trasferisci ruoli a profilo' , // TODO: Review + 'LBL_PROFILES' => 'Profili' , // TODO: Review + 'LBL_CHOOSE_PROFILES' => 'Scegli i profili' , // TODO: Review + 'LBL_GLOBAL_PERMISSION_WARNING' => 'Attenzione: gli utenti associati a questo profilo possono accedere a tutti i record nel CRM', - 'LBL_EDIT_PRIVILEGES_OF_THIS_PROFILE' => 'I privilegi di modifica a questo profilo', + 'LBL_EDIT_PRIVILEGES_OF_THIS_PROFILE' => 'Modifica i privilegi di questo profilo', 'LBL_VIEW_ALL' => 'Vedi Tutti', 'LBL_EDIT_ALL' => 'Modifica Tutti', - 'LBL_VIEW_ALL_DESC' => 'Possibile visualizzare tutti i moduli di informazioni', - 'LBL_EDIT_ALL_DESC' => 'Possibile modificare tutti i moduli di informazioni', + 'LBL_VIEW_ALL_DESC' => 'Possibile visualizzare le informazioni di tutti i moduli', + 'LBL_EDIT_ALL_DESC' => 'Possibile modificare le informazioni di tutti i moduli', 'LBL_DUPLICATES_EXIST' => 'Profilo Duplicato Esiste', 'LBL_EDIT_PROFILE' => 'Modifica Profilo', ); $jsLanguageStrings = array( - 'JS_RECORD_DELETED_SUCCESSFULLY' => 'Profile deleted successfully', // TODO: Review + 'JS_RECORD_DELETED_SUCCESSFULLY' => 'Profilo cancellato con successo', // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Roles.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Roles.php index ae8786103895fad81eba0fe948c2c9014ebc3fa7..18ff8e332df336deb5f70685edbb31b356049016 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Roles.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Roles.php @@ -11,27 +11,27 @@ $languageStrings = array( 'Roles' => 'Ruoli' , 'SINGLE_Roles' => 'Ruolo' , 'LBL_ADD_RECORD' => 'Aggiungi Ruolo' , - 'LBL_DELETE_ROLE' => 'Delete Role' , // TODO: Review - 'LBL_TRANSFER_OWNERSHIP' => 'Transfer Ownership' , // TODO: Review - 'LBL_TO_OTHER_ROLE' => 'To other Role' , // TODO: Review - 'LBL_CLICK_TO_EDIT_OR_DRAG_TO_MOVE' => 'Click to edit/Drag to move' , // TODO: Review - 'LBL_ASSIGN_ROLE' => 'Assign Role' , // TODO: Review - 'LBL_CHOOSE_PROFILES' => 'Choose profiles' , // TODO: Review - 'LBL_COPY_PRIVILEGES_FROM' => 'Copy privileges from' , // TODO: Review - 'LBL_TRANSFER_TO_OTHER_ROLE' =>'Trasferire la proprietà di altro ruolo', - 'LBL_PROFILE' => 'Profile' , // TODO: Review - 'LBL_REPORTS_TO' => 'Reports To' , // TODO: Review - 'LBL_NAME' => 'Name' , // TODO: Review - 'LBL_ASSIGN_NEW_PRIVILEGES' => 'Assign privileges directly to Role', // TODO: Review - 'LBL_ASSIGN_EXISTING_PRIVILEGES' => 'Assign priviliges from existing profiles', // TODO: Review - 'LBL_PRIVILEGES' => 'Privileges' , // TODO: Review + 'LBL_DELETE_ROLE' => 'Cancella Ruolo' , // TODO: Review + 'LBL_TRANSFER_OWNERSHIP' => 'Trasferisci proprietà ' , // TODO: Review + 'LBL_TO_OTHER_ROLE' => 'ad altro ruolo' , // TODO: Review + 'LBL_CLICK_TO_EDIT_OR_DRAG_TO_MOVE' => 'Clicca per modificare, trascina per muovere' , // TODO: Review + 'LBL_ASSIGN_ROLE' => 'Assegna Ruolo' , // TODO: Review + 'LBL_CHOOSE_PROFILES' => 'Scegli i profili' , // TODO: Review + 'LBL_COPY_PRIVILEGES_FROM' => 'Copia i privilegi da' , // TODO: Review + 'LBL_TRANSFER_TO_OTHER_ROLE' =>'Trasferire la proprietà ad altro ruolo', + 'LBL_PROFILE' => 'Profili' , // TODO: Review + 'LBL_REPORTS_TO' => 'Riporta a' , // TODO: Review + 'LBL_NAME' => 'Nome' , // TODO: Review + 'LBL_ASSIGN_NEW_PRIVILEGES' => 'Assegna privilegi direttamentee a ruolo', // TODO: Review + 'LBL_ASSIGN_EXISTING_PRIVILEGES' => 'Assegna privilegi da profilo esistente', // TODO: Review + 'LBL_PRIVILEGES' => 'Privilegi' , // TODO: Review 'LBL_DUPLICATES_EXIST' => 'Duplicato Ruolo Esiste', 'LBL_CAN_ASSIGN_RECORDS_TO' => 'Può Assegnare Il Record Di', 'LBL_ALL_USERS' => 'Tutti Gli Utenti', 'LBL_USERS_WITH_LOWER_LEVEL' => 'Gli utenti che hanno il Ruolo Subordinato', 'LBL_USERS_WITH_SAME_OR_LOWER_LEVEL' => 'Gli utenti che hanno lo Stesso Ruolo o in Ruolo Subordinato', - 'LBL_EDIT_ROLE' => 'Edit Ruolo', - 'LBL_CREATE_ROLE' => 'Creazione Di Ruolo', + 'LBL_EDIT_ROLE' => 'Modifica Ruolo', + 'LBL_CREATE_ROLE' => 'Creazione Ruolo', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SMSNotifier.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SMSNotifier.php index 8ccce57a6e4a31c3e52dbcf440f5f54cc3ffd395..b9d8cc804b5fefb34db66dcc7457e0842ef80745 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SMSNotifier.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SMSNotifier.php @@ -8,18 +8,18 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_ADD_RECORD' => 'New Configuration' , // TODO: Review - 'SMSNotifier' => 'SMS Provider Configuration' , // TODO: Review - 'LBL_ADD_CONFIGURATION' => 'New Configuration' , // TODO: Review - 'LBL_EDIT_CONFIGURATION' => 'Edit Configuration' , // TODO: Review - 'LBL_SELECT_ONE' => 'Select One' , // TODO: Review + 'LBL_ADD_RECORD' => 'Nuova configurazione' , // TODO: Review + 'SMSNotifier' => 'Configurazione Provider SMS' , // TODO: Review + 'LBL_ADD_CONFIGURATION' => 'Nuova Configurazione' , // TODO: Review + 'LBL_EDIT_CONFIGURATION' => 'Modifica Configurazione' , // TODO: Review + 'LBL_SELECT_ONE' => 'Seleziona uno' , // TODO: Review 'providertype' => 'Provider' , // TODO: Review - 'isactive' => 'Active' , // TODO: Review - 'username' => 'User Name' , // TODO: Review + 'isactive' => 'Attivo' , // TODO: Review + 'username' => 'nome utente' , // TODO: Review 'password' => 'Password' , // TODO: Review ); $jsLanguageStrings = array( - 'LBL_DELETE_CONFIRMATION' => 'Are you sure, you want to delete this SMSNotifier Configuration', // TODO: Review - 'JS_RECORD_DELETED_SUCCESSFULLY' => 'SMS Provider Deleted Successfully', // TODO: Review - 'JS_CONFIGURATION_SAVED' => 'SMS Provider Configurations saved', // TODO: Review + 'LBL_DELETE_CONFIRMATION' => 'Sei sicuoro che vuoi cancellare questa configurazione di SMS Notifier?', // TODO: Review + 'JS_RECORD_DELETED_SUCCESSFULLY' => 'Provider SMS cancellato con successo', // TODO: Review + 'JS_CONFIGURATION_SAVED' => 'Configurazione Provider SMS salvata', // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SharingAccess.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SharingAccess.php index ecf34bfcd6233d9d058143fc667ec1ae98b7cbdf..5dc74cb6a34e2416edb1929e5043a3040806e17a 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SharingAccess.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/SharingAccess.php @@ -8,32 +8,32 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'Accounts' => 'Organizations & Contacts' , // TODO: Review + 'Accounts' => 'Aziende e Contatti' , // TODO: Review 'LBL_ADD_CUSTOM_RULE' => 'Aggiungi regola privilegio personalizzata', 'Read Only' => 'R' , 'Read Write' => 'R+W' , - 'LBL_ADD_CUSTOM_RULE_TO' => 'Add Custom Rule to' , // TODO: Review + 'LBL_ADD_CUSTOM_RULE_TO' => 'Aggiungi regola personalizzata a' , // TODO: Review 'LBL_CAN_ACCESSED_BY' => 'accessibile da' , 'LBL_PRIVILEGES' => 'Privilegi' , - 'LBL_SHARING_RULE' => 'Sharing Rules' , + 'LBL_SHARING_RULE' => 'Regole di condivisione' , 'LBL_RULE_NO' => 'Numero regola' , - 'LBL_MODULE' => 'Module' , // TODO: Review - 'LBL_ADVANCED_SHARING_RULES' => 'Advanced Sharing Rules' , // TODO: Review - 'LBL_WITH_PERMISSIONS' => 'With Permissions' , // TODO: Review - 'LBL_APPLY_NEW_SHARING_RULES' => 'Apply New Sharing Rules' , // TODO: Review - 'LBL_READ' => 'Read' , // TODO: Review - 'LBL_READ_WRITE' => 'Read and Write' , // TODO: Review - 'LBL_CUSTOM_ACCESS_MESG' => 'No Custom Access Rules defined', // TODO: Review - 'SINGLE_Groups' => 'Group' , // TODO: Review - 'SINGLE_Roles' => 'Role' , // TODO: Review - 'SINGLE_RoleAndSubordinates' => 'RoleAndSubordinate' , // TODO: Review + 'LBL_MODULE' => 'Modulo' , // TODO: Review + 'LBL_ADVANCED_SHARING_RULES' => 'Regole avanzate di condivisione' , // TODO: Review + 'LBL_WITH_PERMISSIONS' => 'con permessi' , // TODO: Review + 'LBL_APPLY_NEW_SHARING_RULES' => 'Applica nuove regole di condivisione' , // TODO: Review + 'LBL_READ' => 'Lettura' , // TODO: Review + 'LBL_READ_WRITE' => 'Lettura e Scrittura' , // TODO: Review + 'LBL_CUSTOM_ACCESS_MESG' => 'Nessuna regola di accesso personalizzata definita', // TODO: Review + 'SINGLE_Groups' => 'Gruppo' , // TODO: Review + 'SINGLE_Roles' => 'Ruolo' , // TODO: Review + 'SINGLE_RoleAndSubordinates' => 'Ruolo e subordinati' , // TODO: Review 'SharingAccess' => 'Le Regole Di Condivisione', ); $jsLanguageStrings = array( - 'JS_CUSTOM_RULE_SAVED_SUCCESSFULLY' => 'Custom Sharing Rule Saved Successfully', // TODO: Review - 'JS_SELECT_ANY_OTHER_ACCESSING_USER' => 'Select any other accessing user', // TODO: Review - 'JS_NEW_SHARING_RULES_APPLIED_SUCCESSFULLY' => 'New Sharing Rules Applied Successfully', // TODO: Review - 'JS_DEPENDENT_PRIVILEGES_SHOULD_CHANGE' => 'Opportunities, Tickets, Quotes, SalesOrder & Invoice Access must be set to Private when the Organization Access is set to Private', // TODO: Review + 'JS_CUSTOM_RULE_SAVED_SUCCESSFULLY' => 'Regola di condivisione avanzata personalizzata salvata con successo', // TODO: Review + 'JS_SELECT_ANY_OTHER_ACCESSING_USER' => 'Seleziona un altro utente con accesso', // TODO: Review + 'JS_NEW_SHARING_RULES_APPLIED_SUCCESSFULLY' => 'Nuova regola di condivisione applicata con successo', // TODO: Review + 'JS_DEPENDENT_PRIVILEGES_SHOULD_CHANGE' => 'Gli accessi a Opportunità , Ticket, Preventivi, Ordini, Fatture devono essere impostati su Privato quando l\'accesso all\'Azienda è impostato su privato', // TODO: Review ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Vtiger.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Vtiger.php index 63920dec9a49fff3802d64ebab18c2cf40aaeaf5..c1047fdaf1a1b41d59bde0bdd27be623c64ffbed 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Vtiger.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Vtiger.php @@ -11,26 +11,26 @@ $languageStrings = array( 'LBL_INTEGRATION' => 'Integrazione', 'LBL_PBXMANAGER' => 'PBXManager', 'Settings' => 'Impostazioni' , - 'LBL_SEARCH_SETTINGS_PLACEHOLDER' => 'Search Settings' , // TODO: Review - 'LBL_SUMMARY' => 'Summary' , // TODO: Review - 'LBL_ACTIVE_USERS' => 'Users' , // TODO: Review - 'LBL_WORKFLOWS_ACTIVE' => 'Workflows' , // TODO: Review - 'LBL_MODULES' => 'Modules' , // TODO: Review - 'LBL_SETTINGS_SHORTCUTS' => 'Settings Shortcuts' , // TODO: Review + 'LBL_SEARCH_SETTINGS_PLACEHOLDER' => 'Cerca Impostazioni' , // TODO: Review + 'LBL_SUMMARY' => 'Sommario' , // TODO: Review + 'LBL_ACTIVE_USERS' => 'Utenti' , // TODO: Review + 'LBL_WORKFLOWS_ACTIVE' => 'Flusso di lavoro' , // TODO: Review + 'LBL_MODULES' => 'Moduli' , // TODO: Review + 'LBL_SETTINGS_SHORTCUTS' => 'Scorciatoia impostazioni' , // TODO: Review 'LBL_UNPIN' => 'Unpin' , // TODO: Review 'LBL_PIN' => 'pin' , // TODO: Review 'LBL_STUDIO' => 'Studio' , - 'LBL_COMMUNICATION_TEMPLATES' => 'Template Comunicazione' , + 'LBL_COMMUNICATION_TEMPLATES' => 'modelli Comunicazione' , 'LBL_USER_MANAGEMENT' => 'Gestione Utenti e Accessi' , - 'LBL_ACCESS_MANAGEMENT' => 'Access Management' , - 'LBL_MODULE_MANAGER' => 'Module Management' , - 'LBL_NOTIFICATIONS' => 'Notifications' , - 'LBL_EXTERNAL_SERVER_SETTINGS' => 'External Server Settings' , + 'LBL_ACCESS_MANAGEMENT' => 'Gestioni Accessi' , + 'LBL_MODULE_MANAGER' => 'Gestore Moduli' , + 'LBL_NOTIFICATIONS' => 'Notifiche' , + 'LBL_EXTERNAL_SERVER_SETTINGS' => 'impostazioni Server esterno' , 'LBL_OTHER_SETTINGS' => 'Altre Impostazioni' , - 'LBL_EXTENSIONS_PLACE' => 'Extensions Place' , // TODO: Review - 'LBL_EXTENSIONS' => 'Extensions' , // TODO: Review + 'LBL_EXTENSIONS_PLACE' => 'Estensioni Luogo' , // TODO: Review + 'LBL_EXTENSIONS' => 'Estensioni' , // TODO: Review 'LBL_PBXMANAGER' => 'PBXManager', - 'LBL_DESCRIPTION' => 'Description' , // TODO: Review + 'LBL_DESCRIPTION' => 'Descrizione' , // TODO: Review 'LBL_USER_DESCRIPTION' => 'Gestire gli utenti che possono accedere Vtiger CRM', 'LBL_ROLES' => 'Ruoli' , 'LBL_ROLE_DESCRIPTION' => 'Definisce una Gerarchia di Ruoli e la assegna agli Utenti', @@ -39,26 +39,26 @@ $languageStrings = array( 'USERGROUPLIST' => 'Gruppi' , 'LBL_GROUP_DESCRIPTION' => 'Gestisce differenti Gruppi basati sui ruoli, utenti e profili', 'LBL_SHARING_ACCESS' => 'Accesso Condiviso' , - 'LBL_SHARING_ACCESS_DESCRIPTION' => 'Gestisce Regole di condivisione & condivisione personalizzata dei moduli', - 'LBL_WORKFLOW_LIST' => 'Workflow List' , - 'LBL_AVAILABLE_WORKLIST_LIST' => 'Set up dependency between picklist values in each module', + 'LBL_SHARING_ACCESS_DESCRIPTION' => 'Gestisce Regole di condivisione e condivisione personalizzata dei moduli', + 'LBL_WORKFLOW_LIST' => 'Lista flussi di lavoro' , + 'LBL_AVAILABLE_WORKLIST_LIST' => 'Imposta dipendenza tra menu a tendina per ogni modulo', 'LBL_FIELDFORMULAS' => 'Formule campi' , - 'LBL_FIELDFORMULAS_DESCRIPTION' => 'Aggiungi una forumula ai campi personalizzati', + 'LBL_FIELDFORMULAS_DESCRIPTION' => 'Aggiungi una formula ai campi personalizzati', 'VTLIB_LBL_MODULE_MANAGER' => 'Moduli' , - 'VTLIB_LBL_MODULE_MANAGER_DESCRIPTION' => 'Gestisci il comportamento del modulo all'interno del CRM vtiger', - 'LBL_PICKLIST_EDITOR' => 'Valori Picklist campo' , + 'VTLIB_LBL_MODULE_MANAGER_DESCRIPTION' => 'Gestisci il comportamento del modulo all\'interno del CRM vtiger', + 'LBL_PICKLIST_EDITOR' => 'Valori campi Picklist' , 'LBL_PICKLIST_DESCRIPTION' => 'Personalizza i valori delle Picklist in ciascun modulo', 'LBL_PICKLIST_DEPENDENCY_SETUP' => 'Picklist Dipendenze' , - 'LBL_PICKLIST_DEPENDENCY_DESCRIPTION' => 'Set up dependency between picklist values in each module', + 'LBL_PICKLIST_DEPENDENCY_DESCRIPTION' => 'Imposta dipendenza tra valori picklist in ogni modulo', 'LBL_MENU_EDITOR' => 'Menu principale' , - 'LBL_MENU_DESC' => 'Customize Menu Sequence' , - 'LBL_MENU_EDITOR_MESSAGE' =>'Il numero effettivo di voci di menu visualizzate dipender� dalla dimensione dello schermo e pu� essere inferiore a elementi selezionati.', - 'EMAILTEMPLATES' => 'Template Email' , + 'LBL_MENU_DESC' => 'Modifica Sequenza Menu' , + 'LBL_MENU_EDITOR_MESSAGE' =>'Il numero effettivo di voci di menu visualizzate dipenderà dalla dimensione dello schermo e può essere inferiore a elementi selezionati.', + 'EMAILTEMPLATES' => 'Modello Email' , 'LBL_EMAIL_TEMPLATE_DESCRIPTION' => 'Gestisce i template per il modulo Email', - 'LBL_COMPANY_DETAILS' => 'Dettagli Società' , + 'LBL_COMPANY_DETAILS' => 'Dettagli Società ' , 'LBL_COMPANY_DESCRIPTION' => 'Specifica l\'indirizzo e i dati dell\'azienda', 'LBL_MAIL_MERGE' => 'Mail Merge' , - 'LBL_MAIL_MERGE_DESCRIPTION' => 'Gestisce template per Unione Email', + 'LBL_MAIL_MERGE_DESCRIPTION' => 'Gestisce modelli per Unione Email', 'LBL_TAX_SETTINGS' => 'Calcolo delle Tasse' , 'LBL_TAX_DESCRIPTION' => 'Gestisce le tasse e le percentuali di tassazione', 'LBL_MAIL_SERVER_SETTINGS' => 'Server in Uscita' , @@ -71,196 +71,198 @@ $languageStrings = array( 'LBL_CUSTOMIZE_MODENT_NUMBER' => 'Modulo Numerazione', 'LBL_CUSTOMIZE_MODENT_NUMBER_DESCRIPTION' => 'Personalizzazione della numerazione delle entità ', 'LBL_MAIL_SCANNER' => 'Mail Scanner' , - 'LBL_MAIL_SCANNER_DESCRIPTION' => 'Configura mailbox per scansionare', - 'LBL_LIST_WORKFLOWS' => 'Workflow' , - 'LBL_LIST_WORKFLOWS_DESCRIPTION' => 'Crea e modifica i workflow per vtiger', - 'Configuration Editor' => 'Configuration Editor' , + 'LBL_MAIL_SCANNER_DESCRIPTION' => 'Configura scanner mailbox', + 'LBL_LIST_WORKFLOWS' => 'Flusso di lavoro' , + 'LBL_LIST_WORKFLOWS_DESCRIPTION' => 'Crea e modifica i flussi di lavoro per vtiger', + 'Configuration Editor' => 'Edtor Configurazione' , 'LBL_CONFIG_EDITOR_DESCRIPTION' => "file di configurazione Aggiornamento dell'applicazione", - 'Update configuration file of the application' => 'Update application configuration file', 'LBL_CUSTOMER_PORTAL' => 'Portale Clienti' , + 'Update configuration file of the application' => 'Aggiorna file dei configurazione', 'PORTAL_EXTENSION_DESCRIPTION' => 'Permette di configurare il plugin Portale Clienti', - 'LBL_LAYOUT_EDITOR_DESCRIPTION' => 'Designing and Modifying the layout in each of the modules', // TODO: Review - 'LBL_WEBFORMS_DESCRIPTION' => 'Create and manage webforms which can be used to capture Leads', // TODO: Review - 'LBL_TO_ADD_NEW_USER_PLEASE_CLICK_ON' => 'To add a new User, please click on ', // TODO: Review - 'LBL_SETTINGS_ICON' => 'Settings Icon' , // TODO: Review - 'LBL_ADD_OR_DELETE_USERS' => 'Add/Delete Users' , // TODO: Review - 'LBL_ADD_USER' => 'Add User' , // TODO: Review - 'LBL_LABELS_EDITOR' => 'Etichette Editor', + 'LBL_LAYOUT_EDITOR_DESCRIPTION' => 'Progetta e Modifica il Layout in ogni modulo', // TODO: Review + 'LBL_WEBFORMS_DESCRIPTION' => 'Crea e gestisci webforms che possono essere usati per catturare Leads', // TODO: Review + 'LBL_TO_ADD_NEW_USER_PLEASE_CLICK_ON' => 'Per aggiungere un nuovo Utente, clicca su ', // TODO: Review + 'LBL_SETTINGS_ICON' => 'Icona Impostazioni' , // TODO: Review + 'LBL_ADD_OR_DELETE_USERS' => 'Aggiungi/Elimina Utenti' , // TODO: Review + 'LBL_ADD_USER' => 'Aggiungi Utente' , // TODO: Review + 'LBL_LABELS_EDITOR' => 'Editor Etichette', 'LBL_LABELS_EDITOR_DESCRIPTION' => 'Consente di personalizzare i nomi dei moduli, etichette di campo e altre stringhe in base alle vostre esigenze di business', 'Scheduler' => 'Scheduler' , - 'Allows you to Configure Cron Task' => 'Configure Cron Tasks' , + 'Allows you to Configure Cron Task' => 'Configura Cron Tasks' , 'Webforms' => 'Webforms' , - 'Allows you to manage Webforms' => 'Manage Webforms' , - 'LBL_CREATING_NEW' => 'Creating new' , // TODO: Review - 'LBL_EDITING' => 'Editing' , // TODO: Review - 'LBL_EDIT_RECORD' => 'Edit' , // TODO: Review - 'LBL_DELETE_RECORD' => 'Delete' , // TODO: Review - 'LBL_ADD_MOVE_MENU_ITEMS' => 'Add/Move Menu Items' , // TODO: Review - 'LBL_ADD_MENU_ITEM' => 'Add Menu Item' , // TODO: Review + 'Allows you to manage Webforms' => 'Gestisci Webforms' , + 'LBL_CREATING_NEW' => 'Crea Nuova' , // TODO: Review + 'LBL_EDITING' => 'Modifica in corso' , // TODO: Review + 'LBL_EDIT_RECORD' => 'Modifica' , // TODO: Review + 'LBL_DELETE_RECORD' => 'Cancella' , // TODO: Review + 'LBL_ADD_MOVE_MENU_ITEMS' => 'Aggiungi/Sposta oggetti menu' , // TODO: Review + 'LBL_ADD_MENU_ITEM' => 'Aggiungi oggetto menu' , // TODO: Review 'LBL_MAX' => 'Max' , // TODO: Review - 'LBL_TAX_CALCULATIONS' => 'Tax Calculations' , // TODO: Review - 'LBL_TAX_DESC' => 'Manage different types of tax rates for taxes, such as Sales Tax, VAT etc.,', // TODO: Review - 'LBL_PRODUCT_SERVICE_TAXES' => 'Product & Service Taxes' , // TODO: Review - 'LBL_SHIPPING_HANDLING_TAXES' => 'Shipping & Handling Taxes' , // TODO: Review - 'LBL_ADD_NEW_TAX' => 'Add New Tax' , // TODO: Review - 'LBL_EDIT_TAX' => 'Edit Tax' , // TODO: Review - 'LBL_TAX_NAME' => 'Tax Name' , // TODO: Review - 'LBL_TAX_VALUE' => 'Tax Value' , // TODO: Review - 'LBL_STATUS' => 'Status' , // TODO: Review - 'LBL_TAX_STATUS_DESC' => 'Enable checkbox to make tax active', // TODO: Review - 'LBL_ENTER_TAX_NAME' => 'Enter tax name' , // TODO: Review - 'LBL_ENTER_TAX_VALUE' => 'Enter tax value' , // TODO: Review - 'LBL_TAX_NAME_EXIST' => 'Tax Name already exists' , // TODO: Review + 'LBL_TAX_CALCULATIONS' => 'Calcolo Tasse' , // TODO: Review + 'LBL_TAX_DESC' => 'Gestisci differenti tipi di tassazioni, come IVA, IRAP, IRPEF e altro...', // TODO: Review + 'LBL_PRODUCT_SERVICE_TAXES' => 'Tasse per prodotti e servizi' , // TODO: Review + 'LBL_SHIPPING_HANDLING_TAXES' => 'Tasse Trasporto e Imballo' , // TODO: Review + 'LBL_ADD_NEW_TAX' => 'Aggiungi Nuova Tassa' , // TODO: Review + 'LBL_EDIT_TAX' => 'Modifica Tassa' , // TODO: Review + 'LBL_TAX_NAME' => 'Nome Tassa' , // TODO: Review + 'LBL_TAX_VALUE' => 'Valore Tassa' , // TODO: Review + 'LBL_STATUS' => 'Stato' , // TODO: Review + 'LBL_TAX_STATUS_DESC' => 'Spunta la casella per rendere la tassa attiva', // TODO: Review + 'LBL_ENTER_TAX_NAME' => 'Inserisci il nome della tassa' , // TODO: Review + 'LBL_ENTER_TAX_VALUE' => 'Inserisci il valore della tassa' , // TODO: Review + 'LBL_TAX_NAME_EXIST' => 'Nome tassa già esistente' , // TODO: Review 'LBL_TAXES' => 'Tasse', 'LBL_CHARGES_AND ITS_TAXES' => 'Oneri (e le tasse)', 'LBL_TAX_REGIONS' => 'Regioni fiscali', - 'LBL_NO_REGION_EXISTS' => 'No Regione esistere', + 'LBL_NO_REGION_EXISTS' => 'Regione non esistente', 'LBL_TYPE' => 'Tipo', 'LBL_CALCULATION' => 'Calcolo', - 'LBL_ADD_NEW_CHARGE' => 'Aggiungi nuovo Charge', - 'LBL_ADD_NEW_TAX_FOR_CHARGE' => 'Aggiungi nuovo Tax per la carica', - 'LBL_CHARGE_NAME' => 'Caricare Nome', - 'LBL_CHARGE_NAME_EXIST' => 'Carica Nome già esistente', + 'LBL_ADD_NEW_CHARGE' => 'Aggiungi nuovo addebito', + 'LBL_ADD_NEW_TAX_FOR_CHARGE' => 'Aggiungi nuova Tassa per addebito', + 'LBL_CHARGE_NAME' => 'Nome addebito', + 'LBL_CHARGE_NAME_EXIST' => 'Nome addebito già esistente', 'LBL_VALUE' => 'Valore', 'LBL_IS_TAXABLE' => 'imponibile', 'LBL_AVAILABLE_REGIONS' => 'Regioni disponibili', - 'LBL_ADD_NEW_REGION' => 'Aggiungi nuovo Region', - 'LBL_TAX_REGION_DESC' => 'Apparirà Regioni fiscali, mentre la creazione di tasse variabili, e possono essere selezionati durante la creazione di preventivi, fatture, ordini di vendita, ordine di acquisto', - 'LBL_TAX_CALCULATION' => 'Calcolo Tax', + 'LBL_ADD_NEW_REGION' => 'Aggiungi nuova Regione', + 'LBL_TAX_REGION_DESC' => 'Le Regioni fiscali appariranno mentre create tasse variabili, e possono essere selezionate durante la creazione di preventivi, fatture, ordini di vendita, ordine di acquisto', + 'LBL_TAX_CALCULATION' => 'Calcolo Tasse', 'LBL_SIMPLE' => 'Semplice', 'LBL_COMPOUND' => 'Composto', 'LBL_DEDUCTED' => 'Detratto', - 'LBL_TAX_TYPE' => 'Tipo Tax', + 'LBL_TAX_TYPE' => 'Tipo Tassa', 'LBL_FIXED' => 'Fisso', 'LBL_VARIABLE' => 'Variabile', 'LBL_COMPOUND_ON' => 'Compound On', 'LBL_DEFAULT_VALUE' => 'Difetto', - 'LBL_ADD_TAX_BRACKET' => 'Aggiungi staffa di imposta', - 'LBL_TAX_BRACKETS_DESC' => 'Se non è stato assegnato un valore fiscale per un valore predefinito regione verrà utilizzato', - 'LBL_SELECT_SIMPLE_TAXES' => 'Selezionare semplici Tasse', - 'LBL_REGION_NAME' => 'Regione Nome', + 'LBL_ADD_TAX_BRACKET' => 'Aggiungi fascia fiscale', + 'LBL_TAX_BRACKETS_DESC' => 'Se non è stato assegnato un valore fiscale per un valore predefinito verrà utilizzato quello della regione', + 'LBL_SELECT_SIMPLE_TAXES' => 'Selezionare Tasse semplici', + 'LBL_REGION_NAME' => 'Nome Regione', 'LBL_ENTER_REGION_NAME' => 'Inserire Nome Regione', 'LBL_EDIT_REGION' => 'Modifica Regione', - 'LBL_TAX_REGION_EXIST' => 'Regione Nome già esistente', - 'LBL_EDIT_CHARGE' => 'Modifica Charge', + 'LBL_TAX_REGION_EXIST' => 'Nome Regione già esistente', + 'LBL_EDIT_CHARGE' => 'Modifica addebito', 'LBL_CHARGE_FORMAT' => 'Carica Format', - 'LBL_FLAT' => 'Appartamento', - 'LBL_DIRECT_PRICE' => 'Prezzo diretta', + 'LBL_FLAT' => 'Piatto', + 'LBL_DIRECT_PRICE' => 'Prezzo diretto', 'LBL_PERCENT' => 'Percentuale', - 'LBL_CHARGE_TYPE' => 'Tipo di carica', - 'LBL_CHARGE_VALUE' => 'Carica Valore', - 'LBL_ENTER_CHARGE_NAME' => 'Inserisci Charge Nome', - 'LBL_ENTER_CHARGE_VALUE' => 'Inserisci Charge Valore', + 'LBL_CHARGE_TYPE' => 'Tipo di addebito', + 'LBL_CHARGE_VALUE' => 'Valore addebito', + 'LBL_ENTER_CHARGE_NAME' => 'Inserisci Nome addebito', + 'LBL_ENTER_CHARGE_VALUE' => 'Inserisci Valore addebito', 'LBL_REGIONS' => 'Regioni', - 'LBL_ENABLE_TAXES_FOR_CHARGE' => 'Attiva se carica è imponibile', - 'LBL_SELECT_TAX' => 'Selezionare Tax', + 'LBL_ENABLE_TAXES_FOR_CHARGE' => 'Attiva tasse per addebito', + 'LBL_SELECT_TAX' => 'Selezionare Tassa', 'LBL_SELECT_TAXES' => 'Selezionare Tasse', 'LBL_SELECT_REGIONS' => 'Selezionare le Regioni', - 'LBL_SELECT_TAX_DESC' => 'Solo le imposte su spese indicate', - 'LBL_CHARGE_STORE_DISC' => 'Valore di carico conservare sempre in valuta base', + 'LBL_SELECT_TAX_DESC' => 'mostra solo le tasse sugli addebiti', + 'LBL_CHARGE_STORE_DISC' => 'Valore addebito sempre conservato in valuta base', 'LBL_DEDUCTED_TAX_DISC' => 'Le imposte detratte sono calcolate sul totale degli articoli, e sono dedotti dal totale', - 'LBL_TERMS_AND_CONDITIONS' => 'Terms & Conditions' , // TODO: Review - 'LBL_SPECIFY_TERMS_AND_CONDITIONS' => 'Specify Terms & Conditions here', // TODO: Review - 'LBL_ANNOUNCEMENTS' => 'Announcements' , // TODO: Review - 'LBL_ENTER_ANNOUNCEMENT_HERE' => 'Enter Announcement Here' , // TODO: Review - 'LBL_ANNOUNCEMENT_DESC' => 'Change the text that appears in the announcement display on top of each page', // TODO: Review + 'LBL_TERMS_AND_CONDITIONS' => 'Termini e Condizioni' , // TODO: Review + 'LBL_SPECIFY_TERMS_AND_CONDITIONS' => 'Specifica Termini e Condizioni qui', // TODO: Review + 'LBL_ANNOUNCEMENTS' => 'Annunci' , // TODO: Review + 'LBL_ENTER_ANNOUNCEMENT_HERE' => 'Inserisci Annunci qui' , // TODO: Review + 'LBL_ANNOUNCEMENT_DESC' => 'Cambia il testo che appare nell\'annuncio mostrato in testa ad ogni pagina', // TODO: Review 'LBL_RESET_TO_DEFAULT' => 'Reset to Default' , // TODO: Review - 'LBL_SERVER_NAME' => 'Server Name' , // TODO: Review - 'LBL_USER_NAME' => 'User Name' , // TODO: Review + 'LBL_SERVER_NAME' => 'Nome Server' , // TODO: Review + 'LBL_USER_NAME' => 'Nome Utente' , // TODO: Review 'LBL_PASSWORD' => 'Password' , // TODO: Review - 'LBL_FROM_EMAIL' => 'From Email' , // TODO: Review - 'LBL_REQUIRES_AUTHENTICATION' => 'Requires Authentication' , // TODO: Review - 'LBL_OUTGOING_SERVER' => 'Outgoing Server' , // TODO: Review - 'LBL_OUTGOING_SERVER_DESC' => 'Configure your Outgoing Mail Server details', // TODO: Review - 'LBL_DEFAULT' => 'By default, SMTP account settings for the outgoing server are configured to od1.vtiger.com mail server. To avoid outgoing emails getting filtered out by spam filters on your recipient ISP mail server, we recommend you implement one of the following.', // TODO: Review - 'LBL_OPTIONS1' => 'Send emails from your mail server<br> - - Enter the SMTP account details (Server Name, User Name, Password) for the same account as entered in the FROM email address.', // TODO: Review - 'LBL_OPTIONS2' =>"Add vtiger.com server as an authorized sender of emails for your domain <b>(your_company.com)</b> when you are using your <b>From Email (eg : support@your_company.com)</b>.<br> - -To ensure that your emails are not rejected by recipient's Server as SPAM, - the below mentioned TXT record should be added to your domain's DNS record", - 'LBL_MAIL_SERVER_SMTP' => 'Mail Server Settings (SMTP)' , // TODO: Review - 'LBL_OUTGOING_SERVER_FROM_FIELD' => 'NOTE: If "From Email" field is set to blank then the User Email address will be picked up.', // TODO: Review - 'LBL_TESTMAILSTATUS' => 'Test Mail Status : ' , // TODO: Review - 'LBL_MAILSENDERROR' => 'Mail could not be sent to the admin user. Please check the admin emailid/Server settings', // TODO: Review - 'LBL_CONFIG_EDITOR' => 'Configuration Editor' , // TODO: Review - 'LBL_CONFIG_DESCRIPTION' => 'Edit the Configuration details of vtiger CRM', // TODO: Review + 'LBL_FROM_EMAIL' => 'Da Email' , // TODO: Review + 'LBL_REQUIRES_AUTHENTICATION' => 'Richiede Autenticazione' , // TODO: Review + 'LBL_OUTGOING_SERVER' => 'Server in uscita' , // TODO: Review + 'LBL_OUTGOING_SERVER_DESC' => 'Configura i dettagli del tuo server in uscita', // TODO: Review + 'LBL_DEFAULT' => 'Di default i dettagli SMPT dell\'account server in uscita sono configurati a od1.vtiger.com. Per evitare che le email in uscita sia filtrate come spam dal tuo ISP, wi consigliamo uno dei seguenti.', // TODO: Review + 'LBL_OPTIONS1' => 'Invia email dal tuo server<br> +- Inserisci i dettagli dell\'account server SMTP (Server Name, User Name, Password) per lo stesso account che appare nel campo DA.', // TODO: Review- + 'LBL_OPTIONS2' =>"Aggiungi vtiger.com server come un sistema di invio autorizzato per il tuo dominio <b>(your_company.com)</b> + quando tu usi <b>Da email (eg : support@your_company.com)</b>.<br> + - Per assicurare che le tue email non siano rigettate come SPAM dai server dei destinatari + -Per assicurarsi che le tue email non siano rifiutate come SPAM dal sever del ricevente, + il file TXT qui di sotto dovrebbero essere aggiunto al domain DNS record.", + 'LBL_MAIL_SERVER_SMTP' => 'Impostazioni Mail Server (SMTP)' , // TODO: Review + 'LBL_OUTGOING_SERVER_FROM_FIELD' => 'NOTA: se il campo DA dell\'email è vuota, allora sarà usato l\'email dell\'utente', // TODO: Review + 'LBL_TESTMAILSTATUS' => 'Test Stato eMail : ' , // TODO: Review + 'LBL_MAILSENDERROR' => 'Non posso inviare email all\'amministratore. Controlla l\'email e ID dell\'amministrato e le impostazioni del server', // TODO: Review + 'LBL_CONFIG_EDITOR' => 'Editor Configurazione' , // TODO: Review 'LBL_CONFIG_FILE' => 'config.inc.php' , // TODO: Review - 'LBL_PERSONAL_EMAIL_TRACKING_INFO' => "Per monitorare apre di email dirette inviate ai contatti, si prega di abilitare questa opzione. Si prega di notare che le email inviate dal modulo campagne di email sono sempre monitorati, e non influenzata da questa impostazione", + 'LBL_CONFIG_DESCRIPTION' => 'Modifica i dettagli della configurazione di Vtiger CRM', // TODO: Review + 'LBL_PERSONAL_EMAIL_TRACKING_INFO' => "Per monitorare l\'apertura delle email dirette inviate ai contatti, si prega di abilitare questa opzione. Si prega di notare che le email inviate dal modulo campagne di email sono sempre monitorati, e non è influenzata da questa impostazione", 'LBL_MB' => 'MB' , // TODO: Review - 'LBL_MINI_CALENDAR_DISPLAY' => 'Mini Calendar Display' , // TODO: Review - 'LBL_WORLD_CLOCK_DISPLAY' => 'World Clock Display' , // TODO: Review - 'LBL_CALCULATOR_DISPLAY' => 'Calculator Display' , // TODO: Review - 'LBL_USE_RTE' => 'Use RTE' , // TODO: Review - 'LBL_HELPDESK_SUPPORT_EMAILID' => 'Helpdesk Support Email-Id' , // TODO: Review - 'LBL_HELPDESK_SUPPORT_NAME' => 'Helpdesk Support Name' , // TODO: Review - 'LBL_MAX_UPLOAD_SIZE' => 'Maximum Upload Size (Max %sMB)', // TODO: Review - 'LBL_MAX_HISTORY_VIEWED' => 'Maximum History Viewed' , // TODO: Review - 'LBL_DEFAULT_MODULE' => 'Default Module' , // TODO: Review - 'LBL_MAX_TEXT_LENGTH_IN_LISTVIEW' => 'Maximum text length in List View', // TODO: Review - 'LBL_MAX_ENTRIES_PER_PAGE_IN_LISTVIEW' => 'Maximum entries per page in List View', // TODO: Review + 'LBL_MINI_CALENDAR_DISPLAY' => 'Mini Calendario Display' , // TODO: Review + 'LBL_WORLD_CLOCK_DISPLAY' => 'Orologio Mondiale Display' , // TODO: Review + 'LBL_CALCULATOR_DISPLAY' => 'Calcolatrice Display' , // TODO: Review + 'LBL_USE_RTE' => 'Usa RTE' , // TODO: Review + 'LBL_HELPDESK_SUPPORT_EMAILID' => 'Email-Id Supporto Helpdesk ' , // TODO: Review + 'LBL_HELPDESK_SUPPORT_NAME' => 'Nome Supporto Helpdesk ' , // TODO: Review + 'LBL_MAX_UPLOAD_SIZE' => 'Grandezza massima Upload (Max %sMB)', // TODO: Review + 'LBL_MAX_HISTORY_VIEWED' => 'Massima vista storico' , // TODO: Review + 'LBL_DEFAULT_MODULE' => 'Modulo Default' , // TODO: Review + 'LBL_MAX_TEXT_LENGTH_IN_LISTVIEW' => 'Massima lunghezza testo in vista lista', // TODO: Review + 'LBL_MAX_ENTRIES_PER_PAGE_IN_LISTVIEW' => 'Numero massiamo di voci per pagina in vista lista', // TODO: Review 'LBL_EMAIL_TRACKING' => 'Attivare il rilevamento email', - 'LBL_INVALID_EMAILID' => 'Invalid EmailId' , // TODO: Review - 'LBL_INVALID_SUPPORT_NAME' => 'Invalid Name' , // TODO: Review - 'LBL_INVALID_MODULE' => 'Invalid Module' , // TODO: Review - 'LBL_INVALID_NUMBER' => 'Invalid Number' , // TODO: Review - 'LBL_FIELDS_INFO_IS_EMPTY' => 'Fields information is empty' , // TODO: Review - 'LBL_SUCCESSFULLY_UPDATED' => 'Successfully Updated' , // TODO: Review + 'LBL_INVALID_EMAILID' => 'EmailId non valida' , // TODO: Review + 'LBL_INVALID_SUPPORT_NAME' => 'Nome non valido' , // TODO: Review + 'LBL_INVALID_MODULE' => 'Modulo non valido' , // TODO: Review + 'LBL_INVALID_NUMBER' => 'Numero non valido' , // TODO: Review + 'LBL_FIELDS_INFO_IS_EMPTY' => 'L\'informazione dei campi è vuota' , // TODO: Review + 'LBL_SUCCESSFULLY_UPDATED' => 'Aggiornato con successo' , // TODO: Review 'LBL_CUSTOMIZE_RECORD_NUMBERING' => 'Modulo Numerazione' , // TODO: Review - 'LBL_MODULE_ENTITY_NUMBER_CUSTOMIZATION' => 'Module Entity Number customization', // TODO: Review - 'LBL_UPDATE_MISSING_RECORD_SEQUENCE' => 'Update Missing Record Sequence', // TODO: Review - 'LBL_USE_PREFIX' => 'Use Prefix' , // TODO: Review - 'LBL_START_SEQUENCE' => 'Start Sequence' , // TODO: Review - 'organizationname' => 'Company Name' , // TODO: Review - 'logoname' => 'Company Logo' , // TODO: Review - 'address' => 'Address' , // TODO: Review - 'city' => 'City' , // TODO: Review - 'state' => 'State' , // TODO: Review - 'code' => 'Postal Code' , // TODO: Review - 'country' => 'Country' , // TODO: Review - 'phone' => 'Phone' , // TODO: Review + 'LBL_MODULE_ENTITY_NUMBER_CUSTOMIZATION' => 'Personalizzazione Modulo numero entità ', // TODO: Review + 'LBL_UPDATE_MISSING_RECORD_SEQUENCE' => 'Aggiorna sequenza mancate record', // TODO: Review + 'LBL_USE_PREFIX' => 'Usa Prefisso' , // TODO: Review + 'LBL_START_SEQUENCE' => 'Comincia sequenza' , // TODO: Review + 'organizationname' => 'Nome azienda' , // TODO: Review + 'logoname' => 'Logo Azienda' , // TODO: Review + 'address' => 'Indirizzo' , // TODO: Review + 'city' => 'Città ' , // TODO: Review + 'state' => 'Stato' , // TODO: Review + 'code' => 'CAP' , // TODO: Review + 'country' => 'Nazione' , // TODO: Review + 'phone' => 'Telefono' , // TODO: Review 'fax' => 'Fax' , // TODO: Review - 'website' => 'Website' , // TODO: Review + 'website' => 'Sito web' , // TODO: Review 'vatid' => 'partita Iva', 'facebook' => 'Facebook' , 'twitter' => 'Twitter' , 'linkedin' => 'LinkedIn' , - 'LBL_IMAGE_CORRUPTED' => 'Virus detected or Uploaded image corrupted', // TODO: Review - 'LBL_LOGO_RECOMMENDED_MESSAGE' => 'Ammessi dimensioni 150X40 pixel (formato .jpeg, .jpg, .png, .gif, .pjpeg, .x-png).', // TODO: Review - 'LBL_COMPANY_INFORMATION' => 'Company Information' , // TODO: Review - 'LBL_UPDATE' => 'Update' , // TODO: Review - 'LBL_UPDATE_LOGO' => 'Update Logo' , // TODO: Review - 'LBL_COMPANY_LOGO' => 'Company Logo' , // TODO: Review - 'LBL_EDIT_COMPANY_DETAILS_MESSAGE' => 'To edit company details, please click on Settings Icon > Add/Delete Users > Company ', // TODO: Review - 'LBL_ACTIVE' => 'Active' , // TODO: Review - 'LBL_INACTIVE' => 'In Active' , // TODO: Review - 'LBL_DISABLED' => 'Disabled' , // TODO: Review - 'LBL_RUNNING' => 'Running' , // TODO: Review - 'LBL_LAST_SCAN_TIMED_OUT' => 'Last scan timed out' , // TODO: Review - 'LBL_LAST_SCAN_AT' => 'Last scanned at ' , // TODO: Review - 'LBL_TIME_TAKEN' => ' time taken ' , // TODO: Review - 'LBL_SHORT_SECONDS' => 'sec' , // TODO: Review + 'LBL_IMAGE_CORRUPTED' => 'Trovato Virus o Immagine corrotta caricata', // TODO: Review + 'LBL_LOGO_RECOMMENDED_MESSAGE' => 'Ammesse dimensioni 150X40 pixel (formato .jpeg, .jpg, .png, .gif, .pjpeg, .x-png).', // TODO: Review + 'LBL_COMPANY_INFORMATION' => 'Informazioni Azienda' , // TODO: Review + 'LBL_UPDATE' => 'Aggiorna' , // TODO: Review + 'LBL_UPDATE_LOGO' => 'Aggiorna Logo' , // TODO: Review + 'LBL_COMPANY_LOGO' => 'Logo Azienda' , // TODO: Review + 'LBL_EDIT_COMPANY_DETAILS_MESSAGE' => 'Per modificare i dettagli Azienda, clicca sull\'icona Impostazioni > Aggiungi/Cancella Utenti > Azienda ', // TODO: Review + 'LBL_ACTIVE' => 'Attivo' , // TODO: Review + 'LBL_INACTIVE' => 'Non attivo' , // TODO: Review + 'LBL_DISABLED' => 'Disattivato' , // TODO: Review + 'LBL_RUNNING' => 'In esecuzione' , // TODO: Review + 'LBL_LAST_SCAN_TIMED_OUT' => 'L\'ultima scansiano è scaduta' , // TODO: Review + 'LBL_LAST_SCAN_AT' => 'Ultima scansione alle ' , // TODO: Review + 'LBL_TIME_TAKEN' => ' tempo impiegato ' , // TODO: Review + 'LBL_SHORT_SECONDS' => 'secondi' , // TODO: Review //User Login History - 'LoginHistory' => 'User Login History', - 'LBL_LOGIN_HISTORY_DETAILS' => 'Login History', - 'LBL_LOGIN_HISTORY_DESCRIPTION' => 'Login History Details', - 'LBL_USER_NAME'=> 'User Name', - 'LBL_USER_IP_ADDRESS'=> 'User IP Address', - 'LBL_LOGIN_TIME' => 'Sign-in Time', - 'LBL_LOGGED_OUT_TIME' => 'Sign-out Time', - 'LBL_STATUS' => 'Status', + 'LoginHistory' => 'Cronologia Login Utente', + 'LBL_LOGIN_HISTORY_DETAILS' => 'Cronologia Login', + 'LBL_LOGIN_HISTORY_DESCRIPTION' => 'Dettagli Cronologia Login', + 'LBL_USER_NAME'=> 'Nome Utente', + 'LBL_USER_IP_ADDRESS'=> 'Indirizzo IP Utente', + 'LBL_LOGIN_TIME' => 'Ora Sign-in', + 'LBL_LOGGED_OUT_TIME' => 'Ora Sign-out', + 'LBL_STATUS' => 'Stato', // Leads and Potentials Field Mapping - 'LBL_SAVED_SUCCESSFULLY' => 'Saved Successfully' , // TODO: Review - 'LBL_DELETED_SUCCESSFULLY' => 'Deleted Successfully' , // TODO: Review - 'LBL_INVALID_MAPPING' => 'Invalid Mapping' , // TODO: Review - 'LBL_FIELD_LABEL' => 'Field Label' , // TODO: Review - 'LBL_FIELD_TYPE' => 'Field Type' , // TODO: Review - 'LBL_MAPPING_WITH_OTHER_MODULES' => 'Mapping with other Modules', // TODO: Review - 'LBL_ADD_MAPPING' => 'Add Mapping' , // TODO: Review - 'LBL_NONE' => 'None' , // TODO: Review + 'LBL_SAVED_SUCCESSFULLY' => 'Salvato con successo' , // TODO: Review + 'LBL_DELETED_SUCCESSFULLY' => 'Cancellato con successo' , // TODO: Review + 'LBL_INVALID_MAPPING' => 'Mappatura non valida' , // TODO: Review + 'LBL_FIELD_LABEL' => 'Etichetta campo' , // TODO: Review + 'LBL_FIELD_TYPE' => 'Tipo campo' , // TODO: Review + 'LBL_MAPPING_WITH_OTHER_MODULES' => 'Mappatura con altri moduli', // TODO: Review + 'LBL_ADD_MAPPING' => 'Aggiungi Mappatura' , // TODO: Review + 'LBL_NONE' => 'Niente' , // TODO: Review 'phone' => 'Telefono' , 'picklist' => 'Promemoria' , 'email' => 'Email' , @@ -280,8 +282,8 @@ $languageStrings = array( 'LBL_DEFAULT_TAX_MODE' => 'Modalità fiscale default' , 'LBL_RELATIONSHIPS' => 'Relazioni', 'LBL_MODULE_BUILDER_DESCRIPTION' => 'Creazione di nuovi moduli', - 'LBL_GATEWAY_CONFIGURATION' => 'Pagamento Configurazione Gateway', - 'MAIN_PRODUCT_WHITELABEL' => 'Etichettatura bianco CRM', + 'LBL_GATEWAY_CONFIGURATION' => 'Configurazione Gateway', + 'MAIN_PRODUCT_WHITELABEL' => 'Etichettatura bianca CRM', 'LBL_WHITE_LABELING_INFO' => "L'attivazione di questo rimuoverà icona feedback, collegamenti video, nuove funzionalità video e piè di pagina dal CRM.", 'LBL_WHITE_LABELING_INFO_MSG' => "L'attivazione di questo rimuoverà tasto di aiuto e piè di pagina dal CRM.", 'LBL_PHONE_CONFIGURATION' => 'Configurazione Telefono', @@ -300,23 +302,23 @@ $languageStrings = array( 'LBL_NO_LOGO_EDIT_AND_UPLOAD' => 'Nessuna immagine, modificare e caricare l\'immagine', 'EmailTemplate' => 'Modello E-Mail', 'LBL_TEMPLATE_NAME' => 'Nome del modello', - 'LBL_SUBJECT' => 'Soggetto', - 'LBL_EXTENSION_STORE' => 'L\'Estensione Di Archivio', + 'LBL_SUBJECT' => 'Oggetto', + 'LBL_EXTENSION_STORE' => 'Negozio estensioni', 'LBL_MODULE_MANAGEMENT' => 'Modulo Di Gestione', 'LBL_AUTOMATION' => 'Automazione', 'LBL_CONFIGURATION' => 'Configurazione', - 'LBL_MARKETING_SALES' => 'Marketing & Sales', + 'LBL_MARKETING_SALES' => 'Marketing e Vendite', 'LBL_INVOICES' => 'Fatture', 'LBL_SUPPORT' => 'Supporto', 'LBL_TEMPLATES' => 'Modelli', 'LBL_MODULE_CUSTOMIZATION' => 'Modulo Di Layout E Campi', 'LBL_TAX_MANAGEMENT' => 'La Gestione Fiscale', - 'LBL_LEAD_MAPPING' => 'Conversione Di Lead Di Mappatura Dei Dati', - 'LBL_OPPORTUNITY_MAPPING' => 'Possibilità di Progetto di Mappatura', + 'LBL_LEAD_MAPPING' => 'Mappatura Conversione Dei Lead', + 'LBL_OPPORTUNITY_MAPPING' => 'Mappatura opportunità ', 'LBL_PICKLIST_DEPENDENCY' => 'Selezione Di Dipendenza', 'LBL_MY_TAGS' => 'Il Mio Tag', 'LBL_ADD_MODULE' => 'Aggiungi Modulo', - 'LBL_SMART_NOTIFICATIONS' => 'Smart Notifiche', + 'LBL_SMART_NOTIFICATIONS' => 'Notifiche Smart', 'LBL_FORECAST_SETTINGS' => 'Le Previsioni Di', 'LBL_SEARCH_FOR_SETTINGS' => 'Ricerca per un\'impostazione , ad esempio, Moduli', 'LBL_GOOGLE' => 'Google', @@ -327,39 +329,39 @@ $languageStrings = array( ); $jsLanguageStrings = array( - 'JS_PLEASE_SELECT_ATLEAST_ONE_MEMBER_FOR_A_GROUP' => 'Please select atleast one member for a group', // TODO: Review - 'JS_GROUP_DELETED_SUCCESSFULLY' => 'Group deleted successfully' , // TODO: Review - 'JS_TAX_SAVED_SUCCESSFULLY' => 'Tax Saved Successfully' , // TODO: Review - 'JS_TAX_DISABLED' => 'Tax disabled' , // TODO: Review - 'JS_TAX_ENABLED' => 'Tax Enabled' , // TODO: Review + 'JS_PLEASE_SELECT_ATLEAST_ONE_MEMBER_FOR_A_GROUP' => 'Per favoer selezione un membro per gruppo', // TODO: Review + 'JS_GROUP_DELETED_SUCCESSFULLY' => 'Gruppo cancellato con successo' , // TODO: Review + 'JS_TAX_SAVED_SUCCESSFULLY' => 'Tasse salvate con successo' , // TODO: Review + 'JS_TAX_DISABLED' => 'Tasse disabilitate' , // TODO: Review + 'JS_TAX_ENABLED' => 'Tasse abilitate' , // TODO: Review 'JS_SELECT_SIMPLE_TAXES' => 'Selezionare semplici Tasse', 'JS_TAX_REGION_SAVED_SUCCESSFULLY' => 'Regione fiscale salvato con successo', - 'JS_TAX_REGION_DELETED_SUCCESSFULLY' => 'Tax Region eliminato con successo', - 'JS_INVENTORY_CHARGE_SAVED_SUCCESSFULLY' => 'Codice di carica Salvato', - 'JS_INVENTORY_CHARGE_DELETED_SUCCESSFULLY' => 'Codice di carica eliminata correttamente', + 'JS_TAX_REGION_DELETED_SUCCESSFULLY' => 'Regione Fiscale eliminata con successo', + 'JS_INVENTORY_CHARGE_SAVED_SUCCESSFULLY' => 'Codice di addebito Salvato', + 'JS_INVENTORY_CHARGE_DELETED_SUCCESSFULLY' => 'Codice di addebito eliminata correttamente', 'JS_DELETE_CHARGE_DESC' => 'L"eliminazione di questa tassa avrà effetto su tutti i record di inventario con questo carica esistente. Vuoi continuare?', 'JS_DELETE_REGION_DESC' => 'L"eliminazione di questa regione interesserà tutte le tasse di inventario con questa regione esistente. Vuoi continuare?', 'JS_SELECT_REGIONS' => 'Selezionare le Regioni', 'JS_DELETE' => 'Cancellare', - 'JS_EDIT' => 'Edit' , // TODO: Review - 'JS_ANNOUNCEMENT_SAVED' => 'Announcement Saved' , // TODO: Review - 'JS_CONFIRM_DEFAULT_SETTINGS' => 'Are you sure that you want to change the server details to the default server values', // TODO: Review - 'JS_PLEASE_ENTER_NUMBER_IN_RANGE_1TO5' => 'Please enter value in the range 1-%sMB', // TODO: Review - 'JS_PLEASE_ENTER_NUMBER_IN_RANGE_1TO100' => 'Please enter value in the range 1-100', // TODO: Review - 'JS_RECORD_NUMBERING_SAVED_SUCCESSFULLY_FOR' => 'Record Numbering Successfully saved for', // TODO: Review - 'JS_RECORD_NUMBERING_UPDATED_SUCCESSFULLY_FOR' => 'Record Numbering Updated Successfully for', // TODO: Review - 'JS_SEQUENCE_NUMBER_MESSAGE' => 'Sequence Number should be greater than or equal to', // TODO: Review - 'LBL_WRONG_IMAGE_TYPE' => 'not supported Image type' , // TODO: Review - 'LBL_MAXIMUM_SIZE_EXCEEDS' => 'You can upload maximum size of 1MB only', // TODO: Review - 'LBL_NO_LOGO_SELECTED' => 'No logo selected' , // TODO: Review - 'JS_CONFIGURATION_DETAILS_SAVED' => 'Configuration Details Saved' , // TODO: Review + 'JS_EDIT' => 'Modifica' , // TODO: Review + 'JS_ANNOUNCEMENT_SAVED' => 'Annuncio Salvato' , // TODO: Review + 'JS_CONFIRM_DEFAULT_SETTINGS' => 'Sei sicuro che vuoi cambiare i dattagli del server con quelli di default?', // TODO: Review + 'JS_PLEASE_ENTER_NUMBER_IN_RANGE_1TO5' => 'Inserisci un valore nel campo 1-%sMB', // TODO: Review + 'JS_PLEASE_ENTER_NUMBER_IN_RANGE_1TO100' => 'inserisci un valore nel campo 1-100', // TODO: Review + 'JS_RECORD_NUMBERING_SAVED_SUCCESSFULLY_FOR' => 'Numerazione record salvata con successo per', // TODO: Review + 'JS_RECORD_NUMBERING_UPDATED_SUCCESSFULLY_FOR' => 'Numerazione record aggiornata con successo per', // TODO: Review + 'JS_SEQUENCE_NUMBER_MESSAGE' => 'La sequenza di numerazione dovrebbe essere maggiore o uguale a', // TODO: Review + 'LBL_WRONG_IMAGE_TYPE' => 'tipo Immagine non supportata' , // TODO: Review + 'LBL_MAXIMUM_SIZE_EXCEEDS' => 'Puoi carica solamente massimo 1MB', // TODO: Review + 'LBL_NO_LOGO_SELECTED' => 'Nessun logo selezionato' , // TODO: Review + 'JS_CONFIGURATION_DETAILS_SAVED' => 'Dettagli configurazione salvata' , // TODO: Review 'JS_DEFAULT_TAX_MODE_SET_AS' => 'Modalità d"imposta di default impostata come ', 'JS_TERMS_AND_CONDITIONS_SAVED' => 'Termini e condizioni salvato', 'JS_INVALID_URL' => 'URL non valido', - 'JS_LBL_TAX_REGION_EXIST' => 'Regione Nome esiste già ', - 'JS_LOGO_IMAGE_DIMENSIONS_WRONG' => 'Logo dimensioni dell\'Immagine non corrisponde al permesso dimensione. Ridimensionare l\'immagine e provare di nuovo.', + 'JS_LBL_TAX_REGION_EXIST' => 'Nome Regione esiste già ', + 'JS_LOGO_IMAGE_DIMENSIONS_WRONG' => 'Dimensioni del Logo dell\'Immagine non corrisponde alle dimensioni permesse. Ridimensionare l\'immagine e provare di nuovo.', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Webforms.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Webforms.php index d8ef4d3b9cae96d9de1e2bc247570280795935b4..b6e2d8ce0954bf34c73fac91c1534ae917e57b2b 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Webforms.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Settings/Webforms.php @@ -9,57 +9,57 @@ ************************************************************************************/ $languageStrings = array( 'SINGLE_Settings:Webforms' => 'Webform' , // TODO: Review - 'WebForm Name' => 'Webform Name' , // TODO: Review - 'Public Id' => 'Public Id' , // TODO: Review - 'Enabled' => 'Status' , // TODO: Review - 'Module' => 'Module' , // TODO: Review - 'Return Url' => 'Return Url' , // TODO: Review + 'WebForm Name' => 'Nome Webform' , // TODO: Review + 'Public Id' => 'Id Pubblico' , // TODO: Review + 'Enabled' => 'Stato' , // TODO: Review + 'Module' => 'Modulo' , // TODO: Review + 'Return Url' => 'Url di ritorno' , // TODO: Review 'Post Url' => 'Post Url' , // TODO: Review 'Captcha Enabled' => 'Captcha abilitato' , 'SINGLE_Webforms' => 'Webform' , // TODO: Review - 'LBL_SHOW_FORM' => 'Show Form' , // TODO: Review - 'LBL_DUPLICATES_EXIST' => 'Webform Name already exists' , // TODO: Review - 'LBL_WEBFORM_INFORMATION' => 'Webform Information' , // TODO: Review - 'LBL_FIELD_INFORMATION' => 'Field Information' , // TODO: Review - 'LBL_FIELD_NAME' => 'Field Name' , // TODO: Review - 'LBL_OVERRIDE_VALUE' => 'Override Value' , // TODO: Review - 'LBL_MANDATORY' => 'Mandatory' , // TODO: Review - 'LBL_WEBFORM_REFERENCE_FIELD' => 'Webforms reference Field' , // TODO: Review - 'LBL_SELECT_FIELDS_OF_TARGET_MODULE' => 'Select Fields for Target Module...', // TODO: Review - 'LBL_ALLOWS_YOU_TO_MANAGE_WEBFORMS' => 'Allows you to manage webforms', // TODO: Review - 'LBL_ADD_FIELDS' => 'Add Fields' , // TODO: Review - 'LBL_EMBED_THE_FOLLOWING_FORM_IN_YOUR_WEBSITE' => 'Embed the following form in your website', // TODO: Review - 'LBL_SELECT_VALUE' => 'Select Value' , // TODO: Review - 'LBL_LABEL' => 'label' , // TODO: Review - 'LBL_SAVE_FIELDS_ORDER' => 'Ordine Save campi', + 'LBL_SHOW_FORM' => 'Mostra Form' , // TODO: Review + 'LBL_DUPLICATES_EXIST' => 'Nome Webform già esiste' , // TODO: Review + 'LBL_WEBFORM_INFORMATION' => 'Informazione Webform' , // TODO: Review + 'LBL_FIELD_INFORMATION' => 'Informazione campo' , // TODO: Review + 'LBL_FIELD_NAME' => 'Nome campo' , // TODO: Review + 'LBL_OVERRIDE_VALUE' => 'Valore Override' , // TODO: Review + 'LBL_MANDATORY' => 'Obbligatorio' , // TODO: Review + 'LBL_WEBFORM_REFERENCE_FIELD' => 'Campo riferimento Webforms' , // TODO: Review + 'LBL_SELECT_FIELDS_OF_TARGET_MODULE' => 'Seleziona i campi per il modulo destinazione...', // TODO: Review + 'LBL_ALLOWS_YOU_TO_MANAGE_WEBFORMS' => 'Permetti a te di gestire i webforms', // TODO: Review + 'LBL_ADD_FIELDS' => 'Aggiungi campi' , // TODO: Review + 'LBL_EMBED_THE_FOLLOWING_FORM_IN_YOUR_WEBSITE' => 'Inserisci i webform seguenti nel tuo sito', // TODO: Review + 'LBL_SELECT_VALUE' => 'Seleziona il valore' , // TODO: Review + 'LBL_LABEL' => 'etichetta' , // TODO: Review + 'LBL_SAVE_FIELDS_ORDER' => 'Salva ordine campi', 'LBL_HIDDEN' => 'Nascosto', 'LBL_ENABLE_TARGET_MODULES_FOR_WEBFORM' => 'Abilita moduli target per WebForm', 'LBL_ASSIGN_USERS' => 'Assegnazione utente', 'LBL_ASSIGN_ROUND_ROBIN' => 'Assegna utenti Nel Round Robin', - 'LBL_ROUNDROBIN_USERS_LIST' => 'Turno Lista Utenti Robin', + 'LBL_ROUNDROBIN_USERS_LIST' => 'Lista Utenti Round Robin', 'LBL_ADD_RECORD' => 'Aggiungere Webform', 'LBL_UPLOAD_DOCUMENTS' => 'Carica Documenti', 'LBL_ADD_FILE_FIELD' => 'File Upload Campo', 'LBL_FIELD_LABEL' => 'Titolo del documento', - 'LBL_FILE_FIELD_INFO' => 'Per ogni file caricato da web formare un nuovo documento viene creato con il file allegato. Documento è legato anche a questa nuova creazione%s.', - 'LBL_NO_FILE_FIELD' => 'Nessun campo file aggiunti.', + 'LBL_FILE_FIELD_INFO' => 'Per ogni file caricato da web formare un nuovo documento viene creato con il file allegato. Documento è legato anche a questa nuova creazione %s.', + 'LBL_NO_FILE_FIELD' => 'Nessun campo file aggiunto.', 'LBL_COPY_TO_CLIPBOARD' => 'Copia negli appunti', ); $jsLanguageStrings = array( - 'JS_WEBFORM_DELETED_SUCCESSFULLY' => 'Webform deleted successfully', // TODO: Review - 'JS_LOADING_TARGET_MODULE_FIELDS' => 'Loadding Target Module Fields', // TODO: Review - 'JS_SELECT_VALUE' => 'Select Vlaue' , // TODO: Review - 'JS_MANDATORY_FIELDS_WITHOUT_OVERRIDE_VALUE_CANT_BE_HIDDEN' => 'I campi obbligatori senza valori di override smussano essere nascosti', - 'JS_REFERENCE_FIELDS_CANT_BE_MANDATORY_WITHOUT_OVERRIDE_VALUE' => 'Campi di riferimento cant essere obbligatorio senza valore di override', + 'JS_WEBFORM_DELETED_SUCCESSFULLY' => 'Webform cancellato con successo', // TODO: Review + 'JS_LOADING_TARGET_MODULE_FIELDS' => 'Caricamento campi Modulo destinazione', // TODO: Review + 'JS_SELECT_VALUE' => 'Seleziona Valore' , // TODO: Review + 'JS_MANDATORY_FIELDS_WITHOUT_OVERRIDE_VALUE_CANT_BE_HIDDEN' => 'I campi obbligatori senza valori di override non possono essere nascosti', + 'JS_REFERENCE_FIELDS_CANT_BE_MANDATORY_WITHOUT_OVERRIDE_VALUE' => 'Campi di riferimento non possono essere obbligatori senza valore di override', 'JS_TYPE_TO_SEARCH' => 'Tipo di ricerca', "JS_WEBFORM_WITH_THIS_NAME_ALREADY_EXISTS" => 'Webform con questo nome esiste già', 'JS_SELECT_AN_OPTION' => 'Selezionare un\'Opzione', 'JS_LABEL' => 'etichetta', - 'JS_MAX_FILE_FIELDS_LIMIT' => 'Massima è possibile aggiungere campi del file%s.', + 'JS_MAX_FILE_FIELDS_LIMIT' => 'Puoi aggiungere la massimo %s campi dei file.', 'JS_COPIED_SUCCESSFULLY' => 'Copiato con successo.', 'JS_COPY_FAILED' => 'Copia non riuscita. Si prega di copiare manualmente.', ); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php index e3e048ca7e334106aca735307ea65040223fe524..7ed16fa616738bd1dcce3f18eb0f6efa3e4efc7d 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php @@ -8,17 +8,17 @@ * All Rights Reserved. ************************************************************************************/ $languageStrings = array( - 'LBL_ADD_RECORD' => 'Add User' , // TODO: Review + 'LBL_ADD_RECORD' => 'Aggiungi Utente' , 'LBL_MY_PREFERENCES' => 'Le Mie Preferenze' , - 'LBL_MORE_INFORMATION' => 'Più Informazioni' , + 'LBL_MORE_INFORMATION' => 'Più Informazioni' , 'LBL_USERLOGIN_ROLE' => 'Ruolo e Login Utente' , 'LBL_USER_IMAGE_INFORMATION' => 'Fotografia Utente' , - 'LBL_CURRENCY_CONFIGURATION' => 'Currency and Number Field Configuration', + 'LBL_CURRENCY_CONFIGURATION' => 'Configurazione Campi Valuta e Numeri', 'LBL_ADDRESS_INFORMATION' => 'Indirizzo utente' , 'LBL_USER_ADV_OPTIONS' => 'Opzioni avanzate utente' , 'Asterisk Configuration' => 'Configurazione di Asterisk' , 'LBL_HOME_PAGE_COMPONENTS' => 'Componenti di Home Page' , - 'LBL_TAG_CLOUD_DISPLAY' => 'Tag Cloud Display' , // TODO: Review + 'LBL_TAG_CLOUD_DISPLAY' => 'Mostra Tag Cloud' , // TODO: Review 'Role' => 'Ruolo' , 'Admin' => 'Amministratore' , 'User Name' => 'Nome Utente' , @@ -44,32 +44,32 @@ $languageStrings = array( 'LBL_HIDE' => 'Nascondi' , 'LBL_HOME_PAGE_COMPO' => 'Componenti di Home Page' , 'LBL_LOGIN_HISTORY' => 'Storico Login' , - 'LBL_USERDETAIL_INFO' => 'Visualizzando i dettagli dell'utente', + 'LBL_USERDETAIL_INFO' => 'Visualizzando i dettagli dell\'utente', 'LBL_DELETE_GROUP' => 'Elimina Gruppo' , 'LBL_DELETE_GROUPNAME' => 'Gruppo da Eliminare' , - 'LBL_TRANSFER_GROUP' => 'Trasferisci la Proprietà a:', + 'LBL_TRANSFER_GROUP' => 'Trasferisci la Proprietà a:', 'LBL_DELETE_USER' => 'Utente da Eliminare' , - 'LBL_TRANSFER_USER' => 'Trasferisci la proprietà all'Utente', + 'LBL_TRANSFER_USER' => 'Trasferisci la proprietà all\'Utente', 'LBL_DELETE_PROFILE' => 'Elimina Profilo' , 'LBL_TRANSFER_ROLES_TO_PROFILE' => 'Trasferisci Ruoli al Profilo', 'LBL_PROFILE_TO_BE_DELETED' => 'Profilo da Eliminare' , 'INTERNAL_MAIL_COMPOSER' => 'Compositore Email interno' , 'Asterisk Extension' => 'Asterisk Extension' , - ' Receive Incoming Calls' => 'Receive Incoming Calls' , // TODO: Review + ' Receive Incoming Calls' => 'Riceve Chiamate in Arrivo' , 'Reminder Interval' => 'Intervallo Promemoria' , 'Webservice Access Key' => 'Password di accesso' , 'Language' => 'Linguaggio:' , - 'Theme' => 'Theme' , - 'Time Zone' => 'Time Zone' , - 'Decimal Separator' => 'Decimal Separator' , - 'Digit Grouping Pattern' => 'Digit Grouping Pattern' , - 'Digit Grouping Separator' => 'Digit Grouping Separator' , - 'Symbol Placement' => 'Symbol Placement' , - 'Number Of Currency Decimals' => 'Number Of Currency Decimals' , - 'Truncate Trailing Zeros' => 'Truncate Trailing Zeros' , - 'Default Call Duration' => 'Default Call Duration (Mins)', // TODO: Review - 'Other Event Duration' => 'Other Event Duration (Mins)' , // TODO: Review - 'Calendar Hour Format' => 'Calendar Hour Format' , // TODO: Review + 'Theme' => 'Tema' , + 'Time Zone' => 'Fuso orario' , + 'Decimal Separator' => 'Separatore Decimali' , + 'Digit Grouping Pattern' => 'Modo raggruppamento Cifre' , + 'Digit Grouping Separator' => 'Separatore cifre' , + 'Symbol Placement' => 'Posizionamento Simbolo' , + 'Number Of Currency Decimals' => 'Numero dei decimali per la valuta' , + 'Truncate Trailing Zeros' => 'Troncare zeri eccessivi' , + 'Default Call Duration' => 'Durata standard telefonata (minuti)', // TODO: Review + 'Other Event Duration' => 'Durata altri eventi (minuti)' , + 'Calendar Hour Format' => 'Formato ore Calendario' , 'Kwajalein' => '(UTC-12:00) International Date Line West', 'Pacific/Midway' => '(UTC-11:00) Coordinated Universal Time-11', 'Pacific/Samoa' => '(UTC-11:00) Samoa' , @@ -114,7 +114,7 @@ $languageStrings = array( 'Europe/Sarajevo' => '(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb', 'Europe/Brussels' => '(UTC+01:00) Brussels, Copenhagen, Madrid, Paris', 'Africa/Algiers' => '(UTC+01:00) West Central Africa', - 'Europe/Amsterdam' => '(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna', + 'Europe/Amsterdam' => '(UTC+01:00) Amsterdam, Berlin, Bern, Roma, Rome, Stockholm, Vienna', 'Europe/Minsk' => '(UTC+02:00) Minsk' , 'Africa/Cairo' => '(UTC+02:00) Cairo' , 'Europe/Helsinki' => '(UTC+02:00) Helsinki, Riga, Sofia, Tallinn, Vilnius', @@ -168,9 +168,9 @@ $languageStrings = array( 'Pacific/Auckland' => '(UTC+12:00) Auckland' , 'Asia/Magadan' => '(UTC+12:00) Magadan' , 'Pacific/Tongatapu' => '(UTC+13:00) Nukualofa' , - 'Summary' => 'Summary' , // TODO: Review - 'Detail' => 'Detail' , // TODO: Review - 'LBL_USER_LIST_DETAILS' => 'Details' , // TODO: Review + 'Summary' => 'Sommario' , + 'Detail' => 'Dettaglio' , + 'LBL_USER_LIST_DETAILS' => 'Dettagli' , 'LBL_USER_DELETED_SUCCESSFULLY' => 'Utente cancellato con successo', 'LBL_ACTIVE_USERS' => 'Utenti attivi', 'LBL_INACTIVE_USERS' => 'Gli utenti inattivi', @@ -190,40 +190,39 @@ $languageStrings = array( 'LBL_DEPARTMENT' => 'Dipartimento', 'LBL_BASE_CURRENCY' => 'Valuta di Base', 'LBL_CHOOSE_BASE_CURRENCY' => 'Scegliere Valuta di Base', - 'LBL_OPERATING_CURRENCY' => 'Valuta di riferimento non può essere modificato successivamente. Seleziona la tua valuta operativo', + 'LBL_OPERATING_CURRENCY' => 'Valuta di riferimento non può essere modificato successivamente. Seleziona la tua valuta operativa', 'LBL_LANGUAGE' => 'Lingua', 'LBL_CHOOSE_LANGUAGE' => 'Scegli la lingua', 'LBL_CHOOSE_TIMEZONE' => 'Scegli Fuso orario', - 'LBL_DATE_FORMAT' => 'Data Format', - 'LBL_CHOOSE_DATE_FORMAT'=> 'Scegli la Data Format', + 'LBL_DATE_FORMAT' => 'Formato Data', + 'LBL_CHOOSE_DATE_FORMAT'=> 'Scegli il formato Data', 'LBL_PHONE' => 'Telefono', 'Space' => 'Spazio', //picklist values for Default Calendar View field in MyPreference Page - 'ListView' => 'List View', + 'ListView' => 'Lista Viste', 'MyCalendar' => 'Il mio calendario', 'SharedCalendar' => 'Calendario condiviso', 'LBL_CHANGE_OWNER' => 'Cambia proprietario', 'LBL_TRANSFER_OWNERSHIP' => 'Trasferimento della proprietà ', 'LBL_TRANSFER_OWNERSHIP_TO_USER' => 'Trasferire la proprietà a utente', - 'LBL_OWNERSHIP_TRANSFERRED_SUCCESSFULLY' => 'CRM proprietario ha cambiato con successo', + 'LBL_OWNERSHIP_TRANSFERRED_SUCCESSFULLY' => 'Proprietario CRM cambiato con successo', 'LBL_OWNERSHIP_TRANSFERRED_FAILED' => 'Impossibile cambiare proprietario CRM', 'Account Owner' => 'Account Proprietario', - 'Starting Day of the week' => 'Avvio Giorno della settimana', - 'Day starts at' => 'Giorno inizia alle', - 'Default Event Status' => 'Predefinito Stato evento', - 'Default Activity Type' => 'Predefinito Tipo Attività ', - 'Default Record View' => 'Predefinito Record View', - 'Left Panel Hide' => 'Pannello sinistro Hide', + 'Starting Day of the week' => 'Primo Giorno della settimana', + 'Day starts at' => 'Il Giorno inizia alle', + 'Default Event Status' => 'Stato Predefinito per Eventi', + 'Default Activity Type' => 'Tipo Predefinito per Attività ', + 'Default Record View' => 'Record Predefinito per View', + 'Left Panel Hide' => 'Nascondi Pannello a sinistra', 'Row Height' => 'Altezza riga', - 'LBL_RESTORE_USER_FAILED' => 'Impossibile ripristinare utente. Esiste già un utente CRM con questo nome utente.', - - 'LBL_DUPLICATE_USER_EXISTS' => 'Utente esiste già ', + 'LBL_RESTORE_USER_FAILED' => 'Impossibile ripristinare utente. Esiste già un utente CRM con questo nome utente.', + 'LBL_DUPLICATE_USER_EXISTS' => 'Utente già esistente', 'LBL_CHANGE_PASSWORD' => 'Cambiare La Password', 'LBL_CHANGE_USERNAME' => 'Cambia nome utente' , - 'LBL_USERNAME_CHANGED' => 'Nome utente modificata correttamente', + 'LBL_USERNAME_CHANGED' => 'Nome utente modificato correttamente', 'ERROR_CHANGE_USERNAME' => 'Errore nel cambiamento nome utente. Si prega di riprovare più tardi', 'LBL_REMOVE_USER' => 'Eliminare', @@ -239,12 +238,12 @@ $languageStrings = array( 'LBL_CREATE_USER' => 'Creare Utente', 'LBL_DELETE_USER_PERMANENTLY_INFO' => 'Eliminazione di un utente in modo permanente il trasferimento di tutti i record compresi i commenti e la storia sono un nuovo utente.', 'LBL_TO_CRM' => 'Login per Vtiger CRM', - 'LBL_INVALID_USER_OR_PASSWORD' => 'Non valido nome utente o la password.', + 'LBL_INVALID_USER_OR_PASSWORD' => 'Nome utente o la password non validi.', 'LBL_INVALID_USER_OR_EMAIL' => 'Non valido nome utente o indirizzo Email.', 'LBL_EMAIL_SEND' => 'Abbiamo inviato una email per reimpostare la password.', 'ForgotPassword' => 'Hai Dimenticato La Password?', 'LBL_CONNECT_WITH_US' => 'Connettiti con NOI', - 'LBL_GET_MORE' => 'Ottenere di più di Vtiger', + 'LBL_GET_MORE' => 'Ottenere di più da Vtiger', 'LBL_TRANSFER_RECORDS_TO_USER' => 'Trasferire i record utente', 'LBL_USER_TO_BE_DELETED' => 'Utente Cancellato', 'LBL_USERS_SETTINGS' => 'IMPOSTAZIONI DEGLI UTENTI', @@ -254,15 +253,15 @@ $languageStrings = array( $jsLanguageStrings = array( //Curency seperator validation messages - 'JS_ENTER_OLD_PASSWORD'=>'Please enter your old password.', - 'JS_ENTER_NEW_PASSWORD'=>'Please enter your new password.', - 'JS_ENTER_CONFIRMATION_PASSWORD'=>'Please enter your password confirmation.', - 'JS_REENTER_PASSWORDS'=>'Please re-enter passwords. The \"new password\" and \"confirm password\" values do not match.', - 'JS_INVALID_PASSWORD'=>'You must specify a valid username and password.', - 'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ', - 'JS_PASSWORD_CHANGE_FAILED_2'=>' failed. The new password must be set.', - 'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.', + 'JS_ENTER_OLD_PASSWORD'=>'Per favore inserire la tua vecchia password.', + 'JS_ENTER_NEW_PASSWORD'=>'Per favore inserire la tua nuova new password.', + 'JS_ENTER_CONFIRMATION_PASSWORD'=>'Per favore inserisci la tua password di conferma.', + 'JS_REENTER_PASSWORDS'=>'Per favore inserisce nuovamente le passowrd. La nuova password e quella di conferma non coincidono.', + 'JS_INVALID_PASSWORD'=>'Devi specificare un nome utente e una password validi.', + 'JS_PASSWORD_CHANGE_FAILED_1'=>'Il cambio password per l\'utente è fallito a causa di ', + 'JS_PASSWORD_CHANGE_FAILED_2'=>' fallito. La nuova password deve essere reimpostata.', + 'JS_PASSWORD_INCORRECT_OLD'=>'Vecchia password errata. Reinserire le informazioni delle password.', 'JS_ENTERED_CURRENT_USERNAME_MSG' => 'Hai inserito il nome utente corrente. Inserisci il nuovo nome utente.', 'JS_NEW_ACCESS_KEY_REQUESTED' => 'nuova chiave di accesso richiesto', - 'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Hai richiesto per una nuova chiave di accesso. <br><br>Con la nuova disposizione chiave di accesso, è necessario sostituire la chiave di accesso vecchio con quello nuovo in tutte le estensioni installate. <br><br>Do si desidera continuare?', + 'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Hai richiesto per una nuova chiave di accesso. <br><br>Con la nuova chiave di accesso fornita, è necessario sostituire la chiave di accesso vecchia con quella nuova in tutte le estensioni installate. <br><br>Si desidera continuare?', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vendors.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vendors.php index dd4bcd0d3cbc15bb8da24440f13d4ffdc8476f14..83e8527fe2e0a5e8314f8091cfd8b8928091e8d8 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vendors.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vendors.php @@ -10,12 +10,12 @@ $languageStrings = array( 'Vendors' => 'Fornitori' , 'SINGLE_Vendors' => 'Fornitore' , - 'LBL_ADD_RECORD' => 'Add Vendor' , - 'LBL_RECORDS_LIST' => 'Vendors List' , + 'LBL_ADD_RECORD' => 'Aggiungi Fornitore' , + 'LBL_RECORDS_LIST' => 'Lista Fornitori' , 'LBL_VENDOR_INFORMATION' => 'Informazioni Fornitore:' , 'LBL_VENDOR_ADDRESS_INFORMATION' => 'Informazioni Indirizzo:' , 'Vendor Name' => 'Nome Fornitore' , - 'Vendor No' => 'No. Fornitore' , + 'Vendor No' => 'N. Fornitore' , 'Website' => 'Sito Web' , 'GL Account' => 'Codice Contabile' , '300-Sales-Software' => '300-Vendita-Software' , @@ -33,7 +33,7 @@ $languageStrings = array( ); $jsLanguageStrings = array( - 'LBL_RELATED_RECORD_DELETE_CONFIRMATION' => 'Are you sure you want to delete?', - 'LBL_DELETE_CONFIRMATION' => 'Deleting this Vendor will remove its related PurchaseOrders. Are you sure you want to delete this Vendor?', - 'LBL_MASS_DELETE_CONFIRMATION' => 'Deleting this vendor(s) will remove its related Purchase Orders. Are you sure you want to delete the selected Records?', + 'LBL_RELATED_RECORD_DELETE_CONFIRMATION' => 'Sei sicuro che lo vuoi cancellare?', + 'LBL_DELETE_CONFIRMATION' => 'Cancellando questo Fornitore rimuoverai anche i relativi Ordini di Acquisto. Sei sicuro che vuoi cancellare questo Fornitore?', + 'LBL_MASS_DELETE_CONFIRMATION' => 'Cancellando questi Fornitori rimuoverai anche i relativi Ordini di Acquisto. Sei sicuro che vuoi cancellare questi selezionati?', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vtiger.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vtiger.php index e72362e786ce4fcc66ce01bf63e27a289cce8e43..e3f74c25408fb6996b990383f4d39a72534f05c9 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vtiger.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Vtiger.php @@ -9,12 +9,12 @@ ************************************************************************************/ $languageStrings = array( 'APPTITLE' => 'Vtiger CRM' , - 'POWEREDBY' => 'Powered by vtiger CRM' , + 'POWEREDBY' => 'Piattaforma vtiger CRM' , 'LBL_READ_LICENSE' => 'Leggi la licenza' , 'LBL_PRIVACY_POLICY' => 'Privacy Policy' , 'LBL_SELECT_ALL' => 'Seleziona Tutti' , - 'LBL_SELECT_TO_LOAD_LIST' => 'Select to Load List' , // TODO: Review - 'LBL_CREATING_NEW' => 'Creating New' , + 'LBL_SELECT_TO_LOAD_LIST' => 'Seleziona per caricare la Lista' , + 'LBL_CREATING_NEW' => 'Crea Nuovo' , 'LBL_EDITING' => 'Modifica' , 'LBL_SAVE' => 'Salva' , 'LBL_CANCEL' => 'Annulla' , @@ -28,96 +28,96 @@ $languageStrings = array( 'LBL_EDIT' => 'Modifica' , 'LBL_DELETE' => 'Elimina' , 'LBL_SETTINGS' => 'Impostazioni' , - 'LBL_ADD_COMMENT' => 'Add Comment' , - 'LBL_EDIT_FIELDS' => '%s Campi & Suddivisione' , - 'LBL_EDIT_WORKFLOWS' => 'Flussi di lavoro% s' , - 'LBL_EDIT_PICKLIST_VALUES' => 'Picklists Valori' , - 'LBL_EDIT_MAILSCANNER' => 'Convert Emails' , - 'LBL_RECORD_DELETE' => 'Il record che vuoi visualizzare è stato cancellato', - 'LBL_RECORD_NOT_FOUND' => 'Il record a cui stai tentando di accedere non è stato trovato.', + 'LBL_ADD_COMMENT' => 'Aggiungi Commento' , + 'LBL_EDIT_FIELDS' => 'Modifica Campi' , + 'LBL_EDIT_WORKFLOWS' => 'Modifica Flussi di lavoro' , + 'LBL_EDIT_PICKLIST_VALUES' => 'Modifica Valori dei Menù a tendina' , + 'LBL_EDIT_MAILSCANNER' => 'Converti Email' , + 'LBL_RECORD_DELETE' => 'Il record che vuoi visualizzare è stato cancellato', + 'LBL_RECORD_NOT_FOUND' => 'Il record a cui stai tentando di accedere non è stato trovato.', 'LBL_SELECT' => 'Seleziona' , 'LBL_CLEAR' => 'Pulisci' , - 'LBL_YES' => 'Sì' , - 'LBL_NO' => 'nessun' , - 'LBL_SHOW_COMPLETE_DETAILS' => 'Complete Details' , // TODO: Review - 'LBL_MASS_EDITING' => 'Mass Editing' , + 'LBL_YES' => 'Sì' , + 'LBL_NO' => 'No' , + 'LBL_SHOW_COMPLETE_DETAILS' => 'Dettagli completi' , + 'LBL_MASS_EDITING' => 'Modifica di Massa' , 'LBL_DESELECT_ALL_RECORDS' => 'Deseleziona tutto' , 'LBL_QUICK_CREATE' => 'Creazione Veloce' , - 'LBL_SEND_EMAIL' => 'Send Email' , - 'LBL_ALL_EMAILS' => 'All email accounts' , - 'LBL_MUTIPLE_EMAIL_SELECT_ONE' => 'This record stores multiple email accounts. Please select the accounts to which the email should be sent to', - 'LBL_GO_TO_FULL_FORM' => 'Go to full form' , - 'LBL_SEND_SMS' => 'Send SMS' , + 'LBL_SEND_EMAIL' => 'Invia Email' , + 'LBL_ALL_EMAILS' => 'Tutti gli Account Email' , + 'LBL_MUTIPLE_EMAIL_SELECT_ONE' => 'Questo record contiene più account email. Prego selezionare gli accounti a cui vorresti inviare', + 'LBL_GO_TO_FULL_FORM' => 'Passa al modulo completo' , + 'LBL_SEND_SMS' => 'Invia SMS' , 'LBL_FOUND' => 'Trovato' , - 'LBL_CLICK_ADD' => 'Click to add' , - 'LBL_ADD_MORE_FIELDS' => 'Aggiungere more fields' , + 'LBL_CLICK_ADD' => 'Clicca per aggiungere' , + 'LBL_ADD_MORE_FIELDS' => 'Aggiungere più campi' , 'LBL_ADD_NOTE' => 'Aggiungi Nota' , - 'LBL_CREATE_NEW' => 'Create New' , - 'LBL_ADD_EVENT' => 'Aggiungere Event' , + 'LBL_CREATE_NEW' => 'Crea Nuovo' , + 'LBL_ADD_EVENT' => 'Aggiungere Evento' , 'LBL_ADD_TASK' => 'Aggiungi attività ' , 'LBL_MARKETING_AND_SALES' => 'MARKETING & SALES' , - 'LBL_TOOLS_HEADER' => 'TOOLS' , - 'LBL_SUPPORT' => 'SUPPORT' , - 'LBL_INVENTORY' => 'INVENTORY' , - 'LBL_ANALYTICS' => 'ANALYTICS' , + 'LBL_TOOLS_HEADER' => 'STRUMENTI' , + 'LBL_SUPPORT' => 'SUPPORTO' , + 'LBL_INVENTORY' => 'INVENTARIO' , + 'LBL_ANALYTICS' => 'ANALISI' , 'LBL_HOME' => 'Domestico' , - 'LBL_LAST_VIEWED_RECORDS' => 'Last Viewed Records' , + 'LBL_LAST_VIEWED_RECORDS' => 'Gli ultimi record visti' , 'LBL_DASHBOARD' => 'Cruscotto' , - 'LBL_USER_SETTINGS' => 'User Settings' , + 'LBL_USER_SETTINGS' => 'Impostazioni utente' , 'LBL_MY_PREFERENCES' => 'Le Mie Preferenze' , 'LBL_SIGN_OUT' => 'Esci' , 'LBL_HELP' => 'Aiuto' , - 'LBL_DOCUMENTATION' => 'Documentation' , // TODO: Review - 'LBL_VIDEO_TUTORIAL' => 'Video Tutorial' , // TODO: Review + 'LBL_DOCUMENTATION' => 'Documentazione' , + 'LBL_VIDEO_TUTORIAL' => 'Tutorial Video' , 'LBL_FEEDBACK' => 'Feedback' , - 'LBL_CHAT_SUPPORT' => 'Supporto Chat', - 'LBL_CRM_SETTINGS' => 'CRM Settings' , - 'LBL_ON_DEMAND_ADMIN' => 'Add / Delete Users' , // TODO: Review - 'LBL_ANNOUNCEMENT' => 'Announcement' , + 'LBL_CHAT_SUPPORT' => 'Supporto via Chat', + 'LBL_CRM_SETTINGS' => 'Impostazioni CRM' , + 'LBL_ON_DEMAND_ADMIN' => 'Aggiungi / Cancella Utenti' , + 'LBL_ANNOUNCEMENT' => 'Annunci' , 'LBL_CALENDAR' => 'Calendario' , - 'LBL_POST' => 'Post' , - 'LBL_GUIDER' => 'Guider' , // TODO: Review - 'LBL_DISPLAY_TYPE' => 'Display Type' , // TODO: Review - 'LBL_DISPLAY_WIDETYPE' => 'Wide' , // TODO: Review - 'LBL_DISPLAY_MEDIUMTYPE' => 'Medium' , // TODO: Review - 'LBL_DISPLAY_NARROWTYPE' => 'Narrow' , // TODO: Review - 'LBL_TAG_THIS_RECORD' => 'Tag this Record' , // TODO: Review - 'LBL_PAGE' => 'Page' , // TODO: Review - 'LBL_LISTVIEW_PAGE_JUMP' => 'Page Jump' , // TODO: Review + 'LBL_POST' => 'Invia' , + 'LBL_GUIDER' => 'Guida' , + 'LBL_DISPLAY_TYPE' => 'Tipo Display' , + 'LBL_DISPLAY_WIDETYPE' => 'Largo' , + 'LBL_DISPLAY_MEDIUMTYPE' => 'Medio' , + 'LBL_DISPLAY_NARROWTYPE' => 'Stretto' , + 'LBL_TAG_THIS_RECORD' => 'Tagga questo Record' , + 'LBL_PAGE' => 'Pagina' , + 'LBL_LISTVIEW_PAGE_JUMP' => 'Salto Pagina' , 'LBL_USER' => 'Utente' , 'LBL_GROUP' => 'Gruppo' , - 'Last Modified By' => 'Last Modified By' , + 'Last Modified By' => 'Ultima modifica di' , 'Created Time' => 'Orario creazione' , 'Modified Time' => 'Orario modifica' , 'Description' => 'Descrizione' , 'Assigned To' => 'Assegnato a ' , 'LBL_LOADING' => 'Caricamento...' , - 'LBL_LOADING_WIDGET' => 'Loading Widget' , - 'LBL_LOADING_LISTVIEW_CONTENTS' => 'Loading, Please wait.' , + 'LBL_LOADING_WIDGET' => 'Caricamento Widget' , + 'LBL_LOADING_LISTVIEW_CONTENTS' => 'Caricamento, attendere prego.' , 'LBL_UPDATES' => 'Aggiornamenti' , - 'LBL_SHOW_FULL_DETAILS' => 'Show Full Details' , // TODO: Review - 'LBL_SUMMARY_DETAILS' => 'Summary Details' , - 'LBL_ADD_NEW_COMMENT' => 'Add New Comment' , - 'LBL_NO_UPDATES' => 'No Updates' , - 'LBL_ACTIVITIES' => 'Activities' , // TODO: Review - 'LBL_NO_PENDING_ACTIVITIES' => 'No pending activities' , // TODO: Review - 'LBL_SUMMARY' => 'Summary' , // TODO: Review - 'LBL_DETAILS' => 'Details' , // TODO: Review + 'LBL_SHOW_FULL_DETAILS' => 'Mostra tutti i dettagli' , + 'LBL_SUMMARY_DETAILS' => 'Sommario Dettagli' , + 'LBL_ADD_NEW_COMMENT' => 'Aggiungi nuovo commento' , + 'LBL_NO_UPDATES' => 'Nessun Aggiornamento' , + 'LBL_ACTIVITIES' => 'Attività ' , + 'LBL_NO_PENDING_ACTIVITIES' => 'Nessuna attività in attesa' , // o è meglio "in corso"? + 'LBL_SUMMARY' => 'Sommario' , + 'LBL_DETAILS' => 'Dettagli' , 'LBL_SEARCH_FOR' => 'Cerca' , 'LBL_IN' => 'In' , - 'LBL_TYPE_SEARCH' => 'Type to search' , - 'LBL_SEARCH_BUTTON' => 'Search Button' , + 'LBL_TYPE_SEARCH' => 'Tipo da cercare' , + 'LBL_SEARCH_BUTTON' => 'Bottone Cerca' , 'LBL_ADVANCE_SEARCH' => 'Ricerca avanzata' , - 'LBL_LOADING_PLEASE_WAIT' => 'Loading, Please wait.' , + 'LBL_LOADING_PLEASE_WAIT' => 'Caricamento, attendere prego.' , 'LBL_USERS' => 'Utenti' , - 'LBL_GROUPS' => 'Groups' , - 'LBL_FULL_FORM' => 'Full Form' , - 'LBL_SIMPLE_FORM' => 'Simple Form' , - 'LBL_ADD_YOUR_COMMENT_HERE' => 'Add your comment here...' , - 'LBL_REPLY' => 'Reply' , - 'LBL_VIEW_THREAD' => 'View Thread' , - 'LBL_NO_COMMENTS' => 'No Comments' , - 'LBL_REPLIES' => 'replies' , + 'LBL_GROUPS' => 'Gruppi' , + 'LBL_FULL_FORM' => 'Modulo completo' , + 'LBL_SIMPLE_FORM' => 'Modulo Semplice' , + 'LBL_ADD_YOUR_COMMENT_HERE' => 'Aggiungi il tuo commento qui...' , + 'LBL_REPLY' => 'Rispondi' , + 'LBL_VIEW_THREAD' => 'Mostra Thread' , + 'LBL_NO_COMMENTS' => 'Nessun commento' , + 'LBL_REPLIES' => 'risposte' , 'LBL_REPLY_ALL' => 'Rispondi a tutti' , 'Accounts' => 'Aziende' , 'Assets' => 'Assets' , @@ -126,13 +126,13 @@ $languageStrings = array( 'Contacts' => 'Contatti' , 'Documents' => 'Documenti' , 'Leads' => 'Leads' , - 'ModComments' => 'Comments' , - 'Potentials' => 'Opportunita\'' , + 'ModComments' => 'Commenti' , + 'Potentials' => 'Opportunità ' , 'PriceBooks' => 'Listini' , 'Products' => 'Prodotti' , - 'Project' => 'Projects' , - 'ProjectMilestone' => 'Project Milestones' , - 'ProjectTask' => 'Project Tasks' , + 'Project' => 'Progetti' , + 'ProjectMilestone' => 'Stadi Progetti' , + 'ProjectTask' => 'Attività Progetti' , 'ServiceContracts' => 'Contratti di Servizio' , 'Services' => 'Servizi' , 'Vendors' => 'Fornitori' , @@ -141,26 +141,26 @@ $languageStrings = array( 'PurchaseOrder' => 'Ordini d\'acquisto' , 'SalesOrder' => 'Ordini di vendita' , 'Invoice' => 'Fatture' , - 'MailManager' => 'Mail Manager' , // TODO: Review - 'Activities' => 'Activities' , + 'MailManager' => 'Mail Manager' , + 'Activities' => 'Attività ' , 'Portal' => 'I nostri siti' , - 'Email Templates' => 'Email Template' , - 'Print Templates' => 'Stampa Templates' , - 'Recycle Bin' => 'Recycle Bin' , // TODO: Review - 'LBL_ADD_RECORD' => 'Add Record' , - 'LBL_RECENTLY_MODIFIED' => 'Recently Modified' , - 'LBL_RECORDS_LIST' => 'Records List' , - 'LBL_RECORD_SUMMARY' => 'Module Summary' , - 'LBL_ACCESS_DENIED_FOR' => 'Access Denied for' , + 'Email Templates' => 'Modelli Email' , + 'Print Templates' => 'Stampa Modelli' , + 'Recycle Bin' => 'Cestino' , + 'LBL_ADD_RECORD' => 'Aggiungi Record' , + 'LBL_RECENTLY_MODIFIED' => 'Modificati di recente' , + 'LBL_RECORDS_LIST' => 'Lista record' , + 'LBL_RECORD_SUMMARY' => 'Sommario Modulo' , + 'LBL_ACCESS_DENIED_FOR' => 'Accesso Negato per' , 'LBL_GO_BACK' => 'Indietro' , - 'LBL_NO_DATA_AVAILABLE' => 'No data available' , - 'LBL_GLOBAL_SEARCH' => 'Type keyword and press enter', - 'LBL_ALL_RECORDS' => 'All Records' , // TODO: Review - 'LBL_NO_RECORDS_FOUND' => 'No records found' , // TODO: Review - 'LBL_AND' => 'and' , + 'LBL_NO_DATA_AVAILABLE' => 'Nessun dato disponibile' , + 'LBL_GLOBAL_SEARCH' => 'Digita la parola chiave e premi enter', + 'LBL_ALL_RECORDS' => 'Tutti i Record' , + 'LBL_NO_RECORDS_FOUND' => 'Nessun Record trovato' , + 'LBL_AND' => 'e' , 'LBL_OR' => 'o' , 'LBL_NONE' => '--Nessuno--' , - 'LBL_APPROVE' => 'Approve' , + 'LBL_APPROVE' => 'Approva' , 'LBL_HAS_CHANGED' => 'è cambiato', 'LBL_HAS_CHANGED_TO' => 'è cambiato a', 'LBL_HAS_CHANGED_FROM' => 'sono variate rispetto', @@ -171,34 +171,34 @@ $languageStrings = array( 'LBL_IS_TODAY' => 'è oggi', 'LBL_IS_TOMORROW' => 'è domani', 'LBL_IS_YESTERDAY' => 'è di ieri', - 'LBL_LESS_THAN_DAYS_LATER' => 'meno di giorni più tardi', - 'LBL_MORE_THAN_DAYS_LATER' => 'più di giorni più tardi', - 'LBL_DENY' => 'Deny' , - 'LBL_EQUALS' => 'equals' , - 'LBL_NOT_EQUAL_TO' => 'not equal to' , - 'LBL_STARTS_WITH' => 'starts with' , + 'LBL_LESS_THAN_DAYS_LATER' => 'minore dei giorni successivi', + 'LBL_MORE_THAN_DAYS_LATER' => 'maggiore dei giorni successivi', + 'LBL_DENY' => 'Nega' , + 'LBL_EQUALS' => 'uguale' , + 'LBL_NOT_EQUAL_TO' => 'non uguale a' , + 'LBL_STARTS_WITH' => 'comincia con' , 'LBL_ENDS_WITH' => 'finisce con' , 'LBL_CONTAINS' => 'contiene' , - 'LBL_DOES_NOT_CONTAIN' => 'does not contains' , + 'LBL_DOES_NOT_CONTAIN' => 'non contiene' , 'LBL_LESS_THAN' => 'minore di' , 'LBL_GREATER_THAN' => 'maggiore di' , 'LBL_LESS_THAN_OR_EQUAL' => 'minore o uguale a' , 'LBL_GREATER_OR_EQUAL' => 'maggiore o uguale a' , - 'LBL_BEFORE' => 'before' , - 'LBL_AFTER' => 'after' , - 'LBL_BETWEEN' => 'between' , + 'LBL_BEFORE' => 'prima' , + 'LBL_AFTER' => 'dopo' , + 'LBL_BETWEEN' => 'tra' , 'LBL_IS_NOT_EMPTY' => 'non è vuota' , 'LBL_SEARCH' => 'Ricerca' , - 'LBL_SEARCH_IN' => 'Search In' , - 'LBL_ADD_CONDITION' => 'Add Condition' , - 'LBL_ADD_GROUP' => 'Add Group' , + 'LBL_SEARCH_IN' => 'Cerca In' , + 'LBL_ADD_CONDITION' => 'Aggiungi Condizione' , + 'LBL_ADD_GROUP' => 'Aggiungi Gruppo' , 'LBL_FILTER_CONDITIONS' => 'Elenco Condizioni' , - 'LBL_ALL_CONDITIONS' => 'All Conditions' , - 'LBL_ALL_CONDITIONS_DESC' => 'All conditions must be met' , - 'LBL_ANY_CONDITIONS' => 'Any Conditions' , - 'LBL_ANY_CONDITIONS_DESC' => 'At least one of the conditions must be met', - 'LBL_SELECT_FIELD' => 'Select Field' , - 'LBL_SELECT_MODULE' => 'Select Module' , + 'LBL_ALL_CONDITIONS' => 'Tutte le condizioni' , + 'LBL_ALL_CONDITIONS_DESC' => 'Tutte le condizioni devono essere rispettate' , + 'LBL_ANY_CONDITIONS' => 'Una delle Condizioni' , + 'LBL_ANY_CONDITIONS_DESC' => 'Almeno una delle condizioni deve essere rispettata', + 'LBL_SELECT_FIELD' => 'Seleziona Campo' , + 'LBL_SELECT_MODULE' => 'Seleziona Modulo' , 'LBL_CREATE_NEW_FILTER' => 'Crea nuovo elenco' , 'All' => 'Tutti' , 'Others' => 'Altri' , @@ -206,17 +206,17 @@ $languageStrings = array( 'Public' => 'Pubblico' , 'LBL_SAVE_FILTER' => 'Salva elenco' , 'LBL_SAVE_MODIFY_FILTER' => 'Salva / Modifica elenco' , - 'LBL_SEARCH_RESULTS' => 'Search Results' , + 'LBL_SEARCH_RESULTS' => 'Cerca risultati' , 'LBL_SAVE_AS_FILTER' => 'Nell\'elenco' , 'LBL_NOT_ACCESSIBLE' => 'Non Accessibile' , - 'LBL_ITEM_DETAILS' => 'Dettagli dell'elemento' , + 'LBL_ITEM_DETAILS' => 'Dettagli dell\'elemento' , 'LBL_CURRENCY' => 'Valuta' , - 'LBL_TAX_MODE' => 'Modalità di Tassazione', + 'LBL_TAX_MODE' => 'Modalità di Tassazione', 'LBL_INDIVIDUAL' => 'Individuale' , 'LBL_TOOLS' => 'Strumenti' , - 'LBL_ITEM_NAME' => 'Nome dell'elemento' , - 'LBL_QTY_IN_STOCK' => 'Quantità in Stock' , - 'LBL_QTY' => 'Quantità' , + 'LBL_ITEM_NAME' => 'Nome dell\'elemento' , + 'LBL_QTY_IN_STOCK' => 'Quantità in Stock' , + 'LBL_QTY' => 'Quantità ' , 'LBL_LIST_PRICE' => 'Prezzo di listino' , 'LBL_TOTAL' => 'Totale' , 'LBL_NET_PRICE' => 'Prezzo Netto' , @@ -225,33 +225,33 @@ $languageStrings = array( 'LBL_TAX' => 'Tasse' , 'LBL_ADD_PRODUCT' => 'Aggiungi Prodotto' , 'LBL_ADD_SERVICE' => 'Aggiungi Servizio' , - 'LBL_ITEMS_TOTAL' => 'Items Total' , // TODO: Review + 'LBL_ITEMS_TOTAL' => 'Totale Prodotti' , 'LBL_SHIPPING_AND_HANDLING_CHARGES' => 'Spese di Spedizione' , - 'LBL_PRE_TAX_TOTAL' => 'Pre Tax Total' , // TODO: Review + 'LBL_PRE_TAX_TOTAL' => 'Totale senza Tasse' , // TODO: Review 'LBL_TAX_FOR_SHIPPING_AND_HANDLING' => 'Tasse sulle Spese di Spedizione', - 'LBL_SET_SHIPPING_AND_HANDLING_TAXES_FOR' => 'Set S&H Taxes For' , + 'LBL_SET_SHIPPING_AND_HANDLING_TAXES_FOR' => 'Imposta tasse per spedizione e movim. per' , //handlig come si può tradurre in Italiano? Movimentazione? 'LBL_ADJUSTMENT' => 'Arrotondamento' , 'LBL_DEDUCT' => 'Deduci' , 'LBL_GRAND_TOTAL' => 'Totale ' , 'LBL_ZERO_DISCOUNT' => 'Nessuno Sconto' , 'LBL_OF_PRICE' => 'di prezzo' , 'LBL_DIRECT_PRICE_REDUCTION' => 'Riduzione diretta sul prezzo', - 'LBL_SET_DISCOUNT_FOR' => 'Set Discount For' , - 'LBL_STOCK_NOT_ENOUGH' => 'Not enough stock' , - 'LBL_MAX_QTY_SELECT' => 'Maxmimum value is' , - 'LBL_DRAG' => 'Drag' , + 'LBL_SET_DISCOUNT_FOR' => 'Imposta lo sconto per' , + 'LBL_STOCK_NOT_ENOUGH' => 'Non abbastanza in magazzino' , + 'LBL_MAX_QTY_SELECT' => 'Il valore Massimo è' , + 'LBL_DRAG' => 'Trascina' , 'LBL_TOTAL_TAX_AMOUNT' => 'Totale tasse' , - 'LBL_DIRECT_AMOUNT_DISCOUNT' => 'Sconto Diretto Quantità', + 'LBL_DIRECT_AMOUNT_DISCOUNT' => 'Sconto Diretto Quantità ', 'LBL_FINAL_DISCOUNT_AMOUNT' => 'Totale sconti' , 'LBL_MORE_CURRENCIES' => 'Altre valute' , - 'LBL_SET_TAX_FOR' => 'Set Tax for' , // TODO: Review - 'LBL_GROUP_TAX' => 'Group Tax' , // TODO: Review + 'LBL_SET_TAX_FOR' => 'Imposta Tasse per' , + 'LBL_GROUP_TAX' => 'Gruppo Tasse' , 'LBL_OVERALL_DISCOUNT' => 'Sconto globale', 'LBL_CHARGES' => 'Oneri', 'LBL_CHARGES_TOTAL' => 'Totale oneri', 'LBL_TAXES_ON_CHARGES' => 'Tasse sulle tariffe', - 'LBL_DEDUCTED_TAXES' => 'Tasse Deducted', - 'LBL_DEDUCTED_TAXES_TOTAL' => 'Tasse Deducted totale', + 'LBL_DEDUCTED_TAXES' => 'Tasse Detratte', + 'LBL_DEDUCTED_TAXES_TOTAL' => 'Totale Tasse Detratte', 'LBL_DEFAULT' => 'Difetto', 'LBL_ITEM' => 'Voce', 'LBL_BILLING_ADDRESS_FROM' => 'Copia indirizzo di fatturazione da' , // TODO: Review @@ -261,261 +261,261 @@ $languageStrings = array( 'LBL_CREATE' => 'Crea' , 'LBL_GENERATE' => 'Genera' , 'LBL_DUPLICATE' => 'Duplica' , - 'LBL_ADD_WIDGET' => 'Add Widget' , + 'LBL_ADD_WIDGET' => 'Aggiungi Widget' , 'LBL_COMMENTS' => 'COMMENTI' , - 'LBL_REFRESH' => 'Refresh' , + 'LBL_REFRESH' => 'Aggiorna' , 'LBL_CLOSE' => 'Chiudi' , 'LBL_ALL' => 'Tutti' , 'LBL_UPDATED' => 'Aggiornato' , - 'LBL_FROM' => 'from' , - 'LBL_TO' => 'to' , - 'LBL_ON' => 'on' , + 'LBL_FROM' => 'da' , + 'LBL_TO' => 'a' , + 'LBL_ON' => 'il' , 'LBL_OF' => 'di' , - 'LBL_BY' => 'by' , - 'LBL_ADDED' => 'added' , + 'LBL_BY' => 'da' , + 'LBL_ADDED' => 'aggiunto' , 'LBL_FOR' => 'per' , 'LBL_CREATED' => 'Creato' , - 'LBL_DELETED' => 'deleted' , - 'LBL_RESTORED' => 'restored' , - 'LBL_COMMENTED' => 'commented' , - 'LBL_REMOVED' => 'removed' , - 'LBL_REMOVE' => 'Remove' , - 'LBL_AT' => 'at' , - 'LBL_MINE' => 'Mine' , + 'LBL_DELETED' => 'cancellato' , + 'LBL_RESTORED' => 'ripristinato' , + 'LBL_COMMENTED' => 'commentato' , + 'LBL_REMOVED' => 'rimosso' , + 'LBL_REMOVE' => 'Rimuovi' , + 'LBL_AT' => 'il' , + 'LBL_MINE' => 'Mio' , 'History' => 'Storico' , - 'Upcoming Tasks' => 'Upcoming Tasks' , - 'LBL_YEAR' => 'year' , - 'LBL_YEARS' => 'years' , - 'LBL_MONTH' => 'month' , - 'LBL_MONTHS' => 'months' , - 'LBL_DAY' => 'day' , - 'LBL_DAYS' => 'days' , - 'LBL_HOUR' => 'hour' , - 'LBL_HOURS' => 'hours' , - 'LBL_MINUTE' => 'minute' , - 'LBL_MINUTES' => 'Minutes' , - 'LBL_SECOND' => 'second' , - 'LBL_SECONDS' => 'seconds' , - 'LBL_JUSTNOW' => 'just now' , + 'Upcoming Tasks' => 'Prossime attività ' , + 'LBL_YEAR' => 'anno' , + 'LBL_YEARS' => 'anni' , + 'LBL_MONTH' => 'mese' , + 'LBL_MONTHS' => 'mesi' , + 'LBL_DAY' => 'giorno' , + 'LBL_DAYS' => 'giorni' , + 'LBL_HOUR' => 'ora' , + 'LBL_HOURS' => 'ore' , + 'LBL_MINUTE' => 'minuto' , + 'LBL_MINUTES' => 'Minuti' , + 'LBL_SECOND' => 'secondo' , + 'LBL_SECONDS' => 'secondi' , + 'LBL_JUSTNOW' => 'adesso' , 'LBL_CUSTOM_INFORMATION' => 'Informazioni personalizzate' , - 'LBL_NO_RECENT_UPDATES' => 'No recent updates' , + 'LBL_NO_RECENT_UPDATES' => 'Nessun aggiornamento recente' , 'LBL_NO_DATA' => 'Nessun dato trovato' , - 'LBL_PERMISSION_DENIED' => 'Permission denied' , - 'LBL_HANDLER_NOT_FOUND' => 'Handler not found' , + 'LBL_PERMISSION_DENIED' => 'Permesso negato' , + 'LBL_HANDLER_NOT_FOUND' => 'Handler non trovato' , 'LBL_FILTER' => 'Lista' , - 'LBL_DUE' => 'due' , - 'LBL_COMPLETED' => 'completed' , - 'LBL_AGO' => 'ago' , - 'LBL_CHANGED' => 'changed' , + 'LBL_DUE' => 'programmato' , + 'LBL_COMPLETED' => 'completato' , + 'LBL_AGO' => 'fa' , + 'LBL_CHANGED' => 'cambiato' , 'Single_Users' => 'Utente' , - 'LBL_MATCHED_THIS_CRITERIA' => 'matched this criteria' , - 'LBL_NO_SCHEDULED_ACTIVITIES' => 'No scheduled activities' , - 'LBL_NO_OVERDUE_ACTIVITIES' => 'No overdue activities' , - 'LBL_NO_UPDATES_OR_COMMENTS' => 'No updates or comments' , - 'LBL_MINI_LIST' => 'Mini List' , // TODO: Review - 'Mini List' => 'Mini List' , // TODO: Review - 'LBL_RESULT_FOR_THE_TAG' => 'Results for the tag' , // TODO: Review + 'LBL_MATCHED_THIS_CRITERIA' => 'corrisponde a questo criterio' , + 'LBL_NO_SCHEDULED_ACTIVITIES' => 'Nessuna attività in programma' , + 'LBL_NO_OVERDUE_ACTIVITIES' => 'Nessuna attività scaduta' , + 'LBL_NO_UPDATES_OR_COMMENTS' => 'Nessun aggiornaento o commento' , + 'LBL_MINI_LIST' => 'Mini Lista' , // TODO: Review + 'Mini List' => 'Mini Lista' , // TODO: Review + 'LBL_RESULT_FOR_THE_TAG' => 'Risultati per il tag' , // TODO: Review 'LBL_ALL_USERS' => 'Tutti gli utenti', 'LBL_BOTH' => 'Entrambi', - 'LBL_SHOW' => 'Spettacolo', + 'LBL_SHOW' => 'Mostra', 'LBL_SELECT_DATE_RANGE' => 'Scegli un intervallo di date', - 'LBL_VIEW_NAME' => 'Lista nome' , - 'LBL_CREATE_VIEW' => 'Creating new View' , - 'LBL_BASIC_DETAILS' => 'Basic Details' , - 'LBL_CHOOSE_COLUMNS' => 'Choose Columns and Order' , + 'LBL_VIEW_NAME' => 'Mostra Nome' , + 'LBL_CREATE_VIEW' => 'Creando nuove Viste' , + 'LBL_BASIC_DETAILS' => 'Dettagli Base' , + 'LBL_CHOOSE_COLUMNS' => 'Scegli colonne e ordinamento' , 'LBL_MAX_NUMBER_FILTER_COLUMNS' => 'Max 15' , - 'LBL_FILTER_ON_DATE' => 'Lista on date' , - 'LBL_CHOOSE_FILTER_CONDITIONS' => 'Scegli condizioni List' , - 'LBL_SET_AS_DEFAULT' => 'Set as Default' , - 'LBL_LIST_IN_METRICS' => 'List in Metrics' , - 'LBL_SET_AS_PUBLIC' => ' Set as Public' , - 'LBL_ADD_MORE_COLUMNS' => 'Fare clic per selezionare i campi' , - 'LBL_CUSTOM' => 'Custom' , - 'LBL_PREVIOUS_FY' => 'Previous FY' , - 'LBL_CURRENT_FY' => 'Current FY' , - 'LBL_NEXT_FY' => 'Next FY' , - 'LBL_PREVIOUS_FQ' => 'Previous FQ' , - 'LBL_CURRENT_FQ' => 'Current FQ' , - 'LBL_NEXT_FQ' => 'Next FQ' , - 'LBL_YESTERDAY' => 'Yesterday' , + 'LBL_FILTER_ON_DATE' => 'Filtra basandoti sulle date' , + 'LBL_CHOOSE_FILTER_CONDITIONS' => 'Scegli condizioni Filtri' , + 'LBL_SET_AS_DEFAULT' => 'Imposta come Default' , + 'LBL_LIST_IN_METRICS' => 'Mostra nelle Metriche' , + 'LBL_SET_AS_PUBLIC' => 'Imposta come Pubblico' , + 'LBL_ADD_MORE_COLUMNS' => 'Aggiungi più Colonne' , + 'LBL_CUSTOM' => 'Personalizzato' , + 'LBL_PREVIOUS_FY' => 'Anno Fiscale Precedente' , + 'LBL_CURRENT_FY' => 'Anno Fiscale Attuale' , + 'LBL_NEXT_FY' => 'Anno Fiscale Prossimo' , + 'LBL_PREVIOUS_FQ' => 'Quarto Fisc. Precedente' , + 'LBL_CURRENT_FQ' => 'Quarto Fisc. Attuale' , + 'LBL_NEXT_FQ' => 'Quarto Fisc. Prossimo' , + 'LBL_YESTERDAY' => 'Ieri' , 'LBL_TODAY' => 'Oggi' , - 'LBL_TOMORROW' => 'Tomorrow' , + 'LBL_TOMORROW' => 'Domani' , 'LBL_LAST_WEEK' => 'Ultima settimana' , - 'LBL_CURRENT_WEEK' => 'Current Week' , - 'LBL_NEXT_WEEK' => 'Next Week' , - 'LBL_LAST_MONTH' => 'Last Month' , - 'LBL_CURRENT_MONTH' => 'Current Month' , - 'LBL_NEXT_MONTH' => 'Next Month' , - 'LBL_LAST_7_DAYS' => 'Last 7 Days' , - 'LBL_LAST_14_DAYS' => 'Last 14 Days' , - 'LBL_LAST_30_DAYS' => 'Last 30 Days' , - 'LBL_LAST_60_DAYS' => 'Last 60 Days' , - 'LBL_LAST_90_DAYS' => 'Last 90 Days' , - 'LBL_LAST_120_DAYS' => 'Last 120 Days' , - 'LBL_NEXT_30_DAYS' => 'Next 30 Days' , - 'LBL_NEXT_60_DAYS' => 'Next 60 Days' , - 'LBL_NEXT_90_DAYS' => 'Next 90 Days' , - 'LBL_NEXT_120_DAYS' => 'Next 120 Days' , - 'LBL_OWNER' => 'Owner' , - 'LBL_CREATED_ON' => 'Created On' , - 'LBL_MODIFIED_ON' => 'Modified On' , - 'LBL_BEFORE_EVENT' => ' Before Event' , - 'Upcoming Activities' => 'Prossime attività' , - 'Overdue Activities' => 'Overdue Activities' , + 'LBL_CURRENT_WEEK' => 'Settimana corrente' , + 'LBL_NEXT_WEEK' => 'Settimana Prossima' , + 'LBL_LAST_MONTH' => 'Mese Passato' , + 'LBL_CURRENT_MONTH' => 'Mese Corrente' , + 'LBL_NEXT_MONTH' => 'Mese Prossimo' , + 'LBL_LAST_7_DAYS' => 'Ultimi 7 giorni' , + 'LBL_LAST_14_DAYS' => 'Ultimi 14 giorni' , + 'LBL_LAST_30_DAYS' => 'Ultimi 30 giorni' , + 'LBL_LAST_60_DAYS' => 'Ultimi 60 giorni' , + 'LBL_LAST_90_DAYS' => 'Ultimi 90 giorni' , + 'LBL_LAST_120_DAYS' => 'Ultimi 120 giorni' , + 'LBL_NEXT_60_DAYS' => 'Prossimi 60 giorni' , + 'LBL_NEXT_30_DAYS' => 'Prossimi 30 giorni' , + 'LBL_NEXT_90_DAYS' => 'Prossimi 90 giorni' , + 'LBL_NEXT_120_DAYS' => 'Prossimi 120 giorni' , + 'LBL_OWNER' => 'Proprietario' , + 'LBL_CREATED_ON' => 'Creato il' , + 'LBL_MODIFIED_ON' => 'Modificato il' , + 'LBL_BEFORE_EVENT' => 'Prima dell\'evento' , + 'Upcoming Activities' => 'Prossime attività ' , + 'Overdue Activities' => 'Attività Scadute' , 'Funnel' => 'Funnel' , - 'Potentials by Stage' => 'Opportunities by Stage' , - 'Pipelined Amount' => 'Sales Pipeline' , - 'Total Revenue' => 'Total Revenue' , - 'Top Potentials' => 'Top Potentials' , - 'Forecast' => 'Forecast' , - 'Leads Created' => 'Leads Created' , - 'Leads by Status' => 'Leads by Status' , - 'Leads by Source' => 'Leads by Source' , - 'Leads by Industry' => 'Leads by Industry' , - 'Tickets by Status' => 'Tickets by Status' , // TODO: Review - 'Open Tickets' => 'Open Tickets' , // TODO: Review - 'LBL_EXPORT_ALL_DATA' => 'Export di tutti i dati' , - 'LBL_EXPORT_DATA_IN_CURRENT_PAGE' => 'Export dei dati della pagina corrente', - 'LBL_EXPORT_SELECTED_RECORDS' => 'Export Selected Records' , - 'LBL_EXPORT_RECORDS' => 'Export delle tipologie di record', - 'LBL_NO_RECORD_SELECTED' => 'No record selected.' , - 'LBL_CAN_NOT_REMOVE_DEFAULT_WIDGET' => 'Cannot remove default widget', - 'LBL_CUSTOM_VIEW_NAME_DUPLICATES_EXIST' => 'Elenco esiste già ' , - 'LBL_EXPORT_CURRENCY_TOOLTIP_TEXT'=>'Per esportare i valori di valuta in Voci, Vtiger utilizzerà questa impostazione per esportare come tale valuta. Tutti i valori di valuta al di fuori delle tabelle elementi di linea, verranno esportati come in Utenti valuta preferita (selezionato in Preferenze)', - 'LBL_EXPORT_LINEITEM_CURRENCY'=>'Scegliere valuta (per valori VOCE)', + 'Potentials by Stage' => 'Opportunità per stadio' , + 'Pipelined Amount' => 'Pipeline Vendita' , + 'Total Revenue' => 'Ricavo Totale' , + 'Top Potentials' => 'Migliori Potenziali' , + 'Forecast' => 'Previsione' , + 'Leads Created' => 'Lead Creati' , + 'Leads by Status' => 'Lead per Stadio' , + 'Leads by Source' => 'Lead per Origine' , + 'Leads by Industry' => 'Lead per Industria' , + 'Tickets by Status' => 'Tickets per Stadio' , // TODO: Review + 'Open Tickets' => 'Tickets Aperti' , // TODO: Review + 'LBL_EXPORT_ALL_DATA' => 'Esporta tutti i dati' , + 'LBL_EXPORT_DATA_IN_CURRENT_PAGE' => 'Esporta i dati della pagina corrente', + 'LBL_EXPORT_SELECTED_RECORDS' => 'Esporta i record selezionati' , + 'LBL_EXPORT_RECORDS' => 'Export delle tipologie dei record', + 'LBL_NO_RECORD_SELECTED' => 'Nessun record selezionato.' , + 'LBL_CAN_NOT_REMOVE_DEFAULT_WIDGET' => 'Non posso rimuovere un default widget', + 'LBL_CUSTOM_VIEW_NAME_DUPLICATES_EXIST' => 'Il filtro esiste già ' , + 'LBL_EXPORT_CURRENCY_TOOLTIP_TEXT'=>'Per esportare i valori di valuta nelle righe dei prodotti, Vtiger utilizzerà questa impostazione per esportare come tale la valuta. Tutti i valori di valuta al di fuori delle righe dei prodotti, verranno esportati nella valuta preferita dell\'Utente (selezionato in Preferenze)', + 'LBL_EXPORT_LINEITEM_CURRENCY'=>'Scegliere valuta (per le righe prodotto)', 'LBL_EXPORT_USER_CURRENCY' =>'La mia valuta preferita', - 'LBL_EXPORT_RECORD_CURRENCY'=>'Valuta specificato nel record', + 'LBL_EXPORT_RECORD_CURRENCY'=>'Valuta specificata nel record', 'LBL_EXPORT_FORMAT' => 'Formato Export', 'LBL_EXPORT_DATA' => 'Esporta dati', - 'LBL_ADD_MANAGE_MODULES' => 'Add / Manage Modules' , + 'LBL_ADD_MANAGE_MODULES' => 'Aggiungi / Gestisci Moduli' , 'Account Name' => 'Nome Azienda' , - 'Add Comment' => 'Add Comment' , + 'Add Comment' => 'Aggiungi Commento' , 'Adjustment' => 'Arrotondamento' , 'Annual Revenue' => 'Fatturato' , - 'Apparel' => 'Apparel' , - 'Banking' => 'Banking' , + 'Apparel' => 'Abbigliamento' , + 'Banking' => 'Bancario' , 'Billing Address' => 'Indirizzo di fatturazione' , 'Billing City' => 'Fatturazione Città ' , 'Billing Code' => 'Codice di fatturazione' , 'Billing Country' => 'Fatturazione Paese' , - 'Billing Po Box' => 'Fatturazione Po Box' , - 'Billing State' => 'Stato di fatturazione' , - 'Biotechnology' => 'Biotechnology' , + 'Billing Po Box' => 'Fatturazione Casella di Posta' , + 'Billing State' => 'Nazione di fatturazione' , + 'Biotechnology' => 'Biotechnologia' , 'FedEx' => 'FedEx' , 'UPS' => 'UPS' , 'USPS' => 'USPS' , 'DHL' => 'DHL' , 'BlueDart' => 'BlueDart' , - 'Carrier' => 'Elemento portante' , + 'Carrier' => 'Corriere' , 'Category' => 'Categoria' , - 'Chemicals' => 'Chemicals' , - 'City' => 'Città' , - 'Cold Call' => 'Cold Call' , - 'Existing Customer' => 'Existing Customer' , - 'Self Generated' => 'Self Generated' , - 'Employee' => 'Employee' , + 'Chemicals' => 'Chimica' , + 'City' => 'Città ' , + 'Cold Call' => 'Chiamata Fredda' , + 'Existing Customer' => 'Cliente Esistente' , + 'Self Generated' => 'Auto-Generato' , + 'Employee' => 'Dipendente' , 'Partner' => 'Partner' , - 'Public Relations' => 'Public Relations' , - 'Direct Mail' => 'Direct Mail' , - 'Conference' => 'Conference' , - 'Trade Show' => 'Trade Show' , - 'Web Site' => 'Web Site' , - 'Word of mouth' => 'Word of mouth' , - 'Other' => 'Other' , + 'Public Relations' => 'Relazioni pubbliche' , + 'Direct Mail' => 'Email Diretta' , + 'Conference' => 'Conferenza' , + 'Trade Show' => 'Fiera' , + 'Web Site' => 'Sito Web' , + 'Word of mouth' => 'Passaparola' , + 'Other' => 'Altro' , '--None--' => '--Nessuno--' , - 'Acquired' => 'Acquired' , + 'Acquired' => 'Acquisito' , 'Active' => 'Attivo' , - 'Market Failed' => 'Market Failed' , - 'Project Cancelled' => 'Project Cancelled' , - 'Shutdown' => 'Shutdown' , - 'Communications' => 'Communications' , - 'Construction' => 'Construction' , + 'Market Failed' => 'Mercato Fallito' , + 'Project Cancelled' => 'Progetto Cancellato' , + 'Shutdown' => 'Spegnimento' , + 'Communications' => 'Comunicazioni' , + 'Construction' => 'Edile' , 'Consulting' => 'Consulting' , - 'Education' => 'Education' , - 'Electronics' => 'Electronics' , - 'Energy' => 'Energy' , - 'Engineering' => 'Engineering' , - 'Entertainment' => 'Entertainment' , - 'Environmental' => 'Environmental' , - 'Finance' => 'Finance' , - 'Food & Beverage' => 'Food & Beverage' , - 'Government' => 'Government' , - 'Healthcare' => 'Healthcare' , - 'Hospitality' => 'Hospitality' , - 'Insurance' => 'Insurance' , - 'Machinery' => 'Machinery' , - 'Manufacturing' => 'Manufacturing' , - 'Media' => 'Media' , - 'Not For Profit' => 'Not For Profit' , - 'Recreation' => 'Recreation' , - 'Retail' => 'Retail' , - 'Shipping' => 'Shipping' , - 'Technology' => 'Technology' , - 'Telecommunications' => 'Telecommunications' , - 'Transportation' => 'Transportation' , - 'Utilities' => 'Utilities' , + 'Education' => 'Istruzione' , + 'Electronics' => 'Elettronica' , + 'Energy' => 'Energia' , + 'Engineering' => 'Ingegneria' , + 'Entertainment' => 'Spettacolo' , + 'Environmental' => 'Ambientale' , + 'Finance' => 'Finanza' , + 'Food & Beverage' => 'Cibo e Bevande' , + 'Government' => 'Governo' , + 'Healthcare' => 'Salute' , + 'Hospitality' => 'Ospitalità ' , + 'Insurance' => 'Assicurazione' , + 'Machinery' => 'Meccanica' , + 'Manufacturing' => 'Manifattura' , + 'Media' => 'Informazione' , + 'Not For Profit' => 'No Profit' , + 'Recreation' => 'Divertimento' , + 'Retail' => 'Rivendita' , + 'Shipping' => 'Spedizioni' , + 'Technology' => 'Tecnolgia' , + 'Telecommunications' => 'Telecomunicazioni' , + 'Transportation' => 'Trasporti' , + 'Utilities' => 'Servizio pubblico' , 'Contact Name' => 'Nome Contatto' , - 'Conversion Rate' => 'Conversion Rate' , + 'Conversion Rate' => 'Tasso di conversione' , 'Shipping Address' => 'Indirizzo di Spedizione' , - 'Shipping City' => 'Spedizione Città ' , - 'Shipping State' => 'Stato di spedizione' , + 'Shipping City' => 'Città Spedizione' , + 'Shipping State' => 'Nazione di spedizione' , 'Shipping Code' => 'Spedizione CAP' , 'Shipping Country' => 'Shipping Country' , 'Shipping Po Box' => 'Spedizione Po Box' , 'Country' => 'Stato' , 'Created' => 'Creato' , - 'Approved' => 'Approved' , - 'Delivered' => 'Delivered' , - 'Cancelled' => 'Cancelled' , + 'Approved' => 'Approvato' , + 'Delivered' => 'Consegnato' , + 'Cancelled' => 'Cancellato' , 'Currency' => 'Valuta' , 'LBL_BASE_CURRENCY' => 'Valuta predefinita' , - 'Discount Percent' => 'Discount Percent' , - 'Discount Amount' => 'Discount Amount' , - 'Item Discount Amount' => 'Item Discount Amount' , - 'Item Discount Percent' => 'Item Discount Percent' , + 'Discount Percent' => 'Sconto Percentuale' , + 'Discount Amount' => 'Valore sconto' , + 'Item Discount Amount' => 'Valore sconto prodotto' , + 'Item Discount Percent' => 'Sconto prodotto percentuale' , 'Due Date' => 'Data di Pagamento' , - 'Due Date & Time' => 'Due Date & Time' , + 'Due Date & Time' => 'Data e Ora Pagamento' , 'Email' => 'Email' , - 'Secondary Email' => 'Secondary Email' , - 'Other Email' => 'Other Email' , + 'Secondary Email' => 'Email Secondaria' , + 'Other Email' => 'Altra Email' , 'Email Opt Out' => 'Blocca Email' , - 'Is Converted From Lead' => 'Viene convertito da piombo' , + 'Is Converted From Lead' => 'Viene convertito da Lead' , 'Expected Close Date' => 'Data di Chiusura Attesa' , 'Fax' => 'Fax' , 'Last Name' => 'Cognome' , 'First Name' => 'Nome' , - 'High' => 'High' , - 'Low' => 'Low' , + 'High' => 'Alto' , + 'Low' => 'Basso' , 'In Progress' => 'In Corso' , - 'Subject' => 'Soggetto' , + 'Subject' => 'Oggetto' , 'Terms & Conditions' => 'Termini e Condizioni' , - 'Item Name' => 'Nome dell'elemento' , - 'Quantity' => 'Quantità' , + 'Item Name' => 'Nome dell\'elemento' , + 'Quantity' => 'Quantità ' , 'List Price' => 'Prezzo di vendita' , - 'Image' => 'Immagine' , - 'Purchase Cost' => 'Acquisto Costo' , - 'Margin' => 'Margine' , - 'Item Comment' => 'Item Comment' , - 'Tax1' => 'Tax1' , - 'Tax2' => 'Tax2' , - 'Tax3' => 'Tax3' , + 'Image' => 'Immagine' , + 'Purchase Cost' => 'Costo d\'Acquisto' , + 'Margin' => 'Margine' , + 'Item Comment' => 'Commento Prodotto' , + 'Tax1' => 'Tassa1' , + 'Tax2' => 'Tassa2' , + 'Tax3' => 'Tassa3' , 'Excise Duty' => 'Imposta di Fabbricazione' , 'Total' => 'Totale' , 'Sub Total' => 'Totale Parziale' , - 'Tax Type' => 'Tax Type' , - 'S&H Amount' => 'S&H Amount' , + 'Tax Type' => 'Tipo Tasse' , + 'S&H Amount' => 'Valore Sped. & Imballo' , 'Status' => 'Stato' , 'Vendor Name' => 'Nome Fornitore' , 'LBL_ADDRESS_INFORMATION' => 'Informazioni indirizzo' , - 'LBL_DESCRIPTION_INFORMATION' => 'Description Details' , + 'LBL_DESCRIPTION_INFORMATION' => 'Descrizione Dettagli' , 'LBL_TERMS_INFORMATION' => 'Termini e condizioni' , 'LBL_PRICING_INFORMATION' => 'Informazioni sui prezzi' , 'LBL_RELATED_PRODUCTS' => 'Dettagli Prodottto' , - 'LBL_REMINDER_INFORMATION' => 'Reminder Details' , - 'LBL_FOLDER_SAVED' => 'Folder saved' , - 'LBL_FOLDER_EXISTS' => 'Folder already exists' , - 'LBL_FOLDER_DELETED' => 'Folder deleted' , + 'LBL_REMINDER_INFORMATION' => 'Dettagli Promemoria' , + 'LBL_FOLDER_SAVED' => 'Cartella Salvata' , + 'LBL_FOLDER_EXISTS' => 'Cartella già esistente' , + 'LBL_FOLDER_DELETED' => 'Cartella cancellata' , 'LBL_EDIT_FOLDER' => 'Modifica cartella', 'Lead Source' => 'Origine Lead' , 'Mobile' => 'Cellulare' , @@ -524,88 +524,88 @@ $languageStrings = array( 'Phone' => 'Telefono' , 'State' => 'Provincia' , 'Po Box' => 'P.O. Box' , - 'Postal Code' => 'Postal Code' , - 'Potential Name' => 'Nome Opportunità' , - 'Priority' => 'Priorità' , + 'Postal Code' => 'CAP' , + 'Potential Name' => 'Nome Opportunità ' , + 'Priority' => 'Priorità ' , 'Product Name' => 'Nome Prodotto' , 'Rating' => 'Rating (Valutazione)' , 'Related To' => 'Relazionato a' , 'Type' => 'Tipo' , - 'Reviewed' => 'Reviewed' , + 'Reviewed' => 'Rivisto' , 'Salutation' => 'Formula di saluto' , 'Street' => 'Via' , 'Support Start Date' => 'Data Inizio Supporto' , - 'Support Expiry Date' => 'Support Expiry Date' , - 'Sales Start Date' => 'Sales Start Date' , - 'Sales End Date' => 'Sales End Date' , - 'Open Ticktes' => 'Open Tickets' , // TODO: Review + 'Support Expiry Date' => 'Data Fine Supporto' , + 'Sales Start Date' => 'Data Inizio Vendita' , + 'Sales End Date' => 'Data fine vendta' , + 'Open Ticktes' => 'Ticket aperti' , // TODO: Review 'LBL_SELECT_STATUS' => 'Selezionare Stato' , - 'LBL_VTIGER_CRM_HONEST_OPEN_SOURCE' => 'vtiger CRM On Demand' , - 'SINGLE_Accounts' => 'Organization' , // TODO: Review - 'SINGLE_Contacts' => 'Contact' , // TODO: Review - 'LBL_Sun' => 'Sun' , // TODO: Review - 'LBL_Mon' => 'Mon' , // TODO: Review - 'LBL_Tue' => 'Tue' , // TODO: Review - 'LBL_Wed' => 'Wed' , // TODO: Review - 'LBL_Thu' => 'Thu' , // TODO: Review - 'LBL_Fri' => 'Fri' , // TODO: Review - 'LBL_Sat' => 'Sat' , // TODO: Review - 'LBL_Jan' => 'Jan' , // TODO: Review + 'LBL_VTIGER_CRM_HONEST_OPEN_SOURCE' => 'vtiger CRM su Richiesta' , + 'SINGLE_Accounts' => 'Azienda' , // TODO: Review + 'SINGLE_Contacts' => 'Contatto' , // TODO: Review + 'LBL_Sun' => 'Dom' , // TODO: Review + 'LBL_Mon' => 'Lun' , // TODO: Review + 'LBL_Tue' => 'Mar' , // TODO: Review + 'LBL_Wed' => 'Mer' , // TODO: Review + 'LBL_Thu' => 'Gio' , // TODO: Review + 'LBL_Fri' => 'Ven' , // TODO: Review + 'LBL_Sat' => 'Sab' , // TODO: Review + 'LBL_Jan' => 'Gen' , // TODO: Review 'LBL_Feb' => 'Feb' , // TODO: Review 'LBL_Mar' => 'Mar' , // TODO: Review 'LBL_Apr' => 'Apr' , // TODO: Review - 'LBL_May' => 'May' , // TODO: Review - 'LBL_Jun' => 'Jun' , // TODO: Review - 'LBL_Jul' => 'Jul' , // TODO: Review - 'LBL_Aug' => 'Aug' , // TODO: Review - 'LBL_Sep' => 'Sep' , // TODO: Review - 'LBL_Oct' => 'Oct' , // TODO: Review + 'LBL_May' => 'Mag' , // TODO: Review + 'LBL_Jun' => 'Giu' , // TODO: Review + 'LBL_Jul' => 'Lug' , // TODO: Review + 'LBL_Aug' => 'Ago' , // TODO: Review + 'LBL_Sep' => 'Set' , // TODO: Review + 'LBL_Oct' => 'Ott' , // TODO: Review 'LBL_Nov' => 'Nov' , // TODO: Review - 'LBL_Dec' => 'Dec' , // TODO: Review - 'LBL_CALENDAR_SETTINGS' => 'Calendar Settings' , // TODO: Review + 'LBL_Dec' => 'Dic' , // TODO: Review + 'LBL_CALENDAR_SETTINGS' => 'Impostazioni Calendario' , // TODO: Review 'HelpDesk' => 'Tickets' , // TODO: Review 'LBL_TAG_CLOUD' => 'Tag Cloud' , // TODO: Review - 'LBL_NO_RECORDS' => 'No Records' , // TODO: Review - 'LBL_NO_RELATED' => 'No Related' , // TODO: Review - 'LBL_GLOBAL_SEARCH_MAX_MESSAGE' => 'Only the first 100 results of all modules are shown below. For module specific results, please select respective module and search', // TODO: Review - 'LBL_GLOBAL_SEARCH_MAX_MESSAGE_FOR_MODULE' => 'Only the first 100 results are shown below. Please do Advanced Search if you are not satisfied with the result', // TODO: Review - 'LBL ACTION' => 'Action' , // TODO: Review - 'LBL_NOTE' => 'Note' , // TODO: Review - 'LBL_SELECT_OPTION' => 'Select an Option' , // TODO: Review - 'LBL_TOOLTIP' => 'Tooltip Management' , // TODO: Review + 'LBL_NO_RECORDS' => 'Nessun Record' , // TODO: Review + 'LBL_NO_RELATED' => 'Nessuna Relazione' , // TODO: Review + 'LBL_GLOBAL_SEARCH_MAX_MESSAGE' => 'Sono mostrati solo i primi 100 risultati di tutti i moduli. Per i risultati di un modulo specifico, selezionare il relativo modulo e cercare', // TODO: Review + 'LBL_GLOBAL_SEARCH_MAX_MESSAGE_FOR_MODULE' => 'Sono mostrati solo i primi 100 risultati. Usare la ricerca Avanzata se non sei soddisfatto dei risultati.', // TODO: Review + 'LBL ACTION' => 'Azione' , // TODO: Review + 'LBL_NOTE' => 'Nota' , // TODO: Review + 'LBL_SELECT_OPTION' => 'Selezionare un\'opzione' , // TODO: Review + 'LBL_TOOLTIP' => 'Gestione Tooltip' , // TODO: Review 'LBL_MODULE_SEQUENCE_NUMBERING' => '%s Numerazione' , // TODO: Review 'LBL_CUSTOM_FIELD_MAPPING' => 'Custom Field Mapping' , // TODO: Review 'LBL_WEBFORMS' => 'WebForms' , // TODO: Review 'SINGLE_Emails' => 'Email' , // TODO: Review 'Emails' => 'Emails' , // TODO: Review - 'LBL_SELECT_EMAIL_IDS' => 'Select Email Addresses' , // TODO: Review - 'LBL_SUBJECT' => 'Subject' , // TODO: Review - 'LBL_ATTACHMENT' => 'Attachment' , // TODO: Review - 'LBL_BROWSE_CRM' => 'Browse CRM' , // TODO: Review - 'LBL_SEND' => 'Send' , // TODO: Review - 'LBL_SAVE_AS_DRAFT' => 'Save as Draft' , // TODO: Review - 'LBL_GO_TO_PREVIEW' => 'Go to Preview' , // TODO: Review - 'LBL_SELECT_EMAIL_TEMPLATE' => 'Select Email Template' , // TODO: Review - 'LBL_COMPOSE_EMAIL' => 'Compose Email' , // TODO: Review + 'LBL_SELECT_EMAIL_IDS' => 'Seleziona gli indirizzi Email' , // TODO: Review + 'LBL_SUBJECT' => 'Oggetto' , // TODO: Review + 'LBL_ATTACHMENT' => 'Allegato' , // TODO: Review + 'LBL_BROWSE_CRM' => 'Sfoglia CRM' , // TODO: Review + 'LBL_SEND' => 'Invia' , // TODO: Review + 'LBL_SAVE_AS_DRAFT' => 'Salva come Bozze' , // TODO: Review + 'LBL_GO_TO_PREVIEW' => 'Vai all\'anteprima' , // TODO: Review + 'LBL_SELECT_EMAIL_TEMPLATE' => 'Seleziona Modello Email' , // TODO: Review + 'LBL_COMPOSE_EMAIL' => 'Componi Email' , // TODO: Review 'LBL_CC' => 'Cc' , // TODO: Review - 'LBL_BCC' => 'Bcc' , // TODO: Review - 'LBL_ADD_CC' => 'Add Cc' , // TODO: Review - 'LBL_ADD_BCC' => 'Add Bcc' , // TODO: Review - 'LBL_MAX_UPLOAD_SIZE' => 'Maximum upload size is' , // TODO: Review - 'LBL_EXCEEDED' => 'Exceeded' , // TODO: Review + 'LBL_BCC' => 'Ccn' , // TODO: Review + 'LBL_ADD_CC' => 'Aggiungi Cc' , // TODO: Review + 'LBL_ADD_BCC' => 'Aggiungi Ccn' , // TODO: Review + 'LBL_MAX_UPLOAD_SIZE' => 'Massima dimensione per upload è' , // TODO: Review + 'LBL_EXCEEDED' => 'Ecceduto' , // TODO: Review //Translations used for Export to Pdf 'Valid Date' => 'Data valida', 'Phone: ' => 'Telefono: ', - 'Issued Date' => 'rilasciato Data', - 'Shipping & Handling Charges' => 'Spedizione e spese di trattamento', - 'Shipping & Handling Tax:' => 'Spedizione & trattare Tax:', + 'Issued Date' => 'Data emissione', + 'Shipping & Handling Charges' => 'Spese di Spedizione e Imballo', + 'Shipping & Handling Tax:' => 'Tasse Spedizione e Imballo', 'Discount' => 'sconto', - 'Net Total' => 'Total Net', - 'Product Code' => 'Prodotto Codice', + 'Net Total' => 'Totale Netto', + 'Product Code' => 'Codice Prodotto', 'Customer Name' => 'Nome cliente', 'Price'=>'prezzo', - 'Tax:' => 'Tax:', + 'Tax:' => 'Tassa:', 'Contact Name' => 'Nome contatto', 'Grand Total:' => 'Totale generale:', 'Fax: ' => 'Fax: ', @@ -615,20 +615,20 @@ $languageStrings = array( //Realted tab strings 'Service Contracts' => 'Contratti di Servizio', - 'Projects' => 'Projects', + 'Projects' => 'Progetti', 'Sales Order' => 'Ordini di vendita', - 'Purchase Order' => 'Ordini d\acquisto', - 'Payments' => 'Payments', - 'List and Campaigns' => 'List and Campaigns', - 'Project Tasks' => 'Project Tasks', - 'Project Milestones' => 'Project Milestones', + 'Purchase Order' => 'Ordini d\'acquisto', + 'Payments' => 'Pagamenti', + 'List and Campaigns' => 'Lista and Campagna', + 'Project Tasks' => 'Attività del Progetto', + 'Project Milestones' => 'Stadi Progetto', - 'Labels Editor' => 'Labels Editor', + 'Labels Editor' => 'Editor Etichette', //Related tabs of Products - 'Product Bundles' => 'Product Bundles', - 'Parent Product' => 'Parent Product', - 'LBL_PRODUCT_BUNDLE' => 'Bundle prodotto', + 'Product Bundles' => 'Prodotti Bundle', + 'Parent Product' => 'Prodotto Genitore', + 'LBL_PRODUCT_BUNDLE' => 'Prodotto Bundle', 'LBL_EDIT_QUANTITY' => 'Modifica Quantità ', 'LBL_ADD_TO_PRODUCTS' => 'Aggiungi prodotti', @@ -645,24 +645,24 @@ $languageStrings = array( 'All Comments' => 'Tutti i commenti', //Feedback on removing old version - 'LBL_OLD_VERSION_REMOVED_SOON' => 'Nota importante sulla vecchia sguardo', - 'LBL_FEEDBACK_ON_REMOVING_OLD_VERSION' => 'Siamo felici di condividere quel vecchio look sarà disponibile fino al febbraio 2014. Abbiamo aggiunto le seguenti caratteristiche per il nuovo look di recente <br><br> 1. Rapporti Pivot <br> 2. I grafici personalizzati Sims <br>3. Ricerca rapida nelle liste <br><br> Se avete suggerimenti su nuovo look, invitiamo a condividere con noi qui sotto.', + 'LBL_OLD_VERSION_REMOVED_SOON' => 'Nota importante sul vecchio aspetto', + 'LBL_FEEDBACK_ON_REMOVING_OLD_VERSION' => 'Siamo felici di condividere che quel vecchio look sarà disponibile fino al febbraio 2014. Abbiamo aggiunto le seguenti caratteristiche per il nuovo look di recente <br><br> 1. Rapporti Pivot <br> 2. I grafici personalizzati <br>3. Ricerca rapida nelle liste <br><br> Se avete suggerimenti su nuovo look, invitiamo a condividere con noi qui sotto.', 'LBL_FEEDBACK_PLACEHOLDER' => 'Condividi i tuoi suggerimenti qui ..', 'LBL_SUBMIT_FEEDBACK' => 'Inserisci un feedback', 'LBL_DONT_SHOW_AGAIN' => 'Non mostrarlo più', - 'LBL_CONTINUE_TO_OLD_LOOK' => 'Continuare a vecchio look', + 'LBL_CONTINUE_TO_OLD_LOOK' => 'Continuare col vecchio look', 'LBL_TRANSFER_OWNERSHIP' => 'trasferimento della proprietà ', //Products Popup View - 'NOT_A_BUNDLE' => 'Non un fascio', + 'NOT_A_BUNDLE' => 'Non un Bundle', 'LBL_SUB_PRODUCTS' => 'Prodotti Sub', - 'LBL_MARK_AS_HELD' => 'Segna come Held', + 'LBL_MARK_AS_HELD' => 'Segna come Sospeso', 'LBL_SMS_MAX_CHARACTERS_ALLOWED' => 'Massimo 160 caratteri sono consentiti per il messaggio di testo', - 'LBL_HIDE_COMPLETED_EVENTS' => 'Nascondi completate Calendario degli eventi', - 'LBL_SETUP_WEBFORMS' => 'Setup Webfroms' , + 'LBL_HIDE_COMPLETED_EVENTS' => 'Nascondi completate il Calendario degli eventi', + 'LBL_SETUP_WEBFORMS' => 'Imposta Webforms' , 'LBL_SPECIAL_OPTIONS' => 'Opzioni speciali', - 'LBL_PARENT_OWNER' => 'Parent Record Proprietario', + 'LBL_PARENT_OWNER' => 'Proprietario record padre', // Recurring Invoice 'Half-Yearly' => 'Semestrale', @@ -671,10 +671,10 @@ $languageStrings = array( 'Organization Name' => 'Nome organizzazione', 'LBL_WEEK' => 'Settimana', // Convert Lead and Potentials - 'LBL_CONVERT_ERROR_TITLE' => 'Modules Disabled' , + 'LBL_CONVERT_ERROR_TITLE' => 'Moduli Disabilitati' , 'CANNOT_CONVERT' => 'Non può essere convertito' , - 'LBL_FOLLOWING_ARE_POSSIBLE_REASONS' => 'Possible reasons include:' , - 'LBL_MANDATORY_FIELDS_ARE_EMPTY' => 'Mandatory fields are empty' , + 'LBL_FOLLOWING_ARE_POSSIBLE_REASONS' => 'Le ragioni possibili includono:' , + 'LBL_MANDATORY_FIELDS_ARE_EMPTY' => 'I campi obbligatori sono vuoti' , // SMSNotifier Phone Format Warning 'LBL_PHONE_FORMAT_WARNING' => 'assicurarsi che il numero di telefono in formato E.164 internazionale', @@ -693,20 +693,20 @@ $languageStrings = array( 'Related To' => 'Relativi a', // Date Conditions - 'LBL_LESS_THAN_DAYS_AGO' => 'Meno di giorni fa', - 'LBL_MORE_THAN_DAYS_AGO' => 'Più di giorni fa', + 'LBL_LESS_THAN_DAYS_AGO' => 'Più recente di giorni', + 'LBL_MORE_THAN_DAYS_AGO' => 'Più vecchio di giorni', 'LBL_IN_LESS_THAN' => 'In meno', 'LBL_IN_MORE_THAN' => 'In più di', 'LBL_DAYS_AGO' => 'Giorni fa', - 'LBL_DAYS_LATER' => 'Days Later', + 'LBL_DAYS_LATER' => 'Giorni dopo', 'LBL_LESS_THAN_HOURS_BEFORE' => 'Meno ore prima', - 'LBL_LESS_THAN_HOURS_LATER' => 'Meno di ore più tardi', + 'LBL_LESS_THAN_HOURS_LATER' => 'Più ore dopo', 'LBL_MORE_THAN_HOURS_BEFORE' => 'Più di ore prima', 'LBL_MORE_THAN_HOURS_LATER' => 'Più di ore più tardi', 'LBL_INTERNAL_COMMENT' => 'Commento interna', - 'LBL_NOTE_EXISTING_ATTACHMENTS_WILL_BE_REPLACED' => 'Nota: gli allegati esistenti (immagini / file) sarà sostituito', - 'LBL_INCLUDE_SIGNATURE_INFO' => 'Firma impostato in Preferenze verrà aggiunto alla parte inferiore della mail', + 'LBL_NOTE_EXISTING_ATTACHMENTS_WILL_BE_REPLACED' => 'Nota: gli allegati esistenti (immagini / file) saranno sostituiti', + 'LBL_INCLUDE_SIGNATURE_INFO' => 'La Firma impostata in Preferenze sarà aggiunta alla parte inferiore della mail', 'LBL_INCLUDE_SIGNATURE' => 'Includi firma', @@ -723,26 +723,26 @@ $languageStrings = array( 'LBL_VIEW_FULL_PROFILE' => 'Visualizza profilo completo', 'LBL_LOCATION' => 'Posizione', 'LBL_DESCRIPTION' => 'Descrizione', - 'LBL_JOINED' => 'Congiunto', + 'LBL_JOINED' => 'Unito', 'LBL_SEARCH_PROFILES_IN_TWITTER' => 'Ricerca profili twitter', 'LBL_CHOOSE_ANOTHER_PROFILE' => 'Scegli un profilo', 'LBL_ADD_TICKET' => 'Aggiungi Ticket', - 'LBL_ADD_OPPORTUNITY' => 'Aggiungi Opportunity', + 'LBL_ADD_OPPORTUNITY' => 'Aggiungi Opportunità ', 'LBL_RETWEET' => 'Retweet', 'LBL_RETWEETS' => 'Retweets', 'LBL_UNDO_RETWEET' => 'Annulla Retweet', 'LBL_FAVOURITE' => 'Preferito', - 'LBL_UNDO_FAVOURITE' => 'Annulla preferita', - 'LBL_TWITTER_HANDLER_MSG' => 'Per vedere sintesi il profilo di questo contatto e la storia aggiungono i loro handler di Twitter o di ricerca di profili utilizzando il link sottostante.', + 'LBL_UNDO_FAVOURITE' => 'Annulla preferito', + 'LBL_TWITTER_HANDLER_MSG' => 'Per vedere di questo contato il sommario e la storia, aggiungi i loro Handler di Twitter o cerca i profili usando il link sottostante.', 'LBL_ADD_EVENT_OR_TODO' => 'Aggiungi Evento / Task', 'LBL_ADD_TICKET_CONTACT' => 'Aggiungi Ticket + Contatto', - 'LBL_ADD_OPPORTUNITY_CONTACT' => 'Aggiungi Opportunity + Contatto', - 'LBL_SOCIAL_TWITTER_WIDGET' => 'Twitter Attività ', - 'LBL_TWITTER_HANDLER_DETAILS' => 'Twitter Handler Dettagli', + 'LBL_ADD_OPPORTUNITY_CONTACT' => 'Aggiungi Opportunità + Contatto', + 'LBL_SOCIAL_TWITTER_WIDGET' => 'Attività Twitter', + 'LBL_TWITTER_HANDLER_DETAILS' => 'Dettagli Handler Twitter', 'LBL_PRIMARY_TWITTER' => 'Twitter primaria', 'LBL_ADD_TWITTER_HANDLER' => 'Aggiungi Twitter Handler', 'LBL_VIEW_TICKET' => 'Visualizza Ticket', - 'LBL_VIEW_OPPORTUNITY' => 'Guarda Opportunity', + 'LBL_VIEW_OPPORTUNITY' => 'Guarda Opportunità ', 'LBL_CLICK_TO_SELECT_PROFILE' => 'Fare clic per selezionare il profilo', // Module field to store Source of Record 'Source' => 'Fonte', @@ -751,44 +751,44 @@ $languageStrings = array( 'LBL_REMEMBER_MY_PREF' => 'Ricorda la mia preferenza' , 'LBL_RECIPIENT_PREFS' => 'Preferenze destinatari' , 'LBL_EMAIL_RECIPIENT_PREFS' => 'Preferenze Email destinatario', - 'LBL_ERROR_SAVING_PREF' => 'Errore nelle preferenze di risparmio. Si prega di riprovare più tardi!', - 'LBL_NO_PREF_GIVEN' => 'Nessun dato preferenze!' , - 'LBL_PLEASE_ADD_EMAIL_FIELDS' => 'Si prega di aggiungere campi e-mail e riprova', - 'LBL_RECIPIENT_SAVE_MESSAGE' => 'Salva preferenze successful.These saranno trattati come indirizzi di posta elettronica dei destinatari quando si invia e-mail da questo modulo.', - 'LBL_DEFAULT_REPLY_TO' => 'Predefinito Risposta a per email', + 'LBL_ERROR_SAVING_PREF' => 'Errore nel salvataggio delle preferenze. Si prega di riprovare più tardi!', + 'LBL_NO_PREF_GIVEN' => 'Nessuna preferenza impostata!' , + 'LBL_PLEASE_ADD_EMAIL_FIELDS' => 'Si prega di riempire i campi e-mail e riprovare', + 'LBL_RECIPIENT_SAVE_MESSAGE' => 'Salvataggio riuscito. Queste preferenze saranno trattate come indirizzi di posta elettronica quando invii email da questo modulo.', + 'LBL_DEFAULT_REPLY_TO' => 'Risposta Predefinita per email', 'outgoing_server_from_email' => 'Server posta in uscita da Email', - 'hepldesk_support_email' => 'Helpdesk Support Email-Id', + 'hepldesk_support_email' => 'Email-Id Supporto Helpdesk', 'user_primary_email' => 'Utente Principale Email', - 'LBL_DEFAULT_REPLY_TO_INFO' => "Questa impostazione è applicabile solo per le email diretti da CRM. Essa non pregiudica le email inviate da flussi di lavoro, campagne e-mail, etc.", - 'LBL_INVALID_IMAGE' => 'Immagine non valido' , + 'LBL_DEFAULT_REPLY_TO_INFO' => "Questa impostazione è applicabile solo per le email inviate direttamente da CRM. Essa non ha effetto sulle email inviate da Workflow, campagne e-mail, etc.", + 'LBL_INVALID_IMAGE' => 'Immagine non valida' , 'LBL_NEXT' => 'Il Prossimo' , 'LBL_FINISH' => 'Finitura' , - 'VAT' => 'VAT', + 'VAT' => 'IVA', 'Sales' => 'Vendite', 'Service' => 'Servizio', - 'Pre Tax Total' => 'Pre Totale IVA', + 'Pre Tax Total' => 'Totale Senza IVA', 'Received' => 'Ricevuto', 'Balance' => 'Equilibrio', 'S&H Amount' => 'oneri', 'S&H Percent' => 'Tasse sulle spese', - 'Tax Region' => 'Regione Tax', + 'Tax Region' => 'Tassa Regionale', 'group' => 'Gruppo', 'individual' => 'Individuale', 'SINGLE_Potentials' => 'Opportunità ', 'SINGLE_HelpDesk' => 'Biglietto', - 'SINGLE_Accounts' => 'Organizzazione', + 'SINGLE_Accounts' => 'Azienda', 'SINGLE_Contacts' => 'Contatto', 'SINGLE_Project' => 'Progetto', - 'LBL_ROLLUP_COMMENTS_INFO' => "Se Arrotolare è impostato su 'On' commenti su record correlati verrà mostrato. -                                   Ad esempio, se si sta visualizzando i commenti su un record Organizzazione, commenti aggiunti ai contatti correlate, Opportunities, Biglietti, .etc sarebbe anche essere visualizzati.", + 'LBL_ROLLUP_COMMENTS_INFO' => "Se Arrotolare è impostato su 'On', i commenti su record correlati verranno mostrati. +                                   Ad esempio, se si sta visualizzando i commenti su un record Azienda, commenti aggiunti ai contatti correlati, Opportunità , Ticket, ecc. saranno anche essere visualizzati.", 'LBL_ROLLUP_COMMENTS' => "Rollup Commenti", 'LBL_DOWNLOAD_FILE' => 'Scarica file', 'LBL_VIEW_FILE' => 'Leggi file', 'LBL_PREVIEW_NOT_AVAILABLE' => 'Anteprima non disponibile', - 'LBL_PREVIEW_SUPPORTED_FILES' => '<b> <strong> Tipi di file supportati: </strong> </b> <br> <b> file pdf </b> <br> <b> File di testo - </b> txt, csv, ics<br> <b> aperta Documento Files - </b> open documento di testo (odt), documento aperto foglio di calcolo (ods) e presentazione documento aperto (ODP) <br> <b> file multimediali - </b> file di immagini, audio e video <br>', - 'Mailing Address' => 'Indirizzo Postale', + 'LBL_PREVIEW_SUPPORTED_FILES' => '<b> <strong> Tipi di file supportati: </strong> </b> <br> <b> file pdf </b> <br> <b> File di testo - </b> txt, csv, ics<br> <b> aperta Documento Files - </b> open document testo (odt), open document foglio di calcolo (ods) e open document presentazione (odp) <br> <b> file multimediali - </b> file di immagini, audio e video <br>', + 'Mailing Address' => 'Indirizzo di posta', 'Other Address' => 'Altro indirizzo', 'LBL_PREVIOUS' => 'Precedente', 'LBL_NEXT' => 'Il Prossimo', @@ -796,25 +796,25 @@ $languageStrings = array( 'Primary Twitter' => 'Twitter primaria', 'Engagement Score' => 'Engagement Score' , - 'Click Count' => 'Clicca Conte' , + 'Click Count' => 'Clicca Conta' , // Extensions 'LBL_SYNC_LOG' => 'Sync Log', 'LBL_SYNC_SETTINGS' => 'Impostazioni di sincronizzazione', - 'LBL_SYNC_NOW' => 'Sync Now', + 'LBL_SYNC_NOW' => 'Sync Ora', 'LBL_DATE' => 'Data', 'LBL_TIME' => 'Tempo', 'LBL_SKIPPED' => 'Saltato', 'vt_create' => 'Vtiger Creato', 'vt_update' => 'Vtiger Aggiornato', - 'vt_delete' => 'Vtiger Deleted', + 'vt_delete' => 'Vtiger Cancellato', 'vt_skip' => 'Vtiger Saltato', 'app_create' => 'Applicazione Creato', 'app_update' => 'Applicazione Aggiornato', - 'app_delete' => ' Applicazione Deleted', - 'app_skip' => 'Applicazione Saltato', + 'app_delete' => ' Applicazione Cancellata', + 'app_skip' => 'Applicazione Saltata', 'LBL_DOWNLOAD_AS_CSV' => 'Scarica Come Csv', - 'LBL_SOURCE_MODULE' => 'Modulo Fonte', - 'LBL_RECORD_NAME' => 'Registra nome', + 'LBL_SOURCE_MODULE' => 'Modulo Origine', + 'LBL_RECORD_NAME' => 'Record Nome', 'LBL_REASON' => 'Motivo', 'LBL_SELECT_MODULES_TO_SYNC' => 'Selezionare i moduli da sincronizzare', 'LBL_DATA' => 'Dati', @@ -840,15 +840,15 @@ $languageStrings = array( 'LBL_SHOW_MAP'=>'Visualizza Mappa', 'LBL_LINKED' => 'Collegati', - 'LBL_ADDING_NEW' => 'L\'aggiunta di nuovi', + 'LBL_ADDING_NEW' => 'Aggiungi Nuovi', 'LBL_LESS' => 'Meno', 'LBL_COMMENT' => 'Commento', 'LBL_NOT_STARRED' => 'Seguire', - 'LBL_QUICK_VIEW' => 'Quick View', + 'LBL_QUICK_VIEW' => 'Vista rapdida', 'LBL_NOTIFICATION_CENTER' => 'Il Centro Di Notifica', 'LBL_NOTIFICATION' => 'Notifica', - 'LBL_STARRED_RECORD_TO' => '%sa%s', - 'LBL_STARRED_RECORD_UPDATED' => '%s aggiornato%s', + 'LBL_STARRED_RECORD_TO' => '%s a %s', + 'LBL_STARRED_RECORD_UPDATED' => '%s aggiornato %s', 'LBL_EDIT_REASON' => 'Modifica ragione', 'LBL_CONTACT' => 'GESTIONE DEI CONTATTI', 'LBL_NO_ATTACHMENTS' => 'Allegati', @@ -862,7 +862,7 @@ $languageStrings = array( 'LBL_SAME_TAG_EXISTS' => 'Tag duplicato esiste', 'LBL_MAKE_PUBLIC' => 'Rendere Pubbliche', 'LBL_PROFILE_PASSWORD' => 'Profilo / Password', - 'LBL_CANT_MOVE_FROM_PUBLIC_TO_PRIVATE' => 'Non in grado di spostarsi da Pubbliche tag Privato tag.', + 'LBL_CANT_MOVE_FROM_PUBLIC_TO_PRIVATE' => 'Non in grado di spostare da tag Pubbliche a tag Private.', 'LBL_EDIT_TAG' => 'Modifica Tag', 'LBL_NO_TAG_EXISTS' => 'Tag Non Esiste', 'LBL_HISTORY' => 'I punti di contatto', @@ -875,12 +875,12 @@ $languageStrings = array( 'Add Note' => 'Aggiungi Documento', 'LBL_form' => 'da', 'LBL_to' => 'per', - 'LBL_DAY(S' => 'giorno(s', - 'LBL_HOUR(S' => 'ore(s', + 'LBL_DAY(S' => 'giorno/i', + 'LBL_HOUR(S' => 'ore', 'SINGLE_Users' => 'Utente', 'LBL_NOTEPAD' => 'Il blocco note', - 'LBL_NOTEPAD_NAME' => 'Blocco Note Nome', - 'LBL_NOTEPAD_CONTENT' => 'Il Blocco Note Di Contenuto', + 'LBL_NOTEPAD_NAME' => 'Nome Blocco Note', + 'LBL_NOTEPAD_CONTENT' => 'Contenuto Blocco Note', 'LBL_LAST_SAVED_ON' => 'Salvato in', 'Notebook' => 'Il blocco note', 'LBL_MY' => 'Il mio', @@ -904,26 +904,26 @@ L\'altro record sarà eliminato, ma le relative informazioni verranno unite.', 'LBL_MERGE_RECORDS_IN' => 'Unire I Record In', 'LBL_FIELDS' => 'Campi', 'LBL_RECORD' => 'Record', - 'LBL_NO_DUPLICATED_FOUND' => 'No duplicati trovato', - 'LBL_MERGE_SELECT' => 'Unire Selezionare', + 'LBL_NO_DUPLICATED_FOUND' => 'Non ho trovato duplicati', + 'LBL_MERGE_SELECT' => 'Unire Selezione', 'LBL_BACK_TO_PRODUCTS' => 'Torna ai prodotti', 'LBL_IGNORE_EMPTY_VALUES' => 'Ignorare i valori vuoti', 'LBL_MANAGE_USERS' => 'Gestire Gli Utenti', 'LBL_SELECT_RELATED_MODULES' => 'Selezionare I Moduli Correlati', 'LBL_ASSIGNED_TO' => 'Assegnato A', - 'LBL_LEFT_PANEL_SHOW_HIDE' => 'Il Pannello Di Sinistra Mostra/Nascondi', - 'LBL_PASSWORD_LINK_EXPIRED_OR_INVALID_PASSWORD' => 'Password link è scaduto oppure hai inserito la password non è valida', + 'LBL_LEFT_PANEL_SHOW_HIDE' => 'Mostra/Nascondi il Pannello Di Sinistra', + 'LBL_PASSWORD_LINK_EXPIRED_OR_INVALID_PASSWORD' => 'Password link scaduta oppure hai inserito una password non valida', 'SMSNotifier' => 'SMS Notifier', - 'LBL_NO_MORE_RESULTS' => 'Non più risultati!', + 'LBL_NO_MORE_RESULTS' => 'Nessun ulteriore risultato!', 'LBL_CLICK_TO_EDIT' => 'Fare clic per modificare', 'LBL_SIGNATURE_BLOCK' => 'Firma', 'LBL_BASIC_INFORMATION' => 'Informazioni Di Base', - 'LBL_PREF_RESET_MESSAGE' => 'Il destinatario preferenze e-mail è stato ripristinato!', - 'LBL_COMPANY_DETAILS' => 'Dettagli Di Società ', + 'LBL_PREF_RESET_MESSAGE' => 'Il destinatario predefinto e-mail è stato ripristinato!', + 'LBL_COMPANY_DETAILS' => 'Dettagli Azienda', 'COMPANY_LOGO_HELP_TEXT' => 'Si prega di caricare il tuo bel logo della società . <br>Oltre a mostrare il vostro logo aziendale sul CRM,<br> -il nome della società e indirizzo viene utilizzato in <br>Campagne di Email (richiesto per soddisfare span regolamenti<br> -e tra Virgolette.', - 'COMPANY_LOGO_HELP_TEXT_2' => 'È possibile modificare i dettagli dell\'azienda seguito da <br> +il nome della società e indirizzo viene utilizzato in <br>Campagne di Email (richiesto per soddisfare regolamenti spam<br> +e nelle citazioni.', + 'COMPANY_LOGO_HELP_TEXT_2' => 'È possibile modificare i dettagli dell\'azienda in seguito da <br> \'Impostazioni CRM > Modelli > Dettagli dell\'Azienda\' pagina', 'LBL_CHOOSE_PREFERENCES' => 'Scegliere le Preferenze', 'PREFERENCES_HELP_TEXT' => 'La Valuta di Base - Scegliere la valuta principale. Se si utilizzano più<br> @@ -935,22 +935,20 @@ Il Formato del numero di riferimenti vengono utilizzati per le Valute e altri <b numero di campi nel CRM<br> Puoi modificare le tue preferenze, seguito da \'Nome Utente > Preferenze"', 'LBL_CANNOT_BE_CHANGED_LATER' => 'Non può essere modificato successivamente', - 'IMPORT_CONTACTS_GOOGLE_HELP_TEXT' => 'Siamo in grado di portare contatti da Google e <br> è anche possibile abilitare la bi-direzione di sincronizzazione per mantenere il nostro<br> -Vtiger contatti e i contatti di Google(in gruppo selezionato aggiornato.<br> -Fare clic sul pulsante di autorizzazione e di ottenere Contatti da Google.', + 'IMPORT_CONTACTS_GOOGLE_HELP_TEXT' => 'Siamo in grado di portare contatti da Google e <br> è anche possibile abilitare la sincronizzazione bidirezionale per mantenere Sicronizzati i contatti VTiger e i contatti di Google (per i gruppi selezionati per l\'aggiornamento).<br> +<br>Fare clic sul pulsante di autorizzazione e per ottenere Contatti i da Google.', 'IMPORT_CONTACTS_CSV_HELP_TEXT' => 'È possibile importare i Contatti da file CSV.', - 'IMPORT_CONTACTS_CSV_HELP_TEXT2' => 'Per Importare Opportunità , Porta, Biglietti, si prega di guardare per Azioni > Importa pulsante qualsiasi del -elenco di punti di vista.', - 'LBL_DOEST_FIRST_ROW_HEADER' => 'Non prima riga del file contiene le intestazioni di colonna?', + 'IMPORT_CONTACTS_CSV_HELP_TEXT2' => 'Per Importare Opportunità , Lead, Ticket, si prega di guardare per Azioni > Importa pulsante qualsiasi dell\'elenco viste.', + 'LBL_DOEST_FIRST_ROW_HEADER' => 'La prima riga del file contiene le intestazioni di colonna?', 'LBL_SELECT_CSV_FILE' => 'Selezionare il file CSV', 'LBL_START_IMPORTING' => 'Avviare L\'Importazione', 'LBL_PRIMARY' => 'Primaria', - 'LBL_GOOGLE_SYNC_INTIATED_MSG' => 'L\'importazione è prevista, i Tuoi contatti saranno importati poco.<br> di Procedere al passo Successivo non interrompere l\'importazione.', - 'LBL_IMPORT_SYNC_INTIATED_MSG' => 'L\'importazione è in corso. Riceverai una mail quando l\'importazione è stata completata.<br> di Procedere al passo Successivo non interrompere l\'importazione.', + 'LBL_GOOGLE_SYNC_INTIATED_MSG' => 'L\'importazione è impostata, i Tuoi contatti saranno importati poco.<br> Per Procedere al passo Successivo non interrompere l\'importazione.', + 'LBL_IMPORT_SYNC_INTIATED_MSG' => 'L\'importazione è in corso. Riceverai una email quando l\'importazione è stata completata.<br> Per Procedere al passo Successivo non interrompere l\'importazione.', 'LBL_TELL_US_ABOUT_YOU' => 'Aiutaci raccontandoci la tua Azienda', 'TELL_US_ABOUT_YOU_HELP_TEXT' => 'Continuiamo a migliorare il CRM, e <br> -conoscere i nostri utenti meglio ci aiuterà priorità miglioramenti.', - 'TELL_US_ABOUT_YOU_HELP_TEXT_2' => 'I dati presentati qui non devono essere rivelati a nessuno <Br> +conoscere conoscere meglio i nostri utenti ci aiuta a dare priorità alle modifiche più importanti.', + 'TELL_US_ABOUT_YOU_HELP_TEXT_2' => 'I dati inviati qui non saranno rivelati a nessuno <Br> al di fuori di Vtiger.', 'LBL_IMPORT_CONTACTS' => 'Importare Contatti', 'LBL_FROM_GOOGLE' => 'Da Google', @@ -959,15 +957,15 @@ al di fuori di Vtiger.', 'LBL_PHONE_NUMBER' => 'Il Numero Di Telefono', 'LBL_NUMBER_OF_EMPLOYEES' => 'Numero di Dipendenti', 'LBL_INDUSTRY' => 'Settore', - 'LBL_HELP_DESK_EMAIL_HELP_TEXT' => 'Biglietto per le relative notifiche saranno inviate a questo indirizzo e-Mail', - 'LBL_SOCIAL_DETAILS' => 'Link a social network per trovare nuovi clienti e rispondere alle query', - 'LBL_SOCIAL_AUTHORIZE_HELP' => 'Collegare con i vostri companys account twitter per postare i tuoi messaggi e tenere traccia di fidanzamento', + 'LBL_HELP_DESK_EMAIL_HELP_TEXT' => 'Le notifiche relative al Ticket saranno inviate da questo indirizzo e-Mail', + 'LBL_SOCIAL_DETAILS' => 'Link a social network per trovare nuovi clienti e rispondere alle richieste', + 'LBL_SOCIAL_AUTHORIZE_HELP' => 'Collegare con i vostri account twitter dell\'Azienda per postare i tuoi messaggi e tenere traccia degli agganci', 'LBL_SOCIAL_AUTHORIZE' => 'Connettiti con Twitter', 'LBL_SOCIAL_LINKED' => 'Il Vtiger è ora collegato a', - 'LBL_ENTER_KEYWORDS_HELP' => 'Vtiger effettuerà una scansione twitter e trovare i messaggi con queste parole', + 'LBL_ENTER_KEYWORDS_HELP' => 'Vtiger effettuerà una scansione twitter per trovare i messaggi con queste parole', 'LBL_ENTER_KEYWORDS' => 'Immettere Le Parole Chiave', - 'LBL_ADD_CASE_CONTACT' => 'Aggiungi Case + Contatti', - 'LBL_VIEW_CASE' => 'Cassa Di Vista', + 'LBL_ADD_CASE_CONTACT' => 'Aggiungi Casi + Contatti', + 'LBL_VIEW_CASE' => 'Vista Casi', 'LBL_CLICK_HERE_TO_SELECT_ALL_RECORDS' => 'Selezionare tutti i record in questa pagina', 'LBL_CLICK_HERE_TO_MANAGE_LIST_COLUMNS' => 'Clicca qui per gestire le colonne dell\'Elenco di', 'LBL_SHOW_MORE' => 'Vedi di più', @@ -988,7 +986,7 @@ al di fuori di Vtiger.', 'LBL_ADD_TAB' => 'Aggiungi Scheda', 'LBL_TAB_NAME' => 'Scheda Nome', 'LBL_SHARED_TAGS_ACCESS' => 'Condiviso tag sono accessibili da tutti gli utenti in Vtiger', - 'LBL_GOTO_TAGS' => 'Vai a Impostazioni > preferenze > la Mia Tag per Modificare o Eliminare i tuoi tag privato', + 'LBL_GOTO_TAGS' => 'Vai a Impostazioni > preferenze > la Mia Tag per Modificare o Eliminare i tuoi tag privati', 'LBL_UNLINK' => 'Scollegare', 'LBL_SWITCH_TO_OLD' => 'Passare alla vecchia versione', 'LBL_CONFIG_COLUMNS' => 'Configurare Le Colonne', @@ -999,8 +997,8 @@ al di fuori di Vtiger.', 'LBL_CREATE_LIST' => 'Creare un Nuovo Elenco', 'sent' => 'Inviato', 'accepted' => 'Accettato', - 'LBL_RECENT_COMMENTS' => 'Recenti Commenti', - 'LBL_ENGAGEMENT_HISTORY' => 'Touchpoint Storia', + 'LBL_RECENT_COMMENTS' => 'Commenti Recenti', + 'LBL_ENGAGEMENT_HISTORY' => 'Touchpoint Storico', 'LBL_NO_ENGAGEMENTS_FOUND' => 'Non riguardanti i punti di Contatto', 'LBL_MARKETING' => 'MARKETING', 'LBL_SALES' => 'VENDITA', @@ -1074,133 +1072,133 @@ al di fuori di Vtiger.', 'LBL_CHART_VIEW' => 'Visualizzazione Del Grafico', - 'LBL_DAY(S)' => 'giorno(s)', - 'LBL_HOUR(S)' => 'ore(s)', + 'LBL_DAY(S)' => 'giorno/i', + 'LBL_HOUR(S)' => 'ora/e', 'LBL_SLA_INFORMATION' => 'SLA Informazioni', 'LBL_TO_USE_SWITCH_TO_NEW_LOOK' => 'Per utilizzare il <b>%s</b>, si consiglia di passare a nuovo look.', 'LBL_DELETE_USER_CONFIRMATION' => "Quando viene cancellato un utente, l'utente verrà contrassegnato come inattivo e non nuovi record possono essere assegnati all'Utente, e l'utente non sarà in grado di effettuare il login. Sei sicuro di voler eliminare?", 'LBL_DUPLICATES' => 'duplicati', - 'LBL_DUPLICATES_DETECTED' => 'Duplicate (s) rilevata!', - 'LBL_DUPLICATES_FOUND_MESSAGE' => 'Questo%s non può essere salvato in quanto duplicato%s esiste in Vtiger con corrispondenti valori per%s.', + 'LBL_DUPLICATES_DETECTED' => 'Duplicato/i rilevati!', + 'LBL_DUPLICATES_FOUND_MESSAGE' => 'Questo %s non può essere salvato in quanto duplicato %s esiste in Vtiger con corrispondenti valori per %s.', 'LBL_VTIGER_NOTIFICATION' => 'Messaggio da: Vtiger Sistema Notifiche', - 'LBL_DUPLICATION_FAILURE_FROM_WORKFLOWS' => 'La seguente%s non può essere salvato da "%s" del flusso di lavoro', - 'LBL_DUPLICATION_FAILURE_FROM_WEBFORMS' => 'La seguente%s non può essere salvato da "%s" modulo web', - 'LBL_DUPLICATION_FAILURE_FOR_ADMIN' => 'È possibile%s per modificare le regole di prevenzione duplicati.', + 'LBL_DUPLICATION_FAILURE_FROM_WORKFLOWS' => 'La seguente %s non può essere salvato da "%s" del flusso di lavoro', + 'LBL_DUPLICATION_FAILURE_FROM_WEBFORMS' => 'La seguente %s non può essere salvato da "%s" modulo web', + 'LBL_DUPLICATION_FAILURE_FOR_ADMIN' => 'È possibile %s per modificare le regole di prevenzione duplicati.', 'LBL_DUPLICATION_FAILURE_FOR_NON_ADMIN' => "Contattare l'amministratore per la revisione delle regole duplicati", - 'LBL_DUPLICATE_RECORD_LISTS' => 'Duplicate%s (s):', + 'LBL_DUPLICATE_RECORD_LISTS' => 'Duplicato/i %s :', ); $jsLanguageStrings = array( - 'JS_EMAIL_SERVER_CONFIGURATION' => 'Please configure your outgoing server settings from the settings page', - 'JS_SMS_SERVER_CONFIGURATION' => 'Please configure your SMS notifier from the SMS notifier settings page', - 'JS_PLEASE_SELECT_ONE_RECORD' => 'Please select at least one record', - 'JS_PLEASE_ENTER_VALID_EMAIL_ADDRESS' => 'Please enter a valid email address', - 'JS_CONTAINS_ILLEGAL_CHARACTERS' => 'contains illegal characters' , - 'JS_PHONE_NUMBER_LENGTH_EXCEEDED' => 'phone number length exceeded limit', - 'JS_ACCEPT_POSITIVE_NUMBER' => 'accepts only positive values', - 'JS_VALUE_SHOULD_BE_GREATER_THAN_ZERO' => 'value should be greater than zero', - 'JS_NUMBER_SHOULD_BE_LESS_THAN_32' => 'Number should be less than 32', // TODO: Review - 'JS_PLEASE_ENTER_VALID_DATE' => 'Please Enter Valid Date' , // TODO: Review - 'JS_PLEASE_ENTER_VALID_TIME' => 'Please Enter Valid Time' , // TODO: Review - 'JS_INVALID_PAGE_NUMBER' => 'Invalid Page Number' , // TODO: Review - 'INVALID_NUMBER_OF' => 'Invalid number' , - 'INVALID_NUMBER' => 'Invalid number' , // TODO: Review - 'JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE' => 'Are you sure that you want to delete?', - 'OVERWRITE_EXISTING_MSG1' => 'Overwrite the existing address with the selected address?', - 'OVERWRITE_EXISTING_MSG2' => 'Address Details' , - 'SINGLE_Accounts' => 'Organization' , - 'SINGLE_Contacts' => 'Contact' , + 'JS_EMAIL_SERVER_CONFIGURATION' => 'Configura il serve in uscita dalla pagina delle impostazioni', + 'JS_SMS_SERVER_CONFIGURATION' => 'Configura il tuo SMS notifier dalla pagina delle impostazioni del SMS Notifier', + 'JS_PLEASE_SELECT_ONE_RECORD' => 'Seleziona almeno un record', + 'JS_PLEASE_ENTER_VALID_EMAIL_ADDRESS' => 'Inserisce un indirizzo email valido', + 'JS_CONTAINS_ILLEGAL_CHARACTERS' => 'contiene caratteri illegali' , + 'JS_PHONE_NUMBER_LENGTH_EXCEEDED' => 'Il numero di telefono eccede il numero massimo di caratteri', + 'JS_ACCEPT_POSITIVE_NUMBER' => 'accetta solo valori positivi', + 'JS_VALUE_SHOULD_BE_GREATER_THAN_ZERO' => 'il valore deve essere maggiore di zero', + 'JS_NUMBER_SHOULD_BE_LESS_THAN_32' => 'Il numero dovrebbe essere minore di 32', // TODO: Review + 'JS_PLEASE_ENTER_VALID_DATE' => 'Inserisci una data valida' , // TODO: Review + 'JS_PLEASE_ENTER_VALID_TIME' => 'Inserisci un orario valido' , // TODO: Review + 'JS_INVALID_PAGE_NUMBER' => 'Numero di pagina non valido' , // TODO: Review + 'INVALID_NUMBER_OF' => 'Numero non valido' , + 'INVALID_NUMBER' => 'Numero non valido' , // TODO: Review + 'JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE' => 'Sei sicuro che lo vuoi cancellare?', + 'OVERWRITE_EXISTING_MSG1' => 'Sovrascrivere l\'indirizzo esistente con l\'indirizzo selezionato?', + 'OVERWRITE_EXISTING_MSG2' => 'Dettagli Indirizzo' , + 'SINGLE_Accounts' => 'Azienda' , + 'SINGLE_Contacts' => 'Contatto' , 'LBL_DELETE_CONFIRMATION' => 'Sei sicuro di voler eliminare?', - 'LBL_MASS_DELETE_CONFIRMATION' => 'Are you sure you want to delete the selected Records?', - 'JS_LBL_SAVE' => 'Save' , - 'JS_LBL_CANCEL' => 'Cancel' , - 'SHOULD_BE_LESS_THAN_TODAY' => 'Must occur before today' , - 'JS_PLEASE_SELECT_ATLEAST_ONE_OPTION' => 'Please select atleast one option', - 'JS_SELECT_MODULE' => 'Please Select Module' , - 'JS_PLEASE_SELECT_ATLEAST_ONE_MANDATORY_FIELD' => 'Please select atleast one Mandatory Field', + 'LBL_MASS_DELETE_CONFIRMATION' => 'Sei sicuro di voler eliminare i record selezionati?', + 'JS_LBL_SAVE' => 'Salva' , + 'JS_LBL_CANCEL' => 'Annulla' , + 'SHOULD_BE_LESS_THAN_TODAY' => 'Deve avvenire prima di oggi' , + 'JS_PLEASE_SELECT_ATLEAST_ONE_OPTION' => 'Seleziona almeno un\'opzione', + 'JS_SELECT_MODULE' => 'Seleziona il modulo' , 'JS_PLEASE_ENTER_INTEGER_VALUE' => 'Please enter integer value' , - 'JS_PLEASE_ENTER_DECIMAL_VALUE' => 'Please enter decimal value' , + 'JS_PLEASE_SELECT_ATLEAST_ONE_MANDATORY_FIELD' => 'Seleziona almeno un campo obblligatorio', + 'JS_PLEASE_ENTER_DECIMAL_VALUE' => 'Inserire un valore decimale' , 'JS_PLEASE_ENTER_POSITIVE_DECIMAL_VALUE' => 'Inserisci il valore decimale positivo', - 'JS_SHOULD_BE_LESS_THAN_CURRENT_DATE' => 'should be less than Current Date', - 'JS_SHOULD_BE_GREATER_THAN_CURRENT_DATE' => 'should be greater than current date', + 'JS_SHOULD_BE_LESS_THAN_CURRENT_DATE' => 'dovrebbe essere prima della data corrente', + 'JS_SHOULD_BE_GREATER_THAN_CURRENT_DATE' => 'dovrebbe essere dopo la data corrente', 'JS_SHOULD_BE_GREATER_THAN_OR_EQUAL_TO' => 'deve essere maggiore o uguale a', - 'JS_SHOULD_BE_LESS_THAN_OR_EQUAL_TO' => 'should be less than or equal to', // TODO: Review + 'JS_SHOULD_BE_LESS_THAN_OR_EQUAL_TO' => 'dovrebbe essere minore o uguale a', // TODO: Review 'JS_CURRENT_DATE' => 'Data corrente', - 'JS_PERCENTAGE_VALUE_SHOULD_BE_LESS_THAN_100' => 'Percentage value should be less than 100', // TODO: Review - 'JS_ACCEPT_ONLY_NUMBER' => 'Accepts only numbers' , // TODO: Review - 'JS_THIS_FILE_HAS_ALREADY_BEEN_SELECTED' => 'This File has already been selected', // TODO: Review - 'JS_MAX_FILE_UPLOAD_EXCEEDS' => 'max file Upload exceeds' , // TODO: Review - 'JS_THIS_DOCUMENT_HAS_ALREADY_BEEN_SELECTED' => 'This Document has already been attached', // TODO: Review - 'JS_FAILED_TO_SAVE' => 'Failed to save changes on server', - 'JS_IMPORT_FILE_CAN_NOT_BE_EMPTY' => 'Import File cannot be Empty' , - 'JS_PLEASE_SELECT_ONE_FIELD_FOR_MERGE' => 'Select at least one field for merge criteria', - 'JS_MAP_NAME_CAN_NOT_BE_EMPTY' => 'Map Name cannot be empty' , - 'JS_MAP_NAME_ALREADY_EXISTS' => 'Map Name already exists' , - 'JS_SELECT_FILE_EXTENSION' => 'Please select a file with the following extension:', - 'JS_UPLOADED_FILE_SIZE_SHOULD_BE_LESS_THAN' => 'Upload file size should be less than', // TODO: Review - 'JS_UPLOADED_FILE_SIZE_EXCEEDS' => 'Uploaded file size exceeds' , // TODO: Review - 'JS_PLEASE_SPLIT_FILE_AND_IMPORT_AGAIN' => 'Please split the file into smaller files and import again.', // TODO: Review - 'JS_FIELD_MAPPED_MORE_THAN_ONCE' => 'Field mapped more than once' , - 'JS_MAP_MANDATORY_FIELDS' => 'Please map mandatory fields' , - 'JS_PLEASE_ENTER_SOME_VALUE' => 'Please enter some value to search', - 'JS_YOU_CAN_SELECT_ONLY' => 'You can select only' , - 'JS_ITEMS' => 'items' , - 'JS_LBL_PERMISSION' => 'Permissions' , - 'JS_CHECK_FILE_INTEGRITY' => 'Check File Integrity' , - 'JS_DUPLICATE_RECORD' => 'Duplicate Record' , - 'JS_IS_ENABLED' => 'is enabled' , - 'JS_IS_DISABLED' => 'is disabled' , - 'JS_PLEASE_ENTER_SOME_TEXT_FOR_COMMENT' => 'Please enter some text for comment', - 'JS_LBL_COMMENT_VALUE_CANT_BE_EMPTY' => 'Comment value cannot be empty', - 'JS_REQUIRED_FIELD' => '* This field is required' , - 'JS_CAN_NOT_REMOVE_DEFAULT_WIDGET' => 'Cannot remove Default Widget', - 'JS_NO_CREATE_OR_NOT_QUICK_CREATE_ENABLED' => 'No create permissions or not enabled for quick create', - 'LBL_IMAGE_DELETED_SUCCESSFULLY' => 'Image Deleted Successfully' , - 'LBL_IMAGE_NOT_DELETED' => 'Image Not Deleted' , - 'LBL_YES' => 'Yes' , - 'LBL_NO' => 'nessun' , + 'JS_PERCENTAGE_VALUE_SHOULD_BE_LESS_THAN_100' => 'Il valore pecentuale dve essere meno di 100', // TODO: Review + 'JS_ACCEPT_ONLY_NUMBER' => 'Accetta solo numeri' , // TODO: Review + 'JS_THIS_FILE_HAS_ALREADY_BEEN_SELECTED' => 'Questo file è stato già selezionato', // TODO: Review + 'JS_MAX_FILE_UPLOAD_EXCEEDS' => 'supera il valore massimo per gli Upload dei file' , // TODO: Review + 'JS_THIS_DOCUMENT_HAS_ALREADY_BEEN_SELECTED' => 'Questo documento è già stato allegato', // TODO: Review + 'JS_FAILED_TO_SAVE' => 'Fallito il caricamento dei cambiamenti sul server', + 'JS_IMPORT_FILE_CAN_NOT_BE_EMPTY' => 'Il file da importare non può essere vuoto' , + 'JS_PLEASE_SELECT_ONE_FIELD_FOR_MERGE' => 'Seleziona almeno un campo per i criteri di unione', + 'JS_MAP_NAME_CAN_NOT_BE_EMPTY' => 'Il nome della mappatura non può essere vuoto' , + 'JS_MAP_NAME_ALREADY_EXISTS' => 'Il nome della mappature già esiste' , + 'JS_SELECT_FILE_EXTENSION' => 'Seleziona un file con la seguente estensione:', + 'JS_UPLOADED_FILE_SIZE_SHOULD_BE_LESS_THAN' => 'La dimensione del file deve essere inferiore a', // TODO: Review + 'JS_UPLOADED_FILE_SIZE_EXCEEDS' => 'La dimensione del file Caricato eccede' , // TODO: Review + 'JS_PLEASE_SPLIT_FILE_AND_IMPORT_AGAIN' => 'Dividi il file in diversi file più piccoli e importa nuovamente.', // TODO: Review + 'JS_FIELD_MAPPED_MORE_THAN_ONCE' => 'Campo è mappato più di una volta' , + 'JS_MAP_MANDATORY_FIELDS' => 'Per favore mappa i campi obbligatori' , + 'JS_PLEASE_ENTER_SOME_VALUE' => 'Inserisci qualche valore da cercare', + 'JS_YOU_CAN_SELECT_ONLY' => 'Puoi selezione solamente' , + 'JS_ITEMS' => 'prodotti' , + 'JS_LBL_PERMISSION' => 'Permessi' , + 'JS_CHECK_FILE_INTEGRITY' => 'Controlla integrità file' , + 'JS_DUPLICATE_RECORD' => 'Record duplicati' , + 'JS_IS_ENABLED' => 'è attivo' , + 'JS_IS_DISABLED' => 'non è attivo' , + 'JS_PLEASE_ENTER_SOME_TEXT_FOR_COMMENT' => 'Inserisci del testo per commento', + 'JS_LBL_COMMENT_VALUE_CANT_BE_EMPTY' => 'I commenti non possono essere vuoti', + 'JS_REQUIRED_FIELD' => '* Questo campo è obbligatorio' , + 'JS_CAN_NOT_REMOVE_DEFAULT_WIDGET' => 'Non posso rimuovere il widget default', + 'JS_NO_CREATE_OR_NOT_QUICK_CREATE_ENABLED' => 'Non hai permessi di creaziono o non è abilitata la creazione rapida', + 'LBL_IMAGE_DELETED_SUCCESSFULLY' => 'Immagine cancella con successo' , + 'LBL_IMAGE_NOT_DELETED' => 'Immagine non cancellata' , + 'LBL_YES' => 'Sì' , + 'LBL_NO' => 'No' , 'AM' => 'AM' , 'PM' => 'PM' , - 'JS_ERROR' => 'Error' , // TODO: Review - 'JS_INFORMATION' => 'Information' , // TODO: Review - 'JS_DO_NOT_HAVE_AN_EMAIL_ID' => 'does not have an email address', // TODO: Review - 'NONE_OF_THE_FIELD_VALUES_ARE_CHANGED_IN_MASS_EDIT' => 'None of the field values are changed in Mass Edit', // TODO: Review - 'JS_PLEASE_SELECT_AN_ACCOUNT_TO_COPY_ADDRESS' => 'Please select an Organization to copy address', // TODO: Review - 'JS_PLEASE_SELECT_AN_CONTACT_TO_COPY_ADDRESS' => 'Please select a Contact to copy address', // TODO: Review - 'JS_SELECTED_ACCOUNT_DOES_NOT_HAVE_AN_ADDRESS' => 'Selected Organization does not contain address to copy', // TODO: Review - 'JS_SELECTED_CONTACT_DOES_NOT_HAVE_AN_ADDRESS' => 'Selected Contact does not contain address to copy', // TODO: Review - 'JS_PLEASE_ENTER_PRIMARY_EMAIL_VALUE_TO_ENABLE_PORTAL_USER' => 'Please enter Primary email address to enable portal user', // TODO: Review - 'JS_PRIMARY_EMAIL_FIELD_DOES_NOT_EXISTS' => 'Primary email field does not exist to enable portal user', // TODO: Review - 'JS_PLEASE_ENTER_A_TAG' => 'Please enter a tag' , // TODO: Review - 'JS_TAG_NAME_ALREADY_EXIST' => 'Tag name already exist' , // TODO: Review - 'JS_MAX_TAG_LENGTH_EXCEEDS' => 'Tag length exceeds max size' , // TODO: Review - 'JS_NO_VIEW_PERMISSION_AFTER_SAVE' => 'You will not have permissions to view this record after save. Would you like to continue?', // TODO: Review - 'JS_NO_RECORDS_RELATED_TO_THIS_FILTER' => 'No Records Related to this Lista', // TODO: Review - 'JS_START_DATE_TIME' => 'Start Date & Time' , // TODO: Review - 'JS_END_DATE_TIME' => 'End Date & Time' , // TODO: Review - 'JS_POSTPONE' => 'Postpone' , // TODO: Review - 'JS_MESSAGE' => 'Message' , // TODO: Review + 'JS_ERROR' => 'Errore' , // TODO: Review + 'JS_INFORMATION' => 'Informazione' , // TODO: Review + 'JS_DO_NOT_HAVE_AN_EMAIL_ID' => 'non ha un indirizzo email', // TODO: Review + 'NONE_OF_THE_FIELD_VALUES_ARE_CHANGED_IN_MASS_EDIT' => 'Nessuno dei valori dei campi è stato modificato nella modifica di massa', // TODO: Review + 'JS_PLEASE_SELECT_AN_ACCOUNT_TO_COPY_ADDRESS' => 'Seleziona un\'azienda per copiare l\'indirizzo', // TODO: Review + 'JS_PLEASE_SELECT_AN_CONTACT_TO_COPY_ADDRESS' => 'Seleziona un contatto per copiare l\'indirizzo', // TODO: Review + 'JS_SELECTED_ACCOUNT_DOES_NOT_HAVE_AN_ADDRESS' => 'L\'azienda selezionata non ha un indirizzo da copiare', // TODO: Review + 'JS_SELECTED_CONTACT_DOES_NOT_HAVE_AN_ADDRESS' => 'Il contatto selezionato non contiene un indirizzo da copiare', // TODO: Review + 'JS_PLEASE_ENTER_PRIMARY_EMAIL_VALUE_TO_ENABLE_PORTAL_USER' => 'Inserisci l\'email primaria per abilitare l\'utente al portale', // TODO: Review + 'JS_PRIMARY_EMAIL_FIELD_DOES_NOT_EXISTS' => 'Il campo dell\'email primaria non esiste per poter abilitare l\'utente al portale', // TODO: Review + 'JS_PLEASE_ENTER_A_TAG' => 'Inserisci un tag' , // TODO: Review + 'JS_TAG_NAME_ALREADY_EXIST' => 'Il nome del Tag già esiste' , // TODO: Review + 'JS_MAX_TAG_LENGTH_EXCEEDS' => 'La lunghezza del Tag supera la lunghezza massima' , // TODO: Review + 'JS_NO_VIEW_PERMISSION_AFTER_SAVE' => 'Non avrai più i permessi di vedere il contatto dopo aver salvato. Vuoi continuare?', // TODO: Review + 'JS_NO_RECORDS_RELATED_TO_THIS_FILTER' => 'Nessun record collegato a questa Lista', // TODO: Review + 'JS_START_DATE_TIME' => 'Data e ora d\'inizio' , // TODO: Review + 'JS_END_DATE_TIME' => 'Data e ora finali' , // TODO: Review + 'JS_POSTPONE' => 'Posponi' , // TODO: Review + 'JS_MESSAGE' => 'Messaggio' , // TODO: Review 'JS_MASS_EDIT_LIMIT' => 'Operazione di modifica di massa può essere fatto su 500 o meno record contemporaneamente', - 'JS_SUCCESSFULLY_PINNED' => 'Shortcut added successfully' , // TODO: Review - 'JS_SUCCESSFULLY_UNPINNED' => 'Shortcut removed successfully', // TODO: Review - 'JS_SHORTCUT_ALREADY_ADDED' => 'This shortcut is already added', // TODO: Review - 'JS_MODULE_ENABLED' => 'Module Enabled' , // TODO: Review - 'JS_MODULE_DISABLED' => 'Module Disabled' , // TODO: Review - 'JS_VALUE_SHOULD_NOT_BE_LESS_THAN' => 'Frequency of any cron job configured should not be less than', // TODO: Review - 'JS_MINUTES' => 'mins' , // TODO: Review - 'JS_ITEM_RENAMED_SUCCESSFULLY' => 'Item Renamed Successfully' , // TODO: Review - 'JS_ITEM_ADDED_SUCCESSFULLY' => 'Item added Successfully' , // TODO: Review - 'JS_NO_ITEM_SELECTED' => 'No item Selected' , // TODO: Review - 'JS_MORE_THAN_ONE_ITEM_SELECTED' => 'More than one Item selected' , // TODO: Review - 'JS_ITEMS_DELETED_SUCCESSFULLY' => 'Items Deleted Successfully' , // TODO: Review - 'JS_DUPLICATE_ENTRIES_FOUND_FOR_THE_VALUE' => 'Duplicate entries found for the value', // TODO: Review - 'JS_USER_EXISTS' => 'User Already Exists',//TODO Review - 'JS_REENTER_PASSWORDS' => 'Renter Passwords',//TODO Review - 'LBL_SIGN_IN_AS_USER'=>'Logging in as another user will terminate the current session. Are you sure want to continue?', + 'JS_SUCCESSFULLY_PINNED' => 'Scorciatoia aggiunta con successo' , // TODO: Review + 'JS_SUCCESSFULLY_UNPINNED' => 'Scorciatoia rimossa con successo', // TODO: Review + 'JS_SHORTCUT_ALREADY_ADDED' => 'Questa scorciatoia già esiste', // TODO: Review + 'JS_MODULE_ENABLED' => 'Modulo Abilitato' , // TODO: Review + 'JS_MODULE_DISABLED' => 'Modulo Disabilitato' , // TODO: Review + 'JS_VALUE_SHOULD_NOT_BE_LESS_THAN' => 'La frequenza di ogni cron job dovrebbe essere non meno di', // TODO: Review + 'JS_MINUTES' => 'minuti' , // TODO: Review + 'JS_ITEM_RENAMED_SUCCESSFULLY' => 'Prodotto rinominato con successo' , // TODO: Review + 'JS_ITEM_ADDED_SUCCESSFULLY' => 'Prodotto aggiunto con successo' , // TODO: Review + 'JS_NO_ITEM_SELECTED' => 'Nessun prodotto selezionato' , // TODO: Review + 'JS_MORE_THAN_ONE_ITEM_SELECTED' => 'Selezionato più di un prodotto' , // TODO: Review + 'JS_ITEMS_DELETED_SUCCESSFULLY' => 'Prodotti cancellati con successo' , // TODO: Review + 'JS_DUPLICATE_ENTRIES_FOUND_FOR_THE_VALUE' => 'Trovate Voci duplicate per il valore', // TODO: Review + 'JS_USER_EXISTS' => 'Utente già esiste',//TODO Review + 'JS_REENTER_PASSWORDS' => 'Inserire nuovamente password',//TODO Review + 'LBL_SIGN_IN_AS_USER'=>'Entrare come un altro utente terminerà la sessione attuale. Sei sicuro che vuoi continuare?', //For PrintTemplates - 'JS_MAX_RECORDS_LIMIT' => 'Maximum Records for Print is :', //Todo Review - 'JS_NONE' => 'None', //Todo Review + 'JS_MAX_RECORDS_LIMIT' => 'Il massimo numero di record per stampare è:', //Todo Review + 'JS_NONE' => 'Nessuno', //Todo Review 'SINGLE_Vendors' => 'Fornitore' , //Feedback on removing old version 'JS_PLEASE_GIVE_YOUR_FEEDBACK' => 'Si prega di compilare il tuo feedback', @@ -1211,18 +1209,18 @@ $jsLanguageStrings = array( 'JS_PBX_OUTGOING_SUCCESS' => 'Sollevare il ricevitore di estensione per comporre il numero', 'JS_PBX_OUTGOING_FAILURE' => 'Chiamata non riuscita', 'JS_PBX_FILL_ALL_FIELDS' => 'Si prega di compilare tutti i campi', - 'JS_PBX_CAMPAIGN_NAME' => 'Campaign Name', - 'JS_PBX_CAMPAIGN_NUMBER' => 'Campaign Number', - 'JS_MIN_SEARCH_KEY_LENGTH' => 'Search Key should have aleast 3 characters', - 'JS_NO_MATCH' => 'No Matching Records Found', - 'JS_PBX_OUTGOING_CALL' => 'Outgoing Call', - 'JS_PBX_CALL_TO' => 'Call To', - 'JS_REQUIRED' => 'Required', - 'JS_PHONE_NUMBER' => 'Phone Number', - 'JS_NO_CREATE_PERMISSION' => 'Call need to be answered before creating record', + 'JS_PBX_CAMPAIGN_NAME' => 'Nome Campagna', + 'JS_PBX_CAMPAIGN_NUMBER' => 'numero Campagna', + 'JS_MIN_SEARCH_KEY_LENGTH' => 'La chiave di ricerca deve avere almeno 3 caratteri', + 'JS_NO_MATCH' => 'Nessun record che combaci è stato trovato', + 'JS_PBX_OUTGOING_CALL' => 'Telefonate in uscita', + 'JS_PBX_CALL_TO' => 'Telefonata a', + 'JS_REQUIRED' => 'Richiesto', + 'JS_PHONE_NUMBER' => 'Numero di telefono', + 'JS_NO_CREATE_PERMISSION' => 'La telefonata deve essere risposta prima di creare il record', 'JS_NO_EDIT_PERMISSION' => 'Non avete il permesso di modificare questo evento', - 'HelpDesk' => 'Tickets', - 'Potentials' => 'Opportunities', + 'HelpDesk' => 'I Ticket', + 'Potentials' => 'Opportunità ', //Google Synchronization 'SYNC_REMOVED_SUCCESSFULLY' => 'Sincronizzazione Google rimosso con successo.', @@ -1241,7 +1239,7 @@ $jsLanguageStrings = array( 'JS_RECORD_DELETED' => 'Record eliminato', 'JS_NO_DELETE_PERMISSION' => 'Nessun permesso di eliminazione', 'JS_CHANGES_WILL_BE_LOST' => 'Le tue modifiche andranno perse!', - 'JS_CONFIRM_MARK_AS_HELD' => 'Sei sicuro di voler marcare Evento / Todo come Held?', + 'JS_CONFIRM_MARK_AS_HELD' => 'Sei sicuro di voler marcare Evento / Da-fare come Held?', 'JS_TODO_MARKED_AS_COMPLETED' => 'Todo contrassegnato come Completato', 'JS_EVENT_MARKED_AS_HELD' => 'Evento contrassegnato come Held', 'JS_FUTURE_EVENT_CANNOT_BE_MARKED_AS_HELD' => 'Evento futuro non può essere contrassegnato come Held', @@ -1249,15 +1247,16 @@ $jsLanguageStrings = array( 'LBL_SMS_MAX_CHARACTERS_ALLOWED' => 'Massimo 160 caratteri sono consentiti per il messaggio di testo', 'JS_VIEWNAME_ALERT' => 'Massimo 40 caratteri sono consentiti per il nome del filtro', 'JS_EXCEEDS_MAX_UPLOAD_SIZE' => 'Superato dimensione massima di caricamento', - 'JS_FUTURE_EVENT_CANNOT_BE_HELD' => 'Non possiamo essere ritenuti Per Futuro', + 'JS_FUTURE_EVENT_CANNOT_BE_HELD' => 'Non possiamo essere Held Per Futuro', 'LBL_WARNING' => 'Avvertenza', 'DELETE_USER_PERMANENT_WARNING' => "L'eliminazione di un utente in modo permanente trasferirà tutti i record, inclusi commenti, e la storia di un nuovo utente.", 'JS_CLOSE' => 'Vicino', - 'JS_DECIMAL_SEPARATOR_AND_GROUPING_SEPARATOR_CANT_BE_SAME' => 'Decimale separator e raggruppamento separator cant be stesso', + 'JS_DECIMAL_SEPARATOR_AND_GROUPING_SEPARATOR_CANT_BE_SAME' => 'Separatore Decimali e separatore raggruppamento cifre non possono essere lo stesso carattere', // For Line Iteam Currency Symbol select while Import - 'JS_CURRENCY_TOOLTIP_CONTENT_TITLE' => 'Elementi pubblicitari valuta', - 'JS_CURRENCY_TOOLTIP_CONTENT_MESSAGE' => 'Per importare i valori di valuta in Voci, Vtiger utilizzerà questa impostazione per identificare la moneta. Tutti i valori di valuta al di fuori delle tabelle elementi di linea, vengono considerati in Utenti valuta preferita (selezionato in Preferenze)', - 'LBL_CANT_SELECT_CONTACT_FROM_LEADS' => 'Impossibile selezionare i contatti correlati per cavi', + 'JS_CURRENCY_TOOLTIP_CONTENT_TITLE' => 'Valuta dei prodotti nelle righe', + 'JS_CURRENCY_TOOLTIP_CONTENT_MESSAGE' => 'Per importare i valori di valuta nelle righe di prodotti, Vtiger utilizzerà questa impostazione per identificare la valuta. + Tutti i valori di valuta al di fuori della tabella prodotti, vengono considerati della valuta preferita dell\'Utente (impostato in Preferenze)', + 'LBL_CANT_SELECT_CONTACT_FROM_LEADS' => 'Impossibile selezionare i contatti correlati per i Lead', 'JS_FILE_NAME' => 'Nome file', 'JS_EXTERNAL_FILE_URL' => 'Url File', 'JS_PLEASE_SELECT_A_FILE' => 'Selezionare un file', @@ -1266,30 +1265,30 @@ $jsLanguageStrings = array( 'JS_PHONEFORMAT_ERROR' => 'Si prega di controllare il numero di telefono è in formato E.164 internatonal con \'+\' prefisso e il codice del paese Ex +1 415 599 2671', // Leads and Potentials Field Mapping - 'JS_NONE' => 'None' , // TODO: Review - 'JS_IS_ALREADY_BEEN_MAPPED' => 'is already been mapped' , // TODO: Review - 'JS_CANT_MAP' => 'Cant map' , // TODO: Review - 'JS_WITH' => 'with' , // TODO: Review - 'JS_MAPPING_DELETED_SUCCESSFULLY' => 'Mapping Deleted Successfully', // TODO: Review - 'JS_phone' => 'Phone' , // TODO: Review - 'JS_picklist' => 'Pick List' , // TODO: Review + 'JS_NONE' => 'Nessuno' , // TODO: Review + 'JS_IS_ALREADY_BEEN_MAPPED' => 'è già stato mappato' , // TODO: Review + 'JS_CANT_MAP' => 'Non è possibile mappare' , // TODO: Review + 'JS_WITH' => 'con' , // TODO: Review + 'JS_MAPPING_DELETED_SUCCESSFULLY' => 'Mappatura cancellata con succcesso', // TODO: Review + 'JS_phone' => 'Telefono' , // TODO: Review + 'JS_picklist' => 'Menu a tendina' , // TODO: Review 'JS_email' => 'Email' , // TODO: Review - 'JS_text' => 'String' , // TODO: Review - 'JS_currency' => 'Currency' , // TODO: Review - 'JS_multiSelectCombo' => 'Multi-Select Combo Box' , // TODO: Review - 'JS_time' => 'Time' , // TODO: Review - 'JS_textArea' => 'Text Area' , // TODO: Review + 'JS_text' => 'Stringa di testo' , // TODO: Review + 'JS_currency' => 'Valuta' , // TODO: Review + 'JS_multiSelectCombo' => 'Lista di scelta multipla' , // TODO: Review + 'JS_time' => 'Tempo' , // TODO: Review 'JS_url' => 'Url' , // TODO: Review - 'JS_string' => 'String' , // TODO: Review - 'JS_checkBox' => 'Check Box' , // TODO: Review - 'JS_date' => 'Date' , // TODO: Review - 'JS_decimal' => 'Decimal' , // TODO: Review - 'JS_percent' => 'Percent' , // TODO: Review + 'JS_textArea' => 'Area di testo' , // TODO: Review + 'JS_string' => 'Stringa di testo' , // TODO: Review + 'JS_checkBox' => 'Casella di controllo' , // TODO: Review + 'JS_date' => 'Data' , // TODO: Review + 'JS_decimal' => 'Decimale' , // TODO: Review + 'JS_percent' => 'Percento' , // TODO: Review 'JS_skype' => 'Skype' , // TODO: Review - 'JS_None' => 'None' , // TODO: Review - 'JS_integer' => 'Integer' , + 'JS_None' => 'Nessuno' , // TODO: Review + 'JS_integer' => 'Intero' , 'JS_double' => 'decimale' , - 'JS_reference' => 'reference' , + 'JS_reference' => 'riferimento' , 'JS_image' => 'Immagine', // AutoFill Overwriting message @@ -1308,28 +1307,28 @@ $jsLanguageStrings = array( 'JS_DEMO_DATA_ADDED' => 'Dati demo aggiunti a tutti i moduli.', 'JS_DEMO_DATA_CLEARED' => 'Dati demo eliminato da tutti i moduli.', 'JS_HOME_DASH_BOARD_CLEAR_INFO'=>'Nota: è possibile riattivare i dati demo da.', - 'JS_SETTINGS_PATH'=>'Impostazioni> Altre impostazioni> Configuration Editor.', - 'JS_DIRECTORY_IS_EMPTY' => 'Directory è vuoto', - 'JS_PLEASE_SELECT_AN_RELATED_TO_COPY_ADDRESS' => "Seleziona un modulo Piombo / Contatti copiare l'indirizzo", - 'SINGLE_Leads' => 'Piombo', - 'JS_SELECTED_LEAD_DOES_NOT_HAVE_AN_ADDRESS' => "Piombo selezionato non contiene l'indirizzo da copiare", + 'JS_SETTINGS_PATH'=>'Impostazioni> Altre impostazioni> Edito configurazione.', + 'JS_DIRECTORY_IS_EMPTY' => 'Directory è vuota', + 'JS_PLEASE_SELECT_AN_RELATED_TO_COPY_ADDRESS' => "Seleziona un modulo Lead / Contatti per copiare l'indirizzo", + 'SINGLE_Leads' => 'Lead', + 'JS_SELECTED_LEAD_DOES_NOT_HAVE_AN_ADDRESS' => "Lead selezionato non contiene l'indirizzo da copiare", 'JS_INVALID_EMAILS' => 'Messaggi di posta elettronica non validi', - 'JS_INTERNAL_COMMENT' => 'Commento interna', + 'JS_INTERNAL_COMMENT' => 'Commento interno', 'JS_INTERNAL_COMMENT_INFO' => 'Il commento sarà visibile solo dagli utenti CRM, se la casella commento interno è abilitato. Per informare i clienti (attraverso flussi di lavoro configurabili o portale clienti) lasciare questa casella di controllo disattivata', 'JS_NO_LINE_ITEM' =>'Elementi non possono essere vuoti.', //More currencies message 'JS_BASE_CURRENCY_CHANGED_TO_DISABLE_CURRENCY' => 'Valuta di Base deve essere cambiato per disabilitare ', - 'JS_INTERNAL_COMMENT' => 'Commento interna', + 'JS_INTERNAL_COMMENT' => 'Commento interno', 'JS_INTERNAL_COMMENT_INFO' => 'Il commento sarà visibile solo dagli utenti CRM, se la casella commento interno è abilitato. Per informare i clienti (attraverso flussi di lavoro configurabili o portale clienti) lasciare questa casella di controllo disattivata', 'JS_NO_TAXES_EXISTS' => 'Non esistono tasse', - 'JS_CONFIRM_TAXES_AND_CHARGES_REPLACE' => 'Vuoi aggiornare i valori fiscali e carica corrispondenti alla regione selezionata?', + 'JS_CONFIRM_TAXES_AND_CHARGES_REPLACE' => 'Vuoi aggiornare tasse e spese corrispondenti alla regione selezionata?', 'JS_PRINTTEMPLATEMODULE_DISABLED' => 'Modulo PrintTemplates è disabilitato. Impossibile eseguire l\'operazione', 'JS_SENT_FOR_SIGNATURE' => 'Inviata alla firma', 'JS_FAILED_TO_SEND_FOR_SIGNATURE' => 'Impossibile inviare per la firma', // Cron - 'JS_NONE_OF_THE_VALUES_ARE_CHANGED' => 'Nessuno dei valori sono cambiati', + 'JS_NONE_OF_THE_VALUES_ARE_CHANGED' => 'Nessuno dei valori è cambiato', 'JS_SUITABLE_VTIGER_FIELD_NOT_AVAILABLE_FOR_MAPPING' => 'Campo Vtiger Adatto non disponibile per la mappatura', 'JS_SAVED_SUCCESSFULLY' => 'Impostazioni salvato con successo', @@ -1359,13 +1358,13 @@ $jsLanguageStrings = array( 'JS_UNDO_RETWEET_SUCCESS_MSG' => 'UndoRetweet successo', 'JS_STATUS_UPDATE_SUCCESS_MSG' => 'Aggiornato con successo', 'JS_TWEET_DELETE_MSG' => 'Stato eliminato correttamente', - 'JS_INVALID_TWITTER_HANDLER_NAME' => 'Valido Nome Twitter Handler', + 'JS_INVALID_TWITTER_HANDLER_NAME' => 'Nome Twitter Handler non valido', 'JS_RELATION_ADDED_SUCESSFULLY' => 'Rapporto Aggiunto con successo', - 'JS_FAILED_TO_ADD_RELATION' => 'Impossibile aggiungere Relation', + 'JS_FAILED_TO_ADD_RELATION' => 'Impossibile aggiungere Relazione', 'JS_SOCIAL_POST_DELETE_CONFIRMATION' => 'Sei sicuro di voler cancellare?', - 'JS_EVENT_OR_TODO_ADDED_SUCCESS_MSG' => 'Evento / Todo aggiunto con successo', - 'JS_LEAD_ADDED_SUCCESS_MSG' => 'Piombo aggiunto correttamente', - 'JS_OPPORTUNITY_ADDED_SUCESS_MSG' => 'Opportunity ha aggiunto con successo', + 'JS_EVENT_OR_TODO_ADDED_SUCCESS_MSG' => 'Evento / Da-fare aggiunto con successo', + 'JS_LEAD_ADDED_SUCCESS_MSG' => 'Lead aggiunto correttamente', + 'JS_OPPORTUNITY_ADDED_SUCESS_MSG' => 'Opportunità aggiunta con successo', 'JS_TICKET_ADDED_SUCESS_MSG' => 'Ticket aggiunto correttamente', 'JS_LBL_GETTING_RECIPIENT_PREFS' => 'Ottenere le preferenze dei destinatari ..', @@ -1374,13 +1373,13 @@ $jsLanguageStrings = array( 'LBL_REMOVE_SYNC_CONFIRMATION' => 'Rimuove Autorizzazione contatti, calendari e-mail. Sei sicuro di voler rimuovere la sincronizzazione?', 'OFFICE365_SYNC_REMOVED_SUCCESSFULLY' => 'Office365 sync rimosso con successo', 'OFFICE365_REMOVE_SYNCHRONIZATION_MESSAGE' => "Cliccando su questo eliminerà autenticazione Office365 esistente. Non eliminerà tutti i record che sono già sincronizzati. Non sarà annullare l'app Vtiger da voi Office365 conto, per annullare la registrazione visitare il https://myapps.microsoft.com/", - 'JS_SELECT_OPTION' => 'Select an Option', + 'JS_SELECT_OPTION' => 'Seleziona un opzione', - 'JS_REMOVE_SYNC_CONFIRMATION' => 'Rimuovere la sincronizzazione rimuove solo l\'autenticazione esistenti, non eliminare i record sincronizzati. Se si sincronizza con lo stesso account Google di nuovo, verranno creati record duplicati. Sei sicuro di voler rimuovere la sincronizzazione?', - 'JS_PASSWORD_MISMATCH_ERROR' => 'Inserisci nuovamente le password. La "nuova password" e la "password conferma" valori non corrispondono.', - 'JS_COMMA_NOT_ALLOWED_USERS' => 'Caratteri speciali come ,"<> non sono ammessi nel Nome e Cognome.', + 'JS_REMOVE_SYNC_CONFIRMATION' => 'Rimuovere la sincronizzazione rimuove solo l\'autenticazione esistenti, non elimina i record sincronizzati. Se si sincronizza con lo stesso account Google di nuovo, verranno creati record duplicati. Sei sicuro di voler rimuovere la sincronizzazione?', + 'JS_PASSWORD_MISMATCH_ERROR' => 'Inserisci nuovamente le password. La "nuova password" e la "password conferma" non corrispondono.', + 'JS_COMMA_NOT_ALLOWED_USERS' => 'Caratteri speciali come ,">< non sono ammessi nel Nome e Cognome.', 'JS_LOADING_COMMENTS' => 'Recupero di commenti ...', - 'Payment Failure!' => 'Fallimento di pagamento!', + 'Payment Failure!' => 'Pagamento fallito!', 'We could not process the payment for your last invoice. Please update payment info to continue using the service without disruption.' => "Non siamo riusciti a elaborare il pagamento per l'ultima fattura . Si prega di aggiornare le informazioni di pagamento per continuare a utilizzare il servizio senza interruzioni .", 'For assistance, please send email to' => 'Per assistenza, si prega di inviare e-mail a', 'JS_MAX_ALLOWED_CHARACTERS' => 'Numero massimo di caratteri consentiti è', @@ -1391,10 +1390,10 @@ $jsLanguageStrings = array( 'JS_PLEASE_ENTER_VALID_VALUE' => 'Si prega di inserire un valore valido', 'JS_PLEASE_ENTER_VALID_TAG_NAME' => 'Si prega di inserire valido nome del tag', 'JS_TAG_SAVED_SUCCESSFULLY' => 'Tag Salvato Correttamente', - 'JS_SUBJECT_VALUE_CANT_BE_EMPTY' => 'Oggetto di valore non può essere vuoto', + 'JS_SUBJECT_VALUE_CANT_BE_EMPTY' => 'Oggetto non può essere vuoto', 'JS_PERCENTAGE_SHOULD_BE_LESS_THAN_100' => 'La percentuale dovrebbe essere meno di 100', - 'LBL_DELETE_USER_CONFIRMATION' => 'Quando un Utente viene eliminato, l\'utente verrà contrassegnato come "Inattivo" e non nuovi record può essere assegnato all\'Utente, e l\'utente non sarà in grado di effettuare il login. La fatturazione sarà la sosta per l\'utente.Se avete bisogno di riattivare un utente eliminato, è necessario inviare una email a support@vtiger.com.Are sei sicuro di voler eliminare?', - 'JS_DUPLICATE_CREATION_CONFIRMATION' => 'Organizzazione Nome Esiste già .Vuoi creare un record duplicato?', + 'LBL_DELETE_USER_CONFIRMATION' => 'Quando un Utente viene eliminato, l\'utente verrà contrassegnato come "Inattivo" e nuovi record non possono essere assegnato all\'Utente, e l\'utente non sarà in grado di effettuare il login. La fatturazione sarà bloccata per l\'utente.Se avete bisogno di riattivare un utente eliminato, è necessario inviare una email a support@vtiger.com. Sei sicuro di volerlo eliminare?', + 'JS_DUPLICATE_CREATION_CONFIRMATION' => 'Nome Azienda Esistente già . Vuoi creare un record duplicato?', 'JS_SELECT_RECORDS_TO_MERGE_FROM_SAME_GROUP' => 'È necessario selezionare i record all\'interno del medesimo gruppo per la fusione', 'JS_SELECT_ATLEAST_TWO_RECORD_FOR_MERGING' => 'Selezionare almeno due record per la fusione', 'JS_ALLOWED_TO_SELECT_MAX_OF_THREE_RECORDS' => 'Si è permesso di selezionare un massimo di tre record', @@ -1403,15 +1402,15 @@ $jsLanguageStrings = array( 'JS_TABS_LIMIT_EXCEEDED' => 'Ci dispiace! Non è possibile aggiungere più di 10 schede', 'JS_TOTAL_RECORDS' => 'Totale record', 'JS_PAGE_NOT_EXIST' => 'Pagina non esiste', - 'JS_YOU_ARE_IN_PAGE_NUMBER' => 'Si sono in numero di pagina', + 'JS_YOU_ARE_IN_PAGE_NUMBER' => 'Tu sei nel numero di pagina', 'JS_PLEASE_ENABLE_BASE_CURRENCY_FOR_PRODUCT' => 'Si prega di abilitare la valuta di base del prodotto', 'JS_PLEASE_SELECT_BASE_CURRENCY_FOR_PRODUCT' => 'Si prega di selezionare la valuta di base del prodotto', - 'JS_RECORDS_ARE_GETTING_DELETED' => 'I record sono sempre eliminato', + 'JS_RECORDS_ARE_GETTING_DELETED' => 'I record stanno per essere eliminati', 'JS_RECORD_GETTING_DELETED' => 'Record eliminato', 'JS_NO_RESULTS_FOUND' => 'Nessun Risultato', - 'JS_RECORDS TRANSFERRED SUCCESSFULLY' => 'Record di proprietà sono stati trasmessi con successo', + 'JS_RECORDS TRANSFERRED SUCCESSFULLY' => 'La proprietà dei Record trasferiti con successo', 'LBL_SEARCHING' => 'La ricerca in ', - 'JS_RECORDS_TRANSFERRED_SUCCESSFULLY' => 'Record di proprietà è trasferita con successo.', + 'JS_RECORDS_TRANSFERRED_SUCCESSFULLY' => 'La proprietà dei Record trasferiti con successo', 'JS_USER_DELETED_SUCCESSFULLY' => 'Utente eliminato con successo.', 'JS_TRY_LATER' => 'Si prega di riprovare più tardi!', 'JS_CANCEL_SUBSCRIPTION_CONFIRMATION' => 'Sei sicuro di voler annullare l\'ABBONAMENTO?', @@ -1445,7 +1444,7 @@ $jsLanguageStrings = array( 'JS_TODO_ADDED_SUCCESS_MSG' => 'Attività aggiunta con successo', 'JS_EVENT_ADDED_SUCCESS_MSG' => 'Evento aggiunto con successo', 'JS_ACTIVE' => 'Attivo', - 'JS_SNOOZED' => 'Snoozed', + 'JS_SNOOZED' => 'Rimandato', 'JS_INVALID_URL' => 'URL non valido', 'JS_ARE_YOU_SURE_YOU_WANT_TO_DELETE' => 'Sei sicuro di voler eliminare?', 'JS_TAB_LABEL_EXCEEDS_CHARS' => 'Scheda di etichetta lunghezza deve essere inferiore a %s caratteri', @@ -1457,15 +1456,15 @@ $jsLanguageStrings = array( 'JS_SUBMIT' => 'Invia', 'JS_ADD_MAX_15_ITEMS' => 'È possibile aggiungere solo 15 articoli', 'SINGLE_SLA' => 'SLA', - 'JS_EDIT_FIELDS' => '%s Fields & Layout', - 'JS_MORE_VTIGER' => 'Ci sono più record per essere sincronizzati in vtiger', - 'JS_MORE_GOOGLE' => 'Ci sono più record per essere sincronizzati in Google', - 'JS_MORE_OFFICE365' => 'Ci sono più record per essere sincronizzati in Office365', - 'JS_TOKEN_EXPIRED' => 'Office365 di Autenticazione è scaduto. Fare clic su accedi con Office365 pulsante di ri-autorizzare.', + 'JS_EDIT_FIELDS' => '%s Campi e Aspetto', + 'JS_MORE_VTIGER' => 'Ci sono più record da sincronizzare in vtiger', + 'JS_MORE_GOOGLE' => 'Ci sono più record da sincronizzare in Google', + 'JS_MORE_OFFICE365' => 'Ci sono più record da sincronizzare in Office365', + 'JS_TOKEN_EXPIRED' => 'Autorizzazione Office365 scaduta. Fare clic su accedi con Office365 per ri-autorizzare.', 'JS_WISH_TO_PROCEED' => 'Sei sicuro di voler procedere?', 'JS_SWITCH_TO_OLD_LOOK_CONFIRMATION_MESSAGE' => 'Alcune caratteristiche, come le notifiche, selezione dei colori, seguire record, non sono disponibili nella versione precedente. Si può passare alla nuova versione, scegliendo nuova versione dal menu in alto a destra.', 'JS_PROCEED_OLD_VERSION' => 'Procedere alla vecchia versione', - 'JS_STAY_WITH_NEW_VERSION' => 'Soggiorno con la nuova versione', + 'JS_STAY_WITH_NEW_VERSION' => 'Rimani con la nuova versione', 'JS_AGO' => 'fa', 'JS_FROM_NOW' => 'da ora', 'JS_LESSTHAN_A_MINUTE' => 'meno di un minuto', @@ -1494,8 +1493,8 @@ $jsLanguageStrings = array( 'JS_UPLOAD_SUCCESSFUL' => 'Caricato con successo File', 'JS_UPLOAD_FAILED' => 'File Upload non riuscito', - 'JS_DUPLICATES_DETECTED' => 'Duplicate (s) rilevata!', + 'JS_DUPLICATES_DETECTED' => 'Duplicato/i rilevati!', 'JS_PASSWORD_MISMATCH_ERROR' => 'Si prega di inserire nuovamente le password. La "nuova password" e "password conferma" valori non corrispondono.', 'JS_LIST_DELETE_CONFIRMATION' => 'Sei sicuro di voler eliminare?', 'JS_WIDGET_RESIZING_WAIT_MSG' => 'contenuti Widget caricheranno dopo il ridimensionamento.', -); \ No newline at end of file +); diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Webservices.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Webservices.php index f8f2870aa2458823b4f49ab4bd8ac318471d6736..a7e92286e90cf0015406226c64f1625fd5d7315b 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Webservices.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Webservices.php @@ -9,14 +9,14 @@ * All Rights Reserved. * *********************************************************************************** */ $languageStrings = array( - 'Invalid value given for old password.' => 'Valore non valido per la data vecchia password.', + 'Invalid value given for old password.' => 'Valore non valido per la vecchia password.', "New Password and confirm password don't match" => 'Nuova Password e Conferma password non corrispondono', 'Database error while performing requested operation' => "Errore di database durante l'esecuzione dell'operazione richiesta", 'Failed to change password' => 'Impossibile cambiare la password', - 'LBL_INVALID_OLD_PASSWORD' => 'Valore non valido dato per la vecchia password.', + 'LBL_INVALID_OLD_PASSWORD' => 'Valore non valido per la vecchia password.', 'LBL_NEW_PASSWORD_MISMATCH' => 'Nuova Password e conferma Password non corrispondono', - 'LBL_DATABASE_QUERY_ERROR' => 'Database di errore durante l\'operazione richiesta', + 'LBL_DATABASE_QUERY_ERROR' => 'Errore Database durante l\'operazione richiesta', 'LBL_CHANGE_PASSWORD_FAILURE' => 'Non è riuscito a cambiare la password', ); diff --git a/resources/app.js b/resources/app.js index fe235381ad42dcc6cd07188f95dc3f367e62f769..55e86da4447cb222c503a77d5b69a870995182c1 100644 --- a/resources/app.js +++ b/resources/app.js @@ -535,12 +535,24 @@ var app = { } }, - convertToDatePickerFormat: function(dateFormat){ - if(dateFormat == 'yyyy-mm-dd'){ + convertToDatePickerFormat: function (dateFormat) { + if ('dd.mm.yyyy' === dateFormat) { + return 'd.m.Y'; + } else if ('mm.dd.yyyy' === dateFormat) { + return 'm.d.Y'; + } else if ('yyyy.mm.dd' === dateFormat) { + return 'Y.m.d'; + } else if ('dd/mm/yyyy' === dateFormat) { + return 'd/m/Y'; + } else if ('mm/dd/yyyy' === dateFormat) { + return 'm/d/Y'; + } else if ('yyyy/mm/dd' === dateFormat) { + return 'Y/m/d'; + } else if ('yyyy-mm-dd' === dateFormat) { return 'Y-m-d'; - } else if(dateFormat == 'mm-dd-yyyy') { + } else if ('mm-dd-yyyy' === dateFormat) { return 'm-d-Y'; - } else if (dateFormat == 'dd-mm-yyyy') { + } else if ('dd-mm-yyyy' === dateFormat) { return 'd-m-Y'; } }, diff --git a/resources/helper.js b/resources/helper.js index 831f09ca83c78895b28c4ba2072c532bb33f1553..b068f767d998c8e9c37645bd704f3d36af6078bb 100644 --- a/resources/helper.js +++ b/resources/helper.js @@ -56,12 +56,30 @@ jQuery.Class("Vtiger_Helper_Js",{ var timeComponent = dateTimeComponents[1]; var seconds = '00'; - var splittedDate = dateComponent.split("-"); + var splittedDate = ''; + var splittedDateFormat = ''; + + if (dateFormat.indexOf('.') !== -1) { + splittedDate = dateComponent.split('.'); + } else if (dateFormat.indexOf('/') !== -1) { + splittedDate = dateComponent.split('/'); + } else { + splittedDate = dateComponent.split('-'); + } + if (splittedDate.length > 3) { var errorMsg = app.vtranslate("JS_INVALID_DATE"); throw errorMsg; } - var splittedDateFormat = dateFormat.split("-"); + + if (dateFormat.indexOf('.') !== -1) { + splittedDateFormat = dateFormat.split('.'); + } else if (dateFormat.indexOf('/') !== -1) { + splittedDateFormat = dateFormat.split('/'); + } else { + splittedDateFormat = dateFormat.split('-'); + } + var year = splittedDate[splittedDateFormat.indexOf("yyyy")]; var month = splittedDate[splittedDateFormat.indexOf("mm")]; var date = splittedDate[splittedDateFormat.indexOf("dd")]; diff --git a/vtigerversion.php b/vtigerversion.php index f52201a7ee0d51ef42c1951bce09f6757b97dae8..a6578bc392545873329a5f48099f779782e1582e 100644 --- a/vtigerversion.php +++ b/vtigerversion.php @@ -8,9 +8,9 @@ * All Rights Reserved. ************************************************************************************/ -$patch_version = '-20190904'; // -ve timestamp before release, +ve timestamp after release. +$patch_version = '-20191210'; // -ve timestamp before release, +ve timestamp after release. $modified_database = ''; -$vtiger_current_version = '7.2.0'; +$vtiger_current_version = '7.2.1'; $_SESSION['vtiger_version'] = $vtiger_current_version; -?> +?> \ No newline at end of file diff --git a/vtlib/Vtiger/FieldBasic.php b/vtlib/Vtiger/FieldBasic.php index 3dcb3c6fc78b1b39d527e96a3171de9162d9dafe..a7df23891bf79c083524dbb7e0ccc6475a644a47 100644 --- a/vtlib/Vtiger/FieldBasic.php +++ b/vtlib/Vtiger/FieldBasic.php @@ -211,7 +211,7 @@ class Vtiger_FieldBasic { * @internal TODO */ function __update() { - self::log("Updating Field $this->name ... DONE"); + self::log("Make use of Vtiger_Field_Model => __update() api."); } /** diff --git a/vtlib/Vtiger/Filter.php b/vtlib/Vtiger/Filter.php index 7dcccc1394656c8d1230ef8b588325b42cb36cae..ee97c0a17e5c864744e56c3d329496d10ffd93c3 100644 --- a/vtlib/Vtiger/Filter.php +++ b/vtlib/Vtiger/Filter.php @@ -126,7 +126,7 @@ class Vtiger_Filter { * @access private */ function __getColumnValue($fieldInstance) { - $tod = split('~', $fieldInstance->typeofdata); + $tod = preg_split('/~/', $fieldInstance->typeofdata); $displayinfo = $fieldInstance->getModuleName().'_'.str_replace(' ','_',$fieldInstance->label).':'.$tod[0]; $cvcolvalue = "$fieldInstance->table:$fieldInstance->column:$fieldInstance->name:$displayinfo"; return $cvcolvalue; diff --git a/vtlib/Vtiger/Functions.php b/vtlib/Vtiger/Functions.php index 9dbd03e8959d8c8218d3592030a6c624029bf9d8..1062bdeb64aa45c9251eb53b2c9729569e63b8f0 100644 --- a/vtlib/Vtiger/Functions.php +++ b/vtlib/Vtiger/Functions.php @@ -20,17 +20,48 @@ class Vtiger_Functions { return (isset($user->is_admin) && $user->is_admin == 'on'); } - static function currentUserJSDateFormat($localformat) { - global $current_user; - if ($current_user->date_format == 'dd-mm-yyyy') { - $dt_popup_fmt = "%d-%m-%Y"; - } elseif ($current_user->date_format == 'mm-dd-yyyy') { - $dt_popup_fmt = "%m-%d-%Y"; - } elseif ($current_user->date_format == 'yyyy-mm-dd') { - $dt_popup_fmt = "%Y-%m-%d"; - } - return $dt_popup_fmt; - } + /** + * this function returns JS date format of current user + * + * return string + */ + public static function currentUserJSDateFormat() + { + $datePopupFormat = ''; + $currentUser = Users_Record_Model::getCurrentUserModel(); + + switch ($currentUser->get('date_format')) { + case 'dd.mm.yyyy': + $datePopupFormat = '%d.%m.%Y'; + break; + case 'mm.dd.yyyy': + $datePopupFormat = '%m.%d.%Y'; + break; + case 'yyyy.mm.dd': + $datePopupFormat = '%Y.%m.%d'; + break; + case 'dd/mm/yyyy': + $datePopupFormat = '%d/%m/%Y'; + break; + case 'mm/dd/yyyy': + $datePopupFormat = '%m/%d/%Y'; + break; + case 'yyyy/mm/dd': + $datePopupFormat = '%Y/%m/%d'; + break; + case 'dd-mm-yyyy': + $datePopupFormat = '%d-%m-%Y'; + break; + case 'mm-dd-yyyy': + $datePopupFormat = '%m-%d-%Y'; + break; + case 'yyyy-mm-dd': + $datePopupFormat = '%Y-%m-%d'; + break; + } + + return $datePopupFormat; + } /** * This function returns the date in user specified format. @@ -350,7 +381,7 @@ class Vtiger_Functions { if ($module == 'Groups') { $metainfo = array('tablename' => 'vtiger_groups','entityidfield' => 'groupid','fieldname' => 'groupname'); } else if ($module == 'DocumentFolders') { - $metainfo = array('tablename' => 'vtiger_attachmentsfolder','entityidfield' => 'folderid','fieldname' => 'foldername'); + $metainfo = array('tablename' => 'vtiger_attachmentsfolder','entityidfield' => 'folderid','fieldname' => 'foldername'); } else { $metainfo = self::getEntityModuleInfo($module); } @@ -561,7 +592,7 @@ class Vtiger_Functions { if (!is_dir($filepath . $year . "/" . $month)) { //create new folder - $monthFilePath = "$year/$month"; + $monthFilePath = "$year/$month"; $monthPath = $filepath.$monthFilePath; mkdir($filepath . $monthFilePath); exec("chown -R $permissions $monthPath"); @@ -598,7 +629,7 @@ class Vtiger_Functions { if (!$ok) return false; } } else { - if (stripos($data, $short ? "<?" : "<?php") !== false) { // suspicious dynamic content + if (stripos($data, $short ? "<?" : "<?php") !== false) { // suspicious dynamic content return false; } } @@ -1031,8 +1062,8 @@ class Vtiger_Functions { return $result; } - /** - * Function to determine mime type of file. + /** + * Function to determine mime type of file. * Compatible with mime_magic or fileinfo php extension. */ static function mime_content_type($filename) { @@ -1057,7 +1088,7 @@ class Vtiger_Functions { static function verifyClaimedMIME($targetFile,$claimedMime) { $fileMimeContentType= self::mime_content_type($targetFile); if (in_array(strtolower($fileMimeContentType), $claimedMime)) { - return false; + return false; } return true; } @@ -1109,9 +1140,9 @@ class Vtiger_Functions { return array('Invoice', 'Quotes', 'PurchaseOrder', 'SalesOrder', 'Products', 'Services'); } - /** + /** * Function to encode an array to json with all the options - * @param <Array> $array + * @param <Array> $array * @return <sting> Json String */ static function jsonEncode($array) { @@ -1334,9 +1365,9 @@ class Vtiger_Functions { /** * Function which will determine whether the table contains user specific field - * @param type $tableName -- name of the table + * @param type $tableName -- name of the table * @param type $moduleName -- moduleName - * @return boolean + * @return boolean */ public static function isUserSpecificFieldTable($tableName, $moduleName) { $moduleName = strtolower($moduleName); @@ -1361,7 +1392,7 @@ class Vtiger_Functions { static function jwtDecode($id_token) { $token_parts = explode(".", $id_token); - // First, in case it is url-encoded, fix the characters to be + // First, in case it is url-encoded, fix the characters to be // valid base64 $encoded_token = str_replace('-', '+', $token_parts[1]); $encoded_token = str_replace('_', '/', $encoded_token); @@ -1389,14 +1420,14 @@ class Vtiger_Functions { $encryption = new Encryption(); return '$ve$'.$encryption->encrypt($text); } - - /* + + /* * Function to determine if text is masked. */ static function isProtectedText($text) { return !empty($text) && (strpos($text, '$ve$') === 0); } - + /* * Function to unmask the text. */ @@ -1425,7 +1456,7 @@ class Vtiger_Functions { /** * Function to check if a module($sourceModule) is related to Documents module. * @param <string> $sourceModule - Source module - * @return <boolean> Returns TRUE if $sourceModule is related to Documents module and + * @return <boolean> Returns TRUE if $sourceModule is related to Documents module and * Documents module is active else returns FALSE. */ static function isDocumentsRelated($sourceModule) { @@ -1454,10 +1485,10 @@ class Vtiger_Functions { $value = $db->sql_escape_string($value); return $value; } - + /** * Request parameters and it's type. - * @var type + * @var type */ protected static $type = array( 'record' => 'id', @@ -1510,7 +1541,7 @@ class Vtiger_Functions { } return $ok; } - + /** * Function to get file public url to access outside of CRM (from emails) * @param <Integer> $fileId diff --git a/vtlib/Vtiger/Mailer.php b/vtlib/Vtiger/Mailer.php index 5794309bc3232239d024c99db633617a2e816b7b..cd26d3c34b00609424729a9e1e8d798e71fa9a08 100644 --- a/vtlib/Vtiger/Mailer.php +++ b/vtlib/Vtiger/Mailer.php @@ -27,8 +27,10 @@ class Vtiger_Mailer extends PHPMailer { * Constructor */ function __construct() { + global $default_charset; parent::__construct(); $this->initialize(); + $this->CharSet = $default_charset; } /** diff --git a/vtlib/Vtiger/Zip.php b/vtlib/Vtiger/Zip.php index 271af65a1b23e8a1998fa282cd7ceb8d282f7903..b86e673059e4b909f4dfc11b97673db4a0c985ef 100644 --- a/vtlib/Vtiger/Zip.php +++ b/vtlib/Vtiger/Zip.php @@ -18,21 +18,16 @@ class Vtiger_Zip extends dZip { * Push out the file content for download. */ function forceDownload($zipfileName) { - header("Pragma: public"); - header("Expires: 0"); - header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); - header("Cache-Control: private",false); + header("Pragma: public"); + header("Expires: 0"); + header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); + header("Cache-Control: private",false); header("Content-Type: application/zip"); - header("Content-Disposition: attachment; filename=".basename($zipfileName).";" ); - //header("Content-Transfer-Encoding: binary"); - - // For details on this workaround check here the ticket - // http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/5298 - $disk_file_size = filesize($zipfileName); - $zipfilesize = $disk_file_size + ($disk_file_size % 1024); - header("Content-Length: ".$zipfilesize); - $fileContent = fread(fopen($zipfileName, "rb"), $zipfilesize); - echo $fileContent; + header("Content-Disposition: attachment; filename=".basename($zipfileName).";" ); + $disk_file_size = filesize($zipfileName); + header("Content-Length: ".$disk_file_size); + $fileContent = fread(fopen($zipfileName, "rb"), $disk_file_size); + echo $fileContent; } /** diff --git a/vtlib/thirdparty/dUnzip2.inc.php b/vtlib/thirdparty/dUnzip2.inc.php index 8c1958a024c53799e59a97bb668527139cfd9039..893947dae0d7251c342599b0701a5274ff04836c 100644 --- a/vtlib/thirdparty/dUnzip2.inc.php +++ b/vtlib/thirdparty/dUnzip2.inc.php @@ -87,12 +87,16 @@ class dUnzip2{ var $dirSignatureE= "\x50\x4b\x05\x06"; // end of central dir signature // Public - Function dUnzip2($fileName){ + Function __construct($fileName){ $this->fileName = $fileName; $this->compressedList = $this->centralDirList = $this->endOfCentral = Array(); } + function ensureFh(){ + if(!$this->fh) + $this->fh = fopen($this->fileName, "r"); + } Function getList($stopOnFile=false){ if(sizeof($this->compressedList)){ @@ -101,17 +105,16 @@ class dUnzip2{ } // Open file, and set file handler - $fh = fopen($this->fileName, "r"); - $this->fh = $fh; - if(!$fh){ + $this->ensureFh(); + if(!$this->fh){ $this->debugMsg(2, "Failed to load file."); return false; } $this->debugMsg(1, "Loading list from 'End of Central Dir' index list..."); - if(!$this->_loadFileListByEOF($fh, $stopOnFile)){ + if(!$this->_loadFileListByEOF($this->fh, $stopOnFile)){ $this->debugMsg(1, "Failed! Trying to load list looking for signatures..."); - if(!$this->_loadFileListBySignatures($fh, $stopOnFile)){ + if(!$this->_loadFileListBySignatures($this->fh, $stopOnFile)){ $this->debugMsg(1, "Failed! Could not find any valid header."); $this->debugMsg(2, "ZIP File is corrupted or empty"); return false; @@ -323,7 +326,7 @@ class dUnzip2{ echo "<b style='color: #F00'>dUnzip2:</b> $string<br>"; } - Function _loadFileListByEOF(&$fh, $stopOnFile=false){ + Function _loadFileListByEOF($fh, $stopOnFile=false){ // Check if there's a valid Central Dir signature. // Let's consider a file comment smaller than 1024 characters... // Actually, it length can be 65536.. But we're not going to support it. @@ -433,7 +436,7 @@ class dUnzip2{ } return false; } - Function _loadFileListBySignatures(&$fh, $stopOnFile=false){ + Function _loadFileListBySignatures($fh, $stopOnFile=false){ fseek($fh, 0); $return = false; @@ -457,7 +460,7 @@ class dUnzip2{ return $return; } - Function _getFileHeaderInformation(&$fh, $startOffset=false){ + Function _getFileHeaderInformation($fh, $startOffset=false){ if($startOffset !== false) fseek($fh, $startOffset); diff --git a/vtlib/thirdparty/dZip.inc.php b/vtlib/thirdparty/dZip.inc.php index d4449a1cec89213c8dd77b90a0c7f3e78550f86e..6e31801a4ee0797d6cf03edc267e7e9ce791893a 100644 --- a/vtlib/thirdparty/dZip.inc.php +++ b/vtlib/thirdparty/dZip.inc.php @@ -15,7 +15,7 @@ class dZip{ var $files_count = 0; var $fh; - Function dZip($filename, $overwrite=true){ + Function __construct($filename, $overwrite=true){ $this->filename = $filename; $this->overwrite = $overwrite; } @@ -24,9 +24,12 @@ class dZip{ $dirname .= '/'; $this->addFile(false, $dirname, $fileComments); } - Function addFile($filename, $cfilename, $fileComments='', $data=false){ - if(!($fh = $this->fh)) - $fh = fopen($this->filename, $this->overwrite?'wb':'a+b'); + function ensureFh(){ + if(!$this->fh) + $this->fh = fopen($this->filename, $this->overwrite?'wb':'a+b'); + } + Function addFile($filename, $cfilename, $fileComments='', $data=false){ + $this->ensureFh(); // $filename can be a local file OR the data wich will be compressed if(substr($cfilename, -1)=='/'){ @@ -77,21 +80,21 @@ class dZip{ $details['modtime'] = bindec("$lastmod_timeH$lastmod_timeM$lastmod_timeS"); $details['moddate'] = bindec("$lastmod_dateY$lastmod_dateM$lastmod_dateD"); - $details['offset'] = ftell($fh); - fwrite($fh, $this->zipSignature); - fwrite($fh, pack('s', $details['vneeded'])); // version_needed - fwrite($fh, pack('s', $details['bitflag'])); // general_bit_flag - fwrite($fh, pack('s', $details['cmethod'])); // compression_method - fwrite($fh, pack('s', $details['modtime'])); // lastmod_time - fwrite($fh, pack('s', $details['moddate'])); // lastmod_date - fwrite($fh, pack('V', $details['crc_32'])); // crc-32 - fwrite($fh, pack('I', $details['comsize'])); // compressed_size - fwrite($fh, pack('I', $details['uncsize'])); // uncompressed_size - fwrite($fh, pack('s', strlen($cfilename))); // file_name_length - fwrite($fh, pack('s', 0)); // extra_field_length - fwrite($fh, $cfilename); // file_name + $details['offset'] = ftell($this->fh); + fwrite($this->fh, $this->zipSignature); + fwrite($this->fh, pack('s', $details['vneeded'])); // version_needed + fwrite($this->fh, pack('s', $details['bitflag'])); // general_bit_flag + fwrite($this->fh, pack('s', $details['cmethod'])); // compression_method + fwrite($this->fh, pack('s', $details['modtime'])); // lastmod_time + fwrite($this->fh, pack('s', $details['moddate'])); // lastmod_date + fwrite($this->fh, pack('V', $details['crc_32'])); // crc-32 + fwrite($this->fh, pack('I', $details['comsize'])); // compressed_size + fwrite($this->fh, pack('I', $details['uncsize'])); // uncompressed_size + fwrite($this->fh, pack('s', strlen($cfilename))); // file_name_length + fwrite($this->fh, pack('s', 0)); // extra_field_length + fwrite($this->fh, $cfilename); // file_name // ignoring extra_field - fwrite($fh, $zdata); + fwrite($this->fh, $zdata); // Append it to central dir $details['external_attributes'] = (substr($cfilename, -1)=='/'&&!$zdata)?16:32; // Directory or file name @@ -103,9 +106,8 @@ class dZip{ $this->centraldirs[$filename][$property] = $value; } Function save($zipComments=''){ - if(!($fh = $this->fh)) - $fh = fopen($this->filename, $this->overwrite?'w':'a+'); - + $this->ensureFh(); + $cdrec = ""; foreach($this->centraldirs as $filename=>$cd){ $cdrec .= $this->dirSignature; @@ -128,21 +130,21 @@ class dZip{ $cdrec .= $filename; $cdrec .= $cd['comments']; } - $before_cd = ftell($fh); - fwrite($fh, $cdrec); + $before_cd = ftell($this->fh); + fwrite($this->fh, $cdrec); // end of central dir - fwrite($fh, $this->dirSignatureE); - fwrite($fh, pack('v', 0)); // number of this disk - fwrite($fh, pack('v', 0)); // number of the disk with the start of the central directory - fwrite($fh, pack('v', $this->files_count)); // total # of entries "on this disk" - fwrite($fh, pack('v', $this->files_count)); // total # of entries overall - fwrite($fh, pack('V', strlen($cdrec))); // size of central dir - fwrite($fh, pack('V', $before_cd)); // offset to start of central dir - fwrite($fh, pack('v', strlen($zipComments))); // .zip file comment length - fwrite($fh, $zipComments); + fwrite($this->fh, $this->dirSignatureE); + fwrite($this->fh, pack('v', 0)); // number of this disk + fwrite($this->fh, pack('v', 0)); // number of the disk with the start of the central directory + fwrite($this->fh, pack('v', $this->files_count)); // total # of entries "on this disk" + fwrite($this->fh, pack('v', $this->files_count)); // total # of entries overall + fwrite($this->fh, pack('V', strlen($cdrec))); // size of central dir + fwrite($this->fh, pack('V', $before_cd)); // offset to start of central dir + fwrite($this->fh, pack('v', strlen($zipComments))); // .zip file comment length + fwrite($this->fh, $zipComments); - fclose($fh); + fclose($this->fh); } // Private