templates/Recommendations/_profile_recommendations.html.twig line 1

Open in your IDE?
  1. <div id="recommendationsDebug">
  2.     {#<div id="queryData" style="display: none;"></div><a href="javascript:void(0);" id="showQueryBtn">Показать запрос</a>#}
  3.     <div id="profileViewsData">
  4.         <h6 style="color: #1ea471">Просмотры анкет на сайте</h6>
  5.         {% include "Recommendations/_profile_recommendations_debug_profile_data_table.html.twig" with {'viewed_profiles': profile_recommendations_debug_views()} %}
  6.     </div>
  7.     <div id="favouritesData">
  8.         <h6 style="color: #0d5aa7">Избранные</h6>
  9.         {% include "Recommendations/_profile_recommendations_debug_profile_data_table.html.twig" with {'viewed_profiles': profile_recommendations_debug_favourites()} %}
  10.     </div>
  11.     {% include "Recommendations/_profile_recommendations_debug_coeffs_data_table.html.twig" %}
  12.     <h6 style="color: #bd2130">Коэффициенты</h6>
  13.     <div id="coeffsData"></div>
  14.     {% include "Recommendations/_profile_recommendations_debug_viewed_profiles_data_table.html.twig" %}
  15.     <h6 style="color: #856404">Просмотренные рекомендации</h6>
  16.     <div id="viewedRecommendationsData"></div>
  17. </div>
  18. <h4>Рекоммендуемые</h4>
  19. <div id="profileRecommendationsContainer"></div>
  20. <div id="profileRecommendationTemplate" style="display: none;">
  21.     <p><a href="" class="name-link"></a></p>
  22.     <img class="img" src="" width="100"/>
  23. </div>
  24. <a href="javascript:void(0);" id="profileRecommendationsShowMore">Показать еще</a>
  25. <script src="{{ asset('ajax.js', 'js_script') }}"></script>
  26. <script src="{{ asset('local-storage.js', 'js_script') }}"></script>
  27. <script src="{{ asset('recommendations.js', 'js_script') }}"></script>
  28. <script type="text/javascript">
  29.     document.addEventListener('DOMContentLoaded', function() {
  30.         var showMorePressCount = 0;
  31.         var btnShowMore = document.querySelector('#profileRecommendationsShowMore');
  32.         btnShowMore.addEventListener('click', function() {
  33.             if(showMorePressCount < 5)
  34.                 fetchRecommendations();
  35.             if(++showMorePressCount >= 5)
  36.                 btnShowMore.style.display = 'none';
  37.         });
  38.         // document.querySelector('#showQueryBtn').addEventListener('click', function() {
  39.         //     document.querySelector('#queryData').style.display = 'block';
  40.         // });
  41.         function fetchRecommendations() {
  42.             {% set gender = 'profile_list.list_by_gender' in app.request.get('_route') ? app.request.get('gender')|gender_value_by_uri : gender_female() %}
  43.             let url = '{{ path('recommendations.get', {city:app.request.get('city').uriIdentity, count: 5, imageSize: '357x500', exclude: (excludeRecommendationProfileIds is iterable ? excludeRecommendationProfileIds : [])|join(','), gender: gender }) }}';
  44.             let filter = JSON.parse('{{ recommendationSpec ? recommendationSpec.spec.toEsQueryObject|json_encode|raw : {}|json_encode|raw }}');
  45.             profileRecommendations.loadRecommendations(url, filter, function(response) {
  46.                 // console.log(response.profiles);
  47.                 var template = document.querySelector('#profileRecommendationTemplate');
  48.                 var container = document.querySelector('#profileRecommendationsContainer');
  49.                 var profileViewsDataContainer = document.querySelector('#profileViewsData');
  50.                 container.innerHTML = '';
  51.                 response.profiles.map(function(profile) {
  52.                     var node = template.cloneNode(true);
  53.                     node.style.display = 'block';
  54.                     node.querySelector('.name-link').setAttribute('href', profile.url);
  55.                     node.querySelector('.name-link').innerText = '(score: ' + response.scores[profile.id] + ', id: ' + profile.id + ') ' + profile.name;
  56.                     node.querySelector('.img').setAttribute('src', profile.image)
  57.                     container.appendChild(node);
  58.                 });
  59.                 createCoeffsTable(document.querySelector('#coeffsData'), response.coeffs_debug);
  60.                 createViewedRecommendationsTable(document.querySelector('#viewedRecommendationsData'), response.viewed_recommendations_debug);
  61.                 // document.querySelector('#queryData').innerHTML = response.query_debug;
  62.                 profileViewsDataContainer.innerHTML = response.viewed_profiles_debug;
  63.             });
  64.         }
  65.         fetchRecommendations();
  66.     });
  67. </script>