script.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. {% extends '_base.html' %}
  2. {% load helpers %}
  3. {% load form_helpers %}
  4. {% load log_levels %}
  5. {% block title %}{{ script }}{% endblock %}
  6. {% block content %}
  7. <div class="row noprint">
  8. <div class="col-md-12">
  9. <ol class="breadcrumb">
  10. <li><a href="{% url 'extras:script_list' %}">Scripts</a></li>
  11. <li><a href="{% url 'extras:script_list' %}#module.{{ module }}">{{ module|bettertitle }}</a></li>
  12. <li>{{ script }}</li>
  13. </ol>
  14. </div>
  15. </div>
  16. <h1>{{ script }}</h1>
  17. <p>{{ script.Meta.description }}</p>
  18. <ul class="nav nav-tabs" role="tablist">
  19. <li role="presentation" class="active">
  20. <a href="#run" role="tab" data-toggle="tab" class="active">Run</a>
  21. </li>
  22. <li role="presentation"{% if not output %} class="disabled"{% endif %}>
  23. <a href="#output" role="tab" data-toggle="tab">Output</a>
  24. </li>
  25. <li role="presentation">
  26. <a href="#source" role="tab" data-toggle="tab">Source</a>
  27. </li>
  28. </ul>
  29. <div class="tab-content">
  30. <div role="tabpanel" class="tab-pane active" id="run">
  31. {% if execution_time or script.log %}
  32. <div class="row">
  33. <div class="col-md-12">
  34. <div class="panel panel-default">
  35. <div class="panel-heading">
  36. <strong>Script Log</strong>
  37. </div>
  38. <table class="table table-hover panel-body">
  39. <tr>
  40. <th>Line</th>
  41. <th>Level</th>
  42. <th>Message</th>
  43. </tr>
  44. {% for level, message in script.log %}
  45. <tr>
  46. <td>{{ forloop.counter }}</td>
  47. <td>{% log_level level %}</td>
  48. <td class="rendered-markdown">{{ message|gfm }}</td>
  49. </tr>
  50. {% empty %}
  51. <tr>
  52. <td colspan="3" class="text-center text-muted">
  53. No log output
  54. </td>
  55. </tr>
  56. {% endfor %}
  57. </table>
  58. {% if execution_time %}
  59. <div class="panel-footer text-right text-muted">
  60. <small>Exec time: {{ execution_time|floatformat:3 }}s</small>
  61. </div>
  62. {% endif %}
  63. </div>
  64. </div>
  65. </div>
  66. {% endif %}
  67. <div class="row">
  68. <div class="col-md-6 col-md-offset-3">
  69. {% if not perms.extras.run_script %}
  70. <div class="alert alert-warning">
  71. <i class="fa fa-warning"></i>
  72. You do not have permission to run scripts.
  73. </div>
  74. {% endif %}
  75. <form action="" method="post" enctype="multipart/form-data" class="form form-horizontal">
  76. {% csrf_token %}
  77. {% if not form.requires_input %}
  78. <div class="alert alert-info">
  79. <i class="fa fa-exclamation-circle"></i>
  80. This script does not require any input to run.
  81. </div>
  82. {% endif %}
  83. {% render_form form %}
  84. <div class="pull-right">
  85. <button type="submit" name="_run" class="btn btn-primary"{% if not perms.extras.run_script %} disabled="disabled"{% endif %}><i class="fa fa-play"></i> Run Script</button>
  86. <a href="{% url 'extras:script_list' %}" class="btn btn-default">Cancel</a>
  87. </div>
  88. </form>
  89. </div>
  90. </div>
  91. </div>
  92. <div role="tabpanel" class="tab-pane" id="output">
  93. <pre>{{ output }}</pre>
  94. </div>
  95. <div role="tabpanel" class="tab-pane" id="source">
  96. <p><code>{{ script.filename }}</code></p>
  97. <pre>{{ script.source }}</pre>
  98. </div>
  99. </div>
  100. {% endblock %}