editor.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <h3 class="dashboard-settings__header">
  2. <a ng-click="ctrl.backToList()">Dashboard Links</a>
  3. <span ng-show="ctrl.mode === 'new'">&gt; New</span>
  4. <span ng-show="ctrl.mode === 'edit'">&gt; Edit</span>
  5. </h3>
  6. <div ng-if="ctrl.mode == 'list'">
  7. <div ng-if="ctrl.dashboard.links.length === 0">
  8. <div class="empty-list-cta">
  9. <div class="empty-list-cta__title">
  10. There are no dashboard links added yet
  11. </div>
  12. <a ng-click="ctrl.addLinkMode()" class="empty-list-cta__button btn btn-xlarge btn-success">
  13. <i class="gicon gicon-dashboard-new"></i>
  14. Add Dashboard Link
  15. </a>
  16. <div class="grafana-info-box">
  17. <h5>What are Dashboard Links?</h5>
  18. <p>
  19. Annotations provide a way to integrate event data into your graphs. They are visualized as vertical lines and icons on all
  20. graph panels. When you hover over an annotation icon you can get event text &amp; tags for the event. You can add
  21. annotation events directly from grafana by holding CTRL or CMD + click on graph (or drag region). These will be
  22. stored in Grafana's annotation database.
  23. </p>
  24. Checkout the
  25. <a class="external-link" target="_blank" href="http://docs.grafana.org/reference/annotations/">Annotations documentation</a> for more information.
  26. </div>
  27. </div>
  28. </div>
  29. <div ng-if="ctrl.dashboard.links.length > 0">
  30. <div class="page-action-bar">
  31. <div class="page-action-bar__spacer"></div>
  32. <a type="button" class="btn btn-success" ng-click="ctrl.addLinkMode()">
  33. <i class="fa fa-plus"></i> New</a>
  34. </div>
  35. <table class="filter-table filter-table--hover">
  36. <thead>
  37. <tr>
  38. <th>Type</th>
  39. <th>Tags</th>
  40. <th colspan="3"></th>
  41. </tr>
  42. </thead>
  43. <tbody>
  44. <tr ng-repeat="link in ctrl.dashboard.links">
  45. <td style="width:90%" class="pointer" ng-click="ctrl.editLinkMode(link)">
  46. <i class="fa fa-fw fa-external-link"></i>
  47. {{link.type}}
  48. </td>
  49. <td class="pointer">
  50. {{link.tags}}
  51. </td>
  52. <td style="width: 1%">
  53. <i ng-click="ctrl.moveLink($index, -1)" ng-hide="$first" class="pointer fa fa-arrow-up"></i>
  54. </td>
  55. <td style="width: 1%">
  56. <i ng-click="ctrl.moveLink($index, 1)" ng-hide="$last" class="pointer fa fa-arrow-down"></i>
  57. </td>
  58. <td style="width: 1%">
  59. <a ng-click="ctrl.deleteLink($index)" class="btn btn-danger btn-mini" ng-hide="annotation.builtIn">
  60. <i class="fa fa-remove"></i>
  61. </a>
  62. </td>
  63. </tr>
  64. </tbody>
  65. </table>
  66. </div>
  67. </div>
  68. <div ng-if="ctrl.mode == 'edit' || ctrl.mode == 'new'">
  69. <div class="gf-form-group gf-form-inline">
  70. <div class="section">
  71. <div class="gf-form">
  72. <span class="gf-form-label width-8">Type</span>
  73. <div class="gf-form-select-wrapper width-10">
  74. <select class="gf-form-input" ng-model="link.type" ng-options="f for f in ['dashboards','link']" ng-change="updated()"></select>
  75. </div>
  76. </div>
  77. <div class="gf-form" ng-show="link.type === 'dashboards'">
  78. <span class="gf-form-label width-8">With tags</span>
  79. <bootstrap-tagsinput ng-model="link.tags" tagclass="label label-tag" placeholder="add tags" style="margin-right: .25rem"></bootstrap-tagsinput>
  80. </div>
  81. <gf-form-switch ng-show="link.type === 'dashboards'" class="gf-form" label="As dropdown" checked="link.asDropdown" switch-class="max-width-4"
  82. label-class="width-8" on-change="updated()"></gf-form-switch>
  83. <div class="gf-form" ng-show="link.type === 'dashboards' && link.asDropdown">
  84. <span class="gf-form-label width-8">Title</span>
  85. <input type="text" ng-model="link.title" class="gf-form-input max-width-10" ng-model-onblur ng-change="updated()">
  86. </div>
  87. <div ng-show="link.type === 'link'">
  88. <div class="gf-form">
  89. <li class="gf-form-label width-8">Url</li>
  90. <input type="text" ng-model="link.url" class="gf-form-input width-20" ng-model-onblur ng-change="updated()">
  91. </div>
  92. <div class="gf-form">
  93. <span class="gf-form-label width-8">Title</span>
  94. <input type="text" ng-model="link.title" class="gf-form-input width-20" ng-model-onblur ng-change="updated()">
  95. </div>
  96. <div class="gf-form">
  97. <span class="gf-form-label width-8">Tooltip</span>
  98. <input type="text" ng-model="link.tooltip" class="gf-form-input width-20" placeholder="Open dashboard" ng-model-onblur ng-change="updated()">
  99. </div>
  100. <div class="gf-form">
  101. <span class="gf-form-label width-8">Icon</span>
  102. <div class="gf-form-select-wrapper width-20">
  103. <select class="gf-form-input" ng-model="link.icon" ng-options="k as k for (k, v) in iconMap" ng-change="updated()"></select>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="section gf-form-inline" style="display: flex">
  109. <div>
  110. <div class="gf-form">
  111. <span class="gf-form-label width-6">Include</span>
  112. </div>
  113. </div>
  114. <div>
  115. <gf-form-switch class="gf-form" label="Time range" checked="link.keepTime" switch-class="max-width-6" label-class="width-9"></gf-form-switch>
  116. <gf-form-switch class="gf-form" label="Variable values" checked="link.includeVars" switch-class="max-width-6" label-class="width-9"></gf-form-switch>
  117. <gf-form-switch class="gf-form" label="Open in new tab" checked="link.targetBlank" switch-class="max-width-6" label-class="width-9"></gf-form-switch>
  118. </div>
  119. </div>
  120. </div>
  121. <button class="btn btn-success" ng-if="ctrl.mode == 'new'" ng-click="ctrl.addLink(link.type, link.tags, link.url, link.title)">
  122. <i class="fa fa-plus"></i> Add</button>
  123. <button class="btn btn-success" ng-if="ctrl.mode == 'edit'" ng-click="ctrl.editLink()">
  124. <i class="fa fa-plus"></i> Edit</button>
  125. </div>