module.html 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <div class="h4 well"> autossh </div>
  2. <div class="row">
  3. <div class="col-md-4">
  4. <div class="panel panel-default" style="min-height:226.5px" ng-controller="autosshMainCtrl">
  5. <div class="panel-heading">
  6. <h3 class="panel-title">
  7. Control
  8. </h3>
  9. </div>
  10. <div class="panel-body">
  11. <table class="table">
  12. <tbody>
  13. <tr class="form-inline">
  14. <td class="text-muted">autossh</td>
  15. <td>
  16. <div class="hidden-xs">
  17. <button ng-show="isRunning" type="button" class="btn btn-sm btn-danger pull-right" ng-click="stopAutossh()">Stop</button>
  18. <button ng-hide="isRunning" type="button" class="btn btn-sm btn-primary pull-right" ng-click="startAutossh()">Start</button>
  19. </div>
  20. <div class="visible-xs">
  21. <button ng-show="isRunning" type="button" class="btn btn-lg btn-danger pull-right" ng-click="stopAutossh()">Stop</button>
  22. <button ng-hide="isRunning" type="button" class="btn btn-lg btn-primary pull-right" ng-click="startAutossh()">Start</button>
  23. </div>
  24. </td>
  25. </tr>
  26. <tr>
  27. <td class="text-muted">Autostart</td>
  28. <td>
  29. <div class="btn-group pull-right">
  30. <div class="hidden-xs">
  31. <button ng-click="enableAutossh()" ng-class="!isEnabled ? 'btn-default' : 'btn-success'" class="btn btn-sm">I</button>
  32. <button ng-click="disableAutossh()" ng-class="!isEnabled ? 'btn-danger' : 'btn-default'" class="btn btn-sm">0</button>
  33. </div>
  34. <div class="visible-xs">
  35. <button ng-click="enableAutossh()" ng-class="!isEnabled ? 'btn-default' : 'btn-success'" class="btn btn-lg">I</button>
  36. <button ng-click="disableAutossh()" ng-class="!isEnabled ? 'btn-danger' : 'btn-default'" class="btn btn-lg">0</button>
  37. </div>
  38. </div>
  39. </td>
  40. </tr>
  41. </tbody>
  42. </table>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="col-md-8">
  47. <div class="panel panel-default" ng-controller="autosshConfCtrl">
  48. <div class="panel-heading">
  49. <h3 class="panel-title">
  50. Configure
  51. </h3>
  52. </div>
  53. <div class="panel-body">
  54. <form class="form-horizontal" ng-submit="writeConf()">
  55. <div class="row" style="margin-bottom: 1.4em">
  56. <div class="col-md-12">
  57. <div class="col-md-3">
  58. <label>User</label>
  59. <input type="text" class="form-control" placeholder="Username" ng-model=formData.user>
  60. </div>
  61. <div class="col-md-6">
  62. <label>Host</label>
  63. <input type="text" class="form-control" placeholder="Hostname or IP" ng-model=formData.host>
  64. </div>
  65. <div class="col-md-3">
  66. <label>Port</label>
  67. <input type="text" class="form-control" placeholder="Remote SSH Port" ng-model=formData.port>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="row" style="margin-bottom: 1.4em">
  72. <div class="col-md-12">
  73. <div class="col-md-4">
  74. <label>Remote Port</label>
  75. <input type="text" class="form-control" placeholder="Remote Listening Port" ng-model=formData.rport>
  76. </div>
  77. <div class="col-md-4">
  78. <label>Local Port</label>
  79. <input type="text" class="form-control" placeholder="Local SSH Port" ng-model=formData.lport>
  80. </div>
  81. <div class="hidden-xs">
  82. <div class="col-md-2" style="margin-top: 1.8em;">
  83. <button type="submit" class="btn btn-primary btn-block">
  84. Save
  85. <img ng-show="savingConf" src="img/throbber.gif" class="ng-hide">
  86. </button>
  87. </div>
  88. <div class="col-md-2" style="margin-top: 1.8em;">
  89. <button type="button" ng-click="resetConf()" class="btn btn-danger btn-block">Reset</button>
  90. </div>
  91. </div>
  92. <div class="visible-xs">
  93. <div class="col-md-2" style="margin-top: 1.8em;">
  94. <button type="submit" class="btn btn-primary btn-lg btn-block">
  95. Save
  96. <img ng-show="savingConf" src="img/throbber.gif" class="ng-hide">
  97. </button>
  98. </div>
  99. <div class="col-md-2" style="margin-top: 1.8em;">
  100. <button type="button" ng-click="resetConf()" class="btn btn-danger btn-lg btn-block">Reset</button>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </form>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <div class="form-group hidden-xs hidden-sm">
  111. <samp class="input-group">
  112. <span class="input-group-addon input-sm">Command that runs</span>
  113. <input type="text" class="form-control input-sm" value="{{cmdThatRuns}}" disabled>
  114. </samp>
  115. </div>
  116. <div class="row">
  117. <div class="col-md-12">
  118. <div class="panel panel-default" ng-controller="firstRunCtrl">
  119. <div class="panel-heading" data-toggle="collapse" data-target="#first-run" href="#first-run">
  120. <h3 class="panel-title">
  121. Additional Configuration
  122. </h3>
  123. </div>
  124. <div class="panel-body collapse" id="first-run">
  125. <div class="col-md-6">
  126. <div class="key-pair" ng-hide="pubKey">
  127. <div class="h4"> Generate Key Pairs </div>
  128. <button ng-click="createSshKey()" type="button" class="btn btn-primary" ng-disabled="generatingKeys">
  129. Generate
  130. </button>
  131. <img ng-show="generatingKeys" src="img/throbber.gif" class="ng-hide">
  132. </div>
  133. <div class="key-pair " ng-show="pubKey" ng-show="pubKey">
  134. <div class="h4"> Your Public Key </div>
  135. <pre style="white-space:normal;min-height: 165px">{{pubKey}}</pre>
  136. <button type="button" class="btn btn-block btn-danger" ng-click="deleteKey()">Delete/Regenerate Keys</button>
  137. <br>
  138. <div class="hidden-xs hidden-sm">
  139. <div class="h4"> Append it to your server </div>
  140. <div class="h5"> SSH into the Nano and run this command </div>
  141. <pre style="white-space:normal">
  142. {{sshCopyCommand}}
  143. </pre>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="col-md-6 hidden-xs hidden-sm">
  148. <div class="h4"> Known Hosts </div>
  149. <div class="h5" ng-hide="knownHosts"> Save a configuration above to append to known_hosts. Must have an internet connection. </div>
  150. <pre id="hosts" ng-show="knownHosts" style="white-space:pre;min-height: 165px">{{knownHosts}}</pre>
  151. </div>
  152. <hr>
  153. <div class="col-md-12 hidden-xs hidden-sm">
  154. <hr>
  155. </div>
  156. <div class="col-md-12">
  157. <div class="h4">
  158. Additional Definitions
  159. </div>
  160. <dl class="col-md-12">
  161. <dt>Hostname or IP</dt>
  162. <dd>The URL or IP address of the SSH server you want to connect to</dd>
  163. <br>
  164. <dt>Port</dt>
  165. <dd>The port that the Host above is using to listen for SSH connection requests on. 22 unless one's changed it in sshd on the Host</dd>
  166. <br>
  167. <dt>Remote (Listening) Port</dt>
  168. <dd>The port on the Host that will lead back to the Pineapple's Local SSH Port</dd>
  169. <br>
  170. <dt>Local SSH Port</dt>
  171. <dd>The Pineapples SSH Port. 22 unless one's changed it</dd>
  172. <br>
  173. <dt>Hostname or IP</dt>
  174. <dd>The URL or IP address of the SSH server you want to connect to</dd>
  175. </dl>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>