0013140: new filter criteria 'contains a word starting with'
authorMichael Spahn <m.spahn@metaways.de>
Wed, 24 May 2017 12:27:46 +0000 (14:27 +0200)
committerPhilipp Schüle <p.schuele@metaways.de>
Tue, 30 May 2017 13:05:19 +0000 (15:05 +0200)
https://forge.tine20.org/view.php?id=13140

Change-Id: I697d66d2153f6f7e6b9314f752091fe4d7cfb288
Reviewed-on: http://gerrit.tine20.com/customers/4756
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Filemanager/js/Model.js
tine20/Tinebase/Model/Filter/FullText.php
tine20/Tinebase/js/widgets/grid/FilterModel.js

index 1fbafe8..ac44d24 100644 (file)
@@ -588,7 +588,7 @@ Tine.Filemanager.Model.Node.getFilterModel = function() {
         {filtertype : 'tine.filemanager.pathfiltermodel', app : app},
         {filtertype : 'tinebase.tag', app : app} 
     ].concat(Tine.Tinebase.configManager.get('filesystem.index_content', 'Tinebase') ? [
-        {label : i18n._('File Contents'), field : 'content', operators : [ 'contains' ]}
+        {label : i18n._('File Contents'), field : 'content', operators : [ 'wordstartswith' ]}
     ] : []);
 };
 
index eca3182..f5d4bd9 100644 (file)
@@ -30,7 +30,8 @@ class Tinebase_Model_Filter_FullText extends Tinebase_Model_Filter_Abstract
         4 => 'startswith',
         5 => 'endswith',
         6 => 'notin',
-        7 => 'in'
+        7 => 'in',
+        8 => 'wordstartswith'
     );
 
     /**
index a791e3a..c413349 100644 (file)
@@ -227,6 +227,7 @@ Ext.extend(Tine.widgets.grid.FilterModel, Ext.util.Observable, {
             fields: ['operator', 'label'],
             data: [
                 {operator: 'contains',      label: i18n._('contains')},
+                {operator: 'wordstartswith',label: i18n._('contains word starting with')},
                 {operator: 'notcontains',   label: i18n._('contains not')},
                 {operator: 'regex',         label: i18n._('reg. exp.')},
                 {operator: 'equals',        label: i18n._('is equal to')},
@@ -255,7 +256,7 @@ Ext.extend(Tine.widgets.grid.FilterModel, Ext.util.Observable, {
         if (this.operators.length == 0) {
             switch (this.valueType) {
                 case 'string':
-                    this.operators.push('contains', 'notcontains', 'equals', 'startswith', 'endswith', 'not', 'in', 'notin');
+                    this.operators.push('contains', 'wordstartswith', 'notcontains', 'equals', 'startswith', 'endswith', 'not', 'in', 'notin');
                     break;
                 case 'customfield':
                     this.operators.push('contains', 'equals', 'startswith', 'endswith', 'not');