vendor/uvdesk/support-center-bundle/Resources/views/Knowledgebase/article.html.twig line 1

Open in your IDE?
  1. {% extends "@UVDeskSupportCenter/Templates/layout.html.twig" %}
  2. {% block canonical %} {% if article.slug %} {{ url('helpdesk_knowledgebase_read_slug_article', {'slug':article.slug }) }} {% endif %} {% endblock %}
  3. {% block ogcanonical %} {% if article.slug %} {{ url('helpdesk_knowledgebase_read_slug_article', {'slug':article.slug }) }} {% endif %} {% endblock %}
  4. {% block title %}{{ article.metaTitle ? article.metaTitle : article.name }}{% endblock %}
  5. {% block ogtitle %}{{ article.metaTitle ? article.metaTitle : article.name }}{% endblock %}
  6. {% block twtitle %}{{ article.metaTitle ? article.metaTitle : article.name }}{% endblock %}
  7. {% block metaDescription %}{{ article.metaDescription ? article.metaDescription : uvdesk_service.createConentToKeywords(article.content, 255, true)|join(' ') }}{% endblock %}
  8. {% block metaKeywords %}{{ article.keywords ?? uvdesk_service.createConentToKeywords(article.content) }}{% endblock %}
  9. {% block body %}
  10. <div class="uv-paper-article">
  11. <div class="uv-paper-section">
  12. <section style="word-wrap: break-word;">
  13. <h1 {% if article.stared %}class="uv-starred"{% endif %}>{{ article.name }}</h1>
  14. <p>{{ article.content |raw }}</p>
  15. <div class="uv-author">
  16. {% if articleAuthor is defined and articleAuthor is not empty %}
  17. <div class="uv-author-avatar">
  18. {% if articleAuthor.user.profileImage is defined and articleAuthor.user.profileImage %}
  19. <img src="{{articleAuthor.user.profileImage}}">
  20. {% else %}
  21. <img src="{{ asset(default_customer_image_path) }}">
  22. {% endif %}
  23. </div>
  24. <div class="uv-author-info">
  25. <p>{{ articleAuthor.firstName | capitalize }} {{ articleAuthor.lastName | capitalize }}</p>
  26. <p><span>{{"Published on"|trans}} -</span> {{dateAdded}}</p>
  27. </div>
  28. {% endif %}
  29. </div>
  30. </section>
  31. {% if feedbacks is defined and feedbacks.enabled == true %}
  32. <section id="feedbacks" class="article-feedbacks">
  33. {% if feedbacks.submitted == true %}
  34. <p>Thank you for your feedback!</p>
  35. {% endif %}
  36. </section>
  37. {% endif %}
  38. </div>
  39. {% include "@UVDeskSupportCenter/Templates/sidepanel.html.twig" %}
  40. </div>
  41. {{ parent() }}
  42. {% endblock %}
  43. {% block footer %}
  44. {{ parent() }}
  45. {# Article Feedbacks #}
  46. {% if feedbacks is defined and feedbacks.enabled == true and feedbacks.submitted == false %}
  47. <script id="article_feedback_template" type="text/template">
  48. <p>Was this article helpful?</p>
  49. <ul>
  50. <li class="uv-btn-small article-badge-pta" data-feedback="positive">Yes</li>
  51. <li class="uv-btn-small article-badge-pta" data-feedback="negative">No</li>
  52. </ul>
  53. </script>
  54. <script type="text/javascript">
  55. $(function() {
  56. var ArticleFeedback = Backbone.View.extend({
  57. el: $("#feedbacks"),
  58. feedbacks: {positive: 0, negative: 0, collection: []},
  59. template: _.template($("#article_feedback_template").html()),
  60. events: {
  61. 'click .article-badge-pta': 'ratingsPTA',
  62. },
  63. initialize: function() {
  64. {% if feedbacks is defined and feedbacks.article is not empty %}
  65. this.feedbacks = {{ feedbacks.article|json_encode|raw }};
  66. {% endif %}
  67. this.render();
  68. },
  69. render: function() {
  70. this.$el.html(this.template());
  71. },
  72. ratingsPTA: function(e) {
  73. var self = this;
  74. var feedbackType = $(e.currentTarget).data('feedback');
  75. $.ajax({
  76. url: "{{ url('helpdesk_knowledgebase_rate_article', {'articleId': article.id}) }}",
  77. method: 'POST',
  78. data: {
  79. feedback: feedbackType,
  80. },
  81. success: function(response) {
  82. this.$el.html('');
  83. app.appView.renderResponseAlert(response);
  84. },
  85. error: function(response) {
  86. response = $.parseJSON(response.responseText);
  87. // app.appView.hideLoader();
  88. app.appView.renderResponseAlert(response);
  89. }
  90. });
  91. },
  92. });
  93. var articleFeedback = new ArticleFeedback();
  94. });
  95. </script>
  96. {% endif %}
  97. {% endblock %}