<div class="enablevue">
<div class="block searchlistblock">
<div class="block-header ">
<h2 class="heading-level-2">myHeading</h2>
</div>
<searchlistblock v-cloak room-text="Rum" personel-layout="True" init-data="{"ShowAllSearchSection":true,"CurrentPageId":198772,"currentPageLink":"https://miun_extern_local_v1/ny-design/blocktyper/searchlist/","lang":"sv","SearchPageId":65227,"totaltake":3,"NoHitHighlight":true,"controlid":"e66c8a2b95fa4737807131d2d8401b88", "sortorder":"titleasc","mainfacet":"65227|Personer|2|False","querytext":"test"}"
search-url="http://localhost:2000/production/KitModules/EPiFind/Services/SearchService.asmx/QueryFreeText"></searchlistblock>
</div>
</div>
<div class="enablevue">
<div class="block searchlistblock">
{{#if heading}}
<div class="block-header ">
<h2 class="heading-level-2">{{heading}}</h2>
</div>
{{/if}}
<searchlistblock v-cloak room-text="{{componentStrings.room}}" personel-layout="{{personelLayout}}" init-data="{{initData}}" search-url="{{queryFreeTextUrl}}"></searchlistblock>
</div>
</div>
{
"heading": "myHeading",
"initData": "{\"ShowAllSearchSection\":true,\"CurrentPageId\":198772,\"currentPageLink\":\"https://miun_extern_local_v1/ny-design/blocktyper/searchlist/\",\"lang\":\"sv\",\"SearchPageId\":65227,\"totaltake\":3,\"NoHitHighlight\":true,\"controlid\":\"e66c8a2b95fa4737807131d2d8401b88\", \"sortorder\":\"titleasc\",\"mainfacet\":\"65227|Personer|2|False\",\"querytext\":\"test\"}",
"queryFreeTextUrl": "http://localhost:2000/production/KitModules/EPiFind/Services/SearchService.asmx/QueryFreeText",
"personelLayout": "True",
"componentStrings": {
"room": "Rum"
},
"epiDivClass": "col-md-10 offset-md-1 col-lg-8 offset-lg-2 enablevue vld-parent"
}
Vue.component("searchlistblock", {
props: ["initData", "searchUrl","personelLayout", "roomText"],
data() {
return {
url: this.searchUrl,
query: 'Företag',
queryPersonel: 'koordinator',
personal: (this.personelLayout.toLowerCase() == "true"),
dataResults: [],
personalText: 'personal',
loading: false,
room: this.roomText
};
},
computed: {
personelByLastname: function() {
return _.orderBy(this.dataResults, "surname", ["asc"]);
}
},
mounted() {
if (this.personal) {
this.query = this.queryPersonel;
}
this.search(this.query);
},
methods: {
async search(query) {
this.loading = true;
let initData = {
...JSON.parse(this.initData)
};
let req = {
query: {
querytext: initData.querytext,
mainfacet: initData.mainfacet,
facets: [],
metafacets: initData.metafacets,
take: initData.totaltake,
skip: 0,
returnSuggestions: true,
addSuggestionsToQuery: false,
sortorder: initData.sortorder,
SearchPageId: initData.SearchPageId,
Language: initData.lang,
NoHitHighlight: true,
DoNotTrack: true
}
};
console.log(req);
await axios.post(this.url,req)
.then(result => {
this.loading = false;
console.log("asd")
if(result && result.data && result.data.d && result.data.d.SearchHits && result.data.d.SearchHits.length > 0) {
let persons = result.data.d.SearchHits;
persons.map(person => {
if(person.Title) {
let name = person.Title;
let surname = name.split(" ")[1];
person.surname = surname
}
})
}
this.dataResults = result.data.d.SearchHits;
})
.catch(error => { this.loading = false; console.error(error); throw error; });
},
todate (date) {
var matches = date.match(/\((.*?)\)/);
var a = new Date(parseInt(matches[1]));
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var datum = a.getDate();
var result = datum+' '+month+' ' +year;
return result;
}
},
template: `
<div class="searchresultblock_personal block-content" >
<vloading :height="32" :width="32" :color="'#404040'" :is-full-page="false" :active.sync="loading"></vloading>
<div class="overflow-hidden" v-if="personal">
<a :href="result.Url" :key="result.Id" :title="result.Title" v-for="result in personelByLastname" class="personal_result_tag">
<article class="personal_result row">
<div class="col-12 col-md-auto">
<div class="searchresultblock_img_container" v-if="result.MetaData.PersonalImage.StringValue">
<div class="lazyload searchresultblock_img_person" :data-bg="result.MetaData.PersonalImage.StringValue" :alt="result.Title"></div>
</div>
</div>
<div class="col-12 col-md-10">
<h3 class="personal__title heading-level-3" v-html="result.Title"></h3>
<div class="result-card-info d-flex flex-row flex-wrap align-items-center " v-if="result && result.MetaData">
<p v-if="result.MetaData.Title && result.MetaData.Title.StringValue">{{result.MetaData.Title.StringValue}}</p>
<p v-if="result.MetaData.AreaOfResponsibility && result.MetaData.AreaOfResponsibility.StringValue">
{{result.MetaData.AreaOfResponsibility.StringValue}}
</p>
</div>
<div class="person-card-info d-flex flex-row flex-wrap align-items-center" v-if="result && result.MetaData && result.MetaData.RoomNumber || result.MetaData.Location">
<p v-if="result.MetaData.RoomNumber && result.MetaData.RoomNumber.StringValue">{{room}}: </p>
<p v-if="result.MetaData.RoomNumber && result.MetaData.RoomNumber.StringValue">{{result.MetaData.RoomNumber.StringValue}}</p>
<p v-if="result.MetaData.Title && result.MetaData.Location.StringValue">
<template v-if="result && result.MetaData && result.MetaData.RoomNumber && result.MetaData.RoomNumber.StringValue && result.MetaData.Location && result.MetaData.Location.StringValue">, </template>
{{result.MetaData.Location.StringValue}}
</p>
</div>
<p class="result-card-info" v-if="result.MetaData.TelephoneNumber && result.MetaData.TelephoneNumber.StringValue">{{result.MetaData.TelephoneNumber.StringValue}}</p>
<a class="result-email" :href="'mailto:' + result.MetaData.Email.StringValue" v-if="result.MetaData.Email && result.MetaData.Email.StringValue">{{result.MetaData.Email.StringValue}}</a>
</div>
</article>
</a>
</div>
<div v-else>
<a :key="result.Id" :href="result.Url" :title="result.Title" v-for="result in dataResults" class="personal_result_tag">
<article class="personal_result ">
<h3 class="personal__title heading-level-3" v-html="result.Title"></h3>
<p v-html="result.Content"></p>
<p class="date">{{todate(result.SearchPublishDate)}}</p>
</article>
</a>
</div>
</div>
`
});
.searchlistblock{
&:last-child{
margin-bottom: $md-space;
}
}
.searchresultblock_personal{
.personal_result_tag{
&:first-child{
.personal_result{
border-top: none;
padding-top: 0px;
}
}
&:hover{
text-decoration: none;
.personal__title{
text-decoration: underline !important;
}
.personal__content{
text-decoration: none;
}
.personal__additional{
text-decoration: none;
}
}
.personal_result{
padding-top: $sm-space;
padding-bottom: $sm-space;
border-top: 1px solid $grey-border;
margin-bottom: 0px !important;
.result-email{
color: $blue;
}
}
}
.searchresultblock_img_container{
height: 80px;
width: 80px;
border-radius: 100%;
overflow: hidden;
transition: all 0.3s ease 0s;
margin-bottom: $xs-space;
.searchresultblock_img_person{
height: 100%;
width: 100%;
border-radius: 50%;
background-size: cover;
background-position: center;
}
}
}
There are no notes for this item.