index.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html ng-app="app">
  3. <head>
  4. <script src="js/angular.min.js"></script>
  5. <script src="js/app.js"></script>
  6. <link href="styles.css" rel="stylesheet" type="text/css"></link>
  7. <meta name="viewport" content="width=device-width, initial-scale=1">
  8. </head>
  9. <body>
  10. <div ng-controller="main">
  11. <h2>Search books</h2>
  12. <div class="form">
  13. <div>
  14. <label>Book</label>
  15. <input type="text" ng-model="book">
  16. </div>
  17. <div>
  18. <label>Extension</label>
  19. <input type="text" ng-model="extension">
  20. </div>
  21. <input type="button" value="search" ng-click="searchBook(book,extension)">
  22. </div>
  23. <div class="content">
  24. <div class="tabs">
  25. <ul>
  26. <li ng-class="{active:isActiveTab('SEARCH')}" ng-click="changeTab('SEARCH')">Search</li>
  27. <li ng-class="{active:isActiveTab('RESULTS')}" ng-click="changeTab('RESULTS'); newElement(false)">Results <label ng-show="new" class="new-item">&#x21;</label></li>
  28. </ul>
  29. </div>
  30. <div class="tab-content">
  31. <div class="search" id="SEARCH" ng-show="activeTab==='SEARCH'">
  32. <table>
  33. <thead>
  34. <tr>
  35. <th></th>
  36. <th>Query</th>
  37. <th>Status</th>
  38. <th class="nomobile">Elapsed</th>
  39. <th class="output">Output</th>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. <tr ng-repeat="l in searchlist | filter:{TYPE:'SEARCH'} track by l.ID" ng-class="{'expanded':limit!=undefined}">
  44. <td><a ng-click="showMore(l)">{{limit[l.ID] ? '&#9650;' : '&#9660;'}}</a></td>
  45. <td> <span>{{l.QUERY}}</span> </td>
  46. <td> <label class="{{l.STATUS}}">{{l.STATUS}}</label> </td>
  47. <td class="nomobile"> <p ng-show="l.STATUS=='WAITING'|| l.STATUS=='DOWNLOADING'">{{l.ELAPSED}}</p> </td>
  48. <td>
  49. <i ng-show="l.STATUS=='DISCONNECTED'">Found {{l.OUT.length}} matches:</i>
  50. <ul>
  51. <li ng-repeat="o in l.OUT | limitTo:limit[l.ID]||5">
  52. <a ng-click="download(o.TEXT)">{{o.BOOK}} (<b>{{o.BOT}}</b>) <br/> <b>Tags</b>: {{o.TAGS}} <b>Info</b>: {{o.INFO}}</a>
  53. </li>
  54. </ul>
  55. </td>
  56. </tr>
  57. </tbody>
  58. </table>
  59. </div>
  60. <div class="results" id="RESULTS" ng-show="activeTab==='RESULTS'">
  61. <table>
  62. <thead>
  63. <tr>
  64. <th>Title</th>
  65. <th>Status</th>
  66. <th>Progress</th>
  67. <th class="nomobile">Elapsed</th>
  68. <th>Output</th>
  69. </tr>
  70. </thead>
  71. <tbody>
  72. <tr ng-repeat="l in results| filter:{TYPE:'BOOK'} track by l.ID" class="expanded">
  73. <td> <span>{{l.QUERY}}<span> </td>
  74. <td> <label class="{{l.STATUS}}">{{l.STATUS}}</label> </td>
  75. <td>
  76. <progress-bar progress="l.PROGRESS"></progress-bar>
  77. </td>
  78. <td class="nomobile"> <p ng-hide="l.STATUS=='DISCONNECTED'|| l.STATUS=='TIMED OUT'">{{l.ELAPSED}}</p> </td>
  79. <td>
  80. <ul>
  81. <li ng-repeat="o in l.OUT">
  82. <a ng-href="/backend/{{o}}" target="_blank">{{clean(o)}} &#8675;</a>
  83. </li>
  84. </ul>
  85. </td>
  86. </tr>
  87. </tbody>
  88. </table>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </body>
  94. </html>