import.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <div class="modal-body">
  2. <div class="modal-header">
  3. <h2 class="modal-header-title">
  4. <i class="fa fa-upload"></i>
  5. <span class="p-l-1">Import Dashboard</span>
  6. </h2>
  7. <a class="modal-header-close" ng-click="dismiss();">
  8. <i class="fa fa-remove"></i>
  9. </a>
  10. </div>
  11. <div class="modal-content" ng-cloak>
  12. <div ng-if="ctrl.step === 1">
  13. <form class="gf-form-group">
  14. <dash-upload on-upload="ctrl.onUpload(dash)"></dash-upload>
  15. </form>
  16. <h5 class="section-heading">Or paste JSON:</h5>
  17. <div class="gf-form-group">
  18. <div class="gf-form">
  19. <textarea rows="7" data-share-panel-url="" class="gf-form-input" ng-ctrl="ctrl.jsonText"></textarea>
  20. </div>
  21. <button type="button" class="btn btn-secondary" ng-click="ctrl.loadJsonText()">
  22. <i class="fa fa-paste"></i>
  23. Load
  24. </button>
  25. <span ng-if="ctrl.parseError" class="text-error p-l-1">
  26. <i class="fa fa-warning"></i>
  27. {{ctrl.parseError}}
  28. </span>
  29. </div>
  30. </div>
  31. <div ng-if="ctrl.step === 2">
  32. <h3 class="section-heading">
  33. Options
  34. </h3>
  35. <div class="gf-form-group">
  36. <div class="gf-form-inline">
  37. <div class="gf-form gf-form--grow">
  38. <label class="gf-form-label width-15">Title</label>
  39. <input type="text" class="gf-form-input" ng-model="ctrl.dash.title" give-focus="true" ng-change="ctrl.titleChanged()" ng-class="{'validation-error': ctrl.nameExists}">
  40. <label class="gf-form-label text-success" ng-if="!ctrl.nameExists">
  41. <i class="fa fa-check"></i>
  42. </label>
  43. </div>
  44. </div>
  45. <div class="gf-form-inline" ng-if="ctrl.nameExists">
  46. <div class="gf-form offset-width-15 gf-form--grow">
  47. <label class="gf-form-label text-warning gf-form-label--grow">
  48. <i class="fa fa-warning"></i>
  49. A Dashboard with the same name already exists
  50. </label>
  51. </div>
  52. </div>
  53. <div ng-repeat="input in ctrl.inputs">
  54. <div class="gf-form">
  55. <label class="gf-form-label width-15">{{input.label}}</label>
  56. <div class="gf-form-select-wrapper" style="width: 100%">
  57. <select class="gf-form-input" ng-model="input.value" ng-options="v.value as v.text for v in input.options" ng-change="ctrl.inputValueChanged()"></select>
  58. </div>
  59. <label class="gf-form-label text-success" ng-show="input.value">
  60. <i class="fa fa-check"></i>
  61. </label>
  62. </div>
  63. <div class="gf-form offset-width-15 gf-form--grow">
  64. <label class="gf-form-label gf-form-label--grow" ng-show="input.info">
  65. <i class="fa fa-info-circle"></i>
  66. {{input.info}}
  67. </label>
  68. <label class="gf-form-label gf-form-label--grow" ng-show="input.error">
  69. <i class="fa fa-info-circle"></i>
  70. {{input.info}}
  71. </label>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="gf-form-button-row">
  76. <button type="button" class="btn gf-form-btn width-10" ng-click="ctrl.saveDashboard()" ng-class="{'btn-danger': ctrl.nameExists, 'btn-success': !ctrl.nameExists}" ng-disabled="!ctrl.inputsValid">
  77. <i class="fa fa-save"></i> Save &amp; Open
  78. </button>
  79. <a class="btn btn-link" ng-click="dismiss()">Cancel</a>
  80. </div>
  81. </div>
  82. </div>
  83. </div>