Compare commits

...

12 Commits

Author SHA1 Message Date
yuri e47eab0ce7 fix select manager 2016-03-14 15:52:06 +02:00
yuri 17ae5b6b5a fix file permissions 2016-03-14 15:51:58 +02:00
yuri fa29bf3309 v 2016-03-14 11:43:24 +02:00
yuri 684585278d fix email import 2016-03-11 12:02:21 +02:00
yuri e303be8155 fix german salutations 2016-03-10 15:17:40 +02:00
yuri f1285f0615 fix default side panel tpl 2016-03-10 12:46:21 +02:00
yuri 3fd1974d86 fix build permissions 2016-03-09 15:57:13 +02:00
yuri d48716e65a account: text search by email address 2016-03-09 11:20:57 +02:00
yuri a0432051f4 fix lead service 2016-03-09 11:03:56 +02:00
yuri 076c3aa65b trim search 2016-03-09 10:44:32 +02:00
yuri 92abd16032 remove notification if record removed 2016-03-04 12:40:30 +02:00
yuri e6632066a6 aclPortal case: default status readOnly 2016-03-04 12:28:43 +02:00
14 changed files with 41 additions and 19 deletions
+3
View File
@@ -214,8 +214,11 @@ module.exports = function (grunt) {
},
src: [
'build/EspoCRM-<%= pkg.version %>/install',
'build/EspoCRM-<%= pkg.version %>/portal',
'build/EspoCRM-<%= pkg.version %>/api',
'build/EspoCRM-<%= pkg.version %>/api/v1',
'build/EspoCRM-<%= pkg.version %>/api/v1/portal-access',
'build/EspoCRM-<%= pkg.version %>',
]
}
},
+8 -6
View File
@@ -460,13 +460,15 @@ class Importer
if (preg_match('/filename="?([^"]+)"?/i', $contentDisposition, $m)) {
$fileName = $m[1];
return $fileName;
} else if (preg_match('/filename\*="?([^"]+)"?/i', $contentDisposition, $m)) {
} else if (preg_match('/filename\*[01]?="?([^"]+)"?/i', $contentDisposition, $m)) {
$fileName = $m[1];
if ($fileName && stripos($fileName, "''") !== false) {
list($encoding, $fileName) = explode("''", $fileName);
$fileName = rawurldecode($fileName);
if (strtoupper($encoding) !== 'UTF-8') {
$fileName = mb_convert_encoding($fileName, 'UTF-8', $encoding);
if ($fileName) {
if (stripos($fileName, "''") !== false) {
list($encoding, $fileName) = explode("''", $fileName);
$fileName = rawurldecode($fileName);
if (strtoupper($encoding) !== 'UTF-8') {
$fileName = mb_convert_encoding($fileName, 'UTF-8', $encoding);
}
}
return $fileName;
}
@@ -1069,7 +1069,7 @@ class Base
public function hasLeftJoin($leftJoin, &$result)
{
return in_array($leftJoin, $result['leftJoin']);
return in_array($leftJoin, $result['leftJoins']);
}
public function addJoin($join, &$result)
@@ -151,7 +151,10 @@ class Notifications extends \Espo\Core\Hooks\Base
$query = $this->getEntityManager()->getQuery();
$sql = "
DELETE FROM `notification`
WHERE related_id = ".$query->quote($entity->id)." AND related_type = ".$query->quote($entity->getEntityType()) ."
WHERE
(related_id = ".$query->quote($entity->id)." AND related_type = ".$query->quote($entity->getEntityType()) .")
OR
(related_parent_id = ".$query->quote($entity->id)." AND related_parent_type = ".$query->quote($entity->getEntityType()) .")
";
$this->getEntityManager()->getPDO()->query($sql);
}
@@ -11,6 +11,12 @@
"scopeFieldLevel": {
"KnowledgeBaseArticle": {
"portals": false
},
"Case": {
"status": {
"read": "yes",
"edit": "no"
}
}
}
}
@@ -271,7 +271,8 @@
},
"collection": {
"sortBy": "name",
"asc": true
"asc": true,
"textFilterFields": ["name", "emailAddress"]
},
"indexes": {
"name": {
@@ -63,7 +63,7 @@ class Lead extends \Espo\Services\Record
return $data;
}
public function afterCreate($entity, array $data, $data = array())
public function afterCreate($entity, array $data = array())
{
parent::afterCreate($entity, $data);
if (!empty($data['emailId'])) {
@@ -331,8 +331,8 @@
},
"options": {
"salutationName": {
"Mr.": "Hr.",
"Ms.": "Fr.",
"Mr.": "Herr",
"Ms.": "Frau",
"Mrs.": "Frl.",
"Dr.": "Dr."
},
@@ -30,6 +30,10 @@
"related": {
"type": "linkParent",
"readOnly": true
},
"relatedParent": {
"type": "linkParent",
"readOnly": true
}
},
"links": {
@@ -39,6 +43,9 @@
},
"related": {
"type": "belongsToParent"
},
"relatedParent": {
"type": "belongsToParent"
}
},
"collection": {
+2 -2
View File
@@ -79,7 +79,7 @@ class Notification extends \Espo\Services\Record
$now = date('Y-m-d H:i:s');
$pdo = $this->getEntityManager()->getPDO();
$sql = "INSERT INTO `notification` (`id`, `data`, `type`, `user_id`, `created_at`, `related_id`, `related_type`) VALUES ";
$sql = "INSERT INTO `notification` (`id`, `data`, `type`, `user_id`, `created_at`, `related_id`, `related_type`, `related_parent_id`, `related_parent_type`) VALUES ";
$arr = [];
foreach ($userIdList as $userId) {
if (empty($userId)) continue;
@@ -91,7 +91,7 @@ class Notification extends \Espo\Services\Record
continue;
}
$id = uniqid();
$arr[] = "(".$pdo->quote($id).", ".$pdo->quote($encodedData).", ".$pdo->quote('Note').", ".$pdo->quote($userId).", ".$pdo->quote($now).", ".$pdo->quote($note->id).", ".$pdo->quote('Note').")";
$arr[] = "(".$pdo->quote($id).", ".$pdo->quote($encodedData).", ".$pdo->quote('Note').", ".$pdo->quote($userId).", ".$pdo->quote($now).", ".$pdo->quote($note->id).", ".$pdo->quote('Note').", ".$pdo->quote($note->get('parentId')).", ".$pdo->quote($note->get('parentType')).")";
}
if (empty($arr)) {
@@ -14,7 +14,7 @@
<div class="cell form-group col-sm-6 col-md-12">
<label class="control-label">{{translate 'Created'}}</label>
<div class="field">
<span data-name="createdAt">{{{createdAt}}}</span> <span class="text-muted">&raquo;</span> <span data-name="createdBy">{{{createdBy}}}</span>
<span data-name="createdAt" class="field">{{{createdAt}}}</span> <span class="text-muted">&raquo;</span> <span data-name="createdBy" class="field">{{{createdBy}}}</span>
</div>
</div>
{{/ifAttrNotEmpty}}
@@ -23,7 +23,7 @@
<div class="cell form-group col-sm-6 col-md-12">
<label class="control-label">{{translate 'Modified'}}</label>
<div class="field">
<span data-name="modifiedAt">{{{modifiedAt}}}</span> <span class="text-muted">&raquo;</span> <span data-name="modifiedBy">{{{modifiedBy}}}</span>
<span data-name="modifiedAt" class="field">{{{modifiedAt}}}</span> <span class="text-muted">&raquo;</span> <span data-name="modifiedBy" >{{{modifiedBy}}}</span>
</div>
</div>
{{/ifAttrNotEmpty}}
@@ -62,7 +62,7 @@ Espo.define('views/global-search/global-search', 'view', function (Dep) {
},
runSearch: function (text) {
var text = this.$input.val();
var text = this.$input.val().trim();
if (text != '' && text.length > 2) {
text = text;
this.search(text);
+1 -1
View File
@@ -610,7 +610,7 @@ Espo.define('views/record/search', 'view', function (Dep) {
},
fetch: function () {
this.textFilter = this.$el.find('input[name="textFilter"]').val();
this.textFilter = this.$el.find('input[name="textFilter"]').val().trim();
this.bool = {};
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "espocrm",
"version": "4.0.2",
"version": "4.0.3",
"description": "",
"main": "index.php",
"repository": {