datasources.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <div ng-include="'app/partials/navbar.html'" ng-init="pageTitle='Admin'"></div>
  2. <div class="dashboard-edit-view" style="min-height: 500px">
  3. <div class="editor-row">
  4. <div class="section">
  5. <div class="dashboard-editor-header">
  6. <div class="dashboard-editor-title">
  7. <i class="icon icon-sitemap"></i>
  8. Data sources
  9. </div>
  10. <div ng-model="editor.index" bs-tabs style="text-transform:capitalize;">
  11. <div ng-repeat="tab in ['Overview', 'Add', 'Edit']" data-title="{{tab}}">
  12. </div>
  13. </div>
  14. </div>
  15. <form name="editForm">
  16. <div class="dashboard-editor-body">
  17. <div class="editor-row row" ng-if="editor.index == 0">
  18. <div class="span8">
  19. <div ng-if="datasources.length === 0">
  20. <em>No datasources defined</em>
  21. </div>
  22. <table class="grafana-options-table">
  23. <tr ng-repeat="ds in datasources">
  24. <td style="width:1%">
  25. <i class="icon-hdd"></i> &nbsp;
  26. {{ds.name}}
  27. </td>
  28. <td style="width:90%">
  29. {{ds.url}}
  30. </td>
  31. <td style="width: 1%">
  32. <a ng-click="edit(ds)" class="btn btn-success btn-mini">
  33. <i class="fa fa-edit"></i>
  34. Edit
  35. </a>
  36. </td>
  37. <td style="width: 1%">
  38. <a ng-click="remove(ds)" class="btn btn-danger btn-mini">
  39. <i class="fa fa-remove"></i>
  40. </a>
  41. </td>
  42. </tr>
  43. </table>
  44. </div>
  45. </div>
  46. <div ng-if="editor.index == 1 || (editor.index == 2 && !currentIsNew)">
  47. <div class="editor-row">
  48. <div class="editor-option">
  49. <label class="small">Data source name</label>
  50. <input type="text" class="input-large" ng-model='current.name' placeholder="production" required></input>
  51. </div>
  52. <div class="editor-option">
  53. <label class="small">Type</label>
  54. <select class="input-medium" ng-model="current.type" ng-options="f for f in ['graphite', 'influxdb', 'opentsdb']" ng-change="typeChanged()"></select>
  55. </div>
  56. </div>
  57. <div class="editor-row">
  58. <div class="editor-option">
  59. <label class="small">Url</label>
  60. <input type="text" class="input-xxlarge" ng-model='current.url' placeholder="http://my.graphite.com:8080" required></input>
  61. </div>
  62. <div class="editor-option">
  63. <label class="small">Access method <tip>Direct = url is used directly from browser, Proxy = Grafana backend will proxy the request</label>
  64. <select class="input-medium" ng-model="current.access" ng-options="f for f in ['direct', 'proxy']"></select>
  65. </div>
  66. </div>
  67. <div class="editor-row" ng-if="current.type === 'influxdb'">
  68. <div class="section">
  69. <h5>InfluxDB Details</h5>
  70. <div class="editor-option">
  71. <label class="small">Database name</label>
  72. <input type="text" class="input-large" required ng-model='current.database' placeholder=""></input>
  73. </div>
  74. <div class="editor-option">
  75. <label class="small">User</label>
  76. <input type="text" class="input-large" ng-model='current.user' placeholder=""></input>
  77. </div>
  78. <div class="editor-option">
  79. <label class="small">Password</label>
  80. <input type="password" class="input-large" ng-model='current.password' placeholder=""></input>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="dashboard-editor-footer" style="margin-top: 20px">
  86. <button type="submit" class="btn btn-success" ng-show="editor.index === 1" ng-click="add()">Add</button>
  87. <button type="submit" class="btn btn-success" ng-show="editor.index === 2 && !currentIsNew" ng-click="update()">Update</button>
  88. <button type="submit" class="btn btn-info" ng-show="editor.index === 2 && !currentIsNew" ng-click="cancel()">Cancel</button>
  89. </div>
  90. </form>
  91. </div>
  92. </div>
  93. </div>
  94. </div>