Searchbox Error

Posted by Community Admin on 04-Aug-2018 19:45

Searchbox Error

All Replies

Posted by Community Admin on 22-Jun-2016 00:00

I am getting a weird search box error when trying to search. 

I created a blank page (Start from scratch) and still get this error. (MVC)

Posted by Community Admin on 27-Jun-2016 00:00

Hello Decker,

I just wanted to add this answer to your forum post in case someone else runs into this issue as I see it was answered in your support ticket you filed.

This issue occurs due to a Javascript error in the Digital Experience Cloud module, disabling this module will fix this issue.  Currently this is the only workaround available and the issue is being investigated by our development engineers.

Regards,
Nick Rajotte
Telerik

 
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal and vote to affect the priority of the items
 

Posted by Community Admin on 20-Aug-2016 00:00

I am running into this as well.  We are using DEC and can't disable it.

The SearchBox runs fine in preview but I get that "sentence.object" error when I navigate to the page itself.

All I have is a blank page with the SearchBox widget on it.

 

 

Posted by Community Admin on 20-Aug-2016 00:00

Hey Decker,

Have you guys found a workaround for this?  We are using DEC and can't shut it off.

Posted by Community Admin on 21-Aug-2016 00:00

Hi Matthew. I can suggest one solution for you. If you are using Feather.

1) Place attached search-box-without-dec.js somewhere

(function ($)
    $(document).ready(function ()
        var searchBoxIdFields = $('[data-sf-role="searchTextBoxId"]');
 
        for (var i = 0; i < searchBoxIdFields.length; i++)
            var searchBoxIdField = $(searchBoxIdFields[i]);
            var controlServerData =
                resultsUrl: searchBoxIdField.siblings('[data-sf-role="resultsUrl"]').first().val(),
                indexCatalogue: searchBoxIdField.siblings('[data-sf-role="indexCatalogue"]').first().val(),
                wordsMode: searchBoxIdField.siblings('[data-sf-role="wordsMode"]').first().val(),
                disableSuggestions: $.parseJSON(searchBoxIdField.siblings('[data-sf-role="disableSuggestions"]').first().val()),
                minSuggestionLength: searchBoxIdField.siblings('[data-sf-role="minSuggestionLength"]').first().val(),
                suggestionFields: searchBoxIdField.siblings('[data-sf-role="suggestionFields"]').first().val(),
                language: searchBoxIdField.siblings('[data-sf-role="language"]').first().val(),
                suggestionsRoute: searchBoxIdField.siblings('[data-sf-role="suggestionsRoute"]').first().val(),
                searchTextBoxSelector: searchBoxIdField.val(),
                searchButtonSelector: searchBoxIdField.siblings('[data-sf-role="searchButtonId"]').first().val()
            ;
            featherSearchBoxWidget(controlServerData);
        
 
        function featherSearchBoxWidget(serverData)
            var searchTextBox = $(serverData.searchTextBoxSelector),
                    searchButton = $(serverData.searchButtonSelector);
 
            searchButton.click(navigateToResults);
            searchTextBox.keypress(keypressHandler);
 
            /* Initialization */
            if (!serverData.disableSuggestions)
                searchTextBox.keyup(keyupHandler);
 
                try
                    searchTextBox.autocomplete(
                        source: [],
                        messages:
                            
                                noResults: '',
                                results: function ()
                            ,
                        select: function (event, ui)
                            searchTextBox.val(ui.item.value);
                            navigateToResults(event);
                        ,
                    ).autocomplete("widget").addClass("sf-autocomplete");
                 catch (e)
                    // Fixes jQuery bug, causing IE7 to throw error "script3 member not found".
                    // The try/catch can be removed when the bug is fixed.
                
            
 
            /* Event handlers */
            function keypressHandler(e)
                if (!e)
                    e = window.event;
 
                var keyCode = null;
                if (e.keyCode)
                    keyCode = e.keyCode;
                
                else
                    keyCode = e.charCode;
                
 
                if (keyCode == 13)
                    navigateToResults(e);
                
            
 
            function suggestionsSuccessHandler(result, args)
                var dataSource = result.Suggestions;
                searchTextBox.autocomplete('option', 'source', dataSource);
 
                searchTextBox.autocomplete("search", searchTextBox.val().trim());
            
 
            function keyupHandler(e)
                if (e.keyCode != 38 &&  // up arrow
                    e.keyCode != 40 && // down arrow
                    e.keyCode != 27) // esc
                    // When the auto complete menu is shown, only this event is detected
                    if (e.keyCode == 13)
                        // when enter is pressed
                        navigateToResults(e);
                    
 
                    var request = ;
                    var searchText = searchTextBox.val().trim();
                    if (searchText.length >= serverData.minSuggestionLength)
                        request.IndexName = serverData.indexCatalogue;
                        request.SuggestionFields = serverData.suggestionFields;
                        request.Text = searchText;
                        request.Language = serverData.language;
 
                        $.ajax(
                            type: "GET",
                            url: serverData.suggestionsRoute,
                            dataType: 'json',
                            data: request,
                            success: suggestionsSuccessHandler
                        );
                    
                
            
 
            /* Helper methods */
            function navigateToResults(e)
                if (!e)
                    e = window.event;
 
                if (e.stopPropagation)
                    e.stopPropagation();
                
                else
                    e.cancelBubble = true;
                
                if (e.preventDefault)
                    e.preventDefault();
                
                else
                    e.returnValue = false;
                
 
                var query = searchTextBox.val();
 
                if (query && query.trim() && serverData.indexCatalogue)
                    window.location = getLocation();
                
            
 
            function getLocation()
                var query = searchTextBox.val().trim();
 
                var separator = (serverData.resultsUrl.indexOf("?") == -1) ? "?" : "&";
 
                var catalogueParam = separator + "indexCatalogue=" + encodeURIComponent(serverData.indexCatalogue),
                    searchQueryParam = "&searchQuery=" + encodeURIComponent(query),
                    wordsModeParam = "&wordsMode=" + serverData.wordsMode;
 
                var url = serverData.resultsUrl + catalogueParam + searchQueryParam + wordsModeParam;
 
                return url;
            
 
            function sendSentence()
                if (window.DataIntelligenceSubmitScript)
                    DataIntelligenceSubmitScript._client.sentenceClient.writeSentence(
                        predicate: "Search for",
                        object: searchTextBox.val(),
                        objectMetadata: [
                            'K': 'PageUrl',
                            'V': location.href
                        ]
                    );
                
            
        
    );
(jQuery));

2) Override searchbox view. Put SearchBox.cshtml to ResourcePackages\YOUR PACKAGE\MVC\Views\SearchBox\SearchBox.cshtml

@model Telerik.Sitefinity.Frontend.Search.Mvc.Models.ISearchBoxModel
 
@using Telerik.Sitefinity.Services;
@using Telerik.Sitefinity.Modules.Pages;
@using Telerik.Sitefinity.Frontend.Mvc.Helpers;
 
@
    var searchTextBoxId = Guid.NewGuid();
    var searchButtonId = Guid.NewGuid();
 
 
@(!String.IsNullOrEmpty(Model.CssClass) ?
    Html.Raw(String.Format("<div class=\"0 form-inline\">", Model.CssClass)) :
    Html.Raw("<div class=\"form-inline\">"))
    <div class="form-group">
        <input type="search" title="@Html.Resource("SearchInput")" placeholder="@Model.BackgroundHint" id="@Html.Raw(searchTextBoxId)" class="form-control" value="@Html.Raw(ViewBag.SearchQuery)"/>
    </div>
    <button type="button" class="btn btn-primary" id="@Html.Raw(searchButtonId)">@Html.Resource("SearchLabel")</button>
     
    <input type="hidden" data-sf-role="resultsUrl" value="@Html.Raw(Model.ResultsUrl)" />
    <input type="hidden" data-sf-role="indexCatalogue" value="@Html.Raw(Model.IndexCatalogue)" />
    <input type="hidden" data-sf-role="wordsMode" value="@Html.Raw(Model.WordsMode.ToString())" />
    <input type="hidden" data-sf-role="disableSuggestions" value='@(Model.DisableSuggestions ? Html.Raw("true") : Html.Raw("false"))' />
    <input type="hidden" data-sf-role="minSuggestionLength" value="@Html.Raw(Model.MinSuggestionLength)" />
    <input type="hidden" data-sf-role="suggestionFields" value="@Html.Raw(Model.SuggestionFields)" />
    <input type="hidden" data-sf-role="language" value="@Html.Raw(Model.Language)" />
    <input type="hidden" data-sf-role="suggestionsRoute" value="@Html.Raw(Model.SuggestionsRoute)" />
    <input type="hidden" data-sf-role="searchTextBoxId" value='@("#" + searchTextBoxId.ToString())' />
    <input type="hidden" data-sf-role="searchButtonId" value='@("#" + searchButtonId.ToString())' />
</div>
 
@* The inline editing functionality is loading jQuery too. *@
 
@Html.Script(ScriptRef.JQuery, "top", true)
@Html.Script(ScriptRef.JQueryUI, "top", true)
 
@Html.Script("Mvc/Scripts/SearchBox/search-box-without-dec.js", "bottom")

3) Fix path to search-box-without-dec.js inside this view

This thread is closed