index.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. <!DOCTYPE html>
  2. <html ng-app="ariaNg">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
  8. <meta name="description" content="AriaNg, a modern web frontend making aria2 easier to use.">
  9. <meta name="format-detection" content="telephone=no"/>
  10. <title>AriaNg Native</title>
  11. <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/>
  12. <link rel="stylesheet" href="../node_modules/font-awesome/css/font-awesome.min.css"/>
  13. <link rel="stylesheet" href="../node_modules/admin-lte/dist/css/AdminLTE.min.css"/>
  14. <link rel="stylesheet" href="../node_modules/sweetalert/dist/sweetalert.css"/>
  15. <link rel="stylesheet" href="../node_modules/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"/>
  16. <link rel="stylesheet" href="../node_modules/angular/angular-csp.css"/>
  17. <link rel="stylesheet" href="../node_modules/angular-ui-notification/dist/angular-ui-notification.min.css"/>
  18. <link rel="stylesheet" href="../node_modules/angular-busy/dist/angular-busy.min.css"/>
  19. <link rel="stylesheet" href="../node_modules/angular-input-dropdown/inputDropdownStyles.css"/>
  20. <link rel="stylesheet" href="../node_modules/angularjs-dragula/dist/dragula.min.css"/>
  21. <link rel="stylesheet" href="styles/core/core.css">
  22. <link rel="stylesheet" href="styles/core/extend.css">
  23. <link rel="stylesheet" href="styles/core/native-core.css">
  24. <link rel="stylesheet" href="styles/core/app-title.css">
  25. <link rel="stylesheet" href="styles/controls/global-status.css"/>
  26. <link rel="stylesheet" href="styles/controls/task-table.css"/>
  27. <link rel="stylesheet" href="styles/controls/settings-table.css"/>
  28. <link rel="stylesheet" href="styles/controls/new-task-table.css"/>
  29. <link rel="stylesheet" href="styles/controls/piece-bar-map.css"/>
  30. <link rel="stylesheet" href="styles/controls/chart.css"/>
  31. <link rel="stylesheet" href="styles/controls/angular-promise-buttons.css"/>
  32. <link rel="stylesheet" href="styles/controls/native-info-table.css"/>
  33. <link rel="stylesheet" href="styles/theme/default.css">
  34. <link rel="stylesheet" href="styles/theme/default-native.css">
  35. <link rel="stylesheet" href="styles/theme/default-dark.css">
  36. <link rel="stylesheet" href="styles/theme/default-dark-native.css">
  37. <link rel="stylesheet" href="styles/theme/default-app-title.css">
  38. </head>
  39. <body class="hold-transition skin-aria-ng sidebar-mini fixed ng-cloak"
  40. ng-class="{'custom-app-title': useCustomAppTitle}"
  41. ondragstart="return false;">
  42. <div id="dropzone" class="dropzone">
  43. <div id="dropzone-filezone" class="dropzone-filezone"></div>
  44. <div class="dropzone-tip-container">
  45. <div class="dropzone-tip-wrapper">
  46. <div class="dropzone-tip">
  47. <i class="fa fa-file-o"></i>
  48. <h3 translate>Create New Task</h3>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="wrapper" ng-controller="MainController" ng-swipe-left="swipeActions.leftSwipe()" ng-swipe-right="swipeActions.rightSwipe()" ng-swipe-disable-mouse>
  54. <header class="main-header">
  55. <div class="logo">
  56. <div class="logo-mini">AriaNg</div>
  57. <div class="logo-lg" title="AriaNg {{ariaNgVersion}}">
  58. <div class="dropdown">
  59. <span class="dropdown-toggle" data-toggle="dropdown">
  60. <span class="logo-lg-title">AriaNg</span><i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
  61. </span>
  62. <ul class="dropdown-menu dropdown-menu-right rpcselect-dropdown" role="menu">
  63. <li ng-repeat="setting in rpcSettings" ng-class="{'active': setting.isDefault}">
  64. <a class="pointer-cursor" ng-click="switchRpcSetting(setting)">
  65. <span ng-bind="(setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort)">RPC</span>
  66. <i class="fa" ng-class="{'fa-check': setting.isDefault}"></i>
  67. </a>
  68. </li>
  69. </ul>
  70. </div>
  71. </div>
  72. <div class="current-rpc pointer-cursor">
  73. <div class="dropdown">
  74. <span class="dropdown-toggle" data-toggle="dropdown">
  75. <span ng-bind="(currentRpcProfile.rpcAlias ? currentRpcProfile.rpcAlias : currentRpcProfile.rpcHost + ':' + currentRpcProfile.rpcPort)">RPC</span><i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
  76. </span>
  77. <ul class="dropdown-menu dropdown-menu-right rpcselect-dropdown" role="menu">
  78. <li ng-repeat="setting in rpcSettings" ng-class="{'active': setting.isDefault}">
  79. <a class="pointer-cursor" ng-click="switchRpcSetting(setting)">
  80. <span ng-bind="(setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort)">RPC</span>
  81. <i class="fa" ng-class="{'fa-check': setting.isDefault}"></i>
  82. </a>
  83. </li>
  84. </ul>
  85. </div>
  86. </div>
  87. </div>
  88. <nav id="window-title-bar" class="navbar navbar-static-top" role="navigation">
  89. <div class="navbar-app-title pull-right"></div>
  90. <div class="navbar-toolbar">
  91. <ul class="nav navbar-nav">
  92. <li>
  93. <a class="toolbar" title="{{'New' | translate}}" ng-href="#!/new">
  94. <i class="fa fa-plus"></i>
  95. <span translate>New</span>
  96. </a>
  97. </li>
  98. <li class="divider"></li>
  99. <li class="disabled" ng-class="{'disabled': !isSpecifiedTaskSelected('paused')}">
  100. <a class="toolbar" title="{{'Start' | translate}}" ng-click="changeTasksState('start')">
  101. <i class="fa fa-play"></i>
  102. </a>
  103. </li>
  104. <li class="disabled" ng-class="{'disabled': !isSpecifiedTaskSelected('active', 'waiting')}">
  105. <a class="toolbar" title="{{'Pause' | translate}}" ng-click="changeTasksState('pause')">
  106. <i class="fa fa-pause"></i>
  107. </a>
  108. </li>
  109. <li class="disabled" ng-class="{'disabled': !isTaskSelected() && !isSpecifiedTaskShowing('complete', 'error', 'removed')}">
  110. <a class="toolbar dropdown-toggle" data-toggle="dropdown" title="{{'Delete' | translate}}">
  111. <i class="fa fa-trash-o"></i>
  112. <i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
  113. </a>
  114. <ul class="dropdown-menu" role="menu">
  115. <li ng-if="isTaskSelected()">
  116. <a class="pointer-cursor" ng-click="removeTasks()">
  117. <span translate>Remove Task</span>
  118. </a>
  119. </li>
  120. <li ng-if="taskContext.enableSelectAll && isSpecifiedTaskShowing('complete', 'error', 'removed')">
  121. <a class="pointer-cursor" ng-click="clearStoppedTasks()">
  122. <span translate>Clear Stopped Tasks</span>
  123. </a>
  124. </li>
  125. </ul>
  126. </li>
  127. <li class="divider"></li>
  128. <li class="disabled" ng-class="{'disabled': !taskContext.enableSelectAll || !taskContext.list || taskContext.list.length < 1}">
  129. <a class="toolbar" title="{{'Select All' | translate}}" ng-click="selectAllTasks()">
  130. <i class="fa fa-th-large"></i>
  131. </a>
  132. </li>
  133. <li class="disabled" ng-class="{'disabled': !taskContext.enableSelectAll || !taskContext.list || taskContext.list.length < 1}">
  134. <a class="toolbar dropdown-toggle" data-toggle="dropdown" title="{{'Display Order' | translate}}">
  135. <i class="fa fa-sort-alpha-asc"></i>
  136. <i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
  137. </a>
  138. <ul class="dropdown-menu" role="menu">
  139. <li>
  140. <a class="pointer-cursor" ng-click="changeDisplayOrder('default:asc')">
  141. <span translate>Default</span>
  142. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('default')}"></i>
  143. </a>
  144. </li>
  145. <li>
  146. <a class="pointer-cursor" ng-click="changeDisplayOrder('name:asc')">
  147. <span translate>By File Name</span>
  148. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('name')}"></i>
  149. </a>
  150. </li>
  151. <li>
  152. <a class="pointer-cursor" ng-click="changeDisplayOrder('size:asc')">
  153. <span translate>By File Size</span>
  154. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('size')}"></i>
  155. </a>
  156. </li>
  157. <li>
  158. <a class="pointer-cursor" ng-click="changeDisplayOrder('percent:desc')">
  159. <span translate>By Progress</span>
  160. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('percent')}"></i>
  161. </a>
  162. </li>
  163. <li>
  164. <a class="pointer-cursor" ng-click="changeDisplayOrder('remain:asc')">
  165. <span translate>By Remaining</span>
  166. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('remain')}"></i>
  167. </a>
  168. </li>
  169. <li>
  170. <a class="pointer-cursor" ng-click="changeDisplayOrder('dspeed:desc')">
  171. <span translate>By Download Speed</span>
  172. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('dspeed')}"></i>
  173. </a>
  174. </li>
  175. <li>
  176. <a class="pointer-cursor" ng-click="changeDisplayOrder('uspeed:desc')">
  177. <span translate>By Upload Speed</span>
  178. <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('uspeed')}"></i>
  179. </a>
  180. </li>
  181. </ul>
  182. </li>
  183. <li class="divider"></li>
  184. <li>
  185. <a class="toolbar" title="{{'Help' | translate}}" ng-click="openProjectLink()" target="_blank">
  186. <i class="fa fa-question-circle-o"></i>
  187. </a>
  188. </li>
  189. </ul>
  190. </div>
  191. <div class="navbar-searchbar hidden-xs">
  192. <ul class="nav navbar-nav">
  193. <li>
  194. <input id="search-box" class="form-control" type="text"
  195. ng-placeholder="('Search' | translate)"
  196. title="{{'Search' | translate}}"
  197. ng-model="searchContext.text" />
  198. <div class="form-control-icon">
  199. <span class="fa fa-search form-control-feedback"></span>
  200. </div>
  201. </li>
  202. </ul>
  203. </div>
  204. </nav>
  205. </header>
  206. <aside class="main-sidebar">
  207. <section class="sidebar">
  208. <ul id="siderbar-menu" class="sidebar-menu" data-widget="tree" data-animation-speed="300">
  209. <li class="header" translate>Download</li>
  210. <li data-href-match="/downloading">
  211. <a href="#!/downloading"><i class="fa fa-arrow-circle-o-down"></i> <span ng-bind="('Downloading' | translate) + (globalStat && globalStat.numActive > 0 ? ' (' + globalStat.numActive + ')' : '')">Downloading</span></a>
  212. </li>
  213. <li data-href-match="/waiting">
  214. <a href="#!/waiting"><i class="fa fa-clock-o"></i> <span ng-bind="('Waiting' | translate) + (globalStat && globalStat.numWaiting > 0 ? ' (' + globalStat.numWaiting + ')' : '')">Waiting</span></a>
  215. </li>
  216. <li data-href-match="/stopped">
  217. <a href="#!/stopped"><i class="fa fa-check-circle-o"></i> <span ng-bind="('Finished / Stopped' | translate) + (globalStat && globalStat.numStopped > 0 ? ' (' + globalStat.numStopped + ')' : '')">Finished / Stopped</span></a>
  218. </li>
  219. <li class="header" translate>Settings</li>
  220. <li data-href-match="/settings/ariang">
  221. <a href="#!/settings/ariang"><i class="fa fa-cog"></i> <span translate>AriaNg Settings</span></a>
  222. </li>
  223. <li class="treeview">
  224. <a href="javascript:void(0);">
  225. <i class="fa fa-cogs"></i>
  226. <span translate>Aria2 Settings</span>
  227. <span class="pull-right-container">
  228. <i class="fa fa-angle-left pull-right"></i>
  229. </span>
  230. </a>
  231. <ul class="treeview-menu">
  232. <li data-href-match="/settings/aria2/basic">
  233. <a href="#!/settings/aria2/basic"> <span translate>Basic Settings</span></a>
  234. </li>
  235. <li data-href-match="/settings/aria2/http-ftp-sftp">
  236. <a href="#!/settings/aria2/http-ftp-sftp"> <span translate>HTTP/FTP/SFTP Settings</span></a>
  237. </li>
  238. <li data-href-match="/settings/aria2/http">
  239. <a href="#!/settings/aria2/http"> <span translate>HTTP Settings</span></a>
  240. </li>
  241. <li data-href-match="/settings/aria2/ftp-sftp">
  242. <a href="#!/settings/aria2/ftp-sftp"> <span translate>FTP/SFTP Settings</span></a>
  243. </li>
  244. <li data-href-match="/settings/aria2/bt">
  245. <a href="#!/settings/aria2/bt"> <span translate>BitTorrent Settings</span></a>
  246. </li>
  247. <li data-href-match="/settings/aria2/metalink">
  248. <a href="#!/settings/aria2/metalink"> <span translate>Metalink Settings</span></a>
  249. </li>
  250. <li data-href-match="/settings/aria2/rpc">
  251. <a href="#!/settings/aria2/rpc"> <span translate>RPC Settings</span></a>
  252. </li>
  253. <li data-href-match="/settings/aria2/advanced">
  254. <a href="#!/settings/aria2/advanced"> <span translate>Advanced Settings</span></a>
  255. </li>
  256. </ul>
  257. </li>
  258. <li class="ng-cloak" data-href-match="/debug" ng-if="enableDebugMode()">
  259. <a href="#!/debug"><i class="fa fa-wrench"></i> <span translate>AriaNg Debug Console</span></a>
  260. </li>
  261. <li data-href-match="/status">
  262. <a href="#!/status">
  263. <span class="label status-label pull-right auto-ellipsis" ng-if="globalStatusContext.isEnabled || isCurrentRpcUseWebSocket" ng-class="{'label-primary': taskContext.rpcStatus === 'Connecting' || taskContext.rpcStatus === 'Reconnecting', 'label-default': taskContext.rpcStatus === 'Waiting to reconnect', 'label-success': taskContext.rpcStatus === 'Connected', 'label-danger': taskContext.rpcStatus === 'Disconnected'}" ng-bind="taskContext.rpcStatus | translate"></span>
  264. <i class="fa fa-server"></i> <span translate>Aria2 Status</span>
  265. </a>
  266. </li>
  267. </ul>
  268. </section>
  269. </aside>
  270. <div id="content-wrapper" class="content-wrapper">
  271. <div id="content-body" class="content-body">
  272. <div ng-view cg-busy="{ promise: loadPromise, message: ('Loading' | translate) }"></div>
  273. </div>
  274. </div>
  275. <footer class="main-footer">
  276. <nav class="navbar" role="navigation">
  277. <div class="navbar-toolbar">
  278. <ul class="nav navbar-nav">
  279. <!--AriaNg Native hides the navigation toggle-->
  280. <!-- <li>-->
  281. <!-- <a data-toggle="push-menu" role="button" title="{{'Toggle Navigation' | translate}}">-->
  282. <!-- <i class="fa fa-bars"></i>-->
  283. <!-- </a>-->
  284. <!-- </li>-->
  285. <!-- <li class="divider"></li>-->
  286. <li class="dropup">
  287. <a class="dropdown-toggle" data-toggle="dropdown" role="button" title="{{'Shortcut' | translate}}">
  288. <i class="fa fa-wrench"></i>
  289. <span translate>Shortcut</span>
  290. <i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
  291. </a>
  292. <ul class="dropdown-menu" role="menu">
  293. <li>
  294. <a class="pointer-cursor" ng-click="showQuickSettingDialog('globalSpeedLimit', 'Global Rate Limit')">
  295. <span translate>Global Rate Limit</span>
  296. </a>
  297. </li>
  298. </ul>
  299. </li>
  300. </ul>
  301. </div>
  302. <div class="pull-right ng-cloak" ng-if="globalStatusContext.isEnabled">
  303. <a class="global-status" title="{{('Click to pin' | translate)}}"
  304. ng-pop-chart ng-data="globalStatusContext.data" ng-theme="currentTheme"
  305. ng-container="body" ng-placement="top" ng-trigger="click hover" ng-popover-class="global-status-chart">
  306. <span class="realtime-speed">
  307. <i class="icon-download fa fa-arrow-down"></i>
  308. <span ng-bind="(globalStat.downloadSpeed | readableVolume) + '/s'"></span>
  309. </span>
  310. <span class="realtime-speed">
  311. <i class="icon-upload fa fa-arrow-up"></i>
  312. <span ng-bind="(globalStat.uploadSpeed | readableVolume) + '/s'"></span>
  313. </span>
  314. </a>
  315. </div>
  316. </nav>
  317. </footer>
  318. <ng-setting-dialog setting="quickSettingContext"></ng-setting-dialog>
  319. </div>
  320. <audio id="background-audio" style="display: none"></audio>
  321. <script>
  322. if (window.require) {
  323. window.nodeRequire = require;
  324. delete window.require;
  325. delete window.exports;
  326. delete window.module;
  327. }
  328. </script>
  329. <script src="../node_modules/jquery/dist/jquery.min.js"></script>
  330. <script src="../node_modules/angular/angular.min.js"></script>
  331. <script src="../node_modules/angular-route/angular-route.min.js"></script>
  332. <script src="../node_modules/angular-sanitize/angular-sanitize.min.js"></script>
  333. <script src="../node_modules/angular-touch/angular-touch.min.js"></script>
  334. <script src="../node_modules/angular-messages/angular-messages.min.js"></script>
  335. <script src="../node_modules/angular-cookies/angular-cookies.min.js"></script>
  336. <script src="../node_modules/angular-animate/angular-animate.min.js"></script>
  337. <script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
  338. <script src="../node_modules/moment/min/moment.min.js"></script>
  339. <script src="../node_modules/moment/locale/zh-cn.js"></script>
  340. <script src="../node_modules/moment/locale/zh-tw.js"></script>
  341. <script src="../node_modules/echarts/dist/echarts.common.min.js"></script>
  342. <script src="../node_modules/admin-lte/dist/js/adminlte.js"></script>
  343. <script src="../node_modules/jquery-slimscroll/jquery.slimscroll.min.js"></script>
  344. <script src="../node_modules/sweetalert/dist/sweetalert.min.js"></script>
  345. <script src="../node_modules/bootstrap-contextmenu/bootstrap-contextmenu.js"></script>
  346. <script src="../node_modules/natural-compare/index.js"></script>
  347. <script src="../node_modules/angular-translate/dist/angular-translate.min.js"></script>
  348. <script src="../node_modules/angular-moment/angular-moment.min.js"></script>
  349. <script src="../node_modules/angular-websocket/dist/angular-websocket.min.js"></script>
  350. <script src="../node_modules/angular-utf8-base64/angular-utf8-base64.js"></script>
  351. <script src="../node_modules/angular-local-storage/dist/angular-local-storage.min.js"></script>
  352. <script src="../node_modules/angular-ui-notification/dist/angular-ui-notification.min.js"></script>
  353. <script src="../node_modules/angular-bittorrent-peerid/angular-bittorrent-peerid.min.js"></script>
  354. <script src="../node_modules/angular-busy/dist/angular-busy.min.js"></script>
  355. <script src="../node_modules/angular-promise-buttons/dist/angular-promise-buttons.min.js"></script>
  356. <script src="../node_modules/angular-clipboard/angular-clipboard.js"></script>
  357. <script src="../node_modules/angular-input-dropdown/inputDropdown.js"></script>
  358. <script src="../node_modules/angularjs-dragula/dist/angularjs-dragula.min.js"></script>
  359. <script src="../node_modules/angular-sweetalert/SweetAlert.js"></script>
  360. <script src="scripts/core/__core.js"></script>
  361. <script src="scripts/core/__fix.js"></script>
  362. <script src="scripts/core/app.js"></script>
  363. <script src="scripts/core/router.js"></script>
  364. <script src="scripts/core/root.js"></script>
  365. <script src="scripts/config/constants.js"></script>
  366. <script src="scripts/config/configuration.js"></script>
  367. <script src="scripts/config/fileTypes.js"></script>
  368. <script src="scripts/config/initiator.js"></script>
  369. <script src="scripts/config/languages.js"></script>
  370. <script src="scripts/config/defaultLanguage.js"></script>
  371. <script src="scripts/config/aria2Options.js"></script>
  372. <script src="scripts/config/aria2Errors.js"></script>
  373. <script src="scripts/config/aria2RpcConstants.js"></script>
  374. <script src="scripts/controllers/command.js"></script>
  375. <script src="scripts/controllers/debug.js"></script>
  376. <script src="scripts/controllers/main.js"></script>
  377. <script src="scripts/controllers/new.js"></script>
  378. <script src="scripts/controllers/list.js"></script>
  379. <script src="scripts/controllers/task-detail.js"></script>
  380. <script src="scripts/controllers/settings-ariang.js"></script>
  381. <script src="scripts/controllers/settings-aria2.js"></script>
  382. <script src="scripts/controllers/status.js"></script>
  383. <script src="scripts/directives/autoFocus.js"></script>
  384. <script src="scripts/directives/pieceBar.js"></script>
  385. <script src="scripts/directives/pieceMap.js"></script>
  386. <script src="scripts/directives/chart.js"></script>
  387. <script src="scripts/directives/exportCommandApiDialog.js"></script>
  388. <script src="scripts/directives/indeterminate.js"></script>
  389. <script src="scripts/directives/placeholder.js"></script>
  390. <script src="scripts/directives/setting.js"></script>
  391. <script src="scripts/directives/settingDialog.js"></script>
  392. <script src="scripts/directives/tooltip.js"></script>
  393. <script src="scripts/directives/validUrls.js"></script>
  394. <script src="scripts/directives/blobDownload.js"></script>
  395. <script src="scripts/filters/dateDuration.js"></script>
  396. <script src="scripts/filters/fileOrderBy.js"></script>
  397. <script src="scripts/filters/logOrderBy.js"></script>
  398. <script src="scripts/filters/longDate.js"></script>
  399. <script src="scripts/filters/peerOrderBy.js"></script>
  400. <script src="scripts/filters/percent.js"></script>
  401. <script src="scripts/filters/reverse.js"></script>
  402. <script src="scripts/filters/taskOrderBy.js"></script>
  403. <script src="scripts/filters/taskStatus.js"></script>
  404. <script src="scripts/filters/timeDisplayName.js"></script>
  405. <script src="scripts/filters/volume.js"></script>
  406. <script src="scripts/services/ariaNgAssetsCacheService.js"></script>
  407. <script src="scripts/services/ariaNgLanguageLoader.js"></script>
  408. <script src="scripts/services/ariaNgCommonService.js"></script>
  409. <script src="scripts/services/ariaNgKeyboardService.js"></script>
  410. <script src="scripts/services/ariaNgNotificationService.js"></script>
  411. <script src="scripts/services/ariaNgLocalizationService.js"></script>
  412. <script src="scripts/services/ariaNgLogService.js"></script>
  413. <script src="scripts/services/ariaNgStorageService.js"></script>
  414. <script src="scripts/services/ariaNgFileService.js"></script>
  415. <script src="scripts/services/ariaNgSettingService.js"></script>
  416. <script src="scripts/services/ariaNgMonitorService.js"></script>
  417. <script src="scripts/services/ariaNgTitleService.js"></script>
  418. <script src="scripts/services/ariaNgVersionService.js"></script>
  419. <script src="scripts/services/aria2HttpRpcService.js"></script>
  420. <script src="scripts/services/aria2WebSocketRpcService.js"></script>
  421. <script src="scripts/services/aria2RpcService.js"></script>
  422. <script src="scripts/services/aria2TaskService.js"></script>
  423. <script src="scripts/services/aria2SettingService.js"></script>
  424. <script src="scripts/services/ariaNgNativeElectronService.js"></script>
  425. </body>
  426. </html>