📣 We're Hiring!

How to have WYSIWYG custom fields included in search

I have been using the excellent WYSIWYG plug-in from Urdhva-Tech for quite some time (great to see this is now included in core as well!)

Just wondering if there could be an option included in Module builder/Studio to include these fields in the index for search functions? Or an option in search settings to include/exclude these fields? The former method would seem more flexible but have them all indexed by deafult would certainly be ok too.

I thought my content was being indexed but it seems the search settings only search text and textarea fields, not custom HTML field content.

Hello,
I have added fields in basic search layout from studio and Did the search with wild card and it seems it search for content like, %Urdhvatech in the text area field in basic search.

Or is it something else that doesn’t work?

PS: I tried with SuiteCRM 7.11.15

Thanks for the reply. I should have been more explicit. Yes, the search (filter) function works fine. It was the global search function that didn’t seem to be working. However, when I just tried it again this morning it worked. Maybe it just needed to be indexed by the scheduler.

Thanks for the reply as I probably wouldn’t have discovered that without your answer! [SOLVED]

That’s great. I believe you will have button to mark as solved this thread.

We are using enable_legacy_search in our CRM (version 7.8.31). When we try to use a WYSIWYG field in our Advanced Filter, it breaks the page. No errors in error logs but I see this javascript error in the browser console.
________________________________________________________________________________________________________________
error adding script
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 ReferenceError: tinyMCE is not defined
at eval (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :2:3)
at eval ()
at sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444
at Object.globalEval (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444)
at Object.evalScript (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:451)
at Object.callback [as success] (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:652)
at Object.handleTransactionResponse (sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109)
at sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 Array(4)0: "<script type=“text/javascript” language=“Javascript”>\n tinyMCE.execCommand(‘mceAddControl’,false,“text_description_c_advanced”);\n "1: " type=“text/javascript” language=“Javascript”"2: "\n tinyMCE.execCommand(‘mceAddControl’,false,“text_description_c_advanced”);\n "3: " "groups: undefinedindex: 4016input: "<script type=“text/javascript” src="cache/jsLalength: 4[[Prototype]]: Array(0)
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 error adding script
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 TypeError: Cannot set properties of null (setting ‘disabled’)
at fillInLabels (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :23:59)
at eval (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :6:3)
at eval ()
at sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444
at Object.globalEval (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444)
at Object.evalScript (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:451)
at Object.callback [as success] (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:652)
at Object.handleTransactionResponse (sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109)
at sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 Array(4)
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 error adding script
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 TypeError: Cannot set properties of null (setting ‘disabled’)
at fillInLabels (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :23:59)
at loadSSL_Scripts (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :33:9)
at eval (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :4:9)
at eval ()
at sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444
at Object.globalEval (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444)
at Object.evalScript (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:451)
at Object.callback [as success] (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:652)
at Object.handleTransactionResponse (sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109)
at sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 Array(4)
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 error adding script
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 TypeError: Cannot read properties of null (reading ‘className’)
at registerSingleSmartInputListener (sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:339)
at eval (eval at (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444), :1:380)
at eval ()
at sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444
at Object.globalEval (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:444)
at Object.evalScript (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:451)
at Object.callback [as success] (sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:652)
at Object.handleTransactionResponse (sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109)
at sugar_grp1_yui.js?v=6WY0eIRvQx-xSuYs2iwxMg:109
sugar_grp1.js?v=6WY0eIRvQx-xSuYs2iwxMg:452 Array(4)

Maybe try rebuilding JS files? Does tinyMCE work elsewhere in the site? I’ve never tried embedding WYSIWYG field in Advanced filter. When I do include it in that view (only via module builder or studio) it just comes up as a standard text field by default, not a WYSIGWIG field - though it still searches the WYSIWYG field content if you search. Is that what you’re trying to do?

Actually, I was being tricked by this one. It only searches the Name field and the standard textarea description field in global search, but not the WYSIWYG field content in global search. You can still use an advanced filter and it will find the matching content in the WYSIWYG field but not the global search, even with the modules and the fields being enabled in the defs. Not a major pain but means I have to go to each module and do an adavanced filter rather than just getting everything relevant back in one single global search.

Hope this clarifies for others.

I was being tricked by this because the global search was actually matching on name and description field content which had the same key words as I was expecting to find in the WYSIWYG field content.

Thanks wondertrout for your reply but rebuilding js files did not help.
I did, however, fix my issue by disabling AJAX User interface for my module. Now I can use a WYSIWYG field as a filter without getting a javascript error.
Dianna