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