1
0

components.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. window.Vue = require('vue');
  2. import BootstrapVue from 'bootstrap-vue'
  3. Vue.use(BootstrapVue);
  4. pixelfed.readmore = () => {
  5. $(document).find('.read-more').each(function(k,v) {
  6. let el = $(this);
  7. let attr = el.attr('data-readmore');
  8. if(typeof attr !== typeof undefined && attr !== false) {
  9. return;
  10. }
  11. el.readmore({
  12. collapsedHeight: 44,
  13. heightMargin: 20,
  14. moreLink: '<a href="#" class="font-weight-bold small">Read more</a>',
  15. lessLink: '<a href="#" class="font-weight-bold small">Hide</a>',
  16. });
  17. });
  18. };
  19. window.InfiniteScroll = require('infinite-scroll');
  20. window.filesize = require('filesize');
  21. import swal from 'sweetalert';
  22. require('./components/localstorage');
  23. require('./components/likebutton');
  24. require('./components/commentform');
  25. require('./components/searchform');
  26. require('./components/bookmarkform');
  27. require('./components/statusform');
  28. require('./components/embed');
  29. require('./components/notifications');
  30. // import Echo from "laravel-echo"
  31. // window.io = require('socket.io-client');
  32. // window.pixelfed.bootEcho = function() {
  33. // window.Echo = new Echo({
  34. // broadcaster: 'socket.io',
  35. // host: window.location.hostname + ':2096',
  36. // auth: {
  37. // headers: {
  38. // Authorization: 'Bearer ' + token.content,
  39. // },
  40. // },
  41. // });
  42. // }
  43. // Initalize Notification Helper
  44. window.pixelfed.n = {};
  45. Vue.component(
  46. 'follow-suggestions',
  47. require('./components/FollowSuggestions.vue')
  48. );
  49. Vue.component(
  50. 'discover-component',
  51. require('./components/DiscoverComponent.vue')
  52. );
  53. // Vue.component(
  54. // 'circle-panel',
  55. // require('./components/CirclePanel.vue')
  56. // );
  57. Vue.component(
  58. 'post-component',
  59. require('./components/PostComponent.vue')
  60. );
  61. Vue.component(
  62. 'post-comments',
  63. require('./components/PostComments.vue')
  64. );
  65. Vue.component(
  66. 'passport-clients',
  67. require('./components/passport/Clients.vue')
  68. );
  69. Vue.component(
  70. 'passport-authorized-clients',
  71. require('./components/passport/AuthorizedClients.vue')
  72. );
  73. Vue.component(
  74. 'passport-personal-access-tokens',
  75. require('./components/passport/PersonalAccessTokens.vue')
  76. );
  77. window.pixelfed.copyToClipboard = (str) => {
  78. const el = document.createElement('textarea');
  79. el.value = str;
  80. el.setAttribute('readonly', '');
  81. el.style.position = 'absolute';
  82. el.style.left = '-9999px';
  83. document.body.appendChild(el);
  84. const selected =
  85. document.getSelection().rangeCount > 0
  86. ? document.getSelection().getRangeAt(0)
  87. : false;
  88. el.select();
  89. document.execCommand('copy');
  90. document.body.removeChild(el);
  91. if (selected) {
  92. document.getSelection().removeAllRanges();
  93. document.getSelection().addRange(selected);
  94. }
  95. };
  96. $(document).ready(function() {
  97. $(function () {
  98. $('[data-toggle="tooltip"]').tooltip()
  99. });
  100. });