2016-05-16 17:41:39 +02:00
< section class = "content no-padding" >
2016-08-13 16:51:42 +02:00
< div class = "nav-tabs-custom" >
< ul class = "nav nav-tabs" >
2017-03-19 16:17:56 +01:00
< li ng-class = "{'active': isCurrentGlobalTab()}" >
< a class = "pointer-cursor" ng-click = "changeGlobalTab()" translate > Global< / a >
2016-08-13 16:51:42 +02:00
< / li >
2017-03-25 06:06:55 +01:00
< li class = "nav-tab-title-rpcname" ng-repeat = "setting in context.rpcSettings" ng-class = "{'active': isCurrentRpcTab($index)}" >
< a class = "pointer-cursor" ng-click = "changeRpcTab($index)" >
2017-03-26 07:25:04 +02:00
< span class = "nav-tab-rpcname" ng-bind = "'RPC' + (setting.rpcAlias || setting.rpcHost ? ' (' + (setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort) + ')' : '')" title = "{{(setting.rpcAlias ? setting.rpcAlias : setting.rpcHost + ':' + setting.rpcPort)}}" > RPC< / span >
2017-03-25 06:06:55 +01:00
< / a >
< a class = "pointer-cursor nav-tab-close" ng-if = "!setting.isDefault" title = "{{'Delete RPC Setting' | translate}}" >
< i class = "fa fa-times" ng-click = "removeRpcSetting(setting)" > < / i >
< / a >
2017-03-19 16:17:56 +01:00
< / li >
< li class = "slim" >
< a class = "pointer-cursor" ng-click = "addNewRpcSetting()" title = "{{'Add New RPC Setting' | translate}}" >
< i class = "fa fa-plus" > < / i >
< / a >
2016-08-13 16:51:42 +02:00
< / li >
< / ul >
< div class = "tab-content no-padding" >
2017-03-19 16:17:56 +01:00
< div class = "tab-pane" ng-class = "{'active': isCurrentGlobalTab()}" >
2016-08-13 16:51:42 +02:00
< div class = "settings-table striped hoverable" >
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Language< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;" ng-model = "context.settings.language"
ng-options="type as language.displayName for (type, language) in context.languages"
2017-03-19 16:46:16 +01:00
ng-change="setLanguage(context.settings.language)">
2016-08-13 16:51:42 +02:00
< / select >
< / div >
< / div >
2016-11-06 15:41:28 +01:00
< div class = "row" ng-if = "context.showDebugMode" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Debug Mode< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;" ng-model = "context.sessionSettings.debugMode"
ng-options="option.value as (option.name | translate) for option in context.trueFalseOptions"
2017-03-19 16:46:16 +01:00
ng-change="setDebugMode(context.sessionSettings.debugMode)">
2016-11-06 15:41:28 +01:00
< / select >
< / div >
< / div >
2016-08-13 16:51:42 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Page Title< / span >
2016-11-06 08:58:04 +01:00
< i class = "icon-primary fa fa-question-circle" data-toggle = "popover"
data-trigger="hover" data-placement="auto right" data-container="body" data-html="true"
2017-03-05 16:18:09 +01:00
data-content="{{('Supported Placeholder' | translate) + ':< br / > ' +
('AriaNg Title' | translate) + ': ${title}< br / > ' +
('Downloading Count' | translate) + ': ${downloading}< br / > ' +
('Waiting Count' | translate) + ': ${waiting}< br / > ' +
('Stopped Count' | translate) + ': ${stopped}< br / > ' +
('Download Speed' | translate) + ': ${downspeed}< br / > ' +
('Upload Speed' | translate) + ': ${upspeed}< br / > < br / > ' +
('Tips: You can use the " noprefix" tag to ignore the prefix, " nosuffix" tag ignore the suffix, and " scale=n" tag to set the decimal precision.' | translate) + '< br / > ' +
('Example: ${downspeed:noprefix:nosuffix:scale=1}' | translate)}}">< / i >
2016-08-13 16:51:42 +02:00
< / div >
< div class = "setting-value col-sm-8" >
< input class = "form-control" type = "text" ng-model = "context.settings.title"
2017-03-19 16:46:16 +01:00
ng-change="setTitle(context.settings.title); updateTitlePreview()"/>
2017-03-05 16:18:09 +01:00
< em > [< span translate > Preview< / span > ] < span ng-bind = "context.titlePreview" > < / span > < / em >
2016-08-13 16:51:42 +02:00
< / div >
< / div >
2018-08-14 16:06:22 +02:00
< div class = "row" ng-if = "isSupportNotification()" >
2016-08-13 16:51:42 +02:00
< div class = "setting-key setting-key-without-desc col-sm-4" >
2018-08-14 16:06:22 +02:00
< span translate > Enable Browser Notification< / span >
2016-08-13 16:51:42 +02:00
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;"
2018-08-14 16:06:22 +02:00
ng-model="context.settings.browserNotification"
ng-change="setEnableBrowserNotification(context.settings.browserNotification)"
ng-options="option.value as (option.name | translate) for option in context.trueFalseOptions">
2016-08-13 16:51:42 +02:00
< / select >
< / div >
< / div >
2018-08-14 16:06:22 +02:00
< div class = "row" >
2016-08-13 16:51:42 +02:00
< div class = "setting-key setting-key-without-desc col-sm-4" >
2018-08-14 16:06:22 +02:00
< span translate > Page Title Refresh Interval< / span >
< span class = "asterisk" > *< / span >
2016-08-13 16:51:42 +02:00
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;"
2018-08-14 16:06:22 +02:00
ng-model="context.settings.titleRefreshInterval"
ng-change="setTitleRefreshInterval(context.settings.titleRefreshInterval)"
ng-options="time.optionValue as (time.name | translate: {value: time.value}) for time in context.availableTime">
2016-08-13 16:51:42 +02:00
< / select >
< / div >
< / div >
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Global Stat Refresh Interval< / span >
< span class = "asterisk" > *< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;"
ng-model="context.settings.globalStatRefreshInterval"
2017-03-19 16:46:16 +01:00
ng-change="setGlobalStatRefreshInterval(context.settings.globalStatRefreshInterval)"
2016-08-13 16:51:42 +02:00
ng-options="time.optionValue as (time.name | translate: {value: time.value}) for time in context.availableTime">
< / select >
< / div >
< / div >
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Download Task Refresh Interval< / span >
< span class = "asterisk" > *< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;"
ng-model="context.settings.downloadTaskRefreshInterval"
2017-03-19 16:46:16 +01:00
ng-change="setDownloadTaskRefreshInterval(context.settings.downloadTaskRefreshInterval)"
2016-08-13 16:51:42 +02:00
ng-options="time.optionValue as (time.name | translate: {value: time.value}) for time in context.availableTime">
< / select >
< / div >
< / div >
2018-08-14 15:56:02 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > RPC List Display Order< / span >
< span class = "asterisk" > *< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;" ng-model = "context.settings.rpcListDisplayOrder"
ng-change="setRPCListDisplayOrder(context.settings.rpcListDisplayOrder)">
< option value = "recentlyUsed" translate > Recently Used< / option >
< option value = "rpcAlias" translate > RPC Alias< / option >
< / select >
< / div >
< / div >
2017-05-14 08:16:46 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
2017-05-14 17:47:34 +02:00
< span translate > Action After Creating New Tasks< / span >
2017-05-14 08:16:46 +02:00
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;" ng-model = "context.settings.afterCreatingNewTask"
ng-change="setAfterCreatingNewTask(context.settings.afterCreatingNewTask)">
< option value = "task-list" translate > Navigate to Task List Page< / option >
< option value = "task-detail" translate > Navigate to Task Detail Page< / option >
< / select >
< / div >
< / div >
2017-11-03 17:15:19 +01:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Removing Old Task After Restarting< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;" ng-model = "context.settings.removeOldTaskAfterRestarting"
ng-change="setRemoveOldTaskAfterRestarting(context.settings.removeOldTaskAfterRestarting)"
ng-options="option.value as (option.name | translate) for option in context.trueFalseOptions">
< / select >
< / div >
< / div >
2018-10-21 17:22:05 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Action After Restarting Task< / span >
< / div >
< div class = "setting-value col-sm-8" >
< select class = "form-control" style = "width: 100%;" ng-model = "context.settings.afterRestartingTask"
ng-change="setAfterRestartingTask(context.settings.afterRestartingTask)">
< option value = "task-list-downloading" translate > Navigate to Downloading Task List Page< / option >
< option value = "task-detail" translate > Navigate to Task Detail Page< / option >
< option value = "stay-on-current" translate > Stay on Current Page< / option >
< / select >
< / div >
< / div >
2018-08-14 22:20:55 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Import / Export AriaNg Settings< / span >
< / div >
< div class = "setting-value col-sm-8" >
< button class = "btn btn-sm btn-default" ng-click = "showImportSettingsModal()" >
< span translate > Import Settings< / span >
< / button >
< button class = "btn btn-sm btn-default" ng-click = "showExportSettingsModal()" >
< span translate > Export Settings< / span >
< / button >
< / div >
< / div >
2016-08-13 16:51:42 +02:00
< div class = "row tip no-background no-hover" >
< span class = "asterisk" > *< / span >
< span translate > Changes to the settings take effect after refreshing page.< / span >
2017-06-18 08:00:14 +02:00
< button class = "btn btn-xs btn-default" ng-click = "resetSettings()" >
< span translate > Reset Settings< / span >
< / button >
2018-05-20 16:56:12 +02:00
< button class = "btn btn-xs btn-default" ng-click = "clearHistory()" >
< span translate > Clear Settings History< / span >
< / button >
2016-08-13 16:51:42 +02:00
< / div >
2016-05-16 18:59:27 +02:00
< / div >
< / div >
2017-03-19 16:17:56 +01:00
< div class = "tab-pane" ng-repeat = "setting in context.rpcSettings" ng-class = "{'active': isCurrentRpcTab($index)}" >
2016-08-13 16:51:42 +02:00
< div class = "settings-table striped hoverable" >
2017-03-19 16:17:56 +01:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Aria2 RPC Alias< / span >
< span class = "asterisk" > *< / span >
< / div >
< div class = "setting-value col-sm-8" >
< input class = "form-control" type = "text" ng-placeholder = "(setting.rpcHost ? setting.rpcHost + ':' + setting.rpcPort : '')" ng-model = "setting.rpcAlias" ng-change = "updateRpcSetting(setting, 'rpcAlias')" / >
< / div >
< / div >
2016-08-13 16:51:42 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
2017-03-26 07:25:04 +02:00
< span translate > Aria2 RPC Address< / span >
2016-08-13 16:51:42 +02:00
< span class = "asterisk" > *< / span >
< / div >
< div class = "setting-value col-sm-8" >
2017-03-24 16:46:41 +01:00
< div class = "input-group input-group-multiple" >
2017-03-19 16:17:56 +01:00
< span class = "input-group-addon" ng-bind = "setting.protocol + '://'" > < / span >
< input class = "form-control" type = "text" ng-model = "setting.rpcHost" ng-change = "updateRpcSetting(setting, 'rpcHost')" / >
2017-03-26 07:25:04 +02:00
< span class = "input-group-addon" > :< / span >
2017-08-29 16:38:11 +02:00
< div class = "input-group-addon-container" >
2017-03-26 07:25:04 +02:00
< input class = "form-control form-control-rpcport" type = "text" ng-model = "setting.rpcPort" ng-change = "updateRpcSetting(setting, 'rpcPort')" / >
< / div >
< span class = "input-group-addon" > /< / span >
2017-08-29 16:38:11 +02:00
< div class = "input-group-addon-container" >
2017-03-26 07:25:04 +02:00
< input class = "form-control form-control-rpcinterface" type = "text" ng-model = "setting.rpcInterface" ng-change = "updateRpcSetting(setting, 'rpcInterface')" / >
< / div >
2016-08-13 16:51:42 +02:00
< / div >
< / div >
< / div >
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Aria2 RPC Protocol< / span >
< span class = "asterisk" > *< / span >
2017-10-08 16:48:30 +02:00
< i class = "icon-primary fa fa-question-circle" ng-tooltip-container = "body" ng-tooltip-placement = "top"
2017-10-08 17:08:53 +02:00
ng-tooltip="{{'Http and WebSocket would be disabled when accessing AriaNg via Https.' | translate}}">< / i >
2016-08-13 16:51:42 +02:00
< / div >
< div class = "setting-value col-sm-8" >
2017-03-19 16:17:56 +01:00
< select class = "form-control" style = "width: 100%;" ng-model = "setting.protocol" ng-change = "updateRpcSetting(setting, 'protocol')" >
2017-10-08 16:48:30 +02:00
< option value = "http" ng-disabled = "::(context.isInsecureProtocolDisabled)" ng-bind = "('Http' + (context.isInsecureProtocolDisabled ? ' (Disabled)' : '')) | translate" > Http< / option >
2016-08-13 16:51:42 +02:00
< option value = "https" translate > Https< / option >
2017-10-08 16:48:30 +02:00
< option value = "ws" ng-disabled = "::(context.isInsecureProtocolDisabled)" ng-bind = "('WebSocket' + (context.isInsecureProtocolDisabled ? ' (Disabled)' : '')) | translate" > WebSocket< / option >
2016-08-13 16:51:42 +02:00
< option value = "wss" translate > WebSocket (Security)< / option >
< / select >
< / div >
< / div >
2017-03-19 16:17:56 +01:00
< div class = "row" ng-if = "setting.protocol === 'http' || setting.protocol === 'https'" >
2016-12-24 15:31:31 +01:00
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Aria2 RPC Http Request Method< / span >
< span class = "asterisk" > *< / span >
< i class = "icon-primary fa fa-question-circle" ng-tooltip-container = "body" ng-tooltip-placement = "top"
ng-tooltip="{{'POST method only supports aria2 v1.15.2 and above.' | translate}}">< / i >
< / div >
< div class = "setting-value col-sm-8" >
2017-03-19 16:17:56 +01:00
< select class = "form-control" style = "width: 100%;" ng-model = "setting.httpMethod" ng-change = "updateRpcSetting(setting, 'httpMethod')" >
2016-12-24 15:31:31 +01:00
< option value = "POST" translate > POST< / option >
< option value = "GET" translate > GET< / option >
< / select >
< / div >
< / div >
2016-08-13 16:51:42 +02:00
< div class = "row" >
< div class = "setting-key setting-key-without-desc col-sm-4" >
< span translate > Aria2 RPC Secret Token< / span >
< span class = "asterisk" > *< / span >
< / div >
< div class = "setting-value col-sm-8" >
2016-12-04 14:09:09 +01:00
< div class = "input-group" >
2017-03-19 16:17:56 +01:00
< input class = "form-control" type = "{{context.showRpcSecret ? 'text' : 'password'}}" ng-model = "setting.secret" ng-change = "updateRpcSetting(setting, 'secret')" / >
2016-12-04 14:09:09 +01:00
< span class = "input-group-addon input-group-addon-compact no-vertical-padding" >
< button class = "btn btn-xs btn-default" title = "{{context.showRpcSecret ? 'Hide Secret' : 'Show Secret' | translate}}"
ng-class="{'active': context.showRpcSecret}" ng-click="context.showRpcSecret = !context.showRpcSecret">
< i class = "fa fa-eye" > < / i >
< / button >
< / span >
< / div >
2016-08-13 16:51:42 +02:00
< / div >
< / div >
< div class = "row tip no-background no-hover" >
< span class = "asterisk" > *< / span >
< span translate > Changes to the settings take effect after refreshing page.< / span >
2017-03-19 16:17:56 +01:00
< button class = "btn btn-xs btn-default" ng-disabled = "setting.isDefault" ng-click = "setDefaultRpcSetting(setting)" >
2017-05-20 06:32:03 +02:00
< span translate > Activate< / span >
2017-03-19 16:17:56 +01:00
< / button >
2016-08-13 16:51:42 +02:00
< / div >
< / div >
2016-05-17 16:15:28 +02:00
< / div >
< / div >
2016-05-16 17:41:39 +02:00
< / div >
2018-08-14 22:20:55 +02:00
< div id = "import-settings-modal" class = "modal fade" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog modal-lg" role = "document" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
< h4 class = "modal-title" >
< span translate > Import Settings< / span >
< small >
< a class = "pointer-cursor" title = "{{'Open' | translate}}" ng-click = "openAriaNgConfigFile()" >
< i class = "icon-primary fa fa-folder-open-o" > < / i >
< / a >
< / small >
< / h4 >
< / div >
< div class = "modal-body no-padding" >
< div class = "settings-table striped" >
< input id = "import-file-holder" type = "file" style = "display: none" / >
2018-08-25 14:34:46 +02:00
< textarea class = "form-control" ng-model = "context.importSettings" rows = "20"
ng-placeholder="'AriaNg settings data' | translate">< / textarea >
2018-08-14 22:20:55 +02:00
< / div >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-primary" ng-disabled = "!context.importSettings || !context.importSettings.length"
ng-click="importSettings(context.importSettings)" translate>Import< / button >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" translate > Cancel< / button >
< / div >
< / div >
< / div >
< / div >
< div id = "export-settings-modal" class = "modal fade" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog modal-lg" role = "document" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
< h4 class = "modal-title" >
< span translate > Export Settings< / span >
< small >
< a class = "pointer-cursor" title = "{{'Save' | translate}}" ng-if = "context.isSupportBlob"
ng-blob-download="context.exportSettings" ng-file-name="AriaNgConfig.json" ng-content-type="application/json">
< i class = "icon-primary fa fa-save" > < / i >
< / a >
2018-08-25 14:34:46 +02:00
< a class = "pointer-cursor" title = "{{'Copy' | translate}}" ng-click = "copyExportSettings()" >
< i class = "icon-primary fa fa-copy" > < / i >
< / a >
< span class = "label label-default fade-in" ng-if = "context.exportSettingsCopied" translate > Data has been copied to clipboard.< / span >
2018-08-14 22:20:55 +02:00
< / small >
< / h4 >
< / div >
< div class = "modal-body no-padding" >
< div class = "settings-table striped" >
< textarea class = "form-control" ng-model = "context.exportSettings" rows = "20" readonly = "readonly" > < / textarea >
< / div >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" translate > Cancel< / button >
< / div >
< / div >
< / div >
< / div >
2016-05-16 17:41:39 +02:00
< / section >
2017-03-29 03:06:43 +02:00
< script id = "setting-changed-notification.html" type = "text/ng-template" >
< div class = "ui-notification custom-template" >
< div class = "message" ng-bind-html = "message" > < / div >
< div class = "message" >
2017-03-29 03:10:12 +02:00
< a class = "btn btn-small btn-primary close-notification" ng-click = "refreshPage()" translate > Reload Page< / a >
2017-03-29 03:06:43 +02:00
< / div >
< / div >
< / script >