diff.html 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. {% extends "base.html" %}
  2. {% block body %}
  3. <div id="app">
  4. <div class="md-layout">
  5. <div class="md-layout-item">
  6. <md-card id="main-card">
  7. <md-card-header>
  8. <div class="md-title">
  9. <md-button href="/" class="md-icon-button md-primary">
  10. <md-icon>home</md-icon>
  11. </md-button>
  12. Diffido: ${schedule && schedule.title} diff
  13. </div>
  14. </md-card-header>
  15. <md-card-content id="diffpanel-container">
  16. <div id="diffpanel"></div>
  17. </md-card-content>
  18. </md-card>
  19. </div>
  20. </div>
  21. </div>
  22. <script>
  23. Vue.use(VueMaterial.default);
  24. var app = new Vue({
  25. el: '#app',
  26. delimiters: ['${', '}'],
  27. data: {
  28. schedule: {},
  29. history: [],
  30. difftext: '',
  31. id: "{{id}}",
  32. {% try %}
  33. {% if diff %}
  34. diff: "{{diff}}",
  35. {% end %}
  36. {% except %}
  37. diff: null,
  38. {% end %}
  39. {% try %}
  40. {% if oldid %}
  41. oldid: "{{oldid}}",
  42. {% end %}
  43. {% except %}
  44. oldid: null,
  45. {% end %}
  46. },
  47. mounted: function() {
  48. this.getDiff();
  49. },
  50. methods: {
  51. getDiff: function() {
  52. self = this;
  53. var data = axios.get('/api/diff/' + this.id + '/' + this.diff + '/' + (this.oldid || '')).then(function(response) {
  54. self.schedule = response.data.schedule;
  55. self.difftext = response.data.diff;
  56. var current_size = document.getElementById('diffpanel').offsetWidth;
  57. var pretty_diff = Diff2Html.getPrettyHtml(self.difftext, {showFiles: true, matching: 'none'});
  58. document.getElementById('diffpanel').innerHTML = pretty_diff;
  59. document.getElementById('diffpanel').style['max-width'] = (current_size - 20) + 'px';
  60. });
  61. }
  62. }
  63. });
  64. </script>
  65. <style>
  66. body {
  67. background-color: white;
  68. padding: 6px;
  69. }
  70. .md-table {
  71. height: 80%;
  72. }
  73. </style>
  74. {% end %}