shareDashboard.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <div class="modal-body gf-box gf-box-no-margin" ng-controller="SharePanelCtrl">
  2. <div class="gf-box-header">
  3. <div class="gf-box-title">
  4. <i class="fa fa-share-square-o"></i>
  5. Share Dashboard
  6. </div>
  7. <div ng-model="editor.index" bs-tabs style="text-transform:capitalize;">
  8. <div ng-repeat="tab in ['Link', 'Snapshot sharing']" data-title="{{tab}}">
  9. </div>
  10. </div>
  11. <button class="gf-box-header-close-btn" ng-click="dismiss();">
  12. <i class="fa fa-remove"></i>
  13. </button>
  14. </div>
  15. <div class="gf-box-body" ng-if="editor.index === 0">
  16. <br>
  17. <div class="gf-form">
  18. <div class="gf-form-row">
  19. <editor-checkbox text="Current time range" model="options.forCurrent" change="buildUrl()"></editor-checkbox>
  20. </div>
  21. </div>
  22. <div class="gf-form">
  23. <div class="gf-form-row">
  24. <editor-checkbox text="Include template variables" model="options.includeTemplateVars" change="buildUrl()"></editor-checkbox>
  25. </div>
  26. </div>
  27. <br>
  28. <div class="gf-form">
  29. <div class="gf-form-row">
  30. <button class="btn btn-inverse pull-right" data-clipboard-text="{{shareUrl}}" clipboard-button><i class="fa fa-clipboard"></i> Copy</button>
  31. <span class="gf-fluid-input">
  32. <input type="text" data-share-panel-url class="input" ng-model='shareUrl'></input>
  33. </span>
  34. </div>
  35. <div>
  36. <div class="editor-row" style="margin-top: 5px;" ng-if="options.toPanel">
  37. <a href="{{imageUrl}}" target="_blank"><i class="fa fa-camera"></i> Direct link rendered image</a>
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="gf-box-body share-snapshot ng-cloak" ng-cloak ng-if="editor.index === 1" ng-controller="ShareSnapshotCtrl">
  43. <div style="margin: 10px 0">
  44. <i ng-if="loading" class="fa fa-spinner fa-spin"></i>
  45. <i ng-if="!loading" class="gf-icon gf-icon-snap-multi"></i>
  46. </div>
  47. <div class="share-snapshot-header" ng-if="step === 1">
  48. <p class="share-snapshot-info-text">
  49. A snapshot is an instant way to share an interactive dashboard publicly.
  50. When created, we <strong>strip sensitive data</strong> like queries (metric, template and annotation) and panel links,
  51. leaving only the visible metric data and series names embedded into your dashboard.
  52. </p>
  53. <p class="share-snapshot-info-text">
  54. Keep in mind, your <strong>snapshot can be viewed by anyone</strong> that has the link and can reach the URL.
  55. Share wisely.
  56. </p>
  57. </div>
  58. <div class="editor-row" style="margin: 11px 20px 33px 20px">
  59. <div class="section" ng-if="step === 1">
  60. <div class="tight-form">
  61. <ul class="tight-form-list">
  62. <li class="tight-form-item" style="width: 110px;">
  63. Snapshot name
  64. </li>
  65. <li>
  66. <input type="text" ng-model="snapshot.name" class="input-large tight-form-input last" >
  67. </li>
  68. </ul>
  69. <div class="clearfix"></div>
  70. </div>
  71. <div class="tight-form">
  72. <ul class="tight-form-list">
  73. <li class="tight-form-item" style="width: 110px">
  74. Expire
  75. </li>
  76. <li>
  77. <select class="input-small tight-form-input last" style="width: 211px" ng-model="snapshot.expires" ng-options="f.value as f.text for f in expireOptions"></select>
  78. </li>
  79. </ul>
  80. <div class="clearfix"></div>
  81. </div>
  82. </div>
  83. <div class="gf-form" ng-if="step === 2" style="margin-top: 40px">
  84. <div class="gf-form-row">
  85. <a href="{{snapshotUrl}}" class="large share-snapshot-link" target="_blank">
  86. <i class="fa fa-external-link-square"></i>
  87. {{snapshotUrl}}
  88. </a>
  89. <br>
  90. <button class="btn btn-inverse btn-large" data-clipboard-text="{{snapshotUrl}}" clipboard-button><i class="fa fa-clipboard"></i> Copy Link</button>
  91. </div>
  92. </div>
  93. </div>
  94. <div ng-if="step === 1">
  95. <button class="btn btn-success btn-large" ng-click="createSnapshot()" ng-disabled="loading">
  96. <i class="fa fa-save"></i>
  97. Local Snapshot
  98. </button>
  99. <button class="btn btn-primary btn-large" ng-click="createSnapshot(true)" ng-disabled="loading">
  100. <i class="fa fa-cloud-upload"></i>
  101. Publish to snapshot.raintank.io
  102. </button>
  103. </div>
  104. <div class="pull-right" ng-if="step === 2" style="padding: 5px">
  105. Did you make a mistake? <a href="{{deleteUrl}}" target="_blank">delete snapshot.</a>
  106. </div>
  107. </div>
  108. </div>