| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434 |
- <!DOCTYPE html>
- <html ng-app="ariaNg">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
- <meta name="description" content="AriaNg, a modern web frontend making aria2 easier to use.">
- <meta name="format-detection" content="telephone=no"/>
- <title>AriaNg Native</title>
- <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/>
- <link rel="stylesheet" href="../node_modules/font-awesome/css/font-awesome.min.css"/>
- <link rel="stylesheet" href="../node_modules/admin-lte/dist/css/AdminLTE.min.css"/>
- <link rel="stylesheet" href="../node_modules/sweetalert/dist/sweetalert.css"/>
- <link rel="stylesheet" href="../node_modules/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"/>
- <link rel="stylesheet" href="../node_modules/angular/angular-csp.css"/>
- <link rel="stylesheet" href="../node_modules/angular-ui-notification/dist/angular-ui-notification.min.css"/>
- <link rel="stylesheet" href="../node_modules/angular-busy/dist/angular-busy.min.css"/>
- <link rel="stylesheet" href="../node_modules/angular-input-dropdown/inputDropdownStyles.css"/>
- <link rel="stylesheet" href="../node_modules/angularjs-dragula/dist/dragula.min.css"/>
- <link rel="stylesheet" href="styles/core/core.css">
- <link rel="stylesheet" href="styles/core/extend.css">
- <link rel="stylesheet" href="styles/core/native-core.css">
- <link rel="stylesheet" href="styles/core/app-title.css">
- <link rel="stylesheet" href="styles/controls/global-status.css"/>
- <link rel="stylesheet" href="styles/controls/task-table.css"/>
- <link rel="stylesheet" href="styles/controls/settings-table.css"/>
- <link rel="stylesheet" href="styles/controls/new-task-table.css"/>
- <link rel="stylesheet" href="styles/controls/piece-bar-map.css"/>
- <link rel="stylesheet" href="styles/controls/chart.css"/>
- <link rel="stylesheet" href="styles/controls/angular-promise-buttons.css"/>
- <link rel="stylesheet" href="styles/controls/native-info-table.css"/>
- <link rel="stylesheet" href="styles/theme/default.css">
- <link rel="stylesheet" href="styles/theme/default-native.css">
- <link rel="stylesheet" href="styles/theme/default-dark.css">
- <link rel="stylesheet" href="styles/theme/default-dark-native.css">
- <link rel="stylesheet" href="styles/theme/default-app-title.css">
- </head>
- <body class="hold-transition skin-aria-ng sidebar-mini fixed ng-cloak"
- ng-class="{'custom-app-title': useCustomAppTitle}"
- ondragstart="return false;">
- <div id="dropzone" class="dropzone">
- <div id="dropzone-filezone" class="dropzone-filezone"></div>
- <div class="dropzone-tip-container">
- <div class="dropzone-tip-wrapper">
- <div class="dropzone-tip">
- <i class="fa fa-file-o"></i>
- <h3 translate>Create New Task</h3>
- </div>
- </div>
- </div>
- </div>
- <div class="wrapper" ng-controller="MainController" ng-swipe-left="swipeActions.leftSwipe()" ng-swipe-right="swipeActions.rightSwipe()" ng-swipe-disable-mouse>
- <header class="main-header">
- <div class="logo">
- <div class="logo-mini">AriaNg</div>
- <div class="logo-lg" title="AriaNg {{ariaNgVersion}}">
- <div class="dropdown">
- <span class="dropdown-toggle" data-toggle="dropdown">
- <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>
- </span>
- <ul class="dropdown-menu dropdown-menu-right rpcselect-dropdown" role="menu">
- <li ng-repeat="setting in rpcSettings" ng-class="{'active': setting.isDefault}">
- <a class="pointer-cursor" ng-click="switchRpcSetting(setting)">
- <span ng-bind="(setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort)">RPC</span>
- <i class="fa" ng-class="{'fa-check': setting.isDefault}"></i>
- </a>
- </li>
- </ul>
- </div>
- </div>
- <div class="current-rpc pointer-cursor">
- <div class="dropdown">
- <span class="dropdown-toggle" data-toggle="dropdown">
- <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>
- </span>
- <ul class="dropdown-menu dropdown-menu-right rpcselect-dropdown" role="menu">
- <li ng-repeat="setting in rpcSettings" ng-class="{'active': setting.isDefault}">
- <a class="pointer-cursor" ng-click="switchRpcSetting(setting)">
- <span ng-bind="(setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort)">RPC</span>
- <i class="fa" ng-class="{'fa-check': setting.isDefault}"></i>
- </a>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <nav id="window-title-bar" class="navbar navbar-static-top" role="navigation">
- <div class="navbar-app-title pull-right"></div>
- <div class="navbar-toolbar">
- <ul class="nav navbar-nav">
- <li>
- <a class="toolbar" title="{{'New' | translate}}" ng-href="#!/new">
- <i class="fa fa-plus"></i>
- <span translate>New</span>
- </a>
- </li>
- <li class="divider"></li>
- <li class="disabled" ng-class="{'disabled': !isSpecifiedTaskSelected('paused')}">
- <a class="toolbar" title="{{'Start' | translate}}" ng-click="changeTasksState('start')">
- <i class="fa fa-play"></i>
- </a>
- </li>
- <li class="disabled" ng-class="{'disabled': !isSpecifiedTaskSelected('active', 'waiting')}">
- <a class="toolbar" title="{{'Pause' | translate}}" ng-click="changeTasksState('pause')">
- <i class="fa fa-pause"></i>
- </a>
- </li>
- <li class="disabled" ng-class="{'disabled': !isTaskSelected() && !isSpecifiedTaskShowing('complete', 'error', 'removed')}">
- <a class="toolbar dropdown-toggle" data-toggle="dropdown" title="{{'Delete' | translate}}">
- <i class="fa fa-trash-o"></i>
- <i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
- </a>
- <ul class="dropdown-menu" role="menu">
- <li ng-if="isTaskSelected()">
- <a class="pointer-cursor" ng-click="removeTasks()">
- <span translate>Remove Task</span>
- </a>
- </li>
- <li ng-if="taskContext.enableSelectAll && isSpecifiedTaskShowing('complete', 'error', 'removed')">
- <a class="pointer-cursor" ng-click="clearStoppedTasks()">
- <span translate>Clear Stopped Tasks</span>
- </a>
- </li>
- </ul>
- </li>
- <li class="divider"></li>
- <li class="disabled" ng-class="{'disabled': !taskContext.enableSelectAll || !taskContext.list || taskContext.list.length < 1}">
- <a class="toolbar" title="{{'Select All' | translate}}" ng-click="selectAllTasks()">
- <i class="fa fa-th-large"></i>
- </a>
- </li>
- <li class="disabled" ng-class="{'disabled': !taskContext.enableSelectAll || !taskContext.list || taskContext.list.length < 1}">
- <a class="toolbar dropdown-toggle" data-toggle="dropdown" title="{{'Display Order' | translate}}">
- <i class="fa fa-sort-alpha-asc"></i>
- <i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
- </a>
- <ul class="dropdown-menu" role="menu">
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('default:asc')">
- <span translate>Default</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('default')}"></i>
- </a>
- </li>
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('name:asc')">
- <span translate>By File Name</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('name')}"></i>
- </a>
- </li>
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('size:asc')">
- <span translate>By File Size</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('size')}"></i>
- </a>
- </li>
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('percent:desc')">
- <span translate>By Progress</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('percent')}"></i>
- </a>
- </li>
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('remain:asc')">
- <span translate>By Remaining</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('remain')}"></i>
- </a>
- </li>
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('dspeed:desc')">
- <span translate>By Download Speed</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('dspeed')}"></i>
- </a>
- </li>
- <li>
- <a class="pointer-cursor" ng-click="changeDisplayOrder('uspeed:desc')">
- <span translate>By Upload Speed</span>
- <i class="fa" ng-class="{'fa-check': isSetDisplayOrder('uspeed')}"></i>
- </a>
- </li>
- </ul>
- </li>
- <li class="divider"></li>
- <li>
- <a class="toolbar" title="{{'Help' | translate}}" ng-click="openProjectLink()" target="_blank">
- <i class="fa fa-question-circle-o"></i>
- </a>
- </li>
- </ul>
- </div>
- <div class="navbar-searchbar hidden-xs">
- <ul class="nav navbar-nav">
- <li>
- <input id="search-box" class="form-control" type="text"
- ng-placeholder="('Search' | translate)"
- title="{{'Search' | translate}}"
- ng-model="searchContext.text" />
- <div class="form-control-icon">
- <span class="fa fa-search form-control-feedback"></span>
- </div>
- </li>
- </ul>
- </div>
- </nav>
- </header>
- <aside class="main-sidebar">
- <section class="sidebar">
- <ul id="siderbar-menu" class="sidebar-menu" data-widget="tree" data-animation-speed="300">
- <li class="header" translate>Download</li>
- <li data-href-match="/downloading">
- <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>
- </li>
- <li data-href-match="/waiting">
- <a href="#!/waiting"><i class="fa fa-clock-o"></i> <span ng-bind="('Waiting' | translate) + (globalStat && globalStat.numWaiting > 0 ? ' (' + globalStat.numWaiting + ')' : '')">Waiting</span></a>
- </li>
- <li data-href-match="/stopped">
- <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>
- </li>
- <li class="header" translate>Settings</li>
- <li data-href-match="/settings/ariang">
- <a href="#!/settings/ariang"><i class="fa fa-cog"></i> <span translate>AriaNg Settings</span></a>
- </li>
- <li class="treeview">
- <a href="javascript:void(0);">
- <i class="fa fa-cogs"></i>
- <span translate>Aria2 Settings</span>
- <span class="pull-right-container">
- <i class="fa fa-angle-left pull-right"></i>
- </span>
- </a>
- <ul class="treeview-menu">
- <li data-href-match="/settings/aria2/basic">
- <a href="#!/settings/aria2/basic"> <span translate>Basic Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/http-ftp-sftp">
- <a href="#!/settings/aria2/http-ftp-sftp"> <span translate>HTTP/FTP/SFTP Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/http">
- <a href="#!/settings/aria2/http"> <span translate>HTTP Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/ftp-sftp">
- <a href="#!/settings/aria2/ftp-sftp"> <span translate>FTP/SFTP Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/bt">
- <a href="#!/settings/aria2/bt"> <span translate>BitTorrent Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/metalink">
- <a href="#!/settings/aria2/metalink"> <span translate>Metalink Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/rpc">
- <a href="#!/settings/aria2/rpc"> <span translate>RPC Settings</span></a>
- </li>
- <li data-href-match="/settings/aria2/advanced">
- <a href="#!/settings/aria2/advanced"> <span translate>Advanced Settings</span></a>
- </li>
- </ul>
- </li>
- <li class="ng-cloak" data-href-match="/debug" ng-if="enableDebugMode()">
- <a href="#!/debug"><i class="fa fa-wrench"></i> <span translate>AriaNg Debug Console</span></a>
- </li>
- <li data-href-match="/status">
- <a href="#!/status">
- <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>
- <i class="fa fa-server"></i> <span translate>Aria2 Status</span>
- </a>
- </li>
- </ul>
- </section>
- </aside>
- <div id="content-wrapper" class="content-wrapper">
- <div id="content-body" class="content-body">
- <div ng-view cg-busy="{ promise: loadPromise, message: ('Loading' | translate) }"></div>
- </div>
- </div>
- <footer class="main-footer">
- <nav class="navbar" role="navigation">
- <div class="navbar-toolbar">
- <ul class="nav navbar-nav">
- <!--AriaNg Native hides the navigation toggle-->
- <!-- <li>-->
- <!-- <a data-toggle="push-menu" role="button" title="{{'Toggle Navigation' | translate}}">-->
- <!-- <i class="fa fa-bars"></i>-->
- <!-- </a>-->
- <!-- </li>-->
- <!-- <li class="divider"></li>-->
- <li class="dropup">
- <a class="dropdown-toggle" data-toggle="dropdown" role="button" title="{{'Shortcut' | translate}}">
- <i class="fa fa-wrench"></i>
- <span translate>Shortcut</span>
- <i class="fa fa-caret-right fa-right-bottom fa-rotate-45 fa-half" aria-hidden="true"></i>
- </a>
- <ul class="dropdown-menu" role="menu">
- <li>
- <a class="pointer-cursor" ng-click="showQuickSettingDialog('globalSpeedLimit', 'Global Rate Limit')">
- <span translate>Global Rate Limit</span>
- </a>
- </li>
- </ul>
- </li>
- </ul>
- </div>
- <div class="pull-right ng-cloak" ng-if="globalStatusContext.isEnabled">
- <a class="global-status" title="{{('Click to pin' | translate)}}"
- ng-pop-chart ng-data="globalStatusContext.data" ng-theme="currentTheme"
- ng-container="body" ng-placement="top" ng-trigger="click hover" ng-popover-class="global-status-chart">
- <span class="realtime-speed">
- <i class="icon-download fa fa-arrow-down"></i>
- <span ng-bind="(globalStat.downloadSpeed | readableVolume) + '/s'"></span>
- </span>
- <span class="realtime-speed">
- <i class="icon-upload fa fa-arrow-up"></i>
- <span ng-bind="(globalStat.uploadSpeed | readableVolume) + '/s'"></span>
- </span>
- </a>
- </div>
- </nav>
- </footer>
- <ng-setting-dialog setting="quickSettingContext"></ng-setting-dialog>
- </div>
- <audio id="background-audio" style="display: none"></audio>
- <script>
- if (window.require) {
- window.nodeRequire = require;
- delete window.require;
- delete window.exports;
- delete window.module;
- }
- </script>
- <script src="../node_modules/jquery/dist/jquery.min.js"></script>
- <script src="../node_modules/angular/angular.min.js"></script>
- <script src="../node_modules/angular-route/angular-route.min.js"></script>
- <script src="../node_modules/angular-sanitize/angular-sanitize.min.js"></script>
- <script src="../node_modules/angular-touch/angular-touch.min.js"></script>
- <script src="../node_modules/angular-messages/angular-messages.min.js"></script>
- <script src="../node_modules/angular-cookies/angular-cookies.min.js"></script>
- <script src="../node_modules/angular-animate/angular-animate.min.js"></script>
- <script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
- <script src="../node_modules/moment/min/moment.min.js"></script>
- <script src="../node_modules/moment/locale/zh-cn.js"></script>
- <script src="../node_modules/moment/locale/zh-tw.js"></script>
- <script src="../node_modules/echarts/dist/echarts.common.min.js"></script>
- <script src="../node_modules/admin-lte/dist/js/adminlte.js"></script>
- <script src="../node_modules/jquery-slimscroll/jquery.slimscroll.min.js"></script>
- <script src="../node_modules/sweetalert/dist/sweetalert.min.js"></script>
- <script src="../node_modules/bootstrap-contextmenu/bootstrap-contextmenu.js"></script>
- <script src="../node_modules/natural-compare/index.js"></script>
- <script src="../node_modules/angular-translate/dist/angular-translate.min.js"></script>
- <script src="../node_modules/angular-moment/angular-moment.min.js"></script>
- <script src="../node_modules/angular-websocket/dist/angular-websocket.min.js"></script>
- <script src="../node_modules/angular-utf8-base64/angular-utf8-base64.js"></script>
- <script src="../node_modules/angular-local-storage/dist/angular-local-storage.min.js"></script>
- <script src="../node_modules/angular-ui-notification/dist/angular-ui-notification.min.js"></script>
- <script src="../node_modules/angular-bittorrent-peerid/angular-bittorrent-peerid.min.js"></script>
- <script src="../node_modules/angular-busy/dist/angular-busy.min.js"></script>
- <script src="../node_modules/angular-promise-buttons/dist/angular-promise-buttons.min.js"></script>
- <script src="../node_modules/angular-clipboard/angular-clipboard.js"></script>
- <script src="../node_modules/angular-input-dropdown/inputDropdown.js"></script>
- <script src="../node_modules/angularjs-dragula/dist/angularjs-dragula.min.js"></script>
- <script src="../node_modules/angular-sweetalert/SweetAlert.js"></script>
- <script src="scripts/core/__core.js"></script>
- <script src="scripts/core/__fix.js"></script>
- <script src="scripts/core/app.js"></script>
- <script src="scripts/core/router.js"></script>
- <script src="scripts/core/root.js"></script>
- <script src="scripts/config/constants.js"></script>
- <script src="scripts/config/configuration.js"></script>
- <script src="scripts/config/fileTypes.js"></script>
- <script src="scripts/config/initiator.js"></script>
- <script src="scripts/config/languages.js"></script>
- <script src="scripts/config/defaultLanguage.js"></script>
- <script src="scripts/config/aria2Options.js"></script>
- <script src="scripts/config/aria2Errors.js"></script>
- <script src="scripts/config/aria2RpcConstants.js"></script>
- <script src="scripts/controllers/command.js"></script>
- <script src="scripts/controllers/debug.js"></script>
- <script src="scripts/controllers/main.js"></script>
- <script src="scripts/controllers/new.js"></script>
- <script src="scripts/controllers/list.js"></script>
- <script src="scripts/controllers/task-detail.js"></script>
- <script src="scripts/controllers/settings-ariang.js"></script>
- <script src="scripts/controllers/settings-aria2.js"></script>
- <script src="scripts/controllers/status.js"></script>
- <script src="scripts/directives/autoFocus.js"></script>
- <script src="scripts/directives/pieceBar.js"></script>
- <script src="scripts/directives/pieceMap.js"></script>
- <script src="scripts/directives/chart.js"></script>
- <script src="scripts/directives/exportCommandApiDialog.js"></script>
- <script src="scripts/directives/indeterminate.js"></script>
- <script src="scripts/directives/placeholder.js"></script>
- <script src="scripts/directives/setting.js"></script>
- <script src="scripts/directives/settingDialog.js"></script>
- <script src="scripts/directives/tooltip.js"></script>
- <script src="scripts/directives/validUrls.js"></script>
- <script src="scripts/directives/blobDownload.js"></script>
- <script src="scripts/filters/dateDuration.js"></script>
- <script src="scripts/filters/fileOrderBy.js"></script>
- <script src="scripts/filters/logOrderBy.js"></script>
- <script src="scripts/filters/longDate.js"></script>
- <script src="scripts/filters/peerOrderBy.js"></script>
- <script src="scripts/filters/percent.js"></script>
- <script src="scripts/filters/reverse.js"></script>
- <script src="scripts/filters/taskOrderBy.js"></script>
- <script src="scripts/filters/taskStatus.js"></script>
- <script src="scripts/filters/timeDisplayName.js"></script>
- <script src="scripts/filters/volume.js"></script>
- <script src="scripts/services/ariaNgAssetsCacheService.js"></script>
- <script src="scripts/services/ariaNgLanguageLoader.js"></script>
- <script src="scripts/services/ariaNgCommonService.js"></script>
- <script src="scripts/services/ariaNgKeyboardService.js"></script>
- <script src="scripts/services/ariaNgNotificationService.js"></script>
- <script src="scripts/services/ariaNgLocalizationService.js"></script>
- <script src="scripts/services/ariaNgLogService.js"></script>
- <script src="scripts/services/ariaNgStorageService.js"></script>
- <script src="scripts/services/ariaNgFileService.js"></script>
- <script src="scripts/services/ariaNgSettingService.js"></script>
- <script src="scripts/services/ariaNgMonitorService.js"></script>
- <script src="scripts/services/ariaNgTitleService.js"></script>
- <script src="scripts/services/ariaNgVersionService.js"></script>
- <script src="scripts/services/aria2HttpRpcService.js"></script>
- <script src="scripts/services/aria2WebSocketRpcService.js"></script>
- <script src="scripts/services/aria2RpcService.js"></script>
- <script src="scripts/services/aria2TaskService.js"></script>
- <script src="scripts/services/aria2SettingService.js"></script>
- <script src="scripts/services/ariaNgNativeElectronService.js"></script>
- </body>
- </html>
|