Sitefinity Search on dynamic module resulting no url - sitefinity

I have use sitefinity search in Sitefinity 6.3
Problem is that on the search result the items coming from dynamicmodule doesn't have links. that is the dynamicmodule related items doesn't have href on it while other are showing fine
<dt class="sfsearchResultTitle"><a id="cphContent_ctl01_ctl00_ctl00_resultsList_A1_1">my item data in dynamic module</a></dt>
Please let me know what to do with it?
In the Documentation it is mentioned that
Configure search index settings for dynamic modules
If you are searching in dynamic module items or custom fields created for any module, you must set the fields where you want the system to search.
You do this by expanding Advanced and entering the fields where to search, separated by commas.
For example, if you want to search your dynamic content types by Definition, enter Definition.
But it is not clear.
what i check that my fields are mentioned in search fields list by checking
settings -> advanced ->dynamic modules -> controls - >mydynamic module -> Views -> mydynamicmoduleBackendList ->SearchFields
My fields are mentioned there automatically
My user control for search has markup as
<asp:Repeater ID="resultsList" runat="server">
<HeaderTemplate>
<dl class="sfsearchResultsWrp sfsearchReultTitleSnippetUrl">
</HeaderTemplate>
<ItemTemplate>
<div class="search-result">
<div class="inner">
<div class="font22 bold result-title">
<dt class="sfsearchResultTitle"><a id="A1" runat="server" href='<%# Eval("Link")%>'><%# Eval("Title") %></a></dt>
</div>
<div class="font13">
<br>
<dd class="sfsearchResultUrl"><a id="A2" runat="server" href='<%# Eval("Link")%>'><%# Eval("Link")%></a></dd>
</div>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</dl>
</FooterTemplate>
</asp:Repeater>
Please let me know what is wrong
P.S.
in http://www.sitefinity.com/developer-network/forums/bugs-issues-/search-functionality somebody also faced this empty url problem but no answer there

Under Administration -> Search indexes then your search index, you should be able to specify a default page where the custom content type's are published:
Edit
This doesn't seem to show up for me in either a fresh install of 6.3 but you can inspect the page using Chrome Dev tools and remove the display:none on the .sfContentToIndex .sfPublishDescWrp.sfHideInSearch class to have it show up:
Then click "Change" and select the details page where this custom content type is published.
Edit #2
Alright, I found where to enable this in the settings. In the backend go to Administration -> Settings -> Advanced -> Search -> Controls -> SearchBackend -> Views -> SearchBackendEdit -> Sections -> PipeSettingsSectionInbound -> Fields -> InboundSettings. Then check the "Show content location" checkbox. Screenshot here:

Related

Vue optimization for large dropdowns on list of items

I am experiencing some performance issues in Vue after migrating from an old angularjs app.
The page displays a list of available reports with a settings button alongside each report.
Likewise each report has among other things a property called worksheet which indicates the name of the worksheet driving this report.
So for example something like this
<div class="list" v-for="(report,repidx) in filteredReports" v-show="hideDemo.indexOf(report.Name) == -1">
<h2>{{report.Name}}</h2><button #click="report.showsettings=true">Settings</button>
<div v-show="report.showsettings">
<select name="worksheet" v-model="report.worksheet">
<option v-for="worksheet in allworksheets">{{worksheet.Name}}</option>
</select>
</div>
</div>
When clicking on the settings button a dropdown list is exposed which indicates all the available worksheets that could be assigned to the selected report
"allworksheets" is an array of objects which might contain a 1000 worksheets.
Having it populated on the DOM (using v-for) for each report in the list does not seem efficient and causes tremendous performance issues on page loading and also during operations eg clicking on Settings button. (Surprisingly this worked perfectly fine in angularjs).
I tried switching to using a computed property but that also didnt help.
It gets even more complicated because the angular approach also had an additional option group which displayed SIMILAR worksheets to the currently selected one. For eg something like this
<select name="worksheet" v-model="report.worksheet">
<optgroup label="similarworksheets">
<option v-for="sm in similarworksheets(report.worksheet)">{{sm.Name}}</option>
</optgroup>
<optgroup label="allworksheets">
<option v-for="worksheet in allworksheets">{{worksheet.Name}}</option>
</optgroup>
</select>
In this case "similarworksheets" is a method that accepts the report.worksheet as a parameter and returns a filtered version of allworksheets, showing only SIMILAR worksheets. This obviously makes performance even worse!
Can someone suggest a better way to approach this given the fact that I need to stick to this structure - more or less - ie a dropdown list available for each selected report.
Thanks

integration of ck editor in vue js

I am trying to integrate ckeditor with vue js in my application. Everything is working fine but when i click on submit button, all the data is saved in database and all fields are empty.
but in this case , i am not able to edit the ck-editor if i refresh or change the dom and again come to same page then working fine.
I think it needs to re-binding of ckeditor but I am not sure how we can do it.
I followed this link -> https://vuejsexamples.com/ckeditor-using-for-vue-js-2/
to integrate the ck-editor and also using js file of ckeditor on index page.
I assume that the Form which you are using is submitted by the browser - native html behaviour. To avoid that, the input field with type submit should look like (both #submit.prevent so as #click.prevent):
<form #submit.prevent="">
<input type="text" />
<input type="submit" value="ok" #click.prevent="" />
</form>

django-autocomplete-light how to copy multi select fields

I'm using django-autocomplete-light with django 1.8.
I want to be able to copy the selected contents from one autocomplete field into another which requires overriding javascript code.
I tried duplicating the html content inside the autocomplete tool into another one in the browser debugger which looked good but when I click the save button in the admin page, it ignores my copied value.
Any ideas?
It works if you use an empty form for #form_template as such:
<div class = 'table' id="form_template" style="display:none">
{{ formset.empty_form }}
</div>
<div class = 'table'>
<table>
<!-- don't use #form_template in your actual form -->
From github issue

Populate the field in the HTML based on the text beside it using selenium

I am newbie to Selenium and trying to explore it. I am trying to populate the field in the HTML based on the text beside it.
For example in the below image, If I have to enter "Jack" as the First name in the text box, I must be able to search the HTML file for the text "First name:" and populate the text field beside it.
HTML Code:
<!DOCTYPE html>
<html>
<body>
<form>
First name:
<input type="text" name="firstname" >
<br>
<br>
Last name:
<input type="text" name="lastname" >
<br>
</form>
</body>
</html>
I understand it is possible if "First name:" is a label, we can use
selenium.type("css=label:contains(\"First name:\")+input", "Jack");
But the tricky part it is not necessary a label it can be any form such as
<h1>,<b>,<p> or even without any tags.
Any help is appreciated!
Thanks in advance!
Well, it sounds like you need to open up the html and take a look at what you're working with.
A good tool to use is Firebug plugin for Firefox browser, which allows you to easily select web elements and inspect them.
With Firebug, all you would need to do is right click the element you wish to inspect, and than click "Inspect with Firebug". Firebug will then highlight and point out the exact location of the web element within the HTML, allowing you to know what tag it may fall under.
Other than that, you could post the HTML of those fields and get some starting pointers on how you should write them into your tests.

Expanding the use of PlaceHolderMain in Sharepoint 2010?

I want to create a 2 column layout in my master template page. I want both the left and right HTML column < div >'s in my design to have wysiwyg editors. This is what I am picturing...
<div id="container">
<div class="left-side">
<div id="sub-menu">asp:menu</div>
<asp:ContentPlaceHolder id="PlaceHolderMain1" runat="server" />
</div>
<div class="right-side">
<asp:ContentPlaceHolder id="PlaceHolderMain2" runat="server" />
</div>
</div>
but obviously, PlaceHolderMain1 or PlaceHolderMain2 are not optional content placeholders to select by default...
http://office.microsoft.com/en-us/sharepoint-designer-help/working-with-content-placeholder-controls-HA102265026.aspx
Is there a way to create an additional HTML-PlaceHolder with SharePoint?
By creating content types for a content page layout
[configure SharePoint's site settings -> then view content types under 'Site Objects' in SharePoint Designer], you could then take advantage of your "toolbox" located in SharePoint Designer.
Create your types and your page layout under site settings from your browser
Also assign your page layout to a specific master template
Open up your new page layout in SharePoint Designer
Then use the toolbox to drag any of the available content fields into your content page layout.
Save your layout page, check it in as major. Done.
As a result, I was able to drag on a Rich HTML field PLUS a web zone, into each floating div in my content page layout. FYI, you may or may not need to add on additional Tagprefix's to your content page layout, for example, if you are calling the asp:menu into it, be ready for that...
The solution also keeps you from re-creating multiple master templates, just because you need a new HTML layout scheme to choose from.