shareModal.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <div class="modal-body" ng-controller="ShareModalCtrl" ng-init="init()">
  2. <div class="modal-header">
  3. <h2 class="modal-header-title">
  4. {{modalTitle}}
  5. </h2>
  6. <ul class="gf-tabs">
  7. <li class="gf-tabs-item" ng-repeat="tab in tabs">
  8. <a class="gf-tabs-link" ng-click="editor.index = $index" ng-class="{active: editor.index === $index}">
  9. {{::tab.title}}
  10. </a>
  11. </li>
  12. </ul>
  13. <a class="modal-header-close" ng-click="dismiss();">
  14. <i class="fa fa-remove"></i>
  15. </a>
  16. </div>
  17. <div class="modal-content" ng-repeat="tab in tabs" ng-if="editor.index == $index">
  18. <div ng-include src="tab.src" class="share-modal-body"></div>
  19. </div>
  20. </div>
  21. <script type="text/ng-template" id="shareEmbed.html">
  22. <div class="share-modal-big-icon">
  23. <i class="fa fa-code"></i>
  24. </div>
  25. <div class="share-snapshot-header">
  26. <p class="share-snapshot-info-text">
  27. The html code below can be pasted and included in another web page. Unless anonymous access
  28. is enabled the user viewing that page need to be signed into grafana for the graph to load.
  29. </p>
  30. </div>
  31. <div ng-include src="'shareLinkOptions.html'"></div>
  32. <div class="gf-form-group section">
  33. <div class="gf-form width-30">
  34. <textarea rows="5" data-share-panel-url class="gf-form-input width-30" ng-model='iframeHtml'></textarea>
  35. </div>
  36. </div>
  37. </script>
  38. <script type="text/ng-template" id="shareLinkOptions.html">
  39. <div class="gf-form-group section">
  40. <gf-form-switch class="gf-form"
  41. label="Current time range" label-class="width-12" switch-class="max-width-6"
  42. checked="options.forCurrent" on-change="buildUrl()">
  43. </gf-form-switch>
  44. <gf-form-switch class="gf-form"
  45. label="Template variables" label-class="width-12" switch-class="max-width-6"
  46. checked="options.includeTemplateVars" on-change="buildUrl()">
  47. </gf-form-switch>
  48. <div class="gf-form">
  49. <span class="gf-form-label width-12">Theme</span>
  50. <div class="gf-form-select-wrapper width-6">
  51. <select class="gf-form-input" ng-model="options.theme" ng-options="f as f for f in ['current', 'dark', 'light']" ng-change="buildUrl()"></select>
  52. </div>
  53. </div>
  54. </div>
  55. </script>
  56. <script type="text/ng-template" id="shareLink.html">
  57. <div class="share-modal-big-icon">
  58. <i class="fa fa-link"></i>
  59. </div>
  60. <div ng-include src="'shareLinkOptions.html'"></div>
  61. <div>
  62. <div class="gf-form-group section">
  63. <div class="gf-form-inline">
  64. <div class="gf-form width-30">
  65. <input type="text" data-share-panel-url class="gf-form-input" ng-model="shareUrl"></input>
  66. </div>
  67. <div class="gf-form pull-right">
  68. <button class="btn btn-inverse pull-right" data-clipboard-text="{{shareUrl}}" clipboard-button><i class="fa fa-clipboard"></i> Copy</button>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="gf-form section" ng-show="modeSharePanel">
  74. <a href="{{imageUrl}}" target="_blank"><i class="fa fa-camera"></i> Direct link rendered image</a>
  75. </div>
  76. </script>
  77. <script type="text/ng-template" id="shareSnapshot.html">
  78. <div class="ng-cloak" ng-cloak ng-controller="ShareSnapshotCtrl" ng-init="init()">
  79. <div class="share-modal-big-icon">
  80. <i ng-if="loading" class="fa fa-spinner fa-spin"></i>
  81. <i ng-if="!loading" class="icon-gf icon-gf-snapshot"></i>
  82. </div>
  83. <div class="share-snapshot-header" ng-if="step === 1">
  84. <p class="share-snapshot-info-text">
  85. A snapshot is an instant way to share an interactive dashboard publicly.
  86. When created, we <strong>strip sensitive data</strong> like queries (metric, template and annotation) and panel links,
  87. leaving only the visible metric data and series names embedded into your dashboard.
  88. </p>
  89. <p class="share-snapshot-info-text">
  90. Keep in mind, your <strong>snapshot can be viewed by anyone</strong> that has the link and can reach the URL.
  91. Share wisely.
  92. </p>
  93. </div>
  94. <div class="share-snapshot-header" ng-if="step === 3">
  95. <p class="share-snapshot-info-text">
  96. The snapshot has now been deleted. If it you have already accessed it once, It might take up to an hour before it is removed from
  97. browser caches or CDN caches.
  98. </p>
  99. </div>
  100. <div class="gf-form-group share-modal-options">
  101. <div class="gf-form" ng-if="step === 1">
  102. <span class="gf-form-label width-12">Snapshot name</span>
  103. <input type="text" ng-model="snapshot.name" class="gf-form-input max-width-15" >
  104. </div>
  105. <div class="gf-form" ng-if="step === 1">
  106. <span class="gf-form-label width-12">Expire</span>
  107. <div class="gf-form-select-wrapper max-width-15">
  108. <select class="gf-form-input" ng-model="snapshot.expires" ng-options="f.value as f.text for f in expireOptions"></select>
  109. </div>
  110. </div>
  111. <div class="gf-form" ng-if="step === 2" style="margin-top: 40px">
  112. <div class="gf-form-row">
  113. <a href="{{snapshotUrl}}" class="large share-snapshot-link" target="_blank">
  114. <i class="fa fa-external-link-square"></i>
  115. {{snapshotUrl}}
  116. </a>
  117. <br>
  118. <button class="btn btn-inverse btn-large" data-clipboard-text="{{snapshotUrl}}" clipboard-button><i class="fa fa-clipboard"></i> Copy Link</button>
  119. </div>
  120. </div>
  121. </div>
  122. <div ng-if="step === 1" class="gf-form-buttons-row">
  123. <button class="btn btn-success btn-large" ng-click="createSnapshot()" ng-disabled="loading">
  124. <i class="fa fa-save"></i>
  125. Local Snapshot
  126. </button>
  127. <button class="btn btn-primary btn-large" ng-if="externalEnabled" ng-click="createSnapshot(true)" ng-disabled="loading">
  128. <i class="fa fa-cloud-upload"></i>
  129. {{sharingButtonText}}
  130. </button>
  131. </div>
  132. <div class="pull-right" ng-if="step === 2" style="padding: 5px">
  133. Did you make a mistake? <a class="pointer" ng-click="deleteSnapshot()" target="_blank">delete snapshot.</a>
  134. </div>
  135. </div>
  136. </div>
  137. </script>